| Index: chrome/browser/prerender/prerender_contents.cc
|
| diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
|
| index f4fa03342b0b02ea5196ba5050a302317abe364d..0a2651276e1428c1a037de591b3848e6235cf2e9 100644
|
| --- a/chrome/browser/prerender/prerender_contents.cc
|
| +++ b/chrome/browser/prerender/prerender_contents.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chrome/browser/prerender/prerender_contents.h"
|
|
|
| +#include <algorithm>
|
| +
|
| #include "base/i18n/rtl.h"
|
| #include "base/process_util.h"
|
| #include "base/task.h"
|
| @@ -37,6 +39,23 @@
|
|
|
| namespace prerender {
|
|
|
| +// Compares URLs ignoring any ref for the purposes of matching URLs when
|
| +// prerendering.
|
| +struct PrerenderUrlPredicate {
|
| + explicit PrerenderUrlPredicate(const GURL& url)
|
| + : url_(url) {
|
| + }
|
| +
|
| + bool operator()(const GURL& url) const {
|
| + return url.scheme() == url_.scheme() &&
|
| + url.host() == url_.host() &&
|
| + url.port() == url_.port() &&
|
| + url.path() == url_.path() &&
|
| + url.query() == url_.query();
|
| + }
|
| + GURL url_;
|
| +};
|
| +
|
| void AddChildRoutePair(ResourceDispatcherHost* rdh,
|
| int child_id, int route_id) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| @@ -507,8 +526,9 @@ bool PrerenderContents::AddAliasURL(const GURL& url) {
|
| }
|
|
|
| bool PrerenderContents::MatchesURL(const GURL& url) const {
|
| - return std::find(alias_urls_.begin(), alias_urls_.end(), url)
|
| - != alias_urls_.end();
|
| + return std::find_if(alias_urls_.begin(),
|
| + alias_urls_.end(),
|
| + PrerenderUrlPredicate(url)) != alias_urls_.end();
|
| }
|
|
|
| void PrerenderContents::DidStopLoading() {
|
|
|