Index: Source/core/frame/Frame.h |
diff --git a/Source/core/frame/Frame.h b/Source/core/frame/Frame.h |
index 0937f95e287c1a3e1e88a4f141d197eb050f750e..5aeadb94b033da6fd3447c287aede55014128e3f 100644 |
--- a/Source/core/frame/Frame.h |
+++ b/Source/core/frame/Frame.h |
@@ -68,9 +68,44 @@ namespace WebCore { |
class VisiblePosition; |
class Widget; |
+ class FrameInit : public RefCounted<FrameInit> { |
+ public: |
+ // For creating a dummy Frame |
+ static PassRefPtr<FrameInit> create(int64_t frameID, Page* page, FrameLoaderClient* client) |
+ { |
+ return adoptRef(new FrameInit(frameID, page, 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 setOwnerElement(HTMLFrameOwnerElement* ownerElement) { m_ownerElement = ownerElement; } |
+ HTMLFrameOwnerElement* ownerElement() const { return m_ownerElement; } |
+ |
+ protected: |
+ FrameInit(int64_t frameID, Page* page = 0, FrameLoaderClient* client = 0) |
+ : m_frameID(frameID) |
+ , m_client(client) |
+ , m_page(page) |
+ , m_ownerElement(0) |
+ { |
+ } |
+ |
+ private: |
+ int64_t m_frameID; |
+ FrameLoaderClient* m_client; |
+ Page* m_page; |
+ HTMLFrameOwnerElement* m_ownerElement; |
+ }; |
+ |
class Frame : public RefCounted<Frame> { |
public: |
- static PassRefPtr<Frame> create(Page*, HTMLFrameOwnerElement*, FrameLoaderClient*); |
+ static PassRefPtr<Frame> create(PassRefPtr<FrameInit>); |
void init(); |
void setView(PassRefPtr<FrameView>); |
@@ -112,6 +147,8 @@ namespace WebCore { |
void dispatchVisibilityStateChangeEvent(); |
+ int64_t frameID() const { return m_frameInit->frameID(); } |
+ |
// ======== All public functions below this point are candidates to move out of Frame into another class. ======== |
bool inScope(TreeScope*) const; |
@@ -166,7 +203,7 @@ namespace WebCore { |
// ======== |
private: |
- Frame(Page*, HTMLFrameOwnerElement*, FrameLoaderClient*); |
+ Frame(PassRefPtr<FrameInit>); |
HashSet<FrameDestructionObserver*> m_destructionObservers; |
@@ -175,7 +212,6 @@ namespace WebCore { |
mutable FrameLoader m_loader; |
mutable NavigationScheduler m_navigationScheduler; |
- HTMLFrameOwnerElement* m_ownerElement; |
RefPtr<FrameView> m_view; |
RefPtr<DOMWindow> m_domWindow; |
@@ -187,6 +223,8 @@ namespace WebCore { |
OwnPtr<AnimationController> m_animationController; |
OwnPtr<InputMethodController> m_inputMethodController; |
+ RefPtr<FrameInit> m_frameInit; |
+ |
float m_pageZoomFactor; |
float m_textZoomFactor; |
@@ -254,7 +292,7 @@ namespace WebCore { |
inline HTMLFrameOwnerElement* Frame::ownerElement() const |
{ |
- return m_ownerElement; |
+ return m_frameInit->ownerElement(); |
} |
inline bool Frame::inViewSourceMode() const |