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

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

Issue 2179903005: [Prerender] Change IPC from bool to enum for more prerender modes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@prefetchProto
Patch Set: Rebase 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
« no previous file with comments | « no previous file | chrome/common/prerender_messages.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/process/process_metrics.h" 14 #include "base/process/process_metrics.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "build/build_config.h" 16 #include "build/build_config.h"
17 #include "chrome/browser/chrome_notification_types.h" 17 #include "chrome/browser/chrome_notification_types.h"
18 #include "chrome/browser/history/history_tab_helper.h" 18 #include "chrome/browser/history/history_tab_helper.h"
19 #include "chrome/browser/prerender/prerender_field_trial.h" 19 #include "chrome/browser/prerender/prerender_field_trial.h"
20 #include "chrome/browser/prerender/prerender_final_status.h" 20 #include "chrome/browser/prerender/prerender_final_status.h"
21 #include "chrome/browser/prerender/prerender_handle.h" 21 #include "chrome/browser/prerender/prerender_handle.h"
22 #include "chrome/browser/prerender/prerender_manager.h" 22 #include "chrome/browser/prerender/prerender_manager.h"
23 #include "chrome/browser/prerender/prerender_manager_factory.h" 23 #include "chrome/browser/prerender/prerender_manager_factory.h"
24 #include "chrome/browser/prerender/prerender_resource_throttle.h" 24 #include "chrome/browser/prerender/prerender_resource_throttle.h"
25 #include "chrome/browser/profiles/profile.h" 25 #include "chrome/browser/profiles/profile.h"
26 #include "chrome/browser/task_management/web_contents_tags.h" 26 #include "chrome/browser/task_management/web_contents_tags.h"
27 #include "chrome/browser/ui/tab_helpers.h" 27 #include "chrome/browser/ui/tab_helpers.h"
28 #include "chrome/browser/ui/web_contents_sizer.h" 28 #include "chrome/browser/ui/web_contents_sizer.h"
29 #include "chrome/common/prerender_messages.h" 29 #include "chrome/common/prerender_messages.h"
30 #include "chrome/common/prerender_types.h"
30 #include "chrome/common/render_messages.h" 31 #include "chrome/common/render_messages.h"
31 #include "components/history/core/browser/history_types.h" 32 #include "components/history/core/browser/history_types.h"
32 #include "content/public/browser/browser_child_process_host.h" 33 #include "content/public/browser/browser_child_process_host.h"
33 #include "content/public/browser/browser_thread.h" 34 #include "content/public/browser/browser_thread.h"
34 #include "content/public/browser/notification_service.h" 35 #include "content/public/browser/notification_service.h"
35 #include "content/public/browser/render_frame_host.h" 36 #include "content/public/browser/render_frame_host.h"
36 #include "content/public/browser/render_process_host.h" 37 #include "content/public/browser/render_process_host.h"
37 #include "content/public/browser/render_view_host.h" 38 #include "content/public/browser/render_view_host.h"
38 #include "content/public/browser/render_widget_host.h" 39 #include "content/public/browser/render_widget_host.h"
39 #include "content/public/browser/resource_request_details.h" 40 #include "content/public/browser/resource_request_details.h"
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 Destroy(FINAL_STATUS_RENDERER_CRASHED); 506 Destroy(FINAL_STATUS_RENDERER_CRASHED);
506 } 507 }
507 508
508 void PrerenderContents::RenderFrameCreated( 509 void PrerenderContents::RenderFrameCreated(
509 content::RenderFrameHost* render_frame_host) { 510 content::RenderFrameHost* render_frame_host) {
510 // When a new RenderFrame is created for a prerendering WebContents, tell the 511 // When a new RenderFrame is created for a prerendering WebContents, tell the
511 // new RenderFrame it's being used for prerendering before any navigations 512 // new RenderFrame it's being used for prerendering before any navigations
512 // occur. Note that this is always triggered before the first navigation, so 513 // occur. Note that this is always triggered before the first navigation, so
513 // there's no need to send the message just after the WebContents is created. 514 // there's no need to send the message just after the WebContents is created.
514 render_frame_host->Send(new PrerenderMsg_SetIsPrerendering( 515 render_frame_host->Send(new PrerenderMsg_SetIsPrerendering(
515 render_frame_host->GetRoutingID(), true)); 516 render_frame_host->GetRoutingID(), FULL_PRERENDER));
516 } 517 }
517 518
518 void PrerenderContents::DidStopLoading() { 519 void PrerenderContents::DidStopLoading() {
519 has_stopped_loading_ = true; 520 has_stopped_loading_ = true;
520 NotifyPrerenderStopLoading(); 521 NotifyPrerenderStopLoading();
521 } 522 }
522 523
523 void PrerenderContents::DocumentLoadedInFrame( 524 void PrerenderContents::DocumentLoadedInFrame(
524 content::RenderFrameHost* render_frame_host) { 525 content::RenderFrameHost* render_frame_host) {
525 if (!render_frame_host->GetParent()) 526 if (!render_frame_host->GetParent())
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 return prerender_contents_ && 694 return prerender_contents_ &&
694 prerender_contents_->GetSiteInstance() != 695 prerender_contents_->GetSiteInstance() !=
695 prerender_contents_->GetPendingSiteInstance(); 696 prerender_contents_->GetPendingSiteInstance();
696 } 697 }
697 698
698 void PrerenderContents::PrepareForUse() { 699 void PrerenderContents::PrepareForUse() {
699 SetFinalStatus(FINAL_STATUS_USED); 700 SetFinalStatus(FINAL_STATUS_USED);
700 701
701 if (prerender_contents_.get()) { 702 if (prerender_contents_.get()) {
702 prerender_contents_->SendToAllFrames( 703 prerender_contents_->SendToAllFrames(
703 new PrerenderMsg_SetIsPrerendering(MSG_ROUTING_NONE, false)); 704 new PrerenderMsg_SetIsPrerendering(MSG_ROUTING_NONE, NO_PRERENDER));
704 } 705 }
705 706
706 NotifyPrerenderStop(); 707 NotifyPrerenderStop();
707 708
708 BrowserThread::PostTask( 709 BrowserThread::PostTask(
709 BrowserThread::IO, 710 BrowserThread::IO,
710 FROM_HERE, 711 FROM_HERE,
711 base::Bind(&ResumeThrottles, resource_throttles_)); 712 base::Bind(&ResumeThrottles, resource_throttles_));
712 resource_throttles_.clear(); 713 resource_throttles_.clear();
713 } 714 }
714 715
715 void PrerenderContents::OnCancelPrerenderForPrinting() { 716 void PrerenderContents::OnCancelPrerenderForPrinting() {
716 Destroy(FINAL_STATUS_WINDOW_PRINT); 717 Destroy(FINAL_STATUS_WINDOW_PRINT);
717 } 718 }
718 719
719 void PrerenderContents::AddResourceThrottle( 720 void PrerenderContents::AddResourceThrottle(
720 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { 721 const base::WeakPtr<PrerenderResourceThrottle>& throttle) {
721 resource_throttles_.push_back(throttle); 722 resource_throttles_.push_back(throttle);
722 } 723 }
723 724
724 void PrerenderContents::AddNetworkBytes(int64_t bytes) { 725 void PrerenderContents::AddNetworkBytes(int64_t bytes) {
725 network_bytes_ += bytes; 726 network_bytes_ += bytes;
726 } 727 }
727 728
728 } // namespace prerender 729 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/common/prerender_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698