Index: content/browser/web_contents/web_contents_impl.cc |
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc |
index 19218bc879b6ee92525f4fd6c092ca0898c4cb6a..821597dc3bab96368c3524aea7c27c7d883a91c1 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -488,6 +488,7 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context) |
upload_size_(0), |
upload_position_(0), |
is_resume_pending_(false), |
+ interstitial_page_(nullptr), |
has_accessed_initial_document_(false), |
theme_color_(SK_ColorTRANSPARENT), |
last_sent_theme_color_(SK_ColorTRANSPARENT), |
@@ -1286,8 +1287,7 @@ SiteInstanceImpl* WebContentsImpl::GetPendingSiteInstance() const { |
bool WebContentsImpl::IsLoading() const { |
return frame_tree_.IsLoading() && |
- !(ShowingInterstitialPage() && |
- GetRenderManager()->interstitial_page()->pause_throbber()); |
+ !(ShowingInterstitialPage() && interstitial_page_->pause_throbber()); |
} |
bool WebContentsImpl::IsLoadingToDifferentDocument() const { |
@@ -1976,9 +1976,7 @@ RenderWidgetHostImpl* WebContentsImpl::GetFocusedRenderWidgetHost( |
// interstitial's widget. |
if (focused_contents->ShowingInterstitialPage()) { |
return static_cast<RenderFrameHostImpl*>( |
- focused_contents->GetRenderManager() |
- ->interstitial_page() |
- ->GetMainFrame()) |
+ focused_contents->interstitial_page_->GetMainFrame()) |
->GetRenderWidgetHost(); |
} |
@@ -2011,9 +2009,7 @@ RenderWidgetHostImpl* WebContentsImpl::GetRenderWidgetHostWithPageFocus() { |
if (focused_web_contents->ShowingInterstitialPage()) { |
return static_cast<RenderFrameHostImpl*>( |
- focused_web_contents->GetRenderManager() |
- ->interstitial_page() |
- ->GetMainFrame()) |
+ focused_web_contents->interstitial_page_->GetMainFrame()) |
->GetRenderWidgetHost(); |
} |
@@ -2857,8 +2853,8 @@ void WebContentsImpl::RenderFrameForInterstitialPageCreated( |
void WebContentsImpl::AttachInterstitialPage( |
InterstitialPageImpl* interstitial_page) { |
- DCHECK(interstitial_page); |
- GetRenderManager()->set_interstitial_page(interstitial_page); |
+ DCHECK(!interstitial_page_ && interstitial_page); |
+ interstitial_page_ = interstitial_page; |
// Cancel any visible dialogs so that they don't interfere with the |
// interstitial. |
@@ -2887,8 +2883,7 @@ void WebContentsImpl::AttachInterstitialPage( |
void WebContentsImpl::DidProceedOnInterstitial() { |
// The interstitial page should no longer be pausing the throbber. |
- DCHECK(!(ShowingInterstitialPage() && |
- GetRenderManager()->interstitial_page()->pause_throbber())); |
+ DCHECK(!(ShowingInterstitialPage() && interstitial_page_->pause_throbber())); |
// Restart the throbber now that the interstitial page no longer pauses it. |
if (ShowingInterstitialPage() && frame_tree_.IsLoading()) |
@@ -2910,10 +2905,9 @@ void WebContentsImpl::DetachInterstitialPage() { |
} |
bool interstitial_pausing_throbber = |
- ShowingInterstitialPage() && |
- GetRenderManager()->interstitial_page()->pause_throbber(); |
+ ShowingInterstitialPage() && interstitial_page_->pause_throbber(); |
if (ShowingInterstitialPage()) |
- GetRenderManager()->remove_interstitial_page(); |
+ interstitial_page_ = nullptr; |
for (auto& observer : observers_) |
observer.DidDetachInterstitialPage(); |
@@ -3121,7 +3115,7 @@ void WebContentsImpl::RestoreFocus() { |
void WebContentsImpl::FocusThroughTabTraversal(bool reverse) { |
if (ShowingInterstitialPage()) { |
- GetRenderManager()->interstitial_page()->FocusThroughTabTraversal(reverse); |
+ interstitial_page_->FocusThroughTabTraversal(reverse); |
return; |
} |
RenderWidgetHostView* const fullscreen_view = |
@@ -3134,11 +3128,11 @@ void WebContentsImpl::FocusThroughTabTraversal(bool reverse) { |
} |
bool WebContentsImpl::ShowingInterstitialPage() const { |
- return GetRenderManager()->interstitial_page() != NULL; |
+ return interstitial_page_ != nullptr; |
} |
InterstitialPage* WebContentsImpl::GetInterstitialPage() const { |
- return GetRenderManager()->interstitial_page(); |
+ return interstitial_page_; |
} |
bool WebContentsImpl::IsSavable() { |
@@ -4276,8 +4270,7 @@ void WebContentsImpl::LoadingStateChanged(bool to_different_document, |
LoadNotificationDetails* details) { |
// Do not send notifications about loading changes in the FrameTree while the |
// interstitial page is pausing the throbber. |
- if (ShowingInterstitialPage() && |
- GetRenderManager()->interstitial_page()->pause_throbber() && |
+ if (ShowingInterstitialPage() && interstitial_page_->pause_throbber() && |
!due_to_interstitial) { |
return; |
} |
@@ -5007,8 +5000,7 @@ void WebContentsImpl::SetAsFocusedWebContentsIfNecessary() { |
GetRenderManager()->GetProxyToOuterDelegate()->SetFocusedFrame(); |
if (ShowingInterstitialPage()) { |
- static_cast<RenderFrameHostImpl*>( |
- GetRenderManager()->interstitial_page()->GetMainFrame()) |
+ static_cast<RenderFrameHostImpl*>(interstitial_page_->GetMainFrame()) |
->GetRenderWidgetHost() |
->SetPageFocus(true); |
} else { |
@@ -5217,6 +5209,10 @@ NavigationEntry* |
return controller_.GetLastCommittedEntry(); |
} |
+InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() { |
+ return interstitial_page_; |
+} |
+ |
void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager( |
RenderViewHost* render_view_host) { |
RenderWidgetHostViewBase* rwh_view = |