Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(398)

Side by Side Diff: content/browser/frame_host/interstitial_page_impl.cc

Issue 1545973002: Remove the is_loading_ field from WebContentsImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase + addressed Nasko's nits Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/frame_host/interstitial_page_impl.h" 5 #include "content/browser/frame_host/interstitial_page_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 // the WebContents one, so we can enforce no navigation policy here. 157 // the WebContents one, so we can enforce no navigation policy here.
158 // While we get the code to a point to do this, pass NULL for it. 158 // While we get the code to a point to do this, pass NULL for it.
159 // TODO(creis): We will also need to pass delegates for the RVHM as we 159 // TODO(creis): We will also need to pass delegates for the RVHM as we
160 // start to use it. 160 // start to use it.
161 frame_tree_(new InterstitialPageNavigatorImpl(this, controller_), 161 frame_tree_(new InterstitialPageNavigatorImpl(this, controller_),
162 this, this, this, 162 this, this, this,
163 static_cast<WebContentsImpl*>(web_contents)), 163 static_cast<WebContentsImpl*>(web_contents)),
164 original_child_id_(web_contents->GetRenderProcessHost()->GetID()), 164 original_child_id_(web_contents->GetRenderProcessHost()->GetID()),
165 original_rvh_id_(web_contents->GetRenderViewHost()->GetRoutingID()), 165 original_rvh_id_(web_contents->GetRenderViewHost()->GetRoutingID()),
166 should_revert_web_contents_title_(false), 166 should_revert_web_contents_title_(false),
167 web_contents_was_loading_(false),
168 resource_dispatcher_host_notified_(false), 167 resource_dispatcher_host_notified_(false),
169 rvh_delegate_view_(new InterstitialPageRVHDelegateView(this)), 168 rvh_delegate_view_(new InterstitialPageRVHDelegateView(this)),
170 create_view_(true), 169 create_view_(true),
171 delegate_(delegate), 170 delegate_(delegate),
172 weak_ptr_factory_(this) { 171 weak_ptr_factory_(this) {
173 InitInterstitialPageMap(); 172 InitInterstitialPageMap();
174 } 173 }
175 174
176 InterstitialPageImpl::~InterstitialPageImpl() { 175 InterstitialPageImpl::~InterstitialPageImpl() {
177 } 176 }
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 510
512 // The RenderViewHost may already have crashed before we even get here. 511 // The RenderViewHost may already have crashed before we even get here.
513 if (rwh_view) { 512 if (rwh_view) {
514 // If the page has focus, focus the interstitial. 513 // If the page has focus, focus the interstitial.
515 if (rwh_view->HasFocus()) 514 if (rwh_view->HasFocus())
516 Focus(); 515 Focus();
517 516
518 // Hide the original RVH since we're showing the interstitial instead. 517 // Hide the original RVH since we're showing the interstitial instead.
519 rwh_view->Hide(); 518 rwh_view->Hide();
520 } 519 }
521
522 // Notify the tab we are not loading so the throbber is stopped. It also
523 // causes a WebContentsObserver::DidStopLoading callback that the
524 // AutomationProvider (used by the UI tests) expects to consider a navigation
525 // as complete. Without this, navigating in a UI test to a URL that triggers
526 // an interstitial would hang.
527 web_contents_was_loading_ = controller_->delegate()->IsLoading();
528 controller_->delegate()->SetIsLoading(false, true, NULL);
529 } 520 }
530 521
531 RendererPreferences InterstitialPageImpl::GetRendererPrefs( 522 RendererPreferences InterstitialPageImpl::GetRendererPrefs(
532 BrowserContext* browser_context) const { 523 BrowserContext* browser_context) const {
533 delegate_->OverrideRendererPrefs(&renderer_preferences_); 524 delegate_->OverrideRendererPrefs(&renderer_preferences_);
534 return renderer_preferences_; 525 return renderer_preferences_;
535 } 526 }
536 527
537 void InterstitialPageImpl::RenderWidgetDeleted( 528 void InterstitialPageImpl::RenderWidgetDeleted(
538 RenderWidgetHostImpl* render_widget_host) { 529 RenderWidgetHostImpl* render_widget_host) {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 if (!render_view_host_) 618 if (!render_view_host_)
628 return; 619 return;
629 620
630 if (action_taken_ != NO_ACTION) { 621 if (action_taken_ != NO_ACTION) {
631 NOTREACHED(); 622 NOTREACHED();
632 return; 623 return;
633 } 624 }
634 Disable(); 625 Disable();
635 action_taken_ = PROCEED_ACTION; 626 action_taken_ = PROCEED_ACTION;
636 627
637 // Resumes the throbber, if applicable. 628 controller_->delegate()->DidProceedOnInterstitial();
638 if (web_contents_was_loading_)
639 controller_->delegate()->SetIsLoading(true, true, NULL);
640 629
641 // If this is a new navigation, the old page is going away, so we cancel any 630 // If this is a new navigation, the old page is going away, so we cancel any
642 // blocked requests for it. If it is not a new navigation, then it means the 631 // blocked requests for it. If it is not a new navigation, then it means the
643 // interstitial was shown as a result of a resource loading in the page. 632 // interstitial was shown as a result of a resource loading in the page.
644 // Since the user wants to proceed, we'll let any blocked request go through. 633 // Since the user wants to proceed, we'll let any blocked request go through.
645 if (new_navigation_) 634 if (new_navigation_)
646 TakeActionOnResourceDispatcher(CANCEL); 635 TakeActionOnResourceDispatcher(CANCEL);
647 else 636 else
648 TakeActionOnResourceDispatcher(RESUME); 637 TakeActionOnResourceDispatcher(RESUME);
649 638
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 void InterstitialPageImpl::UnderlyingContentObserver::NavigationEntryCommitted( 927 void InterstitialPageImpl::UnderlyingContentObserver::NavigationEntryCommitted(
939 const LoadCommittedDetails& load_details) { 928 const LoadCommittedDetails& load_details) {
940 interstitial_->OnNavigatingAwayOrTabClosing(); 929 interstitial_->OnNavigatingAwayOrTabClosing();
941 } 930 }
942 931
943 void InterstitialPageImpl::UnderlyingContentObserver::WebContentsDestroyed() { 932 void InterstitialPageImpl::UnderlyingContentObserver::WebContentsDestroyed() {
944 interstitial_->OnNavigatingAwayOrTabClosing(); 933 interstitial_->OnNavigatingAwayOrTabClosing();
945 } 934 }
946 935
947 } // namespace content 936 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/frame_host/interstitial_page_impl.h ('k') | content/browser/frame_host/navigation_controller_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698