Chromium Code Reviews| Index: chrome/browser/prerender/prerender_contents.cc |
| diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc |
| index cfe63432585dd4b5973cc2bac784beebed340ed7..152a8bf1464d8c6eae63ca861f8b5ecf3d5353ff 100644 |
| --- a/chrome/browser/prerender/prerender_contents.cc |
| +++ b/chrome/browser/prerender/prerender_contents.cc |
| @@ -33,8 +33,26 @@ |
| #include "chrome/browser/mach_broker_mac.h" |
| #endif |
| +#include <algorithm> |
|
mmenke
2011/04/22 18:24:45
This should go up top, above #include "base/proces
dominich
2011/04/22 18:35:15
Done.
|
| + |
| 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.host() == url_.host() && |
|
mmenke
2011/04/22 18:24:45
Should probably have scheme in here to reduce the
dominich
2011/04/22 18:35:15
Done.
|
| + 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)); |
| @@ -491,8 +509,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() { |