| 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 {
|
|
|