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

Unified Diff: Source/core/frame/Frame.h

Issue 115293005: Add a layer of indirection between Frame and Page (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Make GCC happy Created 7 years 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
« no previous file with comments | « Source/core/frame/DOMWindow.cpp ('k') | Source/core/frame/Frame.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/frame/Frame.h
diff --git a/Source/core/frame/Frame.h b/Source/core/frame/Frame.h
index 3c669f7db3dd338bf2cf0adf525f938cc90b3bf7..50659c4e357cd2daf2fae87f42a4a6bce0e6081e 100644
--- a/Source/core/frame/Frame.h
+++ b/Source/core/frame/Frame.h
@@ -55,6 +55,7 @@ namespace WebCore {
class FetchContext;
class FloatSize;
class FrameDestructionObserver;
+ class FrameHost;
class FrameSelection;
class FrameView;
class HTMLFrameOwnerElement;
@@ -62,6 +63,7 @@ namespace WebCore {
class InputMethodController;
class IntPoint;
class Node;
+ class Page;
class Range;
class RenderPart;
class RenderView;
@@ -76,27 +78,27 @@ namespace WebCore {
class FrameInit : public RefCounted<FrameInit> {
public:
// For creating a dummy Frame
- static PassRefPtr<FrameInit> create(int64_t frameID, Page* page, FrameLoaderClient* client)
+ static PassRefPtr<FrameInit> create(int64_t frameID, FrameHost* host, FrameLoaderClient* client)
{
- return adoptRef(new FrameInit(frameID, page, client));
+ return adoptRef(new FrameInit(frameID, host, client));
}
- void setFrameLoaderClient(FrameLoaderClient* client) { m_client = client; }
- FrameLoaderClient* frameLoaderClient() const { return m_client; }
-
int64_t frameID() const { return m_frameID; }
- void setPage(Page* page) { m_page = page; }
- Page* page() const { return m_page; }
+ void setFrameHost(FrameHost* host) { m_frameHost = host; }
+ FrameHost* frameHost() const { return m_frameHost; }
+
+ void setFrameLoaderClient(FrameLoaderClient* client) { m_client = client; }
+ FrameLoaderClient* frameLoaderClient() const { return m_client; }
void setOwnerElement(HTMLFrameOwnerElement* ownerElement) { m_ownerElement = ownerElement; }
HTMLFrameOwnerElement* ownerElement() const { return m_ownerElement; }
protected:
- FrameInit(int64_t frameID, Page* page = 0, FrameLoaderClient* client = 0)
+ FrameInit(int64_t frameID, FrameHost* host = 0, FrameLoaderClient* client = 0)
: m_frameID(frameID)
, m_client(client)
- , m_page(page)
+ , m_frameHost(host)
, m_ownerElement(0)
{
}
@@ -104,7 +106,7 @@ namespace WebCore {
private:
int64_t m_frameID;
FrameLoaderClient* m_client;
- Page* m_page;
+ FrameHost* m_frameHost;
HTMLFrameOwnerElement* m_ownerElement;
};
@@ -123,11 +125,16 @@ namespace WebCore {
void addDestructionObserver(FrameDestructionObserver*);
void removeDestructionObserver(FrameDestructionObserver*);
- void willDetachPage();
- void detachFromPage();
+ void willDetachFrameHost();
+ void detachFromFrameHost();
void disconnectOwnerElement();
+ // NOTE: Page is moving out of Blink up into the browser process as
+ // part of the site-isolation (out of process iframes) work.
+ // FrameHost should be used instead where possible.
Page* page() const;
+ FrameHost* host() const; // Null when the frame is detached.
+
HTMLFrameOwnerElement* ownerElement() const;
bool isMainFrame() const;
@@ -156,6 +163,8 @@ namespace WebCore {
int64_t frameID() const { return m_frameInit->frameID(); }
+ // FIXME: These should move to RemoteFrame once that exists.
+ // RemotePlatformLayer is only ever set for Frames which exist in another process.
void setRemotePlatformLayer(blink::WebLayer* remotePlatformLayer) { m_remotePlatformLayer = remotePlatformLayer; }
blink::WebLayer* remotePlatformLayer() const { return m_remotePlatformLayer; }
@@ -217,7 +226,7 @@ namespace WebCore {
HashSet<FrameDestructionObserver*> m_destructionObservers;
- Page* m_page;
+ FrameHost* m_host;
mutable FrameTree m_treeNode;
mutable FrameLoader m_loader;
mutable NavigationScheduler m_navigationScheduler;
@@ -322,11 +331,6 @@ namespace WebCore {
return m_treeNode;
}
- inline Page* Frame::page() const
- {
- return m_page;
- }
-
inline EventHandler& Frame::eventHandler() const
{
ASSERT(m_eventHandler);
« no previous file with comments | « Source/core/frame/DOMWindow.cpp ('k') | Source/core/frame/Frame.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698