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

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

Issue 6543010: Revert 75393 - Cancel prerender if any of the visited URLs are https.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 10 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) 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 "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/browser/background_contents_service.h" 8 #include "chrome/browser/background_contents_service.h"
9 #include "chrome/browser/browsing_instance.h" 9 #include "chrome/browser/browsing_instance.h"
10 #include "chrome/browser/prerender/prerender_final_status.h" 10 #include "chrome/browser/prerender/prerender_final_status.h"
(...skipping 30 matching lines...) Expand all
41 const GURL& referrer) 41 const GURL& referrer)
42 : prerender_manager_(prerender_manager), 42 : prerender_manager_(prerender_manager),
43 render_view_host_(NULL), 43 render_view_host_(NULL),
44 prerender_url_(url), 44 prerender_url_(url),
45 referrer_(referrer), 45 referrer_(referrer),
46 profile_(profile), 46 profile_(profile),
47 page_id_(0), 47 page_id_(0),
48 has_stopped_loading_(false), 48 has_stopped_loading_(false),
49 final_status_(FINAL_STATUS_MAX) { 49 final_status_(FINAL_STATUS_MAX) {
50 DCHECK(prerender_manager != NULL); 50 DCHECK(prerender_manager != NULL);
51 DCHECK(AddAliasURL(prerender_url_)); 51 AddAliasURL(prerender_url_);
52 for (std::vector<GURL>::const_iterator it = alias_urls.begin(); 52 for (std::vector<GURL>::const_iterator it = alias_urls.begin();
53 it != alias_urls.end(); 53 it != alias_urls.end();
54 ++it) { 54 ++it) {
55 DCHECK(AddAliasURL(*it)); 55 AddAliasURL(*it);
56 } 56 }
57 } 57 }
58 58
59 // static 59 // static
60 PrerenderContents::Factory* PrerenderContents::CreateFactory() { 60 PrerenderContents::Factory* PrerenderContents::CreateFactory() {
61 return new PrerenderContentsFactoryImpl(); 61 return new PrerenderContentsFactoryImpl();
62 } 62 }
63 63
64 void PrerenderContents::StartPrerendering() { 64 void PrerenderContents::StartPrerendering() {
65 DCHECK(profile_ != NULL); 65 DCHECK(profile_ != NULL);
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 const ViewHostMsg_FrameNavigate_Params& params) { 144 const ViewHostMsg_FrameNavigate_Params& params) {
145 // We only care when the outer frame changes. 145 // We only care when the outer frame changes.
146 if (!PageTransition::IsMainFrame(params.transition)) 146 if (!PageTransition::IsMainFrame(params.transition))
147 return; 147 return;
148 148
149 // Store the navigation params. 149 // Store the navigation params.
150 ViewHostMsg_FrameNavigate_Params* p = new ViewHostMsg_FrameNavigate_Params(); 150 ViewHostMsg_FrameNavigate_Params* p = new ViewHostMsg_FrameNavigate_Params();
151 *p = params; 151 *p = params;
152 navigate_params_.reset(p); 152 navigate_params_.reset(p);
153 153
154 if (!AddAliasURL(params.url)) { 154 url_ = params.url;
155 Destroy(FINAL_STATUS_HTTPS);
156 return;
157 }
158 155
159 url_ = params.url; 156 AddAliasURL(url_);
160 } 157 }
161 158
162 void PrerenderContents::UpdateTitle(RenderViewHost* render_view_host, 159 void PrerenderContents::UpdateTitle(RenderViewHost* render_view_host,
163 int32 page_id, 160 int32 page_id,
164 const std::wstring& title) { 161 const std::wstring& title) {
165 if (title.empty()) { 162 if (title.empty()) {
166 return; 163 return;
167 } 164 }
168 165
169 title_ = WideToUTF16Hack(title); 166 title_ = WideToUTF16Hack(title);
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateFavIconURL, OnUpdateFavIconURL) 333 IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateFavIconURL, OnUpdateFavIconURL)
337 IPC_MESSAGE_UNHANDLED(handled = false) 334 IPC_MESSAGE_UNHANDLED(handled = false)
338 IPC_END_MESSAGE_MAP_EX() 335 IPC_END_MESSAGE_MAP_EX()
339 336
340 return handled; 337 return handled;
341 } 338 }
342 339
343 void PrerenderContents::OnDidStartProvisionalLoadForFrame(int64 frame_id, 340 void PrerenderContents::OnDidStartProvisionalLoadForFrame(int64 frame_id,
344 bool is_main_frame, 341 bool is_main_frame,
345 const GURL& url) { 342 const GURL& url) {
346 if (is_main_frame) { 343 if (is_main_frame)
347 if (!AddAliasURL(url)) { 344 AddAliasURL(url);
348 Destroy(FINAL_STATUS_HTTPS);
349 return;
350 }
351 }
352 } 345 }
353 346
354 void PrerenderContents::OnDidRedirectProvisionalLoad(int32 page_id, 347 void PrerenderContents::OnDidRedirectProvisionalLoad(int32 page_id,
355 const GURL& source_url, 348 const GURL& source_url,
356 const GURL& target_url) { 349 const GURL& target_url) {
357 if (!AddAliasURL(target_url)) 350 AddAliasURL(target_url);
358 Destroy(FINAL_STATUS_HTTPS);
359 } 351 }
360 352
361 void PrerenderContents::OnUpdateFavIconURL(int32 page_id, 353 void PrerenderContents::OnUpdateFavIconURL(int32 page_id,
362 const GURL& icon_url) { 354 const GURL& icon_url) {
363 icon_url_ = icon_url; 355 icon_url_ = icon_url;
364 } 356 }
365 357
366 bool PrerenderContents::AddAliasURL(const GURL& url) { 358 void PrerenderContents::AddAliasURL(const GURL& url) {
367 if (!url.SchemeIs("http"))
368 return false;
369 alias_urls_.push_back(url); 359 alias_urls_.push_back(url);
370 return true;
371 } 360 }
372 361
373 bool PrerenderContents::MatchesURL(const GURL& url) const { 362 bool PrerenderContents::MatchesURL(const GURL& url) const {
374 return std::find(alias_urls_.begin(), alias_urls_.end(), url) 363 return std::find(alias_urls_.begin(), alias_urls_.end(), url)
375 != alias_urls_.end(); 364 != alias_urls_.end();
376 } 365 }
377 366
378 void PrerenderContents::DidStopLoading() { 367 void PrerenderContents::DidStopLoading() {
379 has_stopped_loading_ = true; 368 has_stopped_loading_ = true;
380 } 369 }
381 370
382 void PrerenderContents::Destroy(FinalStatus final_status) { 371 void PrerenderContents::Destroy(FinalStatus final_status) {
383 prerender_manager_->RemoveEntry(this); 372 prerender_manager_->RemoveEntry(this);
384 set_final_status(final_status); 373 set_final_status(final_status);
385 delete this; 374 delete this;
386 } 375 }
387 376
388 } // namespace prerender 377 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_contents.h ('k') | chrome/browser/prerender/prerender_resource_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698