haikuwebkit/LayoutTests/media/modern-media-controls/mute-button
Sam Weinig 9db9341a7d [Modern Media Controls] Modern media controls should not need to know about specific platforms in shared code
https://bugs.webkit.org/show_bug.cgi?id=227423

Reviewed by Eric Carlson.

Source/WebCore:

Rather than requiring the shared media control classes to know specifics about
the various platforms via the LayoutTraits flags, we now abstract those decisions
via a new polymorphic LayoutTraits class, which each platform subclasses and
implements.

This will gives better separation and will allow easier experimentation with new
control patterns.

* DerivedSources-input.xcfilelist:
* DerivedSources.make:
* PlatformMac.cmake:
* WebCore.xcodeproj/project.pbxproj:
* Modules/modern-media-controls/js-files:
Adds new files for layout traits and its subclasses.

* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::layoutTraitsClassName const):
(WebCore::MediaControlsHost::platform const): Deleted.
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediacontrols/MediaControlsHost.idl:
Replace platform accessor with a new layoutTraitsClassName, which allows
the platform to spcecify which of the trait subclasses to use.

* Modules/modern-media-controls/controls/layout-traits.js: Added.
* Modules/modern-media-controls/controls/ios-layout-traits.js: Added.
* Modules/modern-media-controls/controls/macos-layout-traits.js: Added.
* Modules/modern-media-controls/controls/watchos-layout-traits.js: Added.
Add new layout trait files.

* Modules/modern-media-controls/controls/fullscreen-button.js:
* Modules/modern-media-controls/controls/icon-service.js:
* Modules/modern-media-controls/controls/ios-inline-media-controls.js:
* Modules/modern-media-controls/controls/layout-item.js:
* Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:
* Modules/modern-media-controls/controls/macos-inline-media-controls.js:
* Modules/modern-media-controls/controls/media-controls.js:
* Modules/modern-media-controls/controls/play-pause-button.js:
* Modules/modern-media-controls/controls/time-control.js:
* Modules/modern-media-controls/controls/watchos-media-controls.js:
* Modules/modern-media-controls/media/media-controller.js:
* Modules/modern-media-controls/media/tracks-support.js:
Replace explicit checks for platform with queries to the layout traits interface.

LayoutTests:

Update tests and results to use LayoutTraits class.

* media/modern-media-controls/airplay-button/airplay-button-on.html:
* media/modern-media-controls/airplay-button/airplay-button.html:
* media/modern-media-controls/airplay-placard/airplay-placard.html:
* media/modern-media-controls/button/button-active-state.html:
* media/modern-media-controls/button/button-click-on-edges.html:
* media/modern-media-controls/button/button-focus-state.html:
* media/modern-media-controls/button/button-icon-name-expected.txt:
* media/modern-media-controls/button/button-icon-name.html:
* media/modern-media-controls/button/button-on.html:
* media/modern-media-controls/forward-button/forward-button.html:
* media/modern-media-controls/fullscreen-button/fullscreen-button.html:
* media/modern-media-controls/icon-service/icon-service-expected.txt:
* media/modern-media-controls/icon-service/icon-service.html:
* media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics-expected.txt:
* media/modern-media-controls/invalid-placard/invalid-placard-constrained-metrics.html:
* media/modern-media-controls/invalid-placard/invalid-placard.html:
* media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-constructor.html:
* media/modern-media-controls/layout-item/layout-item-expected.txt:
* media/modern-media-controls/layout-item/layout-item.html:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor-expected.txt:
* media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-constructor.html:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor-expected.txt:
* media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html:
* media/modern-media-controls/media-controller/media-controller-fullscreen-change.html:
* media/modern-media-controls/media-controls/media-controls-appear-when-focus.html:
* media/modern-media-controls/media-controls/media-controls-constructor-expected.txt:
* media/modern-media-controls/media-controls/media-controls-constructor.html:
* media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics-expected.txt:
* media/modern-media-controls/media-controls/media-controls-placard-compressed-metrics.html:
* media/modern-media-controls/mute-button/mute-button.html:
* media/modern-media-controls/overflow-button/overflow-button.html:
* media/modern-media-controls/pip-button/pip-button.html:
* media/modern-media-controls/pip-placard/pip-placard.html:
* media/modern-media-controls/placard/placard-expected.txt:
* media/modern-media-controls/placard/placard.html:
* media/modern-media-controls/play-pause-button/play-pause-button.html:
* media/modern-media-controls/rewind-button/rewind-button.html:
* media/modern-media-controls/skip-back-button/skip-back-button.html:
* media/modern-media-controls/skip-forward-button/skip-forward-button.html:
* media/modern-media-controls/time-control/time-control-expected.txt:
* media/modern-media-controls/time-control/time-control.html:
* media/modern-media-controls/tracks-button/tracks-button.html:
* media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor-expected.txt:
* media/modern-media-controls/watchos-media-controls/watchos-media-controls-constructor.html:


Canonical link: https://commits.webkit.org/239185@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-06-27 01:07:51 +00:00
..
mute-button-expected.txt
mute-button.html [Modern Media Controls] Modern media controls should not need to know about specific platforms in shared code 2021-06-27 01:07:51 +00:00