| Index: chrome/browser/prerender/prerender_contents.cc
|
| diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
|
| index a5d797507a5cb2a4b37ae7bdef513abce04d764d..50dd7b4a7e6e95d959cfd7a3e2c5e3757515e603 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));
|
| }
|
| }
|
|
|
| @@ -146,9 +146,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,
|
| @@ -317,14 +320,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,
|
| @@ -332,8 +340,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 {
|
|
|