Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 |
| OLD | NEW |