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

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

Issue 10933065: Separate same domain and cross domain <link rel=...> prerenders for reporting. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fix pending prerenders Created 8 years, 3 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 | Annotate | Revision Log
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 <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 AddPageVector; 183 AddPageVector;
184 184
185 // Caches pages to be added to the history. 185 // Caches pages to be added to the history.
186 AddPageVector add_page_vector_; 186 AddPageVector add_page_vector_;
187 187
188 PrerenderContents* prerender_contents_; 188 PrerenderContents* prerender_contents_;
189 }; 189 };
190 190
191 void PrerenderContents::AddPendingPrerender( 191 void PrerenderContents::AddPendingPrerender(
192 const base::WeakPtr<PrerenderHandle> weak_prerender_handle, 192 const base::WeakPtr<PrerenderHandle> weak_prerender_handle,
193 const Origin origin,
dominich 2012/09/14 14:40:45 nit: no need for const here
193 const GURL& url, 194 const GURL& url,
194 const content::Referrer& referrer, 195 const content::Referrer& referrer,
195 const gfx::Size& size) { 196 const gfx::Size& size) {
196 pending_prerenders_.push_back( 197 pending_prerenders_.push_back(
197 PendingPrerenderInfo(weak_prerender_handle, url, referrer, size)); 198 PendingPrerenderInfo(weak_prerender_handle, origin, url, referrer, size));
198 } 199 }
199 200
200 bool PrerenderContents::IsPendingEntry( 201 bool PrerenderContents::IsPendingEntry(
201 const PrerenderHandle& prerender_handle) const { 202 const PrerenderHandle& prerender_handle) const {
202 for (std::vector<PendingPrerenderInfo>::const_iterator it = 203 for (std::vector<PendingPrerenderInfo>::const_iterator it =
203 pending_prerenders_.begin(); 204 pending_prerenders_.begin();
204 it != pending_prerenders_.end(); 205 it != pending_prerenders_.end();
205 ++it) { 206 ++it) {
206 if (it->weak_prerender_handle.get() == &prerender_handle) 207 if (it->weak_prerender_handle.get() == &prerender_handle)
207 return true; 208 return true;
(...skipping 12 matching lines...) Expand all
220 DCHECK(child_id_ == -1 || session_storage_namespace); 221 DCHECK(child_id_ == -1 || session_storage_namespace);
221 222
222 std::vector<PendingPrerenderInfo> pending_prerender_list; 223 std::vector<PendingPrerenderInfo> pending_prerender_list;
223 pending_prerender_list.swap(pending_prerenders_); 224 pending_prerender_list.swap(pending_prerenders_);
224 for (std::vector<PendingPrerenderInfo>::iterator it = 225 for (std::vector<PendingPrerenderInfo>::iterator it =
225 pending_prerender_list.begin(); 226 pending_prerender_list.begin();
226 it != pending_prerender_list.end(); 227 it != pending_prerender_list.end();
227 ++it) { 228 ++it) {
228 if (it->weak_prerender_handle && it->weak_prerender_handle->IsValid()) { 229 if (it->weak_prerender_handle && it->weak_prerender_handle->IsValid()) {
229 prerender_manager_->StartPendingPrerender( 230 prerender_manager_->StartPendingPrerender(
230 it->weak_prerender_handle.get(), ORIGIN_LINK_REL_PRERENDER, child_id_, 231 it->weak_prerender_handle.get(), it->origin, child_id_,
231 it->url, it->referrer, it->size, session_storage_namespace); 232 it->url, it->referrer, it->size, session_storage_namespace);
232 } 233 }
233 } 234 }
234 } 235 }
235 236
236 PrerenderContents::PendingPrerenderInfo::PendingPrerenderInfo( 237 PrerenderContents::PendingPrerenderInfo::PendingPrerenderInfo(
237 const base::WeakPtr<PrerenderHandle> weak_prerender_handle, 238 const base::WeakPtr<PrerenderHandle> weak_prerender_handle,
239 const Origin origin,
238 const GURL& url, 240 const GURL& url,
239 const content::Referrer& referrer, 241 const content::Referrer& referrer,
240 const gfx::Size& size) 242 const gfx::Size& size)
241 : weak_prerender_handle(weak_prerender_handle), 243 : weak_prerender_handle(weak_prerender_handle),
244 origin(origin),
242 url(url), 245 url(url),
243 referrer(referrer), 246 referrer(referrer),
244 size(size) { 247 size(size) {
245 } 248 }
246 249
247 PrerenderContents::PendingPrerenderInfo::~PendingPrerenderInfo() { 250 PrerenderContents::PendingPrerenderInfo::~PendingPrerenderInfo() {
248 } 251 }
249 252
250 PrerenderContents::PrerenderContents( 253 PrerenderContents::PrerenderContents(
251 PrerenderManager* prerender_manager, 254 PrerenderManager* prerender_manager,
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 bool PrerenderContents::IsCrossSiteNavigationPending() const { 721 bool PrerenderContents::IsCrossSiteNavigationPending() const {
719 if (!prerender_contents_.get() || !prerender_contents_->web_contents()) 722 if (!prerender_contents_.get() || !prerender_contents_->web_contents())
720 return false; 723 return false;
721 const WebContents* web_contents = prerender_contents_->web_contents(); 724 const WebContents* web_contents = prerender_contents_->web_contents();
722 return (web_contents->GetSiteInstance() != 725 return (web_contents->GetSiteInstance() !=
723 web_contents->GetPendingSiteInstance()); 726 web_contents->GetPendingSiteInstance());
724 } 727 }
725 728
726 729
727 } // namespace prerender 730 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698