diff options
Diffstat (limited to 'Source/WebCore/inspector/InspectorStyleSheet.cpp')
-rw-r--r-- | Source/WebCore/inspector/InspectorStyleSheet.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/WebCore/inspector/InspectorStyleSheet.cpp b/Source/WebCore/inspector/InspectorStyleSheet.cpp index 4af0371..45e6e43 100644 --- a/Source/WebCore/inspector/InspectorStyleSheet.cpp +++ b/Source/WebCore/inspector/InspectorStyleSheet.cpp @@ -1131,7 +1131,7 @@ InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle(const Strin void InspectorStyleSheetForInlineStyle::didModifyElementAttribute() { - String newStyleText = m_element->getAttribute("style"); + String newStyleText = elementStyleText(); bool shouldDropSourceData = false; if (m_element->isStyledElement() && m_element->style() != m_inspectorStyle->cssStyle()) { m_inspectorStyle = InspectorStyle::create(InspectorCSSId(id(), 0), inlineStyle(), this); @@ -1168,6 +1168,13 @@ Document* InspectorStyleSheetForInlineStyle::ownerDocument() const bool InspectorStyleSheetForInlineStyle::ensureParsedDataReady() { + // The "style" property value can get changed indirectly, e.g. via element.style.borderWidth = "2px". + const String& currentStyleText = elementStyleText(); + if (m_styleText != currentStyleText) { + m_ruleSourceData.clear(); + m_styleText = currentStyleText; + } + if (m_ruleSourceData) return true; @@ -1192,6 +1199,11 @@ CSSStyleDeclaration* InspectorStyleSheetForInlineStyle::inlineStyle() const return m_element->style(); } +const String& InspectorStyleSheetForInlineStyle::elementStyleText() const +{ + return m_element->getAttribute("style").string(); +} + bool InspectorStyleSheetForInlineStyle::getStyleAttributeRanges(RefPtr<CSSStyleSourceData>* result) { if (!m_element->isStyledElement()) |