summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-10-26 13:57:00 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-11-02 11:31:01 +0000
commit1943b3c2a1dcee36c233724fc4ee7613d71b9cf6 (patch)
tree8c1b5f12357025c197da5427ae02cfdc2f3570d6 /chromium/third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_controller_impl.cc
parent21ba0c5d4bf8fba15dddd97cd693bad2358b77fd (diff)
downloadqtwebengine-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.cc13
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_));
}