Title: [105773] trunk/Source/WebCore
- Revision
- 105773
- Author
- [email protected]
- Date
- 2012-01-24 12:27:06 -0800 (Tue, 24 Jan 2012)
Log Message
Unreviewed, rolling out r105738.
http://trac.webkit.org/changeset/105738
https://bugs.webkit.org/show_bug.cgi?id=76930
caused fast/css/getComputedStyle/computed-style-border-
image.html to crash (Requested by kling on #webkit).
Patch by Sheriff Bot <[email protected]> on 2012-01-24
* dom/NamedNodeMap.cpp:
* dom/NamedNodeMap.h:
* dom/StyledElement.cpp:
(WebCore::StyledElement::updateStyleAttribute):
(WebCore::StyledElement::createInlineStyleDecl):
(WebCore::StyledElement::destroyInlineStyleDecl):
(WebCore::StyledElement::ensureInlineStyleDecl):
(WebCore::StyledElement::style):
(WebCore::StyledElement::addSubresourceAttributeURLs):
* dom/StyledElement.h:
(WebCore::StyledElement::inlineStyleDecl):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (105772 => 105773)
--- trunk/Source/WebCore/ChangeLog 2012-01-24 20:24:11 UTC (rev 105772)
+++ trunk/Source/WebCore/ChangeLog 2012-01-24 20:27:06 UTC (rev 105773)
@@ -1,3 +1,24 @@
+2012-01-24 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r105738.
+ http://trac.webkit.org/changeset/105738
+ https://bugs.webkit.org/show_bug.cgi?id=76930
+
+ caused fast/css/getComputedStyle/computed-style-border-
+ image.html to crash (Requested by kling on #webkit).
+
+ * dom/NamedNodeMap.cpp:
+ * dom/NamedNodeMap.h:
+ * dom/StyledElement.cpp:
+ (WebCore::StyledElement::updateStyleAttribute):
+ (WebCore::StyledElement::createInlineStyleDecl):
+ (WebCore::StyledElement::destroyInlineStyleDecl):
+ (WebCore::StyledElement::ensureInlineStyleDecl):
+ (WebCore::StyledElement::style):
+ (WebCore::StyledElement::addSubresourceAttributeURLs):
+ * dom/StyledElement.h:
+ (WebCore::StyledElement::inlineStyleDecl):
+
2012-01-24 Parag Radke <[email protected]>
REGRESSION (r73385): Marquee with behavior="alternate" is not working
Modified: trunk/Source/WebCore/dom/NamedNodeMap.cpp (105772 => 105773)
--- trunk/Source/WebCore/dom/NamedNodeMap.cpp 2012-01-24 20:24:11 UTC (rev 105772)
+++ trunk/Source/WebCore/dom/NamedNodeMap.cpp 2012-01-24 20:27:06 UTC (rev 105773)
@@ -27,9 +27,9 @@
#include "Attr.h"
#include "Document.h"
+#include "Element.h"
#include "ExceptionCode.h"
#include "HTMLNames.h"
-#include "StyledElement.h"
namespace WebCore {
@@ -330,27 +330,4 @@
return true;
}
-CSSMutableStyleDeclaration* NamedNodeMap::ensureInlineStyleDecl()
-{
- if (!m_inlineStyleDecl)
- createInlineStyleDecl();
- return m_inlineStyleDecl.get();
-}
-
-void NamedNodeMap::destroyInlineStyleDecl()
-{
- if (!m_inlineStyleDecl)
- return;
- m_inlineStyleDecl->clearParentElement();
- m_inlineStyleDecl = 0;
-}
-
-void NamedNodeMap::createInlineStyleDecl()
-{
- ASSERT(!m_inlineStyleDecl);
- ASSERT(m_element->isStyledElement());
- m_inlineStyleDecl = CSSMutableStyleDeclaration::createInline(static_cast<StyledElement*>(m_element));
- m_inlineStyleDecl->setStrictParsing(m_element->isHTMLElement() && !m_element->document()->inQuirksMode());
-}
-
} // namespace WebCore
Modified: trunk/Source/WebCore/dom/NamedNodeMap.h (105772 => 105773)
--- trunk/Source/WebCore/dom/NamedNodeMap.h 2012-01-24 20:24:11 UTC (rev 105772)
+++ trunk/Source/WebCore/dom/NamedNodeMap.h 2012-01-24 20:27:06 UTC (rev 105773)
@@ -102,10 +102,6 @@
size_t mappedAttributeCount() const;
- CSSMutableStyleDeclaration* inlineStyleDecl() const { return m_inlineStyleDecl.get(); }
- CSSMutableStyleDeclaration* ensureInlineStyleDecl();
- void destroyInlineStyleDecl();
-
private:
NamedNodeMap(Element* element)
: m_element(element)
@@ -120,17 +116,11 @@
void setAttributes(const NamedNodeMap&);
void clearAttributes();
void replaceAttribute(size_t index, PassRefPtr<Attribute>);
- void createInlineStyleDecl();
- // FIXME: NamedNodeMap should be broken up into two classes, one containing data
- // for elements with attributes, and one for exposure to the DOM.
- // See <http://webkit.org/b/75069> for more information.
-
SpaceSplitString m_classNames;
Element* m_element;
Vector<RefPtr<Attribute>, 4> m_attributes;
AtomicString m_idForStyleResolution;
- RefPtr<CSSMutableStyleDeclaration> m_inlineStyleDecl;
};
inline Attribute* NamedNodeMap::getAttributeItem(const QualifiedName& name) const
Modified: trunk/Source/WebCore/dom/StyledElement.cpp (105772 => 105773)
--- trunk/Source/WebCore/dom/StyledElement.cpp 2012-01-24 20:24:11 UTC (rev 105772)
+++ trunk/Source/WebCore/dom/StyledElement.cpp 2012-01-24 20:27:06 UTC (rev 105773)
@@ -112,8 +112,8 @@
ASSERT(!isStyleAttributeValid());
setIsStyleAttributeValid();
setIsSynchronizingStyleAttribute();
- if (CSSMutableStyleDeclaration* inlineStyle = inlineStyleDecl())
- const_cast<StyledElement*>(this)->setAttribute(styleAttr, inlineStyle->cssText());
+ if (m_inlineStyleDecl)
+ const_cast<StyledElement*>(this)->setAttribute(styleAttr, m_inlineStyleDecl->cssText());
clearIsSynchronizingStyleAttribute();
}
@@ -127,6 +127,21 @@
return Attribute::createMapped(name, value);
}
+void StyledElement::createInlineStyleDecl()
+{
+ ASSERT(!m_inlineStyleDecl);
+ m_inlineStyleDecl = CSSMutableStyleDeclaration::createInline(this);
+ m_inlineStyleDecl->setStrictParsing(isHTMLElement() && !document()->inQuirksMode());
+}
+
+void StyledElement::destroyInlineStyleDecl()
+{
+ if (!m_inlineStyleDecl)
+ return;
+ m_inlineStyleDecl->clearParentElement();
+ m_inlineStyleDecl = 0;
+}
+
void StyledElement::attributeChanged(Attribute* attr, bool preserveDecls)
{
if (attr->name() == HTMLNames::nameAttr)
@@ -225,6 +240,18 @@
}
}
+CSSMutableStyleDeclaration* StyledElement::ensureInlineStyleDecl()
+{
+ if (!m_inlineStyleDecl)
+ createInlineStyleDecl();
+ return m_inlineStyleDecl.get();
+}
+
+CSSStyleDeclaration* StyledElement::style()
+{
+ return ensureInlineStyleDecl();
+}
+
void StyledElement::removeCSSProperty(Attribute* attribute, int id)
{
if (!attribute->decl())
@@ -416,8 +443,9 @@
void StyledElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) const
{
- if (CSSMutableStyleDeclaration* inlineStyle = inlineStyleDecl())
- inlineStyle->addSubresourceStyleURLs(urls);
+ if (!m_inlineStyleDecl)
+ return;
+ m_inlineStyleDecl->addSubresourceStyleURLs(urls);
}
}
Modified: trunk/Source/WebCore/dom/StyledElement.h (105772 => 105773)
--- trunk/Source/WebCore/dom/StyledElement.h 2012-01-24 20:24:11 UTC (rev 105772)
+++ trunk/Source/WebCore/dom/StyledElement.h 2012-01-24 20:27:06 UTC (rev 105773)
@@ -59,9 +59,9 @@
virtual void additionalAttributeStyleDecls(Vector<CSSMutableStyleDeclaration*>&) { }
void invalidateStyleAttribute();
- CSSMutableStyleDeclaration* inlineStyleDecl() const { return attributeMap() ? attributeMap()->inlineStyleDecl() : 0; }
- CSSMutableStyleDeclaration* ensureInlineStyleDecl() { return attributes(false)->ensureInlineStyleDecl(); }
- virtual CSSStyleDeclaration* style() OVERRIDE { return ensureInlineStyleDecl(); }
+ CSSMutableStyleDeclaration* inlineStyleDecl() const { return m_inlineStyleDecl.get(); }
+ CSSMutableStyleDeclaration* ensureInlineStyleDecl();
+ virtual CSSStyleDeclaration* style() OVERRIDE;
const SpaceSplitString& classNames() const;
@@ -89,8 +89,11 @@
private:
void createMappedDecl(Attribute*);
+ void createInlineStyleDecl();
+ void destroyInlineStyleDecl();
virtual void updateStyleAttribute() const;
- void destroyInlineStyleDecl() { if (attributeMap()) attributeMap()->destroyInlineStyleDecl(); }
+
+ RefPtr<CSSMutableStyleDeclaration> m_inlineStyleDecl;
};
inline const SpaceSplitString& StyledElement::classNames() const
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes