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

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

Issue 2184963002: Prerender: NoStatePrefetch browser side changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Really remove Document.cpp this time. Created 4 years, 4 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 (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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <functional> 10 #include <functional>
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 189
190 PrerenderContents::Observer::~Observer() { 190 PrerenderContents::Observer::~Observer() {
191 } 191 }
192 192
193 PrerenderContents::PrerenderContents( 193 PrerenderContents::PrerenderContents(
194 PrerenderManager* prerender_manager, 194 PrerenderManager* prerender_manager,
195 Profile* profile, 195 Profile* profile,
196 const GURL& url, 196 const GURL& url,
197 const content::Referrer& referrer, 197 const content::Referrer& referrer,
198 Origin origin) 198 Origin origin)
199 : prerendering_has_started_(false), 199 : prerender_mode_(FULL_PRERENDER),
200 prerendering_has_started_(false),
200 session_storage_namespace_id_(-1), 201 session_storage_namespace_id_(-1),
201 prerender_manager_(prerender_manager), 202 prerender_manager_(prerender_manager),
202 prerender_url_(url), 203 prerender_url_(url),
203 referrer_(referrer), 204 referrer_(referrer),
204 profile_(profile), 205 profile_(profile),
205 has_stopped_loading_(false), 206 has_stopped_loading_(false),
206 has_finished_loading_(false), 207 has_finished_loading_(false),
207 final_status_(FINAL_STATUS_MAX), 208 final_status_(FINAL_STATUS_MAX),
208 prerendering_has_been_cancelled_(false), 209 prerendering_has_been_cancelled_(false),
209 child_id_(-1), 210 child_id_(-1),
210 route_id_(-1), 211 route_id_(-1),
211 origin_(origin), 212 origin_(origin),
212 network_bytes_(0) { 213 network_bytes_(0) {
213 DCHECK(prerender_manager); 214 DCHECK(prerender_manager);
214 } 215 }
215 216
216 bool PrerenderContents::Init() { 217 bool PrerenderContents::Init() {
217 return AddAliasURL(prerender_url_); 218 return AddAliasURL(prerender_url_);
218 } 219 }
219 220
221 void PrerenderContents::SetPrerenderMode(PrerenderMode mode) {
222 DCHECK(!prerendering_has_started_);
223 prerender_mode_ = mode;
224 }
225
220 // static 226 // static
221 PrerenderContents::Factory* PrerenderContents::CreateFactory() { 227 PrerenderContents::Factory* PrerenderContents::CreateFactory() {
222 return new PrerenderContentsFactoryImpl(); 228 return new PrerenderContentsFactoryImpl();
223 } 229 }
224 230
225 // static 231 // static
226 PrerenderContents* PrerenderContents::FromWebContents( 232 PrerenderContents* PrerenderContents::FromWebContents(
227 content::WebContents* web_contents) { 233 content::WebContents* web_contents) {
228 if (!web_contents) 234 if (!web_contents)
229 return NULL; 235 return NULL;
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 Destroy(FINAL_STATUS_RENDERER_CRASHED); 512 Destroy(FINAL_STATUS_RENDERER_CRASHED);
507 } 513 }
508 514
509 void PrerenderContents::RenderFrameCreated( 515 void PrerenderContents::RenderFrameCreated(
510 content::RenderFrameHost* render_frame_host) { 516 content::RenderFrameHost* render_frame_host) {
511 // When a new RenderFrame is created for a prerendering WebContents, tell the 517 // When a new RenderFrame is created for a prerendering WebContents, tell the
512 // new RenderFrame it's being used for prerendering before any navigations 518 // new RenderFrame it's being used for prerendering before any navigations
513 // occur. Note that this is always triggered before the first navigation, so 519 // occur. Note that this is always triggered before the first navigation, so
514 // there's no need to send the message just after the WebContents is created. 520 // there's no need to send the message just after the WebContents is created.
515 render_frame_host->Send(new PrerenderMsg_SetIsPrerendering( 521 render_frame_host->Send(new PrerenderMsg_SetIsPrerendering(
516 render_frame_host->GetRoutingID(), FULL_PRERENDER)); 522 render_frame_host->GetRoutingID(), prerender_mode_));
mmenke 2016/08/22 14:17:58 Is this hooked up, renderer-side yet? If so, we s
mattcary 2016/08/23 10:53:56 No, that's in droger@'s cl. I'm working on the bro
517 } 523 }
518 524
519 void PrerenderContents::DidStopLoading() { 525 void PrerenderContents::DidStopLoading() {
520 has_stopped_loading_ = true; 526 has_stopped_loading_ = true;
521 NotifyPrerenderStopLoading(); 527 NotifyPrerenderStopLoading();
522 } 528 }
523 529
524 void PrerenderContents::DocumentLoadedInFrame( 530 void PrerenderContents::DocumentLoadedInFrame(
525 content::RenderFrameHost* render_frame_host) { 531 content::RenderFrameHost* render_frame_host) {
526 if (!render_frame_host->GetParent()) 532 if (!render_frame_host->GetParent())
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 void PrerenderContents::AddResourceThrottle( 726 void PrerenderContents::AddResourceThrottle(
721 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { 727 const base::WeakPtr<PrerenderResourceThrottle>& throttle) {
722 resource_throttles_.push_back(throttle); 728 resource_throttles_.push_back(throttle);
723 } 729 }
724 730
725 void PrerenderContents::AddNetworkBytes(int64_t bytes) { 731 void PrerenderContents::AddNetworkBytes(int64_t bytes) {
726 network_bytes_ += bytes; 732 network_bytes_ += bytes;
727 } 733 }
728 734
729 } // namespace prerender 735 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698