As a part of the work of splitting MediaSession and AudioFocus, we need to implement a per-frame blink::MediaSession, and propagate the top-level frame MediaMetadata to the browser.
The current spec explainer is: https://github.com/WICG/mediasession/blob/master/explainer.md We should make the implementation match the spec eventually.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b commit dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b Author: zqzhang <zqzhang@chromium.org> Date: Wed Oct 12 09:58:34 2016 Make MediaSession per frame as an attribute of Navigator This CL makes MediaSession non user-constructible, and make it as an attribute of window.navigator, thus MediaSession is one object per frame. This CL also adds back the removed browser tests as layout tests using a mock blink::mojom::MediaSessionService in js. This CL also made MediaSession enabled in tests so no need for virtual tests anymore. Spec URL: https://wicg.github.io/mediasession/ BUG= 643190 , 646490 , 653894 Review-Url: https://codereview.chromium.org/2401013002 Cr-Commit-Position: refs/heads/master@{#424702} [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/VirtualTestSuites [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-navigated-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-and-gced-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/fast/dom/Window/property-access-on-cached-window-after-frame-removed-expected.txt [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/media/mediasession/mediaimage-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mediaimage.html [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/media/mediasession/mediasession-constructor-expected.txt [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/media/mediasession/mediasession-constructor.html [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/media/mediasession/mediasessionmetadata-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mediasessionmetadata.html [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mojo/file-image-removed.html [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mojo/metadata-propagated-twice.html [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mojo/metadata-propagated.html [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mojo/resources/mediasessionservice-mock.js [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mojo/resources/utils.js [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/mojo/set-null-metadata.html [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/media/mediasession/navigator-mediasession.html [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/virtual/mediasession/media/mediasession/README.txt [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/virtual/mediasession/media/mediasession/mediaimage-expected.txt [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/virtual/mediasession/media/mediasession/mediasession-constructor-expected.txt [delete] https://crrev.com/0b40dcf1a0daaab5347d81dca129cd5533d79757/third_party/WebKit/LayoutTests/virtual/mediasession/media/mediasession/mediasessionmetadata-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/Source/modules/mediasession/BUILD.gn [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/Source/modules/mediasession/MediaSession.idl [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/Source/modules/mediasession/NavigatorMediaSession.cpp [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/Source/modules/mediasession/NavigatorMediaSession.h [add] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/Source/modules/mediasession/NavigatorMediaSession.idl [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/Source/modules/modules_idl_files.gni [modify] https://crrev.com/dbbe70b8977af46a3c33d2b1c42123f7e5d5b98b/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0528cf1b9577cc2c052b2d17a1160b3b90ef88f3 commit 0528cf1b9577cc2c052b2d17a1160b3b90ef88f3 Author: zqzhang <zqzhang@chromium.org> Date: Fri Oct 14 12:08:13 2016 Propagate MediaMetadata to Java side BUG= 643190 Review-Url: https://codereview.chromium.org/2411353002 Cr-Commit-Position: refs/heads/master@{#425297} [modify] https://crrev.com/0528cf1b9577cc2c052b2d17a1160b3b90ef88f3/content/browser/media/session/media_session_service_impl.cc [modify] https://crrev.com/0528cf1b9577cc2c052b2d17a1160b3b90ef88f3/content/browser/media/session/media_session_service_impl.h
Comment 1 by zqzh...@chromium.org
, Sep 1 2016