[webkit-changes] [WebKit/WebKit] 4d1345: [tvOS] Present title and artist metadata in media ...
aestes
noreply at github.com
Mon Aug 5 20:51:15 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4d134575ba2efbde2d21a489d7aca35831e0f1eb
https://github.com/WebKit/WebKit/commit/4d134575ba2efbde2d21a489d7aca35831e0f1eb
Author: Andy Estes <aestes at apple.com>
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
More information about the webkit-changes
mailing list