| 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 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 Origin origin) | 198 Origin origin) |
| 199 : prerendering_has_started_(false), | 199 : prerendering_has_started_(false), |
| 200 session_storage_namespace_id_(-1), | 200 session_storage_namespace_id_(-1), |
| 201 prerender_manager_(prerender_manager), | 201 prerender_manager_(prerender_manager), |
| 202 prerender_url_(url), | 202 prerender_url_(url), |
| 203 referrer_(referrer), | 203 referrer_(referrer), |
| 204 profile_(profile), | 204 profile_(profile), |
| 205 has_stopped_loading_(false), | 205 has_stopped_loading_(false), |
| 206 has_finished_loading_(false), | 206 has_finished_loading_(false), |
| 207 final_status_(FINAL_STATUS_MAX), | 207 final_status_(FINAL_STATUS_MAX), |
| 208 match_complete_status_(MATCH_COMPLETE_DEFAULT), | |
| 209 prerendering_has_been_cancelled_(false), | 208 prerendering_has_been_cancelled_(false), |
| 210 child_id_(-1), | 209 child_id_(-1), |
| 211 route_id_(-1), | 210 route_id_(-1), |
| 212 origin_(origin), | 211 origin_(origin), |
| 213 network_bytes_(0) { | 212 network_bytes_(0) { |
| 214 DCHECK(prerender_manager != NULL); | 213 DCHECK(prerender_manager != NULL); |
| 215 } | 214 } |
| 216 | 215 |
| 217 bool PrerenderContents::Init() { | 216 bool PrerenderContents::Init() { |
| 218 return AddAliasURL(prerender_url_); | 217 return AddAliasURL(prerender_url_); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 | 339 |
| 341 final_status_ = final_status; | 340 final_status_ = final_status; |
| 342 } | 341 } |
| 343 | 342 |
| 344 PrerenderContents::~PrerenderContents() { | 343 PrerenderContents::~PrerenderContents() { |
| 345 DCHECK_NE(FINAL_STATUS_MAX, final_status()); | 344 DCHECK_NE(FINAL_STATUS_MAX, final_status()); |
| 346 DCHECK( | 345 DCHECK( |
| 347 prerendering_has_been_cancelled() || final_status() == FINAL_STATUS_USED); | 346 prerendering_has_been_cancelled() || final_status() == FINAL_STATUS_USED); |
| 348 DCHECK_NE(ORIGIN_MAX, origin()); | 347 DCHECK_NE(ORIGIN_MAX, origin()); |
| 349 | 348 |
| 350 prerender_manager_->RecordFinalStatusWithMatchCompleteStatus( | 349 prerender_manager_->RecordFinalStatus(origin(), final_status()); |
| 351 origin(), match_complete_status(), final_status()); | |
| 352 | 350 |
| 353 bool used = final_status() == FINAL_STATUS_USED || | 351 bool used = final_status() == FINAL_STATUS_USED || |
| 354 final_status() == FINAL_STATUS_WOULD_HAVE_BEEN_USED; | 352 final_status() == FINAL_STATUS_WOULD_HAVE_BEEN_USED; |
| 355 prerender_manager_->RecordNetworkBytes(origin(), used, network_bytes_); | 353 prerender_manager_->RecordNetworkBytes(origin(), used, network_bytes_); |
| 356 | 354 |
| 357 // Broadcast the removal of aliases. | 355 // Broadcast the removal of aliases. |
| 358 for (content::RenderProcessHost::iterator host_iterator = | 356 for (content::RenderProcessHost::iterator host_iterator = |
| 359 content::RenderProcessHost::AllHostsIterator(); | 357 content::RenderProcessHost::AllHostsIterator(); |
| 360 !host_iterator.IsAtEnd(); | 358 !host_iterator.IsAtEnd(); |
| 361 host_iterator.Advance()) { | 359 host_iterator.Advance()) { |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_CancelPrerenderForPrinting, | 453 IPC_MESSAGE_HANDLER(ChromeViewHostMsg_CancelPrerenderForPrinting, |
| 456 OnCancelPrerenderForPrinting) | 454 OnCancelPrerenderForPrinting) |
| 457 IPC_MESSAGE_UNHANDLED(handled = false) | 455 IPC_MESSAGE_UNHANDLED(handled = false) |
| 458 IPC_END_MESSAGE_MAP() | 456 IPC_END_MESSAGE_MAP() |
| 459 | 457 |
| 460 return handled; | 458 return handled; |
| 461 } | 459 } |
| 462 | 460 |
| 463 bool PrerenderContents::CheckURL(const GURL& url) { | 461 bool PrerenderContents::CheckURL(const GURL& url) { |
| 464 if (!url.SchemeIsHTTPOrHTTPS()) { | 462 if (!url.SchemeIsHTTPOrHTTPS()) { |
| 465 DCHECK_NE(MATCH_COMPLETE_REPLACEMENT_PENDING, match_complete_status_); | |
| 466 Destroy(FINAL_STATUS_UNSUPPORTED_SCHEME); | 463 Destroy(FINAL_STATUS_UNSUPPORTED_SCHEME); |
| 467 return false; | 464 return false; |
| 468 } | 465 } |
| 469 if (match_complete_status_ != MATCH_COMPLETE_REPLACEMENT_PENDING && | 466 if (prerender_manager_->HasRecentlyBeenNavigatedTo(origin(), url)) { |
| 470 prerender_manager_->HasRecentlyBeenNavigatedTo(origin(), url)) { | |
| 471 Destroy(FINAL_STATUS_RECENTLY_VISITED); | 467 Destroy(FINAL_STATUS_RECENTLY_VISITED); |
| 472 return false; | 468 return false; |
| 473 } | 469 } |
| 474 return true; | 470 return true; |
| 475 } | 471 } |
| 476 | 472 |
| 477 bool PrerenderContents::AddAliasURL(const GURL& url) { | 473 bool PrerenderContents::AddAliasURL(const GURL& url) { |
| 478 if (!CheckURL(url)) | 474 if (!CheckURL(url)) |
| 479 return false; | 475 return false; |
| 480 | 476 |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 718 void PrerenderContents::AddResourceThrottle( | 714 void PrerenderContents::AddResourceThrottle( |
| 719 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { | 715 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { |
| 720 resource_throttles_.push_back(throttle); | 716 resource_throttles_.push_back(throttle); |
| 721 } | 717 } |
| 722 | 718 |
| 723 void PrerenderContents::AddNetworkBytes(int64_t bytes) { | 719 void PrerenderContents::AddNetworkBytes(int64_t bytes) { |
| 724 network_bytes_ += bytes; | 720 network_bytes_ += bytes; |
| 725 } | 721 } |
| 726 | 722 |
| 727 } // namespace prerender | 723 } // namespace prerender |
| OLD | NEW |