summaryrefslogtreecommitdiff
path: root/Source/WebCore/dom/StyledElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/dom/StyledElement.cpp')
-rw-r--r--Source/WebCore/dom/StyledElement.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/Source/WebCore/dom/StyledElement.cpp b/Source/WebCore/dom/StyledElement.cpp
index a992644c1..43747b806 100644
--- a/Source/WebCore/dom/StyledElement.cpp
+++ b/Source/WebCore/dom/StyledElement.cpp
@@ -37,9 +37,11 @@
#include "Document.h"
#include "HTMLNames.h"
#include "HTMLParserIdioms.h"
+#include "ScriptableDocumentParser.h"
#include "StylePropertySet.h"
#include "StyleResolver.h"
#include <wtf/HashFunctions.h>
+#include <wtf/text/TextPosition.h>
using namespace std;
@@ -126,13 +128,21 @@ void StyledElement::updateStyleAttribute() const
const_cast<StyledElement*>(this)->setAttribute(styleAttr, inlineStyle->asText(), InUpdateStyleAttribute);
}
+StyledElement::StyledElement(const QualifiedName& name, Document* document, ConstructionType type)
+ : Element(name, document, type)
+ , m_startLineNumber(WTF::OrdinalNumber::beforeFirst())
+{
+ if (document && document->scriptableDocumentParser() && !document->isInDocumentWrite())
+ m_startLineNumber = document->scriptableDocumentParser()->lineNumber();
+}
+
StyledElement::~StyledElement()
{
destroyInlineStyle();
}
-CSSStyleDeclaration* StyledElement::style()
-{
+CSSStyleDeclaration* StyledElement::style()
+{
return ensureAttributeData()->ensureMutableInlineStyle(this)->ensureInlineCSSStyleDeclaration(this);
}
@@ -173,7 +183,7 @@ void StyledElement::styleAttributeChanged(const AtomicString& newStyleString, Sh
if (shouldReparse) {
if (newStyleString.isNull())
destroyInlineStyle();
- else if (document()->contentSecurityPolicy()->allowInlineStyle())
+ else if (document()->contentSecurityPolicy()->allowInlineStyle(document()->url(), m_startLineNumber))
ensureAttributeData()->updateInlineStyleAvoidingMutation(this, newStyleString);
setIsStyleAttributeValid();
}