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

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

Issue 8801012: Add support for content::Referrer to prerender (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updates Created 9 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/process_util.h" 10 #include "base/process_util.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 } 56 }
57 GURL url_; 57 GURL url_;
58 }; 58 };
59 59
60 } // end namespace 60 } // end namespace
61 61
62 class PrerenderContentsFactoryImpl : public PrerenderContents::Factory { 62 class PrerenderContentsFactoryImpl : public PrerenderContents::Factory {
63 public: 63 public:
64 virtual PrerenderContents* CreatePrerenderContents( 64 virtual PrerenderContents* CreatePrerenderContents(
65 PrerenderManager* prerender_manager, PrerenderTracker* prerender_tracker, 65 PrerenderManager* prerender_manager, PrerenderTracker* prerender_tracker,
66 Profile* profile, const GURL& url, const GURL& referrer, 66 Profile* profile, const GURL& url, const content::Referrer& referrer,
67 Origin origin, uint8 experiment_id) OVERRIDE { 67 Origin origin, uint8 experiment_id) OVERRIDE {
68 return new PrerenderContents(prerender_manager, prerender_tracker, profile, 68 return new PrerenderContents(prerender_manager, prerender_tracker, profile,
69 url, referrer, origin, experiment_id); 69 url, referrer, origin, experiment_id);
70 } 70 }
71 }; 71 };
72 72
73 PrerenderContents::PendingPrerenderData::PendingPrerenderData( 73 PrerenderContents::PendingPrerenderData::PendingPrerenderData(
74 Origin origin, 74 Origin origin,
75 const GURL& url, 75 const GURL& url,
76 const GURL& referrer) 76 const content::Referrer& referrer)
77 : origin(origin), 77 : origin(origin),
78 url(url), 78 url(url),
79 referrer(referrer) { 79 referrer(referrer) {
80 } 80 }
81 81
82 // TabContentsDelegateImpl ----------------------------------------------------- 82 // TabContentsDelegateImpl -----------------------------------------------------
83 83
84 class PrerenderContents::TabContentsDelegateImpl 84 class PrerenderContents::TabContentsDelegateImpl
85 : public TabContentsDelegate { 85 : public TabContentsDelegate {
86 public: 86 public:
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 AddPageVector; 138 AddPageVector;
139 139
140 // Caches pages to be added to the history. 140 // Caches pages to be added to the history.
141 AddPageVector add_page_vector_; 141 AddPageVector add_page_vector_;
142 142
143 PrerenderContents* prerender_contents_; 143 PrerenderContents* prerender_contents_;
144 }; 144 };
145 145
146 void PrerenderContents::AddPendingPrerender(Origin origin, 146 void PrerenderContents::AddPendingPrerender(Origin origin,
147 const GURL& url, 147 const GURL& url,
148 const GURL& referrer) { 148 const content::Referrer& referrer) {
149 pending_prerender_list_.push_back( 149 pending_prerender_list_.push_back(
150 PendingPrerenderData(origin, url, referrer)); 150 PendingPrerenderData(origin, url, referrer));
151 } 151 }
152 152
153 bool PrerenderContents::IsPendingEntry(const GURL& url) const { 153 bool PrerenderContents::IsPendingEntry(const GURL& url) const {
154 for (PendingPrerenderList::const_iterator it = 154 for (PendingPrerenderList::const_iterator it =
155 pending_prerender_list_.begin(); 155 pending_prerender_list_.begin();
156 it != pending_prerender_list_.end(); 156 it != pending_prerender_list_.end();
157 ++it) { 157 ++it) {
158 if (it->url == url) 158 if (it->url == url)
(...skipping 14 matching lines...) Expand all
173 it->referrer, 173 it->referrer,
174 NULL); 174 NULL);
175 } 175 }
176 } 176 }
177 177
178 PrerenderContents::PrerenderContents( 178 PrerenderContents::PrerenderContents(
179 PrerenderManager* prerender_manager, 179 PrerenderManager* prerender_manager,
180 PrerenderTracker* prerender_tracker, 180 PrerenderTracker* prerender_tracker,
181 Profile* profile, 181 Profile* profile,
182 const GURL& url, 182 const GURL& url,
183 const GURL& referrer, 183 const content::Referrer& referrer,
184 Origin origin, 184 Origin origin,
185 uint8 experiment_id) 185 uint8 experiment_id)
186 : prerender_manager_(prerender_manager), 186 : prerender_manager_(prerender_manager),
187 prerender_tracker_(prerender_tracker), 187 prerender_tracker_(prerender_tracker),
188 prerender_url_(url), 188 prerender_url_(url),
189 referrer_(referrer), 189 referrer_(referrer),
190 profile_(profile), 190 profile_(profile),
191 page_id_(0), 191 page_id_(0),
192 has_stopped_loading_(false), 192 has_stopped_loading_(false),
193 final_status_(FINAL_STATUS_MAX), 193 final_status_(FINAL_STATUS_MAX),
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 content::Source<TabContents>(new_contents)); 320 content::Source<TabContents>(new_contents));
321 321
322 DCHECK(load_start_time_.is_null()); 322 DCHECK(load_start_time_.is_null());
323 load_start_time_ = base::TimeTicks::Now(); 323 load_start_time_ = base::TimeTicks::Now();
324 324
325 content::PageTransition transition = content::PAGE_TRANSITION_LINK; 325 content::PageTransition transition = content::PAGE_TRANSITION_LINK;
326 if (origin_ == ORIGIN_OMNIBOX_EXACT || origin_ == ORIGIN_OMNIBOX_EXACT_FULL) 326 if (origin_ == ORIGIN_OMNIBOX_EXACT || origin_ == ORIGIN_OMNIBOX_EXACT_FULL)
327 transition = content::PAGE_TRANSITION_TYPED; 327 transition = content::PAGE_TRANSITION_TYPED;
328 new_contents->controller().LoadURL( 328 new_contents->controller().LoadURL(
329 prerender_url_, 329 prerender_url_,
330 content::Referrer(referrer_, WebKit::WebReferrerPolicyDefault), 330 referrer_,
331 transition, std::string()); 331 transition, std::string());
332 } 332 }
333 333
334 bool PrerenderContents::GetChildId(int* child_id) const { 334 bool PrerenderContents::GetChildId(int* child_id) const {
335 CHECK(child_id); 335 CHECK(child_id);
336 DCHECK_GE(child_id_, -1); 336 DCHECK_GE(child_id_, -1);
337 *child_id = child_id_; 337 *child_id = child_id_;
338 return child_id_ != -1; 338 return child_id_ != -1;
339 } 339 }
340 340
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 bool PrerenderContents::IsCrossSiteNavigationPending() const { 676 bool PrerenderContents::IsCrossSiteNavigationPending() const {
677 if (!prerender_contents_.get() || !prerender_contents_->tab_contents()) 677 if (!prerender_contents_.get() || !prerender_contents_->tab_contents())
678 return false; 678 return false;
679 const TabContents* tab_contents = prerender_contents_->tab_contents(); 679 const TabContents* tab_contents = prerender_contents_->tab_contents();
680 return (tab_contents->GetSiteInstance() != 680 return (tab_contents->GetSiteInstance() !=
681 tab_contents->GetPendingSiteInstance()); 681 tab_contents->GetPendingSiteInstance());
682 } 682 }
683 683
684 684
685 } // namespace prerender 685 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_contents.h ('k') | chrome/browser/prerender/prerender_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698