summaryrefslogtreecommitdiff
path: root/Source/WebCore/dom/StyleElement.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-27 21:51:42 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-27 21:51:42 +0200
commitbe01689f43cf6882cf670d33df49ead1f570c53a (patch)
tree4bb2161d8983b38e3e7ed37b4a50303bfd5e2e85 /Source/WebCore/dom/StyleElement.cpp
parenta89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (diff)
downloadqtwebkit-be01689f43cf6882cf670d33df49ead1f570c53a.tar.gz
Imported WebKit commit 8d6c5efc74f0222dfc7bcce8d845d4a2707ed9e6 (http://svn.webkit.org/repository/webkit/trunk@118629)
Diffstat (limited to 'Source/WebCore/dom/StyleElement.cpp')
-rw-r--r--Source/WebCore/dom/StyleElement.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/Source/WebCore/dom/StyleElement.cpp b/Source/WebCore/dom/StyleElement.cpp
index 090c40c2f..dd4de2901 100644
--- a/Source/WebCore/dom/StyleElement.cpp
+++ b/Source/WebCore/dom/StyleElement.cpp
@@ -30,6 +30,7 @@
#include "ScriptableDocumentParser.h"
#include "StyleSheetContents.h"
#include <wtf/text/StringBuilder.h>
+#include <wtf/text/TextPosition.h>
namespace WebCore {
@@ -48,10 +49,10 @@ static bool isCSS(Element* element, const AtomicString& type)
StyleElement::StyleElement(Document* document, bool createdByParser)
: m_createdByParser(createdByParser)
, m_loading(false)
- , m_startLineNumber(0)
+ , m_startLineNumber(WTF::OrdinalNumber::beforeFirst())
{
- if (createdByParser && document && document->scriptableDocumentParser())
- m_startLineNumber = document->scriptableDocumentParser()->lineNumber().zeroBasedInt();
+ if (createdByParser && document && document->scriptableDocumentParser() && !document->isInDocumentWrite())
+ m_startLineNumber = document->scriptableDocumentParser()->lineNumber();
}
StyleElement::~StyleElement()
@@ -144,7 +145,7 @@ void StyleElement::clearSheet()
m_sheet = 0;
}
-void StyleElement::createSheet(Element* e, int startLineNumber, const String& text)
+void StyleElement::createSheet(Element* e, WTF::OrdinalNumber startLineNumber, const String& text)
{
ASSERT(e);
ASSERT(e->inDocument());
@@ -157,7 +158,7 @@ void StyleElement::createSheet(Element* e, int startLineNumber, const String& te
// If type is empty or CSS, this is a CSS style sheet.
const AtomicString& type = this->type();
- if (document->contentSecurityPolicy()->allowInlineStyle() && isCSS(e, type)) {
+ if (document->contentSecurityPolicy()->allowInlineStyle(e->document()->url(), startLineNumber) && isCSS(e, type)) {
RefPtr<MediaQuerySet> mediaQueries;
if (e->isHTMLElement())
mediaQueries = MediaQuerySet::createAllowingDescriptionSyntax(media());
@@ -173,8 +174,7 @@ void StyleElement::createSheet(Element* e, int startLineNumber, const String& te
m_sheet = CSSStyleSheet::createInline(e, KURL(), document->inputEncoding());
m_sheet->setMediaQueries(mediaQueries.release());
m_sheet->setTitle(e->title());
-
- m_sheet->contents()->parseStringAtLine(text, startLineNumber);
+ m_sheet->contents()->parseStringAtLine(text, startLineNumber.zeroBasedInt());
m_loading = false;
}