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

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: comment 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>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "build/build_config.h" 15 #include "build/build_config.h"
16 #include "chrome/browser/chrome_notification_types.h" 16 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/history/history_tab_helper.h" 17 #include "chrome/browser/history/history_tab_helper.h"
18 #include "chrome/browser/prerender/prerender_field_trial.h" 18 #include "chrome/browser/prerender/prerender_field_trial.h"
19 #include "chrome/browser/prerender/prerender_final_status.h" 19 #include "chrome/browser/prerender/prerender_final_status.h"
20 #include "chrome/browser/prerender/prerender_handle.h" 20 #include "chrome/browser/prerender/prerender_handle.h"
21 #include "chrome/browser/prerender/prerender_manager.h" 21 #include "chrome/browser/prerender/prerender_manager.h"
22 #include "chrome/browser/prerender/prerender_manager_factory.h" 22 #include "chrome/browser/prerender/prerender_manager_factory.h"
23 #include "chrome/browser/prerender/prerender_resource_throttle.h" 23 #include "chrome/browser/prerender/prerender_resource_throttle.h"
24 #include "chrome/browser/profiles/profile.h" 24 #include "chrome/browser/profiles/profile.h"
25 #include "chrome/browser/task_management/web_contents_tags.h" 25 #include "chrome/browser/task_management/web_contents_tags.h"
26 #include "chrome/browser/ui/tab_helpers.h" 26 #include "chrome/browser/ui/tab_helpers.h"
27 #include "chrome/browser/ui/web_contents_sizer.h" 27 #include "chrome/browser/ui/web_contents_sizer.h"
28 #include "chrome/common/prerender_messages.h" 28 #include "chrome/common/prerender_messages.h"
29 #include "chrome/common/prerender_types.h"
29 #include "chrome/common/render_messages.h" 30 #include "chrome/common/render_messages.h"
30 #include "components/history/core/browser/history_types.h" 31 #include "components/history/core/browser/history_types.h"
31 #include "content/public/browser/browser_child_process_host.h" 32 #include "content/public/browser/browser_child_process_host.h"
32 #include "content/public/browser/browser_thread.h" 33 #include "content/public/browser/browser_thread.h"
33 #include "content/public/browser/notification_service.h" 34 #include "content/public/browser/notification_service.h"
34 #include "content/public/browser/render_frame_host.h" 35 #include "content/public/browser/render_frame_host.h"
35 #include "content/public/browser/render_process_host.h" 36 #include "content/public/browser/render_process_host.h"
36 #include "content/public/browser/render_view_host.h" 37 #include "content/public/browser/render_view_host.h"
37 #include "content/public/browser/render_widget_host.h" 38 #include "content/public/browser/render_widget_host.h"
38 #include "content/public/browser/resource_request_details.h" 39 #include "content/public/browser/resource_request_details.h"
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 Destroy(FINAL_STATUS_RENDERER_CRASHED); 503 Destroy(FINAL_STATUS_RENDERER_CRASHED);
503 } 504 }
504 505
505 void PrerenderContents::RenderFrameCreated( 506 void PrerenderContents::RenderFrameCreated(
506 content::RenderFrameHost* render_frame_host) { 507 content::RenderFrameHost* render_frame_host) {
507 // When a new RenderFrame is created for a prerendering WebContents, tell the 508 // When a new RenderFrame is created for a prerendering WebContents, tell the
508 // new RenderFrame it's being used for prerendering before any navigations 509 // new RenderFrame it's being used for prerendering before any navigations
509 // occur. Note that this is always triggered before the first navigation, so 510 // occur. Note that this is always triggered before the first navigation, so
510 // there's no need to send the message just after the WebContents is created. 511 // there's no need to send the message just after the WebContents is created.
511 render_frame_host->Send(new PrerenderMsg_SetIsPrerendering( 512 render_frame_host->Send(new PrerenderMsg_SetIsPrerendering(
512 render_frame_host->GetRoutingID(), true)); 513 render_frame_host->GetRoutingID(), FULL_PRERENDER));
513 } 514 }
514 515
515 void PrerenderContents::DidStopLoading() { 516 void PrerenderContents::DidStopLoading() {
516 has_stopped_loading_ = true; 517 has_stopped_loading_ = true;
517 NotifyPrerenderStopLoading(); 518 NotifyPrerenderStopLoading();
518 } 519 }
519 520
520 void PrerenderContents::DocumentLoadedInFrame( 521 void PrerenderContents::DocumentLoadedInFrame(
521 content::RenderFrameHost* render_frame_host) { 522 content::RenderFrameHost* render_frame_host) {
522 if (!render_frame_host->GetParent()) 523 if (!render_frame_host->GetParent())
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 return false; 687 return false;
687 return (prerender_contents_->GetSiteInstance() != 688 return (prerender_contents_->GetSiteInstance() !=
688 prerender_contents_->GetPendingSiteInstance()); 689 prerender_contents_->GetPendingSiteInstance());
689 } 690 }
690 691
691 void PrerenderContents::PrepareForUse() { 692 void PrerenderContents::PrepareForUse() {
692 SetFinalStatus(FINAL_STATUS_USED); 693 SetFinalStatus(FINAL_STATUS_USED);
693 694
694 if (prerender_contents_.get()) { 695 if (prerender_contents_.get()) {
695 prerender_contents_->SendToAllFrames( 696 prerender_contents_->SendToAllFrames(
696 new PrerenderMsg_SetIsPrerendering(MSG_ROUTING_NONE, false)); 697 new PrerenderMsg_SetIsPrerendering(MSG_ROUTING_NONE, NO_PRERENDER));
697 } 698 }
698 699
699 NotifyPrerenderStop(); 700 NotifyPrerenderStop();
700 701
701 BrowserThread::PostTask( 702 BrowserThread::PostTask(
702 BrowserThread::IO, 703 BrowserThread::IO,
703 FROM_HERE, 704 FROM_HERE,
704 base::Bind(&ResumeThrottles, resource_throttles_)); 705 base::Bind(&ResumeThrottles, resource_throttles_));
705 resource_throttles_.clear(); 706 resource_throttles_.clear();
706 } 707 }
707 708
708 void PrerenderContents::OnCancelPrerenderForPrinting() { 709 void PrerenderContents::OnCancelPrerenderForPrinting() {
709 Destroy(FINAL_STATUS_WINDOW_PRINT); 710 Destroy(FINAL_STATUS_WINDOW_PRINT);
710 } 711 }
711 712
712 void PrerenderContents::AddResourceThrottle( 713 void PrerenderContents::AddResourceThrottle(
713 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { 714 const base::WeakPtr<PrerenderResourceThrottle>& throttle) {
714 resource_throttles_.push_back(throttle); 715 resource_throttles_.push_back(throttle);
715 } 716 }
716 717
717 void PrerenderContents::AddNetworkBytes(int64_t bytes) { 718 void PrerenderContents::AddNetworkBytes(int64_t bytes) {
718 network_bytes_ += bytes; 719 network_bytes_ += bytes;
719 } 720 }
720 721
721 } // namespace prerender 722 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/common/prerender_messages.h » ('j') | chrome/renderer/chrome_render_frame_observer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698