diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-10-26 13:57:00 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-11-02 11:31:01 +0000 |
commit | 1943b3c2a1dcee36c233724fc4ee7613d71b9cf6 (patch) | |
tree | 8c1b5f12357025c197da5427ae02cfdc2f3570d6 /chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc | |
parent | 21ba0c5d4bf8fba15dddd97cd693bad2358b77fd (diff) | |
download | qtwebengine-chromium-1943b3c2a1dcee36c233724fc4ee7613d71b9cf6.tar.gz |
BASELINE: Update Chromium to 94.0.4606.111
Change-Id: I924781584def20fc800bedf6ff41fdb96c438193
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc b/chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc index 244f2d04f78..027e3eabdf4 100644 --- a/chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc +++ b/chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc @@ -12,6 +12,7 @@ #include "mojo/public/cpp/bindings/pending_remote.h" #include "third_party/blink/public/common/browser_interface_broker_proxy.h" #include "third_party/blink/public/common/media/display_type.h" +#include "third_party/blink/public/common/scheme_registry.h" #include "third_party/blink/public/mojom/manifest/display_mode.mojom-shared.h" #include "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom-blink.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_picture_in_picture_options.h" @@ -27,6 +28,7 @@ #include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_window.h" #include "third_party/blink/renderer/platform/heap/heap.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" +#include "third_party/blink/renderer/platform/weborigin/scheme_registry.h" #include "third_party/blink/renderer/platform/widget/frame_widget.h" #include "third_party/blink/renderer/platform/wtf/functional.h" @@ -168,6 +170,7 @@ void PictureInPictureControllerImpl::EnterPictureInPicture( Fullscreen::ExitFullscreen(*GetSupplementable()); video_element->GetWebMediaPlayer()->OnRequestPictureInPicture(); + DCHECK(video_element->GetWebMediaPlayer()->GetSurfaceId().has_value()); session_observer_receiver_.reset(); @@ -186,7 +189,7 @@ void PictureInPictureControllerImpl::EnterPictureInPicture( picture_in_picture_service_->StartSession( video_element->GetWebMediaPlayer()->GetDelegateId(), std::move(media_player_remote), - video_element->GetWebMediaPlayer()->GetSurfaceId(), + video_element->GetWebMediaPlayer()->GetSurfaceId().value(), video_element->GetWebMediaPlayer()->NaturalSize(), ShouldShowPlayPauseButton(*video_element), std::move(session_observer), WTF::Bind(&PictureInPictureControllerImpl::OnEnteredPictureInPicture, @@ -339,7 +342,8 @@ bool PictureInPictureControllerImpl::IsEnterAutoPictureInPictureAllowed() GetSupplementable()->GetFrame()->GetWidgetForLocalRoot()->DisplayMode(); is_in_pwa_window = display_mode != mojom::blink::DisplayMode::kBrowser; } - if (!(GetSupplementable()->Url().ProtocolIs("chrome-extension") || + if (!(CommonSchemeRegistry::IsExtensionScheme( + GetSupplementable()->Url().Protocol().Ascii()) || Fullscreen::FullscreenElementFrom(*GetSupplementable()) || (is_in_pwa_window && GetSupplementable()->IsInWebAppScope()))) { return false; @@ -396,6 +400,9 @@ void PictureInPictureControllerImpl::PageVisibilityChanged() { void PictureInPictureControllerImpl::OnPictureInPictureStateChange() { DCHECK(picture_in_picture_element_); DCHECK(picture_in_picture_element_->GetWebMediaPlayer()); + DCHECK(picture_in_picture_element_->GetWebMediaPlayer() + ->GetSurfaceId() + .has_value()); // The lifetime of the MediaPlayer mojo endpoint in the renderer is tied to // WebMediaPlayer, which is recreated by |picture_in_picture_element_| on @@ -409,7 +416,7 @@ void PictureInPictureControllerImpl::OnPictureInPictureStateChange() { picture_in_picture_session_->Update( picture_in_picture_element_->GetWebMediaPlayer()->GetDelegateId(), std::move(media_player_remote), - picture_in_picture_element_->GetWebMediaPlayer()->GetSurfaceId(), + picture_in_picture_element_->GetWebMediaPlayer()->GetSurfaceId().value(), picture_in_picture_element_->GetWebMediaPlayer()->NaturalSize(), ShouldShowPlayPauseButton(*picture_in_picture_element_)); } |