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

Unified Diff: content/browser/web_contents/web_contents_impl.h

Issue 10831116: Move SessionStorageNamespace entirely into NavigationController and support StoragePartitions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix content shell Created 8 years, 5 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: content/browser/web_contents/web_contents_impl.h
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 4a468ed5b250ba36c44ddf0a26dee0b05bf00cbd..92d52f5619f15fe8a55f097d9b113a2ba0f98f4b 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -74,19 +74,32 @@ class CONTENT_EXPORT WebContentsImpl
public RenderViewHostManager::Delegate,
public content::NotificationObserver {
public:
- // See WebContents::Create for a description of these parameters.
- WebContentsImpl(content::BrowserContext* browser_context,
- content::SiteInstance* site_instance,
- int routing_id,
- const WebContentsImpl* base_web_contents,
- WebContentsImpl* opener,
- SessionStorageNamespaceImpl* session_storage_namespace);
virtual ~WebContentsImpl();
+ static WebContentsImpl* Create(
+ content::BrowserContext* browser_context,
+ content::SiteInstance* site_instance,
+ int routing_id,
+ const WebContentsImpl* base_web_contents);
+
+ static WebContentsImpl* CreateWithOpener(
+ content::BrowserContext* browser_context,
+ content::SiteInstance* site_instance,
+ int routing_id,
+ const WebContentsImpl* base_web_contents,
+ WebContentsImpl* opener);
+
// Returns the content specific prefs for the given RVH.
static webkit_glue::WebPreferences GetWebkitPrefs(
content::RenderViewHost* rvh, const GURL& url);
+ // Complex initialization here. Specifically needed to avoid having
+ // members call back into our virtual functions in the constructor.
+ virtual void Init(content::BrowserContext* browser_context,
+ content::SiteInstance* site_instance,
+ int routing_id,
+ const content::WebContents* base_web_contents);
+
// Returns the SavePackage which manages the page saving job. May be NULL.
SavePackage* save_package() const { return save_package_.get(); }
@@ -146,9 +159,6 @@ class CONTENT_EXPORT WebContentsImpl
return browser_plugin_host_.get();
}
- // Like GetController from WebContents, but returns the concrete object.
- NavigationControllerImpl& GetControllerImpl();
-
// Expose the render manager for testing.
RenderViewHostManager* GetRenderManagerForTesting();
@@ -157,8 +167,8 @@ class CONTENT_EXPORT WebContentsImpl
virtual base::PropertyBag* GetPropertyBag() OVERRIDE;
virtual content::WebContentsDelegate* GetDelegate() OVERRIDE;
virtual void SetDelegate(content::WebContentsDelegate* delegate) OVERRIDE;
- virtual content::NavigationController& GetController() OVERRIDE;
- virtual const content::NavigationController& GetController() const OVERRIDE;
+ virtual NavigationControllerImpl& GetController() OVERRIDE;
+ virtual const NavigationControllerImpl& GetController() const OVERRIDE;
virtual content::BrowserContext* GetBrowserContext() const OVERRIDE;
virtual content::RenderProcessHost* GetRenderProcessHost() const OVERRIDE;
virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE;
@@ -262,7 +272,7 @@ class CONTENT_EXPORT WebContentsImpl
virtual bool OnMessageReceived(content::RenderViewHost* render_view_host,
const IPC::Message& message) OVERRIDE;
virtual const GURL& GetURL() const OVERRIDE;
- virtual WebContents* GetAsWebContents() OVERRIDE;
+ virtual content::WebContents* GetAsWebContents() OVERRIDE;
virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE;
virtual void RenderViewCreated(
content::RenderViewHost* render_view_host) OVERRIDE;
@@ -434,18 +444,11 @@ class CONTENT_EXPORT WebContentsImpl
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
- protected:
- friend class content::WebContentsObserver;
-
- // Add and remove observers for page navigation notifications. Adding or
- // removing multiple times has no effect. The order in which notifications
- // are sent to observers is undefined. Clients must be sure to remove the
- // observer before they go away.
- void AddObserver(content::WebContentsObserver* observer);
- void RemoveObserver(content::WebContentsObserver* observer);
private:
friend class NavigationControllerImpl;
+ friend class content::WebContentsObserver;
+ friend class content::WebContents; // To implement factory methods.
FRIEND_TEST_ALL_PREFIXES(WebContentsImplTest, NoJSMessageOnInterstitials);
FRIEND_TEST_ALL_PREFIXES(WebContentsImplTest, UpdateTitle);
@@ -461,6 +464,17 @@ class CONTENT_EXPORT WebContentsImpl
// TODO(brettw) TestWebContents shouldn't exist!
friend class content::TestWebContents;
+ // See WebContents::Create for a description of these parameters.
+ WebContentsImpl(content::BrowserContext* browser_context,
+ WebContentsImpl* opener);
+
+ // Add and remove observers for page navigation notifications. Adding or
+ // removing multiple times has no effect. The order in which notifications
+ // are sent to observers is undefined. Clients must be sure to remove the
+ // observer before they go away.
+ void AddObserver(content::WebContentsObserver* observer);
+ void RemoveObserver(content::WebContentsObserver* observer);
+
// Clears this tab's opener if it has been closed.
void OnWebContentsDestroyed(content::WebContents* web_contents);

Powered by Google App Engine
This is Rietveld 408576698