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

Unified Diff: chrome/browser/prerender/prerender_contents.cc

Issue 6523062: Cancel prerender if any of the visited URLs are https. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/prerender/prerender_contents.cc
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
index 7428b0e2ca8c647051450fb672bb9571cba397a1..03ce8a66f77dfddffa09ddab9593aa1bb0941e7d 100644
--- a/chrome/browser/prerender/prerender_contents.cc
+++ b/chrome/browser/prerender/prerender_contents.cc
@@ -48,11 +48,11 @@ PrerenderContents::PrerenderContents(PrerenderManager* prerender_manager,
has_stopped_loading_(false),
final_status_(FINAL_STATUS_MAX) {
DCHECK(prerender_manager != NULL);
- AddAliasURL(prerender_url_);
+ DCHECK(AddAliasURL(prerender_url_));
for (std::vector<GURL>::const_iterator it = alias_urls.begin();
it != alias_urls.end();
++it) {
- AddAliasURL(*it);
+ DCHECK(AddAliasURL(*it));
}
}
@@ -151,9 +151,12 @@ void PrerenderContents::DidNavigate(
*p = params;
navigate_params_.reset(p);
- url_ = params.url;
+ if (!AddAliasURL(params.url)) {
+ Destroy(FINAL_STATUS_HTTPS);
+ return;
+ }
- AddAliasURL(url_);
+ url_ = params.url;
}
void PrerenderContents::UpdateTitle(RenderViewHost* render_view_host,
@@ -340,14 +343,19 @@ bool PrerenderContents::OnMessageReceived(const IPC::Message& message) {
void PrerenderContents::OnDidStartProvisionalLoadForFrame(int64 frame_id,
bool is_main_frame,
const GURL& url) {
- if (is_main_frame)
- AddAliasURL(url);
+ if (is_main_frame) {
+ if (!AddAliasURL(url)) {
+ Destroy(FINAL_STATUS_HTTPS);
+ return;
+ }
+ }
}
void PrerenderContents::OnDidRedirectProvisionalLoad(int32 page_id,
const GURL& source_url,
const GURL& target_url) {
- AddAliasURL(target_url);
+ if (!AddAliasURL(target_url))
+ Destroy(FINAL_STATUS_HTTPS);
}
void PrerenderContents::OnUpdateFavIconURL(int32 page_id,
@@ -355,8 +363,11 @@ void PrerenderContents::OnUpdateFavIconURL(int32 page_id,
icon_url_ = icon_url;
}
-void PrerenderContents::AddAliasURL(const GURL& url) {
+bool PrerenderContents::AddAliasURL(const GURL& url) {
+ if (!url.SchemeIs("http"))
+ return false;
alias_urls_.push_back(url);
+ return true;
}
bool PrerenderContents::MatchesURL(const GURL& url) const {
« 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