summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prerender/prerender_contents.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/prerender/prerender_contents.h')
-rw-r--r--chrome/browser/prerender/prerender_contents.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/chrome/browser/prerender/prerender_contents.h b/chrome/browser/prerender/prerender_contents.h
index bf2963f..f64697e 100644
--- a/chrome/browser/prerender/prerender_contents.h
+++ b/chrome/browser/prerender/prerender_contents.h
@@ -37,7 +37,7 @@ class PrerenderContents : public RenderViewHostDelegate,
public JavaScriptAppModalDialogDelegate {
public:
PrerenderContents(PrerenderManager* prerender_manager, Profile* profile,
- const GURL& url);
+ const GURL& url, const std::vector<GURL>& alias_urls);
virtual ~PrerenderContents();
virtual void StartPrerendering();
@@ -52,6 +52,10 @@ class PrerenderContents : public RenderViewHostDelegate,
string16 title() const { return title_; }
int32 page_id() const { return page_id_; }
+ // Indicates whether this prerendered page can be used for the provided
+ // URL, i.e. whether there is a match.
+ bool MatchesURL(const GURL& url) const;
+
// RenderViewHostDelegate implementation.
virtual RenderViewHostDelegate::View* GetViewDelegate();
virtual const GURL& GetURL() const;
@@ -133,7 +137,21 @@ class PrerenderContents : public RenderViewHostDelegate,
const std::string& value);
virtual void ClearInspectorSettings();
+ protected:
+ // from RenderViewHostDelegate.
+ virtual bool OnMessageReceived(const IPC::Message& message);
+
private:
+ // Message handlers.
+ void OnDidStartProvisionalLoadForFrame(int64 frame_id,
+ bool main_frame,
+ const GURL& url);
+ void OnDidRedirectProvisionalLoad(int32 page_id,
+ const GURL& source_url,
+ const GURL& target_url);
+
+ void AddAliasURL(const GURL& url);
+
// The prerender manager owning this object.
PrerenderManager* prerender_manager_;
@@ -162,6 +180,11 @@ class PrerenderContents : public RenderViewHostDelegate,
GURL url_;
NotificationRegistrar registrar_;
+ // A vector of URLs that this prerendered page matches against.
+ // This array can contain more than element as a result of redirects,
+ // such as HTTP redirects or javascript redirects.
+ std::vector<GURL> alias_urls_;
+
DISALLOW_COPY_AND_ASSIGN(PrerenderContents);
};