Index: Source/core/inspector/InspectorStyleSheet.cpp |
diff --git a/Source/core/inspector/InspectorStyleSheet.cpp b/Source/core/inspector/InspectorStyleSheet.cpp |
index e159795e413ed3af1cf4bd99b91b40cb3d02dee7..eb02db38e53f485546e3adfbd35c7160bc447af5 100644 |
--- a/Source/core/inspector/InspectorStyleSheet.cpp |
+++ b/Source/core/inspector/InspectorStyleSheet.cpp |
@@ -571,7 +571,7 @@ bool InspectorStyle::verifyPropertyText(const String& propertyText, bool canOmit |
return true; |
} |
-bool InspectorStyle::setPropertyText(unsigned index, const String& propertyText, bool overwrite, String* oldText, ExceptionState& exceptionState) |
+bool InspectorStyle::setPropertyText(unsigned index, const String& propertyText, bool overwrite, ExceptionState& exceptionState) |
{ |
ASSERT(m_parentStyleSheet); |
@@ -609,12 +609,12 @@ bool InspectorStyle::setPropertyText(unsigned index, const String& propertyText, |
exceptionState.throwDOMException(IndexSizeError, "The index provided (" + String::number(index) + ") is greater than or equal to the maximum bound (" + String::number(allProperties.size()) + ")."); |
return false; |
} |
- *oldText = allProperties.at(index).rawText; |
editor.replaceProperty(index, propertyText); |
- } else |
+ } else { |
editor.insertProperty(index, propertyText, sourceData->ruleBodyRange.length()); |
+ } |
- return applyStyleText(editor.styleText()); |
+ return m_parentStyleSheet->setStyleText(m_styleId, editor.styleText()); |
} |
bool InspectorStyle::styleText(String* result) const |
@@ -733,11 +733,6 @@ PassRefPtr<CSSRuleSourceData> InspectorStyle::extractSourceData() const |
return m_parentStyleSheet->ruleSourceDataFor(m_style.get()); |
} |
-bool InspectorStyle::applyStyleText(const String& text) |
-{ |
- return m_parentStyleSheet->setStyleText(m_style.get(), text); |
-} |
- |
String InspectorStyle::shorthandValue(const String& shorthandProperty) const |
{ |
String value = m_style->getPropertyValue(shorthandProperty); |
@@ -839,18 +834,22 @@ InspectorStyleSheetBase::InspectorStyleSheetBase(const String& id, Listener* lis |
{ |
} |
-bool InspectorStyleSheetBase::setPropertyText(const InspectorCSSId& id, unsigned propertyIndex, const String& text, bool overwrite, String* oldText, ExceptionState& exceptionState) |
+bool InspectorStyleSheetBase::setPropertyText(const InspectorCSSId& id, unsigned propertyIndex, const String& text, bool overwrite, ExceptionState& exceptionState) |
{ |
RefPtr<InspectorStyle> inspectorStyle = inspectorStyleForId(id); |
if (!inspectorStyle) { |
exceptionState.throwDOMException(NotFoundError, "No property could be found for the given ID."); |
return false; |
} |
+ return inspectorStyle->setPropertyText(propertyIndex, text, overwrite, exceptionState); |
+} |
- bool success = inspectorStyle->setPropertyText(propertyIndex, text, overwrite, oldText, exceptionState); |
- if (success) |
- fireStyleSheetChanged(); |
- return success; |
+bool InspectorStyleSheetBase::getStyleText(const InspectorCSSId& id, String* text) |
+{ |
+ RefPtr<InspectorStyle> inspectorStyle = inspectorStyleForId(id); |
+ if (!inspectorStyle) |
+ return false; |
+ return inspectorStyle->styleText(text); |
} |
void InspectorStyleSheetBase::fireStyleSheetChanged() |
@@ -1389,8 +1388,12 @@ void InspectorStyleSheet::ensureFlatRules() const |
collectFlatRules(asCSSRuleList(pageStyleSheet()), &m_flatRules); |
} |
-bool InspectorStyleSheet::setStyleText(CSSStyleDeclaration* style, const String& text) |
+bool InspectorStyleSheet::setStyleText(const InspectorCSSId& id, const String& text) |
{ |
+ CSSStyleDeclaration* style = styleForId(id); |
+ if (!style) |
+ return false; |
+ |
if (!ensureParsedDataReady()) |
return false; |
@@ -1399,14 +1402,12 @@ bool InspectorStyleSheet::setStyleText(CSSStyleDeclaration* style, const String& |
if (!success) |
return false; |
- InspectorCSSId id = styleId(style); |
- if (id.isEmpty()) |
- return false; |
- |
TrackExceptionState exceptionState; |
style->setCSSText(text, exceptionState); |
- if (!exceptionState.hadException()) |
+ if (!exceptionState.hadException()) { |
m_parsedStyleSheet->setText(patchedStyleSheetText); |
+ fireStyleSheetChanged(); |
+ } |
return !exceptionState.hadException(); |
} |
@@ -1415,7 +1416,6 @@ bool InspectorStyleSheet::styleSheetTextWithChangedStyle(CSSStyleDeclaration* st |
{ |
if (!style) |
return false; |
- |
if (!ensureParsedDataReady()) |
return false; |
@@ -1497,7 +1497,7 @@ void InspectorStyleSheetForInlineStyle::didModifyElementAttribute() |
bool InspectorStyleSheetForInlineStyle::setText(const String& text, ExceptionState& exceptionState) |
{ |
- bool success = setStyleText(inlineStyle(), text); |
+ bool success = setStyleText(InspectorCSSId(id(), 0), text); |
if (!success) |
exceptionState.throwDOMException(SyntaxError, "Style sheet text is invalid."); |
else |
@@ -1515,8 +1515,11 @@ bool InspectorStyleSheetForInlineStyle::getText(String* result) const |
return true; |
} |
-bool InspectorStyleSheetForInlineStyle::setStyleText(CSSStyleDeclaration* style, const String& text) |
+bool InspectorStyleSheetForInlineStyle::setStyleText(const InspectorCSSId& id, const String& text) |
{ |
+ CSSStyleDeclaration* style = styleForId(id); |
+ if (!style) |
+ return false; |
ASSERT_UNUSED(style, style == inlineStyle()); |
TrackExceptionState exceptionState; |
@@ -1524,10 +1527,12 @@ bool InspectorStyleSheetForInlineStyle::setStyleText(CSSStyleDeclaration* style, |
InspectorCSSAgent::InlineStyleOverrideScope overrideScope(m_element->ownerDocument()); |
m_element->setAttribute("style", AtomicString(text), exceptionState); |
} |
- |
- m_styleText = text; |
- m_isStyleTextValid = true; |
- m_ruleSourceData.clear(); |
+ if (!exceptionState.hadException()) { |
+ m_styleText = text; |
+ m_isStyleTextValid = true; |
+ m_ruleSourceData.clear(); |
+ fireStyleSheetChanged(); |
+ } |
return !exceptionState.hadException(); |
} |