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

Side by Side Diff: chrome/browser/prerender/prerender_contents.cc

Issue 373623002: Convert remaining WebContentsObservers loading callbacks to use RFH. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix CrOS test Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/prerender/prerender_contents.h" 5 #include "chrome/browser/prerender/prerender_contents.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 has_stopped_loading_(false), 232 has_stopped_loading_(false),
233 has_finished_loading_(false), 233 has_finished_loading_(false),
234 final_status_(FINAL_STATUS_MAX), 234 final_status_(FINAL_STATUS_MAX),
235 match_complete_status_(MATCH_COMPLETE_DEFAULT), 235 match_complete_status_(MATCH_COMPLETE_DEFAULT),
236 prerendering_has_been_cancelled_(false), 236 prerendering_has_been_cancelled_(false),
237 child_id_(-1), 237 child_id_(-1),
238 route_id_(-1), 238 route_id_(-1),
239 origin_(origin), 239 origin_(origin),
240 experiment_id_(experiment_id), 240 experiment_id_(experiment_id),
241 creator_child_id_(-1), 241 creator_child_id_(-1),
242 main_frame_id_(0),
243 cookie_status_(0), 242 cookie_status_(0),
244 cookie_send_type_(COOKIE_SEND_TYPE_NONE), 243 cookie_send_type_(COOKIE_SEND_TYPE_NONE),
245 network_bytes_(0) { 244 network_bytes_(0) {
246 DCHECK(prerender_manager != NULL); 245 DCHECK(prerender_manager != NULL);
247 } 246 }
248 247
249 PrerenderContents* PrerenderContents::CreateMatchCompleteReplacement() { 248 PrerenderContents* PrerenderContents::CreateMatchCompleteReplacement() {
250 PrerenderContents* new_contents = prerender_manager_->CreatePrerenderContents( 249 PrerenderContents* new_contents = prerender_manager_->CreatePrerenderContents(
251 prerender_url(), referrer(), origin(), experiment_id()); 250 prerender_url(), referrer(), origin(), experiment_id());
252 251
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 render_frame_host->GetRoutingID(), true)); 611 render_frame_host->GetRoutingID(), true));
613 } 612 }
614 613
615 void PrerenderContents::DidStopLoading( 614 void PrerenderContents::DidStopLoading(
616 content::RenderViewHost* render_view_host) { 615 content::RenderViewHost* render_view_host) {
617 has_stopped_loading_ = true; 616 has_stopped_loading_ = true;
618 NotifyPrerenderStopLoading(); 617 NotifyPrerenderStopLoading();
619 } 618 }
620 619
621 void PrerenderContents::DocumentLoadedInFrame( 620 void PrerenderContents::DocumentLoadedInFrame(
622 int64 frame_id, 621 content::RenderFrameHost* render_frame_host) {
623 RenderViewHost* render_view_host) { 622 if (!render_frame_host->GetParent())
624 if (frame_id == main_frame_id_)
625 NotifyPrerenderDomContentLoaded(); 623 NotifyPrerenderDomContentLoaded();
626 } 624 }
627 625
628 void PrerenderContents::DidStartProvisionalLoadForFrame( 626 void PrerenderContents::DidStartProvisionalLoadForFrame(
629 content::RenderFrameHost* render_frame_host, 627 content::RenderFrameHost* render_frame_host,
630 const GURL& validated_url, 628 const GURL& validated_url,
631 bool is_error_page, 629 bool is_error_page,
632 bool is_iframe_srcdoc) { 630 bool is_iframe_srcdoc) {
633 if (!render_frame_host->GetParent()) { 631 if (!render_frame_host->GetParent()) {
634 if (!CheckURL(validated_url)) 632 if (!CheckURL(validated_url))
635 return; 633 return;
636 634
637 // Usually, this event fires if the user clicks or enters a new URL. 635 // Usually, this event fires if the user clicks or enters a new URL.
638 // Neither of these can happen in the case of an invisible prerender. 636 // Neither of these can happen in the case of an invisible prerender.
639 // So the cause is: Some JavaScript caused a new URL to be loaded. In that 637 // So the cause is: Some JavaScript caused a new URL to be loaded. In that
640 // case, the spinner would start again in the browser, so we must reset 638 // case, the spinner would start again in the browser, so we must reset
641 // has_stopped_loading_ so that the spinner won't be stopped. 639 // has_stopped_loading_ so that the spinner won't be stopped.
642 has_stopped_loading_ = false; 640 has_stopped_loading_ = false;
643 has_finished_loading_ = false; 641 has_finished_loading_ = false;
644 } 642 }
645 } 643 }
646 644
647 void PrerenderContents::DidCommitProvisionalLoadForFrame( 645 void PrerenderContents::DidFinishLoad(
648 content::RenderFrameHost* render_frame_host, 646 content::RenderFrameHost* render_frame_host,
649 const GURL& url, 647 const GURL& validated_url) {
650 content::PageTransition transition_type) { 648 if (!render_frame_host->GetParent())
651 if (!render_frame_host->GetParent()) {
652 main_frame_id_ = render_frame_host->GetRoutingID();
653 }
654 }
655
656 void PrerenderContents::DidFinishLoad(int64 frame_id,
657 const GURL& validated_url,
658 bool is_main_frame,
659 RenderViewHost* render_view_host) {
660 if (is_main_frame)
661 has_finished_loading_ = true; 649 has_finished_loading_ = true;
662 } 650 }
663 651
664 void PrerenderContents::DidNavigateMainFrame( 652 void PrerenderContents::DidNavigateMainFrame(
665 const content::LoadCommittedDetails& details, 653 const content::LoadCommittedDetails& details,
666 const content::FrameNavigateParams& params) { 654 const content::FrameNavigateParams& params) {
667 // If the prerender made a second navigation entry, abort the prerender. This 655 // If the prerender made a second navigation entry, abort the prerender. This
668 // avoids having to correctly implement a complex history merging case (this 656 // avoids having to correctly implement a complex history merging case (this
669 // interacts with location.replace) and correctly synchronize with the 657 // interacts with location.replace) and correctly synchronize with the
670 // renderer. The final status may be monitored to see we need to revisit this 658 // renderer. The final status may be monitored to see we need to revisit this
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 void PrerenderContents::AddResourceThrottle( 885 void PrerenderContents::AddResourceThrottle(
898 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { 886 const base::WeakPtr<PrerenderResourceThrottle>& throttle) {
899 resource_throttles_.push_back(throttle); 887 resource_throttles_.push_back(throttle);
900 } 888 }
901 889
902 void PrerenderContents::AddNetworkBytes(int64 bytes) { 890 void PrerenderContents::AddNetworkBytes(int64 bytes) {
903 network_bytes_ += bytes; 891 network_bytes_ += bytes;
904 } 892 }
905 893
906 } // namespace prerender 894 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698