summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/HTMLFrameElement.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-30 12:48:17 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-05-30 12:48:17 +0200
commit881da28418d380042aa95a97f0cbd42560a64f7c (patch)
treea794dff3274695e99c651902dde93d934ea7a5af /Source/WebCore/html/HTMLFrameElement.cpp
parent7e104c57a70fdf551bb3d22a5d637cdcbc69dbea (diff)
parent0fcedcd17cc00d3dd44c718b3cb36c1033319671 (diff)
downloadqtwebkit-881da28418d380042aa95a97f0cbd42560a64f7c.tar.gz
Merge 'wip/next' into dev
Change-Id: Iff9ee5e23bb326c4371ec8ed81d56f2f05d680e9
Diffstat (limited to 'Source/WebCore/html/HTMLFrameElement.cpp')
-rw-r--r--Source/WebCore/html/HTMLFrameElement.cpp39
1 files changed, 15 insertions, 24 deletions
diff --git a/Source/WebCore/html/HTMLFrameElement.cpp b/Source/WebCore/html/HTMLFrameElement.cpp
index ed5b9b826..ef0da38d1 100644
--- a/Source/WebCore/html/HTMLFrameElement.cpp
+++ b/Source/WebCore/html/HTMLFrameElement.cpp
@@ -24,7 +24,6 @@
#include "config.h"
#include "HTMLFrameElement.h"
-#include "Attribute.h"
#include "Frame.h"
#include "HTMLFrameSetElement.h"
#include "HTMLNames.h"
@@ -34,52 +33,44 @@ namespace WebCore {
using namespace HTMLNames;
-inline HTMLFrameElement::HTMLFrameElement(const QualifiedName& tagName, Document* document)
+inline HTMLFrameElement::HTMLFrameElement(const QualifiedName& tagName, Document& document)
: HTMLFrameElementBase(tagName, document)
, m_frameBorder(true)
, m_frameBorderSet(false)
{
ASSERT(hasTagName(frameTag));
+ setHasCustomStyleResolveCallbacks();
}
-PassRefPtr<HTMLFrameElement> HTMLFrameElement::create(const QualifiedName& tagName, Document* document)
+Ref<HTMLFrameElement> HTMLFrameElement::create(const QualifiedName& tagName, Document& document)
{
- return adoptRef(new HTMLFrameElement(tagName, document));
+ return adoptRef(*new HTMLFrameElement(tagName, document));
}
-bool HTMLFrameElement::rendererIsNeeded(const NodeRenderingContext&)
+bool HTMLFrameElement::rendererIsNeeded(const RenderStyle&)
{
// For compatibility, frames render even when display: none is set.
return isURLAllowed();
}
-RenderObject* HTMLFrameElement::createRenderer(RenderArena* arena, RenderStyle*)
+RenderPtr<RenderElement> HTMLFrameElement::createElementRenderer(Ref<RenderStyle>&& style, const RenderTreePosition&)
{
- return new (arena) RenderFrame(this);
-}
-
-static inline HTMLFrameSetElement* containingFrameSetElement(Node* node)
-{
- while ((node = node->parentNode())) {
- if (node->hasTagName(framesetTag))
- return static_cast<HTMLFrameSetElement*>(node);
- }
- return 0;
+ return createRenderer<RenderFrame>(*this, WTFMove(style));
}
bool HTMLFrameElement::noResize() const
{
- return hasAttribute(noresizeAttr);
+ return fastHasAttribute(noresizeAttr);
}
-void HTMLFrameElement::attach(const AttachContext& context)
+void HTMLFrameElement::didAttachRenderers()
{
- HTMLFrameElementBase::attach(context);
-
- if (HTMLFrameSetElement* frameSetElement = containingFrameSetElement(this)) {
- if (!m_frameBorderSet)
- m_frameBorder = frameSetElement->hasFrameBorder();
- }
+ HTMLFrameElementBase::didAttachRenderers();
+ const HTMLFrameSetElement* containingFrameSet = HTMLFrameSetElement::findContaining(this);
+ if (!containingFrameSet)
+ return;
+ if (!m_frameBorderSet)
+ m_frameBorder = containingFrameSet->hasFrameBorder();
}
void HTMLFrameElement::parseAttribute(const QualifiedName& name, const AtomicString& value)