diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2023-02-13 14:51:50 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2023-02-14 11:16:32 +0000 |
commit | 6f9ba85ba9e84eb225ab8d4a6f0cb99e5dc61563 (patch) | |
tree | c2c5da74223f544b0e28d372138288b1bffc045d /chromium/components/guest_view | |
parent | 01e89433adf2d5575b2089716217299519a9ce15 (diff) | |
download | qtwebengine-chromium-6f9ba85ba9e84eb225ab8d4a6f0cb99e5dc61563.tar.gz |
BASELINE: Update Chromium to 108.0.5359.220
Change-Id: Ibfd5669271969a41c1e74a55be1ffcd5d32c8e98
Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/460143
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/components/guest_view')
-rw-r--r-- | chromium/components/guest_view/browser/guest_view_base.cc | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/chromium/components/guest_view/browser/guest_view_base.cc b/chromium/components/guest_view/browser/guest_view_base.cc index 5511538b35c..8e87e89a996 100644 --- a/chromium/components/guest_view/browser/guest_view_base.cc +++ b/chromium/components/guest_view/browser/guest_view_base.cc @@ -76,17 +76,20 @@ class GuestViewBase::OwnerContentsObserver : public WebContentsObserver { void DidToggleFullscreenModeForTab(bool entered_fullscreen, bool will_cause_resize) override { + if (!IsGuestInitialized()) { + return; + } + is_fullscreen_ = entered_fullscreen; guest_->EmbedderFullscreenToggled(is_fullscreen_); } void PrimaryMainFrameWasResized(bool width_changed) override { - if (!web_contents()->GetDelegate()) + if (!IsGuestInitialized()) { return; + } - bool current_fullscreen = - web_contents()->GetDelegate()->IsFullscreenForTabOrPending( - web_contents()); + bool current_fullscreen = web_contents()->IsFullscreen(); if (is_fullscreen_ && !current_fullscreen) { is_fullscreen_ = false; guest_->EmbedderFullscreenToggled(is_fullscreen_); @@ -94,10 +97,14 @@ class GuestViewBase::OwnerContentsObserver : public WebContentsObserver { } void DidUpdateAudioMutingState(bool muted) override { - guest_->web_contents()->SetAudioMuted(muted); + if (IsGuestInitialized()) { + guest_->web_contents()->SetAudioMuted(muted); + } } private: + bool IsGuestInitialized() { return guest_->web_contents(); } + bool is_fullscreen_ = false; const base::SafeRef<GuestViewBase> guest_; }; @@ -133,6 +140,8 @@ GuestViewBase::GuestViewBase(WebContents* owner_web_contents) : owner_web_contents_(owner_web_contents), browser_context_(owner_web_contents->GetBrowserContext()), guest_instance_id_(GetGuestViewManager()->GetNextInstanceID()) { + owner_contents_observer_ = std::make_unique<OwnerContentsObserver>( + weak_ptr_factory_.GetSafeRef(), owner_web_contents_); SetOwnerHost(); } @@ -185,11 +194,6 @@ void GuestViewBase::InitWithWebContents(const base::Value::Dict& create_params, // ZoomController::DidFinishNavigation has completed. zoom::ZoomController::CreateForWebContents(guest_web_contents); - // At this point, we have just created the guest WebContents, we need to add - // an observer to the owner WebContents. - owner_contents_observer_ = std::make_unique<OwnerContentsObserver>( - weak_ptr_factory_.GetSafeRef(), owner_web_contents_); - WebContentsObserver::Observe(guest_web_contents); guest_web_contents->SetDelegate(this); g_webcontents_guestview_map.Get().insert( |