Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4d134575ba2efbde2d21a489d7aca35831e0f1eb
https://github.com/WebKit/WebKit/commit/4d134575ba2efbde2d21a489d7aca35831e0f1eb
Author: Andy Estes <[email protected]>
Date: 2024-08-05 (Mon, 05 Aug 2024)
Changed paths:
M Source/WebCore/DerivedSources-input.xcfilelist
M Source/WebCore/DerivedSources.make
M Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp
M Source/WebCore/Modules/mediacontrols/MediaControlsHost.h
M Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl
M Source/WebCore/Modules/mediasession/MediaSession.cpp
M Source/WebCore/Modules/mediasession/MediaSession.h
M Source/WebCore/Modules/modern-media-controls/controls/ios-layout-traits.js
M Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js
M
Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js
A
Source/WebCore/Modules/modern-media-controls/controls/metadata-container.css
A
Source/WebCore/Modules/modern-media-controls/controls/metadata-container.js
M
Source/WebCore/Modules/modern-media-controls/controls/tvos-layout-traits.js
M
Source/WebCore/Modules/modern-media-controls/controls/tvos-media-controls.css
M
Source/WebCore/Modules/modern-media-controls/controls/tvos-media-controls.js
M
Source/WebCore/Modules/modern-media-controls/controls/vision-layout-traits.js
M
Source/WebCore/Modules/modern-media-controls/controls/watchos-layout-traits.js
M Source/WebCore/Modules/modern-media-controls/media/media-controller.js
A Source/WebCore/Modules/modern-media-controls/media/metadata-support.js
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/dom/EventNames.json
M Source/WebCore/en.lproj/modern-media-controls-localized-strings.js
Log Message:
-----------
[tvOS] Present title and artist metadata in media controls
https://bugs.webkit.org/show_bug.cgi?id=277641
rdar://133226960
Reviewed by Jer Noble.
Taught TVOSMediaControls to present title and artist metadata when the website
makes this
information available via MediaSession.
This is accomplished by adding a new MetadataSupport support class that is
installed when
TVOSMediaControls are enabled. MetadataSupport asks MediaControlsHost to add
itself as a
MediaSessionObserver. When MediaSession metadata changes MediaControlsHost
dispatches a new
webkitmediasessionmetadatachanged event to the User-Agent shadow root, and when
MetadataSupport
observes this event it syncs TVOSMediaControls' metadataContainer control by
updating its title and
artist labels.
To make it easier to specify supporting object classes for a given platform,
supportingObjectClasses was moved from MediaController to LayoutTraits so that
LayoutTraits
subclasses can override it. Since this serves the purpose of
overridenSupportingObjectClasses (but
with more flexibility), overridenSupportingObjectClasses was removed.
* Source/WebCore/DerivedSources-input.xcfilelist:
* Source/WebCore/DerivedSources.make:
* Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::mediaSession const):
(WebCore::MediaControlsHost::ensureMediaSessionObserver):
(WebCore::MediaControlsHost::metadataChanged):
* Source/WebCore/Modules/mediacontrols/MediaControlsHost.h:
* Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl:
* Source/WebCore/Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::hasObserver const):
* Source/WebCore/Modules/mediasession/MediaSession.h:
* Source/WebCore/Modules/modern-media-controls/controls/ios-layout-traits.js:
(IOSLayoutTraits.prototype.overridenSupportingObjectClasses): Deleted.
* Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:
(LayoutTraits.prototype.supportingObjectClasses):
(LayoutTraits.prototype.overridenSupportingObjectClasses): Deleted.
* Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js:
(MacOSLayoutTraits.prototype.overridenSupportingObjectClasses): Deleted.
* Source/WebCore/Modules/modern-media-controls/controls/metadata-container.css:
Added.
(.media-controls.fullscreen.tvos > .metadata-container > .title-label):
(.media-controls.fullscreen.tvos > .metadata-container > .artist-label):
* Source/WebCore/Modules/modern-media-controls/controls/metadata-container.js:
Added.
(MetadataContainer.prototype.get title):
(MetadataContainer.prototype.set title):
(MetadataContainer.prototype.get artist):
(MetadataContainer.prototype.set artist):
(MetadataContainer.prototype.commitProperty):
* Source/WebCore/Modules/modern-media-controls/controls/tvos-layout-traits.js:
(TVOSLayoutTraits.prototype.supportingObjectClasses):
(TVOSLayoutTraits.prototype.overridenSupportingObjectClasses): Deleted.
* Source/WebCore/Modules/modern-media-controls/controls/tvos-media-controls.css:
(.media-controls.fullscreen.tvos):
(.media-controls.fullscreen.tvos > .metadata-container):
(.media-controls.fullscreen.tvos > .controls-bar): Deleted.
* Source/WebCore/Modules/modern-media-controls/controls/tvos-media-controls.js:
(TVOSMediaControls.prototype.layout):
* Source/WebCore/Modules/modern-media-controls/controls/vision-layout-traits.js:
(VisionLayoutTraits.prototype.overridenSupportingObjectClasses): Deleted.
*
Source/WebCore/Modules/modern-media-controls/controls/watchos-layout-traits.js:
(WatchOSLayoutTraits.prototype.overridenSupportingObjectClasses): Deleted.
* Source/WebCore/Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype._updateControlsIfNeeded):
(MediaController.prototype._supportingObjectClasses): Deleted.
* Source/WebCore/Modules/modern-media-controls/media/metadata-support.js: Added.
(MetadataSupport.prototype.enable):
(MetadataSupport.prototype.disable):
(MetadataSupport.prototype.get control):
(MetadataSupport.prototype.syncControl):
(MetadataSupport):
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/dom/EventNames.json:
* Source/WebCore/en.lproj/modern-media-controls-localized-strings.js:
Canonical link: https://commits.webkit.org/281871@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes