Feature description: Allow websites to create a floating video window always on top of other windows so that users may continue consuming media while they interact with other content sites, or applications on their device. https://wicg.github.io/picture-in-picture/ Eng owner: mlamouri@chromium.org Product owner: hbengali@chromium.org
Intent to Implement: https://groups.google.com/a/chromium.org/d/msg/blink-dev/U8Apo-WLBm4/03sO4ITYAQAJ
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e40637e20e3c86dfc072ddccac480476d119ac59 commit e40637e20e3c86dfc072ddccac480476d119ac59 Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Jan 31 17:29:09 2018 [Picture-In-Picture] Expose some APIs behind a runtime feature. https://wicg.github.io/picture-in-picture/ The API is currently not working. It is mostly about implementing the shell: it exposes document.pictureInPictureEnabled, document.exitPictureInPicture(), and video.requestPictureInPicture(). It also adds the "picture-in-picture" feature policy. Everything is gated by the "PictureInPictureAPI" runtime feature. Intent to implement: https://groups.google.com/a/chromium.org/d/msg/blink-dev/U8Apo-WLBm4/03sO4ITYAQAJ Change-Id: I64d8e17c6975017565c850afeeca19d94e9f9ceb Bug: 806249 Reviewed-on: https://chromium-review.googlesource.com/867915 Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org> Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: Ian Clelland <iclelland@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#533310} [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-allowed-by-feature-policy-attribute.https.sub.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-allowed-by-feature-policy.https.sub.html.headers [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-default-feature-policy.https.sub.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html.headers [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/resources/feature-policy-picture-in-picture.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/external/wpt/feature-policy/resources/picture-in-picture.js [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/media/picture-in-picture/not-processing-user-gesture.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/media/picture-in-picture/request-picture-in-picture.html [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/media/picture-in-picture/resources/picture-in-picture-helpers.js [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/core/core_idl_files.gni [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/BUILD.gn [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/modules_idl_files.gni [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/BUILD.gn [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/DEPS [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.cpp [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.h [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.idl [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.h [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.idl [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/OWNERS [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h [add] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureTest.cpp [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/platform/feature_policy/FeaturePolicy.cpp [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/Source/platform/runtime_enabled_features.json5 [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/common/feature_policy/README.md [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/common/feature_policy/feature_policy.cc [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/common/feature_policy/feature_policy.mojom [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/common/feature_policy/feature_policy_feature.h [modify] https://crrev.com/e40637e20e3c86dfc072ddccac480476d119ac59/third_party/WebKit/common/feature_policy/feature_policy_struct_traits.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b commit 3eee245d55937118bd1c3e2f89632aa5e3c4fa9b Author: François Beaufort <beaufort.francois@gmail.com> Date: Thu Feb 01 11:41:10 2018 [Picture-in-Picture] Add basic implementation for document.pictureInPictureElement This doesn't handle ShadowRoot yet. Full implementation will come in a future CL. Bug: 806249 Change-Id: I948b8f355549d759790545248593a37acb567579 Reviewed-on: https://chromium-review.googlesource.com/890740 Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org> Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#533639} [add] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/LayoutTests/media/picture-in-picture/exit-picture-in-picture.html [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/LayoutTests/media/picture-in-picture/not-processing-user-gesture.html [add] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/LayoutTests/media/picture-in-picture/picture-in-picture-element.html [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/LayoutTests/media/picture-in-picture/request-picture-in-picture.html [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.cpp [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.h [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.idl [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [modify] https://crrev.com/3eee245d55937118bd1c3e2f89632aa5e3c4fa9b/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34 commit b696eeaf6b786760b9a7e30b0957cd5d38fcdc34 Author: François Beaufort <beaufort.francois@gmail.com> Date: Thu Feb 01 15:43:06 2018 [Picture-in-Picture] Add disablePictureInPicture video attribute This is still incomplete as it still needs to reject pending requestPiP promises. Bug: 806249 Change-Id: I256cf5fa092e4e03a7a82135761e2160fbdba043 Reviewed-on: https://chromium-review.googlesource.com/891958 Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org> Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#533674} [add] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/LayoutTests/media/picture-in-picture/disable-picture-in-picture.html [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/Source/core/html/HTMLAttributeNames.json5 [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.cpp [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.h [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.idl [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/third_party/WebKit/public/platform/web_feature.mojom [modify] https://crrev.com/b696eeaf6b786760b9a7e30b0957cd5d38fcdc34/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e3b780f0dd9df17ef8950c7d563b700bd9437c38 commit e3b780f0dd9df17ef8950c7d563b700bd9437c38 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Feb 02 14:53:21 2018 [Picture-in-Picture] Add enterpictureinpicture video event Bug: 806249 Change-Id: I64d5e3aeea52b04c4f79e5b7d302f6ffe914ff8a Reviewed-on: https://chromium-review.googlesource.com/893461 Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#534049} [add] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/LayoutTests/media/picture-in-picture/enter-picture-in-picture.html [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/Source/core/events/event_type_names.json5 [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/Source/modules/event_target_modules_names.json5 [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/Source/modules/picture_in_picture/DEPS [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.h [modify] https://crrev.com/e3b780f0dd9df17ef8950c7d563b700bd9437c38/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.idl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6fad61f75f9d04858f1571f870196d966f190d25 commit 6fad61f75f9d04858f1571f870196d966f190d25 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Feb 02 16:32:10 2018 [Picture-in-Picture] Move LayoutTests to external/wpt Bug: 806249 Change-Id: I46ccd72da19253fdb0ff54d90fd439a8d98ca5a9 Reviewed-on: https://chromium-review.googlesource.com/895447 Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org> Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Cr-Commit-Position: refs/heads/master@{#534069} [rename] https://crrev.com/6fad61f75f9d04858f1571f870196d966f190d25/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/disable-picture-in-picture.html [rename] https://crrev.com/6fad61f75f9d04858f1571f870196d966f190d25/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/enter-picture-in-picture.html [rename] https://crrev.com/6fad61f75f9d04858f1571f870196d966f190d25/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/exit-picture-in-picture.html [rename] https://crrev.com/6fad61f75f9d04858f1571f870196d966f190d25/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/not-processing-user-gesture.html [rename] https://crrev.com/6fad61f75f9d04858f1571f870196d966f190d25/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/picture-in-picture-element.html [add] https://crrev.com/6fad61f75f9d04858f1571f870196d966f190d25/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/request-picture-in-picture.html [rename] https://crrev.com/6fad61f75f9d04858f1571f870196d966f190d25/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/resources/picture-in-picture-helpers.js [delete] https://crrev.com/d78bbcf864694fb57c8c3bdea49526d8f30c3ccf/third_party/WebKit/LayoutTests/media/picture-in-picture/request-picture-in-picture.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/06c27f0628fbbdd325a3febf0eb58d873d7ee043 commit 06c27f0628fbbdd325a3febf0eb58d873d7ee043 Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon Feb 05 15:36:44 2018 [Picture-in-Picture] Add leavepictureinpicture video event Bug: 806249 Change-Id: I443cedc0b6d0d72f98a61dd8bf5bb8c79da0d490 Reviewed-on: https://chromium-review.googlesource.com/895309 Reviewed-by: Mounir Lamouri (slow) <mlamouri@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Commit-Queue: Mounir Lamouri (slow) <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#534388} [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/enter-picture-in-picture.html [add] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/leave-picture-in-picture.html [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/LayoutTests/webexposed/element-instance-property-listing-expected.txt [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/Source/core/events/event_type_names.json5 [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.cpp [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.h [modify] https://crrev.com/06c27f0628fbbdd325a3febf0eb58d873d7ee043/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.idl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7dba4c6a1c56a8e0b6fe9e5dc93af286009a86d3 commit 7dba4c6a1c56a8e0b6fe9e5dc93af286009a86d3 Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Feb 07 13:02:54 2018 [Picture-in-Picture] Add comments to PictureInPictureController Bug: 806249 Change-Id: I18e6b7de189bbac3147c2d1c704aa911e49cd937 Reviewed-on: https://chromium-review.googlesource.com/897648 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Cr-Commit-Position: refs/heads/master@{#534990} [modify] https://crrev.com/7dba4c6a1c56a8e0b6fe9e5dc93af286009a86d3/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/de5671d5ab239e09e1e4548a2d8e1a42e404478b commit de5671d5ab239e09e1e4548a2d8e1a42e404478b Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Feb 07 13:27:29 2018 [Picture-in-Picture] Fix crash when document is detached from a frame. Bug: 807752 , 806249 Change-Id: Ia6d396ab7bb931c4ef5195422c38b8eb2156250e Reviewed-on: https://chromium-review.googlesource.com/898982 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Cr-Commit-Position: refs/heads/master@{#534994} [modify] https://crrev.com/de5671d5ab239e09e1e4548a2d8e1a42e404478b/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [modify] https://crrev.com/de5671d5ab239e09e1e4548a2d8e1a42e404478b/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [modify] https://crrev.com/de5671d5ab239e09e1e4548a2d8e1a42e404478b/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/283f74916dee53ed07291c78a2735636d2541768 commit 283f74916dee53ed07291c78a2735636d2541768 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Feb 09 12:49:10 2018 [Picture-in-Picture] Add test for consuming user gesture. This merge all request Picture-in-Picture tests into one test file and adds one test to make sure user gesture is consumed by request Picture-in-Picture so that a site couldn't produce a popup and a video played in Picture-in-Picture on the same gesture. Bug: 806249 Change-Id: Id974342b5cb48c1b60a44074d41603e93d2192e7 Reviewed-on: https://chromium-review.googlesource.com/909148 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#535694} [delete] https://crrev.com/ca5066b992b8a05e6a3df042f2c0e1766e13a565/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/not-processing-user-gesture.html [modify] https://crrev.com/283f74916dee53ed07291c78a2735636d2541768/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/request-picture-in-picture.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2082cf8ad3a0704a162ed640945fdf643dee07ed commit 2082cf8ad3a0704a162ed640945fdf643dee07ed Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Feb 09 17:50:49 2018 [Picture-in-Picture] Add Shadow DOM support for pictureInPictureElement Until now, pictureInPictureElement was supported only in Document. This CL makes it compliant with the spec by adding Shadow DOM support to pictureInPictureElement. Note that I wish I could have used a partial interface DocumentOrShadowRoot but partial interface for mix-in IDL are not supported at that time ( crbug.com/656517 ). Bug: 806249 , 656517 Change-Id: I5f9666ea9c52ded9a6d07a238fc7756371b7550e Reviewed-on: https://chromium-review.googlesource.com/897513 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Reviewed-by: Hayato Ito <hayato@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Cr-Commit-Position: refs/heads/master@{#535747} [add] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/shadow-dom.html [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/core/core_idl_files.gni [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/modules_idl_files.gni [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/BUILD.gn [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.cpp [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.h [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.idl [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [modify] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h [add] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/ShadowRootPictureInPicture.cpp [add] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/ShadowRootPictureInPicture.h [add] https://crrev.com/2082cf8ad3a0704a162ed640945fdf643dee07ed/third_party/WebKit/Source/modules/picture_in_picture/ShadowRootPictureInPicture.idl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf commit 0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf Author: François Beaufort <beaufort.francois@gmail.com> Date: Tue Feb 13 22:36:23 2018 [Picture-in-Picture] Add PictureInPictureWindow width and height stubs This introduces PictureInPictureWindow interface with |width| and |height| attributes. |onresize| event will follow in an upcoming CL. |width| and |height| simply return fake values, respectively 500 and 300, for now as we don't have any resize events coming from the backend yet. They are reset to 0 though when PictureInPictureWindow state is closed. Bug: 806249 Change-Id: I5e0f0875a53b7f659bc3469e562d3db5e075f31d Reviewed-on: https://chromium-review.googlesource.com/899347 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Cr-Commit-Position: refs/heads/master@{#536520} [add] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/picture-in-picture-window.html [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/modules_idl_files.gni [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/BUILD.gn [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/DocumentPictureInPicture.cpp [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.cpp [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.idl [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [modify] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h [add] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureWindow.cpp [add] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureWindow.h [add] https://crrev.com/0ac4d309ef0e7b7d83b5b2930a56a767e0a096bf/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureWindow.idl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/95e3f81ec6a36365d683044d2bca4f0848ae54c0 commit 95e3f81ec6a36365d683044d2bca4f0848ae54c0 Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Feb 14 13:54:53 2018 [Picture-in-Picture] Add PictureInPictureWindow resize event stub This CL prepares the PictureInPictureWindow interface by adding the |resize| event handler to PictureInPictureWindow. We currently don't receive resize events from the backend. Triggering |resize| event will come in a future CL. Bug: 806249 Change-Id: Ib10eabc0e35af782dcdb36862535063d2dab0a2c Reviewed-on: https://chromium-review.googlesource.com/908562 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#536703} [modify] https://crrev.com/95e3f81ec6a36365d683044d2bca4f0848ae54c0/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/95e3f81ec6a36365d683044d2bca4f0848ae54c0/third_party/WebKit/Source/modules/event_target_modules_names.json5 [modify] https://crrev.com/95e3f81ec6a36365d683044d2bca4f0848ae54c0/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [modify] https://crrev.com/95e3f81ec6a36365d683044d2bca4f0848ae54c0/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureWindow.cpp [modify] https://crrev.com/95e3f81ec6a36365d683044d2bca4f0848ae54c0/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureWindow.h [modify] https://crrev.com/95e3f81ec6a36365d683044d2bca4f0848ae54c0/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureWindow.idl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/858d067e06e085b5f0a83942d187195da5e35e99 commit 858d067e06e085b5f0a83942d187195da5e35e99 Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Feb 21 17:32:21 2018 [Picture-in-Picture] Update feature policy default allowlist to *. This CL reflects updated spec which changes Picture-in-Picture feature to be allowed by default to documents in child frames. Bug: 806249 Change-Id: I7c7a3a073b30ad5118aa634b0c0b1f3ac60d2e7a Reviewed-on: https://chromium-review.googlesource.com/926104 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Ian Clelland <iclelland@chromium.org> Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#538145} [modify] https://crrev.com/858d067e06e085b5f0a83942d187195da5e35e99/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-default-feature-policy.https.sub.html [modify] https://crrev.com/858d067e06e085b5f0a83942d187195da5e35e99/third_party/WebKit/common/feature_policy/feature_policy.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc commit 0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc Author: Francois Beaufort <beaufort.francois@gmail.com> Date: Mon Feb 26 07:49:07 2018 [Picture-in-Picture] Detect if feature is enabled on Android. This CL exposes a new internal setting that determines whether Picture-in-Picture is enabled and if the user has disabled Picture-in-Picture for Chrome using the system's per-application settings. This setting is used in document.pictureInPictureEnabled and video.requestPictureInPicture(). Test page: https://beaufortfrancois.github.io/sandbox/media/picture-in-picture-enabled Screenshots: https://i.imgur.com/nLL3l0U.png Recording: https://drive.google.com/file/d/1DgIH8XPPGr7giPvaFQ8bvDd_WM-1lzSj/view Bug: 806249 Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs Change-Id: I6a4a8ca69c8b53a4bce3d8375c16725b3e545d52 Reviewed-on: https://chromium-review.googlesource.com/922081 Reviewed-by: Maria Khomenko <mariakhomenko@chromium.org> Reviewed-by: Mike West <mkwst@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#539085} [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java [add] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPicture.java [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/chrome/android/java_sources.gni [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/chrome/browser/android/tab_android.cc [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/chrome/browser/android/tab_android.h [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/content/public/common/common_param_traits_macros.h [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/content/public/common/web_preferences.h [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/content/renderer/render_view_impl.cc [add] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/LayoutTests/media/picture-in-picture-enabled.html [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/core/exported/WebSettingsImpl.cpp [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/core/exported/WebSettingsImpl.h [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/core/frame/Settings.json5 [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/modules/BUILD.gn [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/modules/picture_in_picture/DEPS [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/modules/picture_in_picture/HTMLVideoElementPictureInPicture.h [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.cpp [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureController.h [delete] https://crrev.com/e5ba4940ef99f142d9edba984b9e105b2920dd70/third_party/WebKit/Source/modules/picture_in_picture/PictureInPictureTest.cpp [modify] https://crrev.com/0acc4d7a6eaaa3dfb6a1233ba30940085d7391dc/third_party/WebKit/public/web/WebSettings.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ad6c523b9de20fbed7bbcf980736c212526a2ae0 commit ad6c523b9de20fbed7bbcf980736c212526a2ae0 Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon Feb 26 11:00:44 2018 Prevent auto-PiP if disablePictureInPicture video attribute is set. This CLs makes sure fullscreen videos don't enter automatically Picture-in-Picture if the disablePictureInPicture attribute is set on the video element. Test page: https://beaufortfrancois.github.io/sandbox/media/disable-pip.html Bug: 806249 Change-Id: I3621ef58c8f1778d54865eca6cc30a736994d493 Reviewed-on: https://chromium-review.googlesource.com/918421 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Cr-Commit-Position: refs/heads/master@{#539106} [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/chrome/android/java/src/org/chromium/chrome/browser/media/PictureInPictureController.java [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/browser/DEPS [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/browser/media/media_web_contents_observer.cc [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/browser/media/media_web_contents_observer.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/browser/web_contents/web_contents_android.cc [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/browser/web_contents/web_contents_android.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/browser/web_contents/web_contents_impl.cc [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/browser/web_contents/web_contents_impl.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/common/DEPS [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/common/media/media_player_delegate_messages.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockWebContents.java [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/renderer/media/renderer_webmediaplayer_delegate.cc [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/renderer/media/renderer_webmediaplayer_delegate.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/content/renderer/media/stream/webmediaplayer_ms_unittest.cc [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/media/blink/webmediaplayer_delegate.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/media/blink/webmediaplayer_impl.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/third_party/WebKit/Source/core/html/media/HTMLMediaElementEventListenersTest.cpp [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/third_party/WebKit/Source/core/html/media/MediaCustomControlsFullscreenDetector.cpp [add] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/third_party/WebKit/public/platform/WebFullscreenVideoStatus.h [modify] https://crrev.com/ad6c523b9de20fbed7bbcf980736c212526a2ae0/third_party/WebKit/public/platform/WebMediaPlayer.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a commit 8c08979fc5ad38bf141d7f5aa5c80ab867041b7a Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon Mar 05 13:06:31 2018 [Picture-in-Picture] Disable feature if requirements are not fulfilled. This CL makes sure document.pictureInPictureEnabled always returns false and video.requestPictureInPicture() rejects if PictureInPicture and UseSurfaceLayerForVideo features are not enabled. Bug: 806249 Change-Id: Icc91903aa0f44dde577ce479a8d5d453952e6575 Reviewed-on: https://chromium-review.googlesource.com/937301 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#540807} [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/content/browser/renderer_host/render_view_host_impl.cc [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/content/public/common/common_param_traits_macros.h [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/content/public/common/web_preferences.cc [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/content/public/common/web_preferences.h [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/content/renderer/render_view_impl.cc [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/third_party/WebKit/LayoutTests/VirtualTestSuites [delete] https://crrev.com/94f8117c386b375b74aa6da33846fb83ade00d0a/third_party/WebKit/LayoutTests/media/picture-in-picture-enabled.html [rename] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/third_party/WebKit/LayoutTests/media/picture-in-picture/controls/picture-in-picture-button.html [add] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/third_party/WebKit/LayoutTests/media/picture-in-picture/picture-in-picture-enabled.html [add] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/third_party/WebKit/LayoutTests/virtual/picture-in-picture/external/wpt/feature-policy/README.txt [add] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/third_party/WebKit/LayoutTests/virtual/picture-in-picture/external/wpt/picture-in-picture/README.txt [add] https://crrev.com/8c08979fc5ad38bf141d7f5aa5c80ab867041b7a/third_party/WebKit/LayoutTests/virtual/picture-in-picture/media/picture-in-picture/README.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/664c3ca7b7e7ca3bf634226663256a18df7552ec commit 664c3ca7b7e7ca3bf634226663256a18df7552ec Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Apr 13 07:24:51 2018 [Picture-in-Picture] Disable background video tracks optimization. This CL makes sure a video player in Picture-in-Picture doesn't get paused because of background video tracks optimization. Bug: 806249 , 663999 Change-Id: Ia3453000a9107d28974428c1ab004227370dc28f Reviewed-on: https://chromium-review.googlesource.com/1008082 Reviewed-by: apacible <apacible@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#550534} [modify] https://crrev.com/664c3ca7b7e7ca3bf634226663256a18df7552ec/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/664c3ca7b7e7ca3bf634226663256a18df7552ec/media/blink/webmediaplayer_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/377fc2f272f4670567be8dd7ba9ec6fd80926834 commit 377fc2f272f4670567be8dd7ba9ec6fd80926834 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Apr 13 10:09:56 2018 [Picture-in-Picture] Show/hide window. This CL makes sure that calling video.requestPictureInPicture() shows a Picture-in-Picture window and that setting disablePictureInPicture to true or calling document.exitPictureInPicture() hides the Picture-in-Picture window. Bug: 806249 Change-Id: Ifa9e6df55c913d6eb68fd0fbb59450d3d516ee1c Reviewed-on: https://chromium-review.googlesource.com/1006956 Reviewed-by: apacible <apacible@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#550572} [modify] https://crrev.com/377fc2f272f4670567be8dd7ba9ec6fd80926834/third_party/blink/renderer/core/html/media/html_media_element.cc [modify] https://crrev.com/377fc2f272f4670567be8dd7ba9ec6fd80926834/third_party/blink/renderer/core/html/media/html_media_element.h [modify] https://crrev.com/377fc2f272f4670567be8dd7ba9ec6fd80926834/third_party/blink/renderer/modules/picture_in_picture/document_picture_in_picture.cc [modify] https://crrev.com/377fc2f272f4670567be8dd7ba9ec6fd80926834/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ce37baf13c4d4b4b186aab3a9353c24482ece351 commit ce37baf13c4d4b4b186aab3a9353c24482ece351 Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon Apr 23 07:18:24 2018 [Picture-in-Picture] Mark API as experimental. This makes it easier for web developers to experiment with the Picture-in-Picture Web API by simply enabling the "Experimental Web Platform features" flag in about:flags. Bug: 806249 Change-Id: I29a0113bdfd1da1f1455de5c47225c18d4b7b200 Reviewed-on: https://chromium-review.googlesource.com/1013928 Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#552649} [modify] https://crrev.com/ce37baf13c4d4b4b186aab3a9353c24482ece351/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e189916274cf571d7fa27d7a00dcb93da4f6568e commit e189916274cf571d7fa27d7a00dcb93da4f6568e Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon May 07 14:54:00 2018 [Picture-in-Picture] Disable if no GPU compositing. This is a temporary fix that sets document.pictureInPictureEnabled to false in the case of disabling the GPU. Bug: 806249 , 807840 Change-Id: I84445a0231b46cfbd0bb2f25eaca53f96604ce55 Reviewed-on: https://chromium-review.googlesource.com/1042290 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#556438} [modify] https://crrev.com/e189916274cf571d7fa27d7a00dcb93da4f6568e/content/renderer/render_view_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9290aab7c649832deb53cfce0d2a5e45438cc789 commit 9290aab7c649832deb53cfce0d2a5e45438cc789 Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon May 07 21:18:47 2018 [Picture-in-Picture] Resolve promises when window is created and closed. This makes the promise returned by enterPictureInPicture() resolved only when window is created. Picture-in-Picture window size is still hard-coded though and will be fixed in a future CL. This also makes the promise returned by exitPictureInPicture() resolved only when window is closed. Bug: 806249 Change-Id: I8232a42a50b808527560eb0e6a69d8fb98da63e4 Reviewed-on: https://chromium-review.googlesource.com/1025832 Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#556567} [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/content/renderer/media/stream/webmediaplayer_ms.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/content/renderer/media/stream/webmediaplayer_ms.h [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/media/blink/webmediaplayer_impl.h [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/feature-policy/resources/picture-in-picture.js [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/disable-picture-in-picture.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/enter-picture-in-picture.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/exit-picture-in-picture.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/leave-picture-in-picture.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/picture-in-picture-element.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/picture-in-picture-window.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/request-picture-in-picture.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/resources/picture-in-picture-helpers.js [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/shadow-dom.html [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/public/platform/web_media_player.h [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/core/frame/picture_in_picture_controller.h [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/core/html/media/html_media_element.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/core/html/media/html_media_element.h [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/core/html/media/html_video_element.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/core/page/context_menu_controller_test.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/media_controls/media_controls_impl_test.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/picture_in_picture/document_picture_in_picture.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.h [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.cc [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h [modify] https://crrev.com/9290aab7c649832deb53cfce0d2a5e45438cc789/third_party/blink/renderer/platform/testing/empty_web_media_player.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/43b2d26790d0f56c17f02d630ceda0d6225eb3a2 commit 43b2d26790d0f56c17f02d630ceda0d6225eb3a2 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri May 11 19:32:36 2018 [Picture-in-Picture] Fire enter/leave events for native video controls. This makes sure enterpictureinpicture and leavepictureinpicture events are fired when user enters and leaves Picture-in-Picture from native video controls. Bug: 806249 Change-Id: I8d8717ce6fa97c3882913e73d8599cede6ec92dc Reviewed-on: https://chromium-review.googlesource.com/1029951 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#557978} [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/WebKit/LayoutTests/media/picture-in-picture/controls/picture-in-picture-button.html [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/WebKit/LayoutTests/media/picture-in-picture/controls/picture-in-picture-video-with-audio-only-button.html [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/WebKit/LayoutTests/media/picture-in-picture/picture-in-picture-interstitial.html [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/WebKit/LayoutTests/media/picture-in-picture/utils.js [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/blink/renderer/core/frame/picture_in_picture_controller.h [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/blink/renderer/core/html/media/html_video_element.cc [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/blink/renderer/modules/media_controls/DEPS [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc [modify] https://crrev.com/43b2d26790d0f56c17f02d630ceda0d6225eb3a2/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc commit 3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri May 11 19:53:58 2018 [Picture-in-Picture] Add Desktop-only Origin Trial Intent to Experiment: https://groups.google.com/a/chromium.org/d/msg/blink-dev/xQiDYZEnwaA/MNGbYJnaBwAJ Bug: 806249 Change-Id: I0828e52221100f6b6ae576304650466bfdd79188 Reviewed-on: https://chromium-review.googlesource.com/1047671 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Ian Clelland <iclelland@chromium.org> Cr-Commit-Position: refs/heads/master@{#557986} [modify] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/WebKit/LayoutTests/TestExpectations [add] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/picture-in-picture-api-origin-trial-interfaces.html [modify] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/blink/renderer/modules/picture_in_picture/document_picture_in_picture.idl [modify] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.idl [modify] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.idl [modify] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/blink/renderer/modules/picture_in_picture/shadow_root_picture_in_picture.idl [modify] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/blink/renderer/platform/feature_policy/feature_policy.cc [modify] https://crrev.com/3ef23fc28ff49424aa2893f80fcc66e6f7af1bcc/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd commit 07d2279218ceeb9fe1b0ae44b9e393c474ad20fd Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon May 14 15:50:45 2018 [Picture-in-Picture] Add UseCounter. As part of the origin trial, we should record usage with UseCounter, as that can be automatically monitored by the origin trials infrastructure. Bug: 806249 Change-Id: I7978d33f57c9d31ecc2b18a410c66475f3971ddb Reviewed-on: https://chromium-review.googlesource.com/1055396 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#558324} [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/public/platform/web_feature.mojom [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/core/html/media/html_video_element.cc [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/core/html/media/html_video_element.h [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/modules/picture_in_picture/document_picture_in_picture.idl [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.idl [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.cc [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.idl [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/third_party/blink/renderer/modules/picture_in_picture/shadow_root_picture_in_picture.idl [modify] https://crrev.com/07d2279218ceeb9fe1b0ae44b9e393c474ad20fd/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4 commit 6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Wed May 16 20:01:30 2018 Picture-in-Picture: resolve exitPictureInPicture() promise when closing window. Previously, the promise was resolved before hitting the IPC to the browser process. This adds an ACK IPC that notifies that the operation is done. Technically, this isn't checking that the window is really closed but instead the ACK is sent after `Close()` is called. Bug: 806249 Change-Id: Ibcae8789275f743a827340d0f22485484cbac5b1 Reviewed-on: https://chromium-review.googlesource.com/1042572 Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Reviewed-by: François Beaufort <beaufort.francois@gmail.com> Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#559247} [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/browser/frame_host/render_frame_host_delegate.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/browser/media/media_web_contents_observer.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/browser/media/media_web_contents_observer.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/browser/web_contents/web_contents_impl.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/browser/web_contents/web_contents_impl.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/common/frame.mojom [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/common/media/media_player_delegate_messages.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/renderer/media/media_factory.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/renderer/media/renderer_webmediaplayer_delegate.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/renderer/media/renderer_webmediaplayer_delegate.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/renderer/media/stream/webmediaplayer_ms_unittest.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/renderer/render_frame_impl.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/renderer/render_frame_impl.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/content/test/test_render_frame.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/media/blink/webmediaplayer_delegate.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/media/blink/webmediaplayer_impl.h [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/media/blink/webmediaplayer_params.cc [modify] https://crrev.com/6d759e1d32ad341cd8e0d5e8666dae470b7c4aa4/media/blink/webmediaplayer_params.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f4a5eacc8259fa41850582fc2374e4d88c7dc407 commit f4a5eacc8259fa41850582fc2374e4d88c7dc407 Author: François Beaufort <beaufort.francois@gmail.com> Date: Thu May 17 09:31:36 2018 [Picture-in-Picture] Enable if no GPU compositing. This reverts https://chromium-review.googlesource.com/1042290 since cc::Surfaces for video are now allowed to work with software compositing. Bug: 806249 , 807840 Change-Id: Ie02c69d527b8e13235d744d3c2e98ea5b073f61d Reviewed-on: https://chromium-review.googlesource.com/1062745 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#559470} [modify] https://crrev.com/f4a5eacc8259fa41850582fc2374e4d88c7dc407/content/renderer/render_view_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/11e9ef43b00faa76e2e87c2abde123861ce9a4c4 commit 11e9ef43b00faa76e2e87c2abde123861ce9a4c4 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Tue May 22 03:10:16 2018 Picture-in-Picture: resolve requestPictureInPicture with window size. Resolves the Web API promise with the actual size of the window after it was created. As a side effect, the promise is now resolved when the window is actually created instead of slightly after the call. Bug: 806249 Change-Id: Iab88e31ba2c1b6efcc5691dca43b02eee1e79412 Reviewed-on: https://chromium-review.googlesource.com/1060533 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Peter Kasting <pkasting@chromium.org> Reviewed-by: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#560470} [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/chrome/browser/ui/browser.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/chrome/browser/ui/browser.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/browser/media/media_web_contents_observer.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/browser/media/media_web_contents_observer.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/browser/web_contents/web_contents_impl.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/browser/web_contents/web_contents_impl.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/browser/web_contents/web_contents_impl_unittest.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/common/media/media_player_delegate_messages.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/public/browser/picture_in_picture_window_controller.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/public/browser/web_contents_delegate.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/public/browser/web_contents_delegate.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/renderer/media/renderer_webmediaplayer_delegate.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/renderer/media/renderer_webmediaplayer_delegate.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/renderer/media/stream/webmediaplayer_ms_unittest.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/shell/browser/shell.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/content/shell/browser/shell.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/media/blink/webmediaplayer_delegate.h [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/11e9ef43b00faa76e2e87c2abde123861ce9a4c4/third_party/WebKit/LayoutTests/media/picture-in-picture/controls/picture-in-picture-button.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c8987e412cdd048af2ad43709c0f16333fe88871 commit c8987e412cdd048af2ad43709c0f16333fe88871 Author: François Beaufort <beaufort.francois@gmail.com> Date: Tue May 22 15:38:17 2018 [Picture-in-Picture] Add a layout test for detached frame. This CL adds a test to make sure requesting Picture-in-Picture rejects when frame is detached. Bug: 806249 Change-Id: I2f9a029cc03fa8977400f908c87f80ed69674e93 Reviewed-on: https://chromium-review.googlesource.com/1065732 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#560605} [modify] https://crrev.com/c8987e412cdd048af2ad43709c0f16333fe88871/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/resources/picture-in-picture-helpers.js [modify] https://crrev.com/c8987e412cdd048af2ad43709c0f16333fe88871/third_party/WebKit/LayoutTests/media/picture-in-picture/picture-in-picture-enabled.html [add] https://crrev.com/c8987e412cdd048af2ad43709c0f16333fe88871/third_party/WebKit/LayoutTests/media/picture-in-picture/request-picture-in-picture.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d074d7f77da131de4e87bc96a8dd2fd40ccd7720 commit d074d7f77da131de4e87bc96a8dd2fd40ccd7720 Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed May 23 14:18:03 2018 [Picture-in-Picture] Do not require feature flag for Web API. This CL makes sure Picture-in-Picture Web API does not require kPictureInPicture feature flag for Origin Trial. Bug: 806249 Change-Id: I502e2337e9e9c1bc519aef61755a475f66d0f8cc Reviewed-on: https://chromium-review.googlesource.com/1069009 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#561067} [modify] https://crrev.com/d074d7f77da131de4e87bc96a8dd2fd40ccd7720/chrome/browser/chrome_content_browser_client.cc [modify] https://crrev.com/d074d7f77da131de4e87bc96a8dd2fd40ccd7720/content/browser/renderer_host/render_view_host_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5beaf36d601f522648d71e984bc4c8f653c6123b commit 5beaf36d601f522648d71e984bc4c8f653c6123b Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed May 23 17:24:10 2018 [Picture-in-Picture] Reject temporarily if video src is a MediaStream. This CL makses sure requestPictureInPicture promise rejects whem video src is a MediaStream as backend is not implemented yet. This will remove confusion during upcoming Origin Trial. Bug: 806249 Change-Id: I65506111f256b9b0684bdd7d179d01d81e0974a0 Reviewed-on: https://chromium-review.googlesource.com/1070368 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#561139} [modify] https://crrev.com/5beaf36d601f522648d71e984bc4c8f653c6123b/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/31e4cd02ef4797bae865b2e75cd591be718aff2b commit 31e4cd02ef4797bae865b2e75cd591be718aff2b Author: François Beaufort <beaufort.francois@gmail.com> Date: Thu May 24 14:35:17 2018 [Picture-in-Picture] Do not require feature flag in tests. This CL makes sure Picture-in-Picture Web API tests don't require kPictureInPicture feature flag. Bug: 806249 Change-Id: Ic2a95b6ded01813f97373f91f13bdad01ccc419a Reviewed-on: https://chromium-review.googlesource.com/1071569 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#561498} [modify] https://crrev.com/31e4cd02ef4797bae865b2e75cd591be718aff2b/third_party/WebKit/LayoutTests/VirtualTestSuites
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/917143afc6ce9391a44199452e282a4649df4f04 commit 917143afc6ce9391a44199452e282a4649df4f04 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Thu May 24 21:19:57 2018 Picture-in-Picture: send window size updates. Implements a callback mechanism to notify the blink PictureInPictureWindow when the //content/browser window's size has changed. Bug: 806249 Change-Id: I5a110e64ab2762f28d963a15790d842b9f6e126c Reviewed-on: https://chromium-review.googlesource.com/1068066 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Cr-Commit-Position: refs/heads/master@{#561633} [add] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/chrome/browser/picture_in_picture/DEPS [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc [add] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/chrome/test/data/media/picture-in-picture/window-size.html [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/browser/media/media_web_contents_observer.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/browser/media/media_web_contents_observer.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/common/media/media_player_delegate_messages.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/renderer/media/renderer_webmediaplayer_delegate.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/renderer/media/renderer_webmediaplayer_delegate.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/renderer/media/stream/webmediaplayer_ms.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/renderer/media/stream/webmediaplayer_ms.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/renderer/media/stream/webmediaplayer_ms_unittest.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/media/blink/webmediaplayer_delegate.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/media/blink/webmediaplayer_impl.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/media/blink/webmediaplayer_impl.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/media/blink/webmediaplayer_impl_unittest.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/public/platform/web_media_player.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/renderer/core/html/media/html_media_element.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/renderer/core/html/media/html_media_element.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.cc [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.idl [modify] https://crrev.com/917143afc6ce9391a44199452e282a4649df4f04/third_party/blink/renderer/platform/testing/empty_web_media_player.h
François, I believe this is implementing v1 of the API. Should we close this bug?
I'd like to keep this opened until Origin Trial ends so that we can address issues found by developers in this bug. WDYT?
sgtm
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8923cf38bc92231b37f61642934009f681311b38 commit 8923cf38bc92231b37f61642934009f681311b38 Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon Jun 04 20:39:09 2018 [Picture-in-Picture] Add tests if video src is a MediaStream. Following previous CL, this makes sure we have tests when requestPictureInPicture promise rejects if video src is a MediaStream as backend is not implemented yet. Bug: 806249 Change-Id: I8c32f7de8ef9f5455a1909d83810edce76d35e2f Reviewed-on: https://chromium-review.googlesource.com/1085062 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#564219} [modify] https://crrev.com/8923cf38bc92231b37f61642934009f681311b38/third_party/WebKit/LayoutTests/media/picture-in-picture/request-picture-in-picture.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/04ccc79bb799504a1976d1f9fe5209bdd2aa2d2b commit 04ccc79bb799504a1976d1f9fe5209bdd2aa2d2b Author: François Beaufort <beaufort.francois@gmail.com> Date: Tue Jun 05 07:03:54 2018 [Picture-in-Picture] Use DCHECK in IsPictureInPictureElement. Since element passed to IsPictureInPictureElement shouldn't be null, we can use a DCHECK instead of a simple "if" condition. Bug: 806249 Change-Id: I0babdc26569a37ebaae2bbc6f39e4cd00da0beb3 Reviewed-on: https://chromium-review.googlesource.com/1086787 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#564383} [modify] https://crrev.com/04ccc79bb799504a1976d1f9fe5209bdd2aa2d2b/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f68821d3be6513022c5b2c205bd122958321c546 commit f68821d3be6513022c5b2c205bd122958321c546 Author: François Beaufort <beaufort.francois@gmail.com> Date: Tue Jun 05 14:57:08 2018 [Picture-in-Picture] Do not pause playback when exiting from API. This CL makes sure that PiP video is paused only when user interacts with the PiP window. If it comes from the API, video should NOT pause. Bug: 848270 , 806249 Change-Id: Id09dffce15ff4b99c24dd53696f5715d76937f9e Reviewed-on: https://chromium-review.googlesource.com/1082274 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#564496} [modify] https://crrev.com/f68821d3be6513022c5b2c205bd122958321c546/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc [modify] https://crrev.com/f68821d3be6513022c5b2c205bd122958321c546/chrome/browser/ui/browser.cc [modify] https://crrev.com/f68821d3be6513022c5b2c205bd122958321c546/chrome/browser/ui/views/overlay/overlay_window_views.cc [modify] https://crrev.com/f68821d3be6513022c5b2c205bd122958321c546/chrome/test/data/media/picture-in-picture/window-size.html [modify] https://crrev.com/f68821d3be6513022c5b2c205bd122958321c546/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc [modify] https://crrev.com/f68821d3be6513022c5b2c205bd122958321c546/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.h [modify] https://crrev.com/f68821d3be6513022c5b2c205bd122958321c546/content/public/browser/picture_in_picture_window_controller.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f832578e38ffcb735cb1a414ac580ea781b809b9 commit f832578e38ffcb735cb1a414ac580ea781b809b9 Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Jun 06 06:49:43 2018 [Media Controls] Add Exit Picture-in-Picture button. This makes sure clicking the native Picture-in-Picture button (after entering Picture-in-Picture) exits Picture-in-Picture and that video controls are reflected when entering and exiting Picture-in-Picture. Screenshot: https://i.imgur.com/081Xbmb.png Bug: 840516 , 806249 Change-Id: I410a4a06cc4eea62dae8e1d368e4d05394f13c86 Reviewed-on: https://chromium-review.googlesource.com/1084833 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: apacible <apacible@chromium.org> Cr-Commit-Position: refs/heads/master@{#564807} [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/content/app/strings/content_strings.grd [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/content/child/blink_platform_impl.cc [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/WebKit/LayoutTests/media/picture-in-picture/controls/picture-in-picture-button.html [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/WebKit/LayoutTests/media/picture-in-picture/picture-in-picture-interstitial.html [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/public/platform/web_localized_string.h [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/core/frame/picture_in_picture_controller.h [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/accessibility/ax_media_controls.cc [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/elements/media_control_element_type.h [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/media_controls_impl.h [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/media_controls_media_event_listener.cc [add] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/resources/ic_picture_in_picture_exit.svg [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/media_controls/resources/modernMediaControls.css [modify] https://crrev.com/f832578e38ffcb735cb1a414ac580ea781b809b9/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b458e9585aa974007a55312c542563542a958562 commit b458e9585aa974007a55312c542563542a958562 Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Jun 06 09:08:09 2018 [Picture-in-Picture] Remove Origin Trial. Picture-in-Picture Origin Trial has been cancelled due to multiple risk factors incl. surface layer memory regressions which require investigating, as well as PiP related issues (crashes, resizing, etc.). Bug: 806249 Change-Id: I35d06042e949b6e931e16799ca7abb6f0ff36bfa Reviewed-on: https://chromium-review.googlesource.com/1084451 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#564832} [modify] https://crrev.com/b458e9585aa974007a55312c542563542a958562/third_party/WebKit/LayoutTests/TestExpectations [delete] https://crrev.com/b15094a674a95da8308f9516d5e35fea26f55169/third_party/WebKit/LayoutTests/http/tests/origin_trials/webexposed/picture-in-picture-api-origin-trial-interfaces.html [modify] https://crrev.com/b458e9585aa974007a55312c542563542a958562/third_party/blink/renderer/modules/picture_in_picture/document_picture_in_picture.idl [modify] https://crrev.com/b458e9585aa974007a55312c542563542a958562/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.idl [modify] https://crrev.com/b458e9585aa974007a55312c542563542a958562/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.idl [modify] https://crrev.com/b458e9585aa974007a55312c542563542a958562/third_party/blink/renderer/modules/picture_in_picture/shadow_root_picture_in_picture.idl [modify] https://crrev.com/b458e9585aa974007a55312c542563542a958562/third_party/blink/renderer/platform/feature_policy/feature_policy.cc [modify] https://crrev.com/b458e9585aa974007a55312c542563542a958562/third_party/blink/renderer/platform/runtime_enabled_features.json5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4596eea736d27ba33efa2d8d81f806807c4d8228 commit 4596eea736d27ba33efa2d8d81f806807c4d8228 Author: Tommy Steimel <steimel@chromium.org> Date: Wed Jun 06 18:20:12 2018 Revert "[Media Controls] Add Exit Picture-in-Picture button." This reverts commit f832578e38ffcb735cb1a414ac580ea781b809b9. Reason for revert: GetOverflowStringName is firing a DCHECK on audio elements. Note that audio elements have the picture-in-picture button (it's just hidden), so the code will need to handle that case Original change's description: > [Media Controls] Add Exit Picture-in-Picture button. > > This makes sure clicking the native Picture-in-Picture button (after > entering Picture-in-Picture) exits Picture-in-Picture and that video > controls are reflected when entering and exiting Picture-in-Picture. > > Screenshot: https://i.imgur.com/081Xbmb.png > > Bug: 840516 , 806249 > Change-Id: I410a4a06cc4eea62dae8e1d368e4d05394f13c86 > Reviewed-on: https://chromium-review.googlesource.com/1084833 > Commit-Queue: François Beaufort <beaufort.francois@gmail.com> > Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> > Reviewed-by: Jochen Eisinger <jochen@chromium.org> > Reviewed-by: apacible <apacible@chromium.org> > Cr-Commit-Position: refs/heads/master@{#564807} TBR=beaufort.francois@gmail.com,mlamouri@chromium.org,apacible@chromium.org,jochen@chromium.org Change-Id: Ie6373e9c2e77bb41ac6a5e9a32f59a2b6ce3bf03 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 840516 , 806249 Reviewed-on: https://chromium-review.googlesource.com/1089209 Reviewed-by: Tommy Steimel <steimel@chromium.org> Commit-Queue: Tommy Steimel <steimel@chromium.org> Cr-Commit-Position: refs/heads/master@{#564971} [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/content/app/strings/content_strings.grd [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/content/child/blink_platform_impl.cc [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/WebKit/LayoutTests/media/picture-in-picture/controls/picture-in-picture-button.html [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/WebKit/LayoutTests/media/picture-in-picture/picture-in-picture-interstitial.html [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/public/platform/web_localized_string.h [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/core/frame/picture_in_picture_controller.h [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/accessibility/ax_media_controls.cc [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/media_controls/elements/media_control_element_type.h [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/media_controls/media_controls_impl.h [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/media_controls/media_controls_media_event_listener.cc [delete] https://crrev.com/558635267b37db79b830022c78e209ab31a68c6c/third_party/blink/renderer/modules/media_controls/resources/ic_picture_in_picture_exit.svg [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/media_controls/resources/modernMediaControls.css [modify] https://crrev.com/4596eea736d27ba33efa2d8d81f806807c4d8228/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6ea68f4f226d09ca70efdfd4d63a9d98906c2326 commit 6ea68f4f226d09ca70efdfd4d63a9d98906c2326 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Jun 08 22:40:10 2018 [Picture-in-Picture] Update virtual tests READMEs. This removes PictureInPicture feature in README as it is not needed for these virtual tests. Bug: 806249 Change-Id: Ie78767cc7261f7b2538f9849e3a2073261e091b6 Reviewed-on: https://chromium-review.googlesource.com/1092533 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: apacible <apacible@chromium.org> Cr-Commit-Position: refs/heads/master@{#565762} [modify] https://crrev.com/6ea68f4f226d09ca70efdfd4d63a9d98906c2326/third_party/WebKit/LayoutTests/virtual/picture-in-picture/external/wpt/feature-policy/README.txt [modify] https://crrev.com/6ea68f4f226d09ca70efdfd4d63a9d98906c2326/third_party/WebKit/LayoutTests/virtual/picture-in-picture/external/wpt/picture-in-picture/README.txt
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a194a803417b76b20e8ab599895293843d74d373 commit a194a803417b76b20e8ab599895293843d74d373 Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Jun 08 23:44:33 2018 [Picture-in-Picture] Add DCHECK before exiting Picture-in-Picture. This adds a DCHECK to make sure the Picture-in-Picture element is a video element before exiting Picture-in-Picture. Bug: 806249 Change-Id: I86abdd37ce0375fc37eba0252a5235dc9899c1d0 Reviewed-on: https://chromium-review.googlesource.com/1092351 Reviewed-by: apacible <apacible@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#565779} [modify] https://crrev.com/a194a803417b76b20e8ab599895293843d74d373/third_party/blink/renderer/modules/picture_in_picture/document_picture_in_picture.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e41b7c535994de0d415b4a2a13d4de93674f1c4e commit e41b7c535994de0d415b4a2a13d4de93674f1c4e Author: François Beaufort <beaufort.francois@gmail.com> Date: Fri Jun 08 23:53:27 2018 [Picture-in-Picture] Add browser test for disablePictureInPicture. This adds a browser test to check that setting disablePictureInPicture on video just after requesting Picture-in-Picture doesn't result in a window opened. Bug: 806249 Change-Id: Idcc8c116f206a19ce3974c50ddff37b7bf2e8a50 Reviewed-on: https://chromium-review.googlesource.com/1092350 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: apacible <apacible@chromium.org> Cr-Commit-Position: refs/heads/master@{#565781} [modify] https://crrev.com/e41b7c535994de0d415b4a2a13d4de93674f1c4e/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc [modify] https://crrev.com/e41b7c535994de0d415b4a2a13d4de93674f1c4e/chrome/test/data/media/picture-in-picture/window-size.html [modify] https://crrev.com/e41b7c535994de0d415b4a2a13d4de93674f1c4e/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9cf2378b995e368366a1fc64df25e95f82cd54c9 commit 9cf2378b995e368366a1fc64df25e95f82cd54c9 Author: François Beaufort <beaufort.francois@gmail.com> Date: Tue Jun 12 01:43:25 2018 [Media Controls] Add Exit Picture-in-Picture button. This makes sure clicking the native Picture-in-Picture button (after entering Picture-in-Picture) exits Picture-in-Picture and that video controls are reflected when entering and exiting Picture-in-Picture. Screenshot: https://i.imgur.com/081Xbmb.png Bug: 840516 , 806249 Change-Id: I9b07630c90323454a774ee147b67b5bb98ed7094 Reviewed-on: https://chromium-review.googlesource.com/1089332 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#566238} [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/content/app/strings/content_strings.grd [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/content/child/blink_platform_impl.cc [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/WebKit/LayoutTests/media/picture-in-picture/controls/picture-in-picture-button.html [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/WebKit/LayoutTests/media/picture-in-picture/picture-in-picture-interstitial.html [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/public/platform/web_localized_string.h [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/core/frame/picture_in_picture_controller.h [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/accessibility/ax_media_controls.cc [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/elements/media_control_element_type.h [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/media_controls_impl.cc [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/media_controls_impl.h [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/media_controls_media_event_listener.cc [add] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/resources/ic_picture_in_picture_exit.svg [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/media_controls/resources/modernMediaControls.css [modify] https://crrev.com/9cf2378b995e368366a1fc64df25e95f82cd54c9/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/26a709f833ae93273514a2057cb22423480bf25a commit 26a709f833ae93273514a2057cb22423480bf25a Author: François Beaufort <beaufort.francois@gmail.com> Date: Wed Jun 13 18:52:17 2018 Add exit Picture-in-Picture browser context menu. This makes sure clicking the checked Picture-in-Picture browser context menu (after entering Picture-in-Picture) exits Picture-in-Picture. Screenshot: https://i.imgur.com/asJ1qgT.png Bug: 840516 , 806249 Change-Id: Ic283ca8cb431bfcb56613067e0fec43db2bbf53b Reviewed-on: https://chromium-review.googlesource.com/1086796 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: apacible <apacible@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Brian White <bcwhite@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#566935} [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/chrome/app/chrome_command_ids.h [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/chrome/app/generated_resources.grd [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/chrome/browser/renderer_context_menu/render_view_context_menu.cc [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/chrome/browser/renderer_context_menu/render_view_context_menu_test_util.cc [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/third_party/blink/public/web/web_context_menu_data.h [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/third_party/blink/renderer/core/exported/web_view_impl.cc [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/third_party/blink/renderer/core/page/context_menu_controller.cc [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/third_party/blink/renderer/core/page/context_menu_controller_test.cc [modify] https://crrev.com/26a709f833ae93273514a2057cb22423480bf25a/tools/metrics/actions/actions.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c14930db100f9db64f4c36305717c373099d0c6c commit c14930db100f9db64f4c36305717c373099d0c6c Author: François Beaufort <beaufort.francois@gmail.com> Date: Thu Jun 14 06:58:38 2018 Context menu shows audio if video has no video track but an audio track. This makes sure Picture-in-Picture context menu does not show at all (instead of disabled) for video elements with audio track only (e.g. MediaDocument). It also shows audio related items such as "Open audio in new tab" insteaad of "Open video in new tab" for these cases. Screenshots: https://imgur.com/a/1d1UNrg Bug: 806249 Change-Id: I6341f476557389521ab2b6f21e53c2bd6a5df34d Reviewed-on: https://chromium-review.googlesource.com/1096759 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#567177} [modify] https://crrev.com/c14930db100f9db64f4c36305717c373099d0c6c/third_party/blink/renderer/core/page/context_menu_controller.cc [modify] https://crrev.com/c14930db100f9db64f4c36305717c373099d0c6c/third_party/blink/renderer/core/page/context_menu_controller_test.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/da3a9ac20c917bd01cb91d44ad847e072287e4ef commit da3a9ac20c917bd01cb91d44ad847e072287e4ef Author: François Beaufort <beaufort.francois@gmail.com> Date: Mon Jun 18 05:35:45 2018 [Picture-in-Picture] Resolve with current window if video is pipElement. This make sures requestPictureInPicture is resolved with existing Picture-in-Picture window when video is already pictureInPictureElement. Bug: 806249 Change-Id: I16e3fc2e8e19c2b623e8d2518fe4672a2a16b756 Reviewed-on: https://chromium-review.googlesource.com/1101686 Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Cr-Commit-Position: refs/heads/master@{#567934} [modify] https://crrev.com/da3a9ac20c917bd01cb91d44ad847e072287e4ef/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/picture-in-picture-window.html [modify] https://crrev.com/da3a9ac20c917bd01cb91d44ad847e072287e4ef/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4b9611c3c144ba9ca845c865496291873385c56f commit 4b9611c3c144ba9ca845c865496291873385c56f Author: François Beaufort <beaufort.francois@gmail.com> Date: Thu Jun 21 08:02:33 2018 Enable PictureInPictureAPI feature on Desktop. Picture-in-Picture API is now enabled by default on Chrome OS, Linux, Mac, and Windows. Android will come later. Intent to ship: https://groups.google.com/a/chromium.org/d/msg/blink-dev/ibVPbqBQapU/rUZIrPPLAQAJ Bug: 806249 Change-Id: I32fb2b491406e5592e57f64a5483bebf887ebdc0 Reviewed-on: https://chromium-review.googlesource.com/1090728 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#569186} [modify] https://crrev.com/4b9611c3c144ba9ca845c865496291873385c56f/content/child/runtime_features.cc [modify] https://crrev.com/4b9611c3c144ba9ca845c865496291873385c56f/third_party/WebKit/LayoutTests/virtual/stable/webexposed/element-instance-property-listing-expected.txt [modify] https://crrev.com/4b9611c3c144ba9ca845c865496291873385c56f/third_party/WebKit/LayoutTests/virtual/stable/webexposed/global-interface-listing-expected.txt [modify] https://crrev.com/4b9611c3c144ba9ca845c865496291873385c56f/third_party/blink/public/platform/web_runtime_features.h [modify] https://crrev.com/4b9611c3c144ba9ca845c865496291873385c56f/third_party/blink/renderer/platform/exported/web_runtime_features.cc [modify] https://crrev.com/4b9611c3c144ba9ca845c865496291873385c56f/third_party/blink/renderer/platform/runtime_enabled_features.json5
Should this be closed given that we have a different bug for the Android follow-up?
Can we wait a week or so once PictureInPicture and SurfaceLayerForVideo are enabled by default as well in case we need to rollback?
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f7ee3ca8fc80a633dfdaad534afb1205b8c572ee commit f7ee3ca8fc80a633dfdaad534afb1205b8c572ee Author: François Beaufort <beaufort.francois@gmail.com> Date: Tue Jul 03 16:55:43 2018 [Picture-in-Picture] Add missing [NewObject] to methods in IDL. Updated spec says IDL for requestPictureInPicture and exitPictureInPicture should specify that a new object is returned. https://github.com/WICG/picture-in-picture/pull/76 Bug: 806249 Change-Id: Iba50455ef30c97d87c3e22b9ac95bc4bc41d546d Reviewed-on: https://chromium-review.googlesource.com/1122226 Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#572257} [modify] https://crrev.com/f7ee3ca8fc80a633dfdaad534afb1205b8c572ee/third_party/blink/renderer/modules/picture_in_picture/document_picture_in_picture.idl [modify] https://crrev.com/f7ee3ca8fc80a633dfdaad534afb1205b8c572ee/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.idl
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0515919c14fb875025f1327828a63a78c79ed520 commit 0515919c14fb875025f1327828a63a78c79ed520 Author: Robert Ma <robertma@chromium.org> Date: Fri Jul 20 07:30:54 2018 [Picture-in-Picture] Fix web platform tests that time out. This makes sure web platform tests for Picture-in-Picture do not time out when Picture-in-Picture API is not available. Besides, wpt/picture-in-picture/request-picture-in-picture is split to work around a flaky timeout in WPT upstream that's related to https://github.com/web-platform-tests/wpt/issues/10398 Note: based on https://github.com/web-platform-tests/wpt/pull/11329 Bug: 806249 Change-Id: I6185253dfa4aae5111e87553581b8464032558d1 Reviewed-on: https://chromium-review.googlesource.com/1107626 Reviewed-by: Robert Ma <robertma@chromium.org> Reviewed-by: Mounir Lamouri <mlamouri@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#576804} [modify] https://crrev.com/0515919c14fb875025f1327828a63a78c79ed520/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/0515919c14fb875025f1327828a63a78c79ed520/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-default-feature-policy.https.sub.html [modify] https://crrev.com/0515919c14fb875025f1327828a63a78c79ed520/third_party/WebKit/LayoutTests/external/wpt/feature-policy/picture-in-picture-disabled-by-feature-policy.https.sub.html [modify] https://crrev.com/0515919c14fb875025f1327828a63a78c79ed520/third_party/WebKit/LayoutTests/external/wpt/feature-policy/resources/picture-in-picture.js [add] https://crrev.com/0515919c14fb875025f1327828a63a78c79ed520/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/request-picture-in-picture-twice.html [modify] https://crrev.com/0515919c14fb875025f1327828a63a78c79ed520/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/request-picture-in-picture.html [modify] https://crrev.com/0515919c14fb875025f1327828a63a78c79ed520/third_party/WebKit/LayoutTests/external/wpt/picture-in-picture/resources/picture-in-picture-helpers.js
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d4857e9b34b6bcb510d5601314aa08f07705dc5e commit d4857e9b34b6bcb510d5601314aa08f07705dc5e Author: François Beaufort <beaufort.francois@gmail.com> Date: Sat Jul 21 19:51:09 2018 Hide Picture-in-Picture button if video src is a MediaStream. This CL makes sure native video controls don't show a Picture-in-Picture button when video src is a MediaStream as backend is not implemented yet. Bug: 806249 Change-Id: I04171b2ba73e3689334809c6419bcc8ff598196f Reviewed-on: https://chromium-review.googlesource.com/1145076 Reviewed-by: apacible <apacible@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Commit-Queue: François Beaufort <beaufort.francois@gmail.com> Cr-Commit-Position: refs/heads/master@{#577083} [modify] https://crrev.com/d4857e9b34b6bcb510d5601314aa08f07705dc5e/third_party/blink/renderer/core/frame/picture_in_picture_controller.h [modify] https://crrev.com/d4857e9b34b6bcb510d5601314aa08f07705dc5e/third_party/blink/renderer/modules/picture_in_picture/html_video_element_picture_in_picture.cc [modify] https://crrev.com/d4857e9b34b6bcb510d5601314aa08f07705dc5e/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc
Comment 1 by fbeaufort@chromium.org
, Jan 29 2018