Index: Source/core/frame/Frame.cpp |
diff --git a/Source/core/frame/Frame.cpp b/Source/core/frame/Frame.cpp |
index 6cd08829c48cfaf7109ccb9ed6b271a76c4132fc..ec604a2be74919bf79632c164532c21339170783 100644 |
--- a/Source/core/frame/Frame.cpp |
+++ b/Source/core/frame/Frame.cpp |
@@ -100,12 +100,11 @@ static inline float parentTextZoomFactor(Frame* frame) |
return parent->textZoomFactor(); |
} |
-inline Frame::Frame(Page* page, HTMLFrameOwnerElement* ownerElement, FrameLoaderClient* frameLoaderClient) |
- : m_page(page) |
- , m_treeNode(this, parentFromOwnerElement(ownerElement)) |
- , m_loader(this, frameLoaderClient) |
+inline Frame::Frame(PassRefPtr<FrameInit> frameInit) |
+ : m_page(frameInit->page()) |
+ , m_treeNode(this, parentFromOwnerElement(frameInit->ownerElement())) |
+ , m_loader(this, frameInit->frameLoaderClient()) |
, m_navigationScheduler(this) |
- , m_ownerElement(ownerElement) |
, m_script(adoptPtr(new ScriptController(this))) |
, m_editor(Editor::create(*this)) |
, m_spellChecker(SpellChecker::create(*this)) |
@@ -113,6 +112,7 @@ inline Frame::Frame(Page* page, HTMLFrameOwnerElement* ownerElement, FrameLoader |
, m_eventHandler(adoptPtr(new EventHandler(this))) |
, m_animationController(adoptPtr(new AnimationController(this))) |
, m_inputMethodController(InputMethodController::create(*this)) |
+ , m_frameInit(frameInit) |
, m_pageZoomFactor(parentPageZoomFactor(this)) |
, m_textZoomFactor(parentTextZoomFactor(this)) |
#if ENABLE(ORIENTATION_EVENTS) |
@@ -120,11 +120,11 @@ inline Frame::Frame(Page* page, HTMLFrameOwnerElement* ownerElement, FrameLoader |
#endif |
, m_inViewSourceMode(false) |
{ |
- ASSERT(page); |
+ ASSERT(m_page); |
- if (ownerElement) { |
- page->incrementSubframeCount(); |
- ownerElement->setContentFrame(*this); |
+ if (ownerElement()) { |
+ m_page->incrementSubframeCount(); |
+ ownerElement()->setContentFrame(*this); |
} |
#ifndef NDEBUG |
@@ -132,11 +132,11 @@ inline Frame::Frame(Page* page, HTMLFrameOwnerElement* ownerElement, FrameLoader |
#endif |
} |
-PassRefPtr<Frame> Frame::create(Page* page, HTMLFrameOwnerElement* ownerElement, FrameLoaderClient* client) |
+PassRefPtr<Frame> Frame::create(PassRefPtr<FrameInit> frameInit) |
{ |
- RefPtr<Frame> frame = adoptRef(new Frame(page, ownerElement, client)); |
- if (!ownerElement) |
- page->setMainFrame(frame); |
+ RefPtr<Frame> frame = adoptRef(new Frame(frameInit)); |
+ if (!frame->ownerElement()) |
+ frame->page()->setMainFrame(frame); |
InspectorInstrumentation::frameAttachedToParent(frame.get()); |
return frame.release(); |
} |
@@ -289,15 +289,14 @@ RenderView* Frame::contentRenderer() const |
RenderPart* Frame::ownerRenderer() const |
{ |
- HTMLFrameOwnerElement* ownerElement = m_ownerElement; |
- if (!ownerElement) |
+ if (!ownerElement()) |
return 0; |
- RenderObject* object = ownerElement->renderer(); |
+ RenderObject* object = ownerElement()->renderer(); |
if (!object) |
return 0; |
// FIXME: If <object> is ever fixed to disassociate itself from frames |
// that it has started but canceled, then this can turn into an ASSERT |
- // since m_ownerElement would be 0 when the load is canceled. |
+ // since ownerElement() would be 0 when the load is canceled. |
// https://bugs.webkit.org/show_bug.cgi?id=18585 |
if (!object->isRenderPart()) |
return 0; |
@@ -349,14 +348,14 @@ void Frame::detachFromPage() |
void Frame::disconnectOwnerElement() |
{ |
- if (m_ownerElement) { |
+ if (ownerElement()) { |
if (Document* doc = document()) |
doc->topDocument()->clearAXObjectCache(); |
- m_ownerElement->clearContentFrame(); |
+ ownerElement()->clearContentFrame(); |
if (m_page) |
m_page->decrementSubframeCount(); |
} |
- m_ownerElement = 0; |
+ m_frameInit->setOwnerElement(0); |
} |
String Frame::documentTypeString() const |