Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3422)

Unified Diff: chrome/browser/prerender/prerender_contents.h

Issue 10198040: New link rel=prerender api, using WebKit::WebPrerenderingPlatform (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remediate to dominich review Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/prerender/prerender_contents.h
diff --git a/chrome/browser/prerender/prerender_contents.h b/chrome/browser/prerender/prerender_contents.h
index feeb4f43963a6aa7540be0fadf9c17b8e5686e73..d08df6db14f2289b1fcf130e437dbbd36f3cf91a 100644
--- a/chrome/browser/prerender/prerender_contents.h
+++ b/chrome/browser/prerender/prerender_contents.h
@@ -8,6 +8,7 @@
#include <list>
#include <string>
+#include <utility>
#include <vector>
#include "base/memory/scoped_ptr.h"
@@ -18,6 +19,7 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/common/referrer.h"
+#include "ui/gfx/size.h"
class Profile;
class TabContentsWrapper;
@@ -66,15 +68,7 @@ class PrerenderContents : public content::NotificationObserver,
};
// Information on pages that the prerendered page has tried to prerender.
- struct PendingPrerenderData {
- PendingPrerenderData(Origin origin,
- const GURL& url,
- const content::Referrer& referrer);
-
- Origin origin;
- GURL url;
- content::Referrer referrer;
- };
+ typedef std::pair<GURL, content::Referrer> PendingPrerenderData;
mmenke 2012/04/30 18:35:22 nit: Now that we have a "PrerenderExtraData", I s
gavinp 2012/04/30 23:55:39 Done, but spelled right.
mmenke 2012/05/01 16:23:21 I'm not going to sign off on this until you duplic
typedef std::list<PendingPrerenderData> PendingPrerenderList;
// Indicates how this PrerenderContents relates to MatchComplete.
@@ -103,15 +97,17 @@ class PrerenderContents : public content::NotificationObserver,
// |source_render_view_host| is the RenderViewHost that initiated
// prerendering.
virtual void StartPrerendering(
- const content::RenderViewHost* source_render_view_host,
+ int creator_child_id,
+ const gfx::Size& size,
content::SessionStorageNamespace* session_storage_namespace);
// Verifies that the prerendering is not using too many resources, and kills
// it if not.
void DestroyWhenUsingTooManyResources();
- content::RenderViewHost* render_view_host_mutable();
- const content::RenderViewHost* render_view_host() const;
+ content::RenderViewHost* GetRenderViewHostMutable();
+ const content::RenderViewHost* GetRenderViewHost() const;
+
string16 title() const { return title_; }
int32 page_id() const { return page_id_; }
GURL icon_url() const { return icon_url_; }
@@ -149,6 +145,8 @@ class PrerenderContents : public content::NotificationObserver,
// Indicates whether this prerendered page can be used for the provided
// URL, i.e. whether there is a match. |matching_url| is optional and will be
// set to the URL that is found as a match if it is provided.
+ // TODO(gavinp,mmenke): Rework matching to be based on both the URL
+ // and the session WebStorage.
bool MatchesURL(const GURL& url, GURL* matching_url) const;
void OnJSOutOfMemory();
@@ -205,8 +203,7 @@ class PrerenderContents : public content::NotificationObserver,
bool IsCrossSiteNavigationPending() const;
// Adds a pending prerender to the list.
- virtual void AddPendingPrerender(Origin origin,
- const GURL& url,
+ virtual void AddPendingPrerender(const GURL& url,
const content::Referrer& referrer);
// Returns true if |url| corresponds to a pending prerender.
@@ -238,6 +235,10 @@ class PrerenderContents : public content::NotificationObserver,
return &pending_prerender_list_;
}
+ bool prerendering_has_been_cancelled() const {
+ return prerendering_has_been_cancelled_;
+ }
+
virtual content::WebContents* CreateWebContents(
content::SessionStorageNamespace* session_storage_namespace);
@@ -341,6 +342,9 @@ class PrerenderContents : public content::NotificationObserver,
// The process that created the child id.
int creator_child_id_;
+ // The size of the WebView from the launching page.
+ gfx::Size size_;
+
DISALLOW_COPY_AND_ASSIGN(PrerenderContents);
};

Powered by Google App Engine
This is Rietveld 408576698