Index: Source/core/inspector/InspectorCSSAgent.cpp |
diff --git a/Source/core/inspector/InspectorCSSAgent.cpp b/Source/core/inspector/InspectorCSSAgent.cpp |
index 49bc591a39fde46fc3b040253a5d56a872591689..6d3c22195745555bb8efab090c3602a67bdb9cba 100644 |
--- a/Source/core/inspector/InspectorCSSAgent.cpp |
+++ b/Source/core/inspector/InspectorCSSAgent.cpp |
@@ -316,10 +316,11 @@ private: |
class InspectorCSSAgent::AddRuleAction FINAL : public InspectorCSSAgent::StyleSheetAction { |
WTF_MAKE_NONCOPYABLE(AddRuleAction); |
public: |
- AddRuleAction(InspectorStyleSheet* styleSheet, const String& selector) |
+ AddRuleAction(InspectorStyleSheet* styleSheet, const String& ruleText, const SourceRange& location) |
: InspectorCSSAgent::StyleSheetAction("AddRule") |
, m_styleSheet(styleSheet) |
- , m_selector(selector) |
+ , m_ruleText(ruleText) |
+ , m_location(location) |
{ |
} |
@@ -330,12 +331,14 @@ public: |
virtual bool undo(ExceptionState& exceptionState) OVERRIDE |
{ |
- return m_styleSheet->deleteRule(m_newId, exceptionState); |
+ return m_styleSheet->deleteRule(m_newId, m_oldText, exceptionState); |
} |
virtual bool redo(ExceptionState& exceptionState) OVERRIDE |
{ |
- CSSStyleRule* cssStyleRule = m_styleSheet->addRule(m_selector, exceptionState); |
+ if (!m_styleSheet->getText(&m_oldText)) |
+ return false; |
+ CSSStyleRule* cssStyleRule = m_styleSheet->addRule(m_ruleText, m_location, exceptionState); |
if (exceptionState.hadException()) |
return false; |
m_newId = m_styleSheet->ruleId(cssStyleRule); |
@@ -353,8 +356,9 @@ public: |
private: |
RefPtrWillBeMember<InspectorStyleSheet> m_styleSheet; |
InspectorCSSId m_newId; |
- String m_selector; |
- String m_oldSelector; |
+ String m_ruleText; |
+ String m_oldText; |
+ SourceRange m_location; |
}; |
// static |
@@ -932,14 +936,17 @@ void InspectorCSSAgent::createStyleSheet(ErrorString* errorString, const String& |
*outStyleSheetId = inspectorStyleSheet->id(); |
} |
-void InspectorCSSAgent::addRule(ErrorString* errorString, const String& styleSheetId, const String& selector, RefPtr<TypeBuilder::CSS::CSSRule>& result) |
+void InspectorCSSAgent::addRule(ErrorString* errorString, const String& styleSheetId, const String& ruleText, const RefPtr<JSONObject>& location, RefPtr<TypeBuilder::CSS::CSSRule>& result) |
{ |
InspectorStyleSheet* inspectorStyleSheet = assertInspectorStyleSheetForId(errorString, styleSheetId); |
if (!inspectorStyleSheet) |
return; |
+ SourceRange ruleLocation; |
+ if (!jsonRangeToSourceRange(errorString, inspectorStyleSheet, location, &ruleLocation)) |
+ return; |
TrackExceptionState exceptionState; |
- RefPtrWillBeRawPtr<AddRuleAction> action = adoptRefWillBeNoop(new AddRuleAction(inspectorStyleSheet, selector)); |
+ RefPtrWillBeRawPtr<AddRuleAction> action = adoptRefWillBeNoop(new AddRuleAction(inspectorStyleSheet, ruleText, ruleLocation)); |
bool success = m_domAgent->history()->perform(action, exceptionState); |
if (!success) { |
*errorString = InspectorDOMAgent::toErrorString(exceptionState); |