[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e
apavlov at chromium.org
apavlov at chromium.org
Fri Jan 21 14:41:09 UTC 2011
The following commit has been merged in the debian/experimental branch:
commit 93e800a482e391e868128bcb4bbcc650aa3aa02e
Author: apavlov at chromium.org <apavlov at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Fri Dec 24 16:39:32 2010 +0000
2010-12-24 Alexander Pavlov <apavlov at chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Inline HTML style property out of sync with element.style in Sidebar
https://bugs.webkit.org/show_bug.cgi?id=51478
Now the element attribute modifications (including "style") are tracked, which results in the
source offsets update (in the backend) and Styles/Metrics pane updates (in the frontend)
on the "style" attribute modification through the Elements tree. Also, it appears that
a complete "style" attribute removal destroys the inline style declaration
(StyledElement::m_inlineStyleDecl), while the code used to rely on it being immutable (hence a crash).
Test: inspector/elements-delete-inline-style.html
WebCore:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::didModifyDOMAttr):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didModifyDOMAttr):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
(WebCore::InspectorStyleSheetForInlineStyle::didModifyElementAttribute):
(WebCore::InspectorStyleSheetForInlineStyle::text):
(WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
(WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
* inspector/InspectorStyleSheet.h:
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):
LayoutTests:
* http/tests/inspector/inspector-test2.js:
(initialize_InspectorTest.InspectorTest.addResults):
(initialize_InspectorTest.InspectorTest.createKeyEvent):
* inspector/elements-delete-inline-style-expected.txt: Added.
* inspector/elements-delete-inline-style.html: Added.
* inspector/elements-tests2.js: Added.
(initialize_ElementTest.InspectorTest.expandDOMSubtree.processChildren):
(initialize_ElementTest.InspectorTest.expandDOMSubtree):
(initialize_ElementTest.InspectorTest.expandDOMSubtreeAndRun):
(initialize_ElementTest.InspectorTest.nodeForId):
(initialize_ElementTest.InspectorTest.selectElementAndRun):
(initialize_ElementTest.InspectorTest.dumpSelectedElementStyles):
(initialize_ElementTest.InspectorTest.getSelectedElementStyles):
(initialize_ElementTest.InspectorTest.getElementStylePropertyTreeItem):
(initialize_ElementTest.InspectorTest.dumpStyleTreeOutline):
(initialize_ElementTest.InspectorTest.dumpStyleTreeItem):
(initialize_ElementTest):
* inspector/styles-add-blank-property.html: Remove unnecessary function.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@74634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 2210373..f721d20 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,29 @@
+2010-12-24 Alexander Pavlov <apavlov at chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: Inline HTML style property out of sync with element.style in Sidebar
+ https://bugs.webkit.org/show_bug.cgi?id=51478
+
+ * http/tests/inspector/inspector-test2.js:
+ (initialize_InspectorTest.InspectorTest.addResults):
+ (initialize_InspectorTest.InspectorTest.createKeyEvent):
+ * inspector/elements-delete-inline-style-expected.txt: Added.
+ * inspector/elements-delete-inline-style.html: Added.
+ * inspector/elements-tests2.js: Added.
+ (initialize_ElementTest.InspectorTest.expandDOMSubtree.processChildren):
+ (initialize_ElementTest.InspectorTest.expandDOMSubtree):
+ (initialize_ElementTest.InspectorTest.expandDOMSubtreeAndRun):
+ (initialize_ElementTest.InspectorTest.nodeForId):
+ (initialize_ElementTest.InspectorTest.selectElementAndRun):
+ (initialize_ElementTest.InspectorTest.dumpSelectedElementStyles):
+ (initialize_ElementTest.InspectorTest.getSelectedElementStyles):
+ (initialize_ElementTest.InspectorTest.getElementStylePropertyTreeItem):
+ (initialize_ElementTest.InspectorTest.dumpStyleTreeOutline):
+ (initialize_ElementTest.InspectorTest.dumpStyleTreeItem):
+ (initialize_ElementTest):
+ * inspector/styles-add-blank-property.html: Remove unnecessary function.
+
2010-12-24 Benjamin Kalman <kalman at chromium.org>
Reviewed by Ryosuke Niwa.
diff --git a/LayoutTests/http/tests/inspector/inspector-test2.js b/LayoutTests/http/tests/inspector/inspector-test2.js
index 9a130ee..302caf1 100644
--- a/LayoutTests/http/tests/inspector/inspector-test2.js
+++ b/LayoutTests/http/tests/inspector/inspector-test2.js
@@ -55,6 +55,14 @@ InspectorTest.addResult = function(text)
}
}
+InspectorTest.addResults = function(textArray)
+{
+ if (!textArray)
+ return;
+ for (var i = 0, size = textArray.length; i < size; ++i)
+ InspectorTest.addResult(textArray[i]);
+}
+
InspectorTest.addObject = function(object, nondeterministicProps, prefix, firstLinePrefix)
{
prefix = prefix || "";
@@ -115,6 +123,13 @@ InspectorTest.runAfterPendingDispatches = function(callback)
WebInspector.TestController.prototype.runAfterPendingDispatches(callback);
}
+InspectorTest.createKeyEvent = function(keyIdentifier)
+{
+ var evt = document.createEvent("KeyboardEvent");
+ evt.initKeyboardEvent("keydown", true /* can bubble */, true /* can cancel */, null /* view */, keyIdentifier, "");
+ return evt;
+}
+
InspectorTest.findDOMNode = function(root, filter, callback)
{
var found = false;
diff --git a/LayoutTests/inspector/elements-delete-inline-style-expected.txt b/LayoutTests/inspector/elements-delete-inline-style-expected.txt
new file mode 100755
index 0000000..d963da1
--- /dev/null
+++ b/LayoutTests/inspector/elements-delete-inline-style-expected.txt
@@ -0,0 +1,20 @@
+Tests that the "style" attribute removal results in the Styles sidebar pane update (not a crash). Bug 51478
+
+Before style property removal:
+[expanded] element.style { ()
+color: red;
+
+======== Matched CSS Rules ========
+[expanded] div { (user agent stylesheet)
+display: block;
+
+
+After style property removal:
+[expanded] element.style { ()
+
+======== Matched CSS Rules ========
+[expanded] div { (user agent stylesheet)
+display: block;
+
+
+
diff --git a/LayoutTests/inspector/elements-delete-inline-style.html b/LayoutTests/inspector/elements-delete-inline-style.html
new file mode 100755
index 0000000..e875f38
--- /dev/null
+++ b/LayoutTests/inspector/elements-delete-inline-style.html
@@ -0,0 +1,53 @@
+<html>
+<head>
+<script src="../http/tests/inspector/inspector-test2.js"></script>
+<script src="elements-tests2.js"></script>
+<script>
+
+function test()
+{
+ function selectInspectedElement()
+ {
+ InspectorTest.selectElementAndRun("inspected", executeTest);
+ }
+
+ function executeTest()
+ {
+ InspectorTest.addResult("Before style property removal:");
+ InspectorTest.addResults(InspectorTest.getSelectedElementStyles(true));
+
+ var treeElement;
+ var innerMapping = WebInspector.domAgent._idToDOMNode;
+ for (var nodeId in innerMapping) {
+ if (innerMapping[nodeId].nodeName === "DIV") {
+ treeElement = WebInspector.panels.elements.treeOutline.findTreeElement(innerMapping[nodeId]);
+ break;
+ }
+ }
+ var styleAttrElement = treeElement.listItemElement.getElementsByClassName("webkit-html-attribute")[1];
+ treeElement._startEditingTarget(styleAttrElement);
+ var editorElement = window.getSelection().anchorNode.parentElement;
+
+ // Remove the "style" attribute altogether (not just clear its value).
+ editorElement.textContent = "";
+ editorElement.dispatchEvent(InspectorTest.createKeyEvent("Enter"));
+ InspectorTest.runAfterPendingDispatches(function() {
+ InspectorTest.addResult("After style property removal:");
+ InspectorTest.addResults(InspectorTest.getSelectedElementStyles(true));
+ InspectorTest.completeTest();
+ });
+ }
+
+ InspectorTest.expandDOMSubtreeAndRun(null, selectInspectedElement);
+}
+
+</script>
+</head>
+<body onload="runTest()">
+<p>
+Tests that the "style" attribute removal results in the Styles sidebar pane update (not a crash). <a href="http://bugs.webkit.org/show_bug.cgi?id=51478">Bug 51478</a>
+</p>
+
+<div id="inspected" style="color: red"></div>
+</body>
+</html>
diff --git a/LayoutTests/inspector/elements-tests2.js b/LayoutTests/inspector/elements-tests2.js
new file mode 100755
index 0000000..550882f
--- /dev/null
+++ b/LayoutTests/inspector/elements-tests2.js
@@ -0,0 +1,126 @@
+var initialize_ElementTest = function() {
+
+InspectorTest.expandDOMSubtree = function(node)
+{
+ node = node || WebInspector.domAgent.document;
+ function processChildren(children)
+ {
+ for (var i = 0; children && i < children.length; ++i)
+ InspectorTest.expandDOMSubtree(children[i]);
+ }
+ WebInspector.domAgent.getChildNodesAsync(node, processChildren);
+};
+
+InspectorTest.expandDOMSubtreeAndRun = function(node, callback)
+{
+ InspectorTest.expandDOMSubtree(node);
+ InspectorTest.runAfterPendingDispatches(callback);
+};
+
+InspectorTest.nodeForId = function(idValue)
+{
+ var innerMapping = WebInspector.domAgent._idToDOMNode;
+ for (var nodeId in innerMapping) {
+ var node = innerMapping[nodeId];
+ if (node.getAttribute("id") === idValue)
+ return node;
+ }
+ return null;
+};
+
+InspectorTest.selectElementAndRun = function(idValue, callback)
+{
+ var node = InspectorTest.nodeForId(idValue);
+ if (!node) {
+ InspectorTest.addResult("Debugger was enabled.");
+ InspectorTest.completeTest();
+ return;
+ }
+
+ WebInspector.updateFocusedNode(node.id);
+ InspectorTest.runAfterPendingDispatches(callback);
+};
+
+InspectorTest.dumpSelectedElementStyles = function()
+{
+ InspectorTest.addResult("Debugger was enabled.");
+ InspectorTest.completeTest();
+ InspectorTest.addResults(InspectorTest.getSelectedElementStyles(false));
+};
+
+InspectorTest.getSelectedElementStyles = function(excludeComputed, excludeMatched)
+{
+ var result = [];
+ var styleSections = WebInspector.panels.elements.sidebarPanes.styles.sections;
+ for (var pseudoId in styleSections) {
+ var pseudoName = WebInspector.StylesSidebarPane.PseudoIdNames[pseudoId];
+ var sections = styleSections[pseudoId];
+ for (var i = 0; i < sections.length; ++i) {
+ var section = sections[i];
+ if (section.computedStyle && excludeComputed)
+ continue;
+ if (section.rule && excludeMatched)
+ continue;
+ if (section.element.previousSibling && section.element.previousSibling.className === "styles-sidebar-separator")
+ result.push("======== " + section.element.previousSibling.textContent + " ========");
+ result.push((section.expanded ? "[expanded] " : "[collapsed] ") + section.titleElement.textContent + " (" + section.subtitleAsTextForTest + ")");
+ section.expand();
+ InspectorTest.dumpStyleTreeOutline(section.propertiesTreeOutline, result);
+ result.push("");
+ }
+ result.push("");
+ }
+ return result;
+};
+
+// FIXME: this returns the first tree item found (may fail for same-named properties in a style).
+InspectorTest.getElementStylePropertyTreeItem = function(propertyName)
+{
+ var styleSections = WebInspector.panels.elements.sidebarPanes.styles.sections[0];
+ var elementStyleSection = styleSections[1];
+ var outline = elementStyleSection.propertiesTreeOutline;
+ for (var i = 0; i < outline.children.length; ++i) {
+ var treeItem = outline.children[i];
+ if (treeItem.name === propertyName)
+ return treeItem;
+ }
+ return null;
+};
+
+InspectorTest.dumpStyleTreeOutline = function(treeItem, result)
+{
+ var children = treeItem.children;
+ for (var i = 0; i < children.length; ++i)
+ InspectorTest.dumpStyleTreeItem(children[i], result, "");
+};
+
+InspectorTest.dumpStyleTreeItem = function(treeItem, result, prefix)
+{
+ // Filter out width and height properties in order to minimize
+ // potential diffs.
+ if (!treeItem.listItemElement.textContent.indexOf("width") ||
+ !treeItem.listItemElement.textContent.indexOf("height"))
+ return;
+
+ if (treeItem.listItemElement.hasStyleClass("inherited"))
+ return;
+ var typePrefix = "";
+ if (treeItem.listItemElement.hasStyleClass("overloaded"))
+ typePrefix += "/-- overloaded --/ ";
+ if (treeItem.listItemElement.hasStyleClass("disabled"))
+ typePrefix += "/-- disabled --/ ";
+ var textContent = treeItem.listItemElement.textContent;
+
+ // Add non-selectable url text.
+ var textData = treeItem.listItemElement.querySelector("[data-uncopyable]");
+ if (textData)
+ textContent += textData.getAttribute("data-uncopyable");
+
+ result.push(prefix + typePrefix + textContent);
+ treeItem.expand();
+ var children = treeItem.children;
+ for (var i = 0; children && i < children.length; ++i)
+ InspectorTest.dumpStyleTreeItem(children[i], result, prefix + " ");
+};
+
+};
diff --git a/LayoutTests/inspector/styles-add-blank-property.html b/LayoutTests/inspector/styles-add-blank-property.html
index b6b50e6..f496b51 100644
--- a/LayoutTests/inspector/styles-add-blank-property.html
+++ b/LayoutTests/inspector/styles-add-blank-property.html
@@ -27,13 +27,6 @@ function frontend_selectInspectedElement(testController)
frontend_selectElementAndRun(testController, "inspected", frontend_dumpInspectedStyle);
}
-function frontend_createKeyboardEvent(eventName, keyIdentifier)
-{
- var evt = document.createEvent("KeyboardEvent");
- evt.initKeyboardEvent(eventName, true /* can bubble */, true /* can cancel */, null /* view */, keyIdentifier, "");
- return evt;
-}
-
function frontend_dumpInspectedStyle(testController)
{
testController.results.push("Before append:");
@@ -42,8 +35,8 @@ function frontend_dumpInspectedStyle(testController)
var section = WebInspector.panels.elements.sidebarPanes.styles.sections[0][1];
section.expand();
var treeElement = section.addNewBlankProperty();
- var enterKeyDown = frontend_createKeyboardEvent("keydown", "Enter");
- var incrementKeyDown = frontend_createKeyboardEvent("keydown", "Up");
+ var enterKeyDown = frontend_createKeyEvent("Enter");
+ var incrementKeyDown = frontend_createKeyEvent("Up");
function removeEmpty()
{
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index b8b514f..b8b17ed 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,34 @@
+2010-12-24 Alexander Pavlov <apavlov at chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ Web Inspector: Inline HTML style property out of sync with element.style in Sidebar
+ https://bugs.webkit.org/show_bug.cgi?id=51478
+
+ Now the element attribute modifications (including "style") are tracked, which results in the
+ source offsets update (in the backend) and Styles/Metrics pane updates (in the frontend)
+ on the "style" attribute modification through the Elements tree. Also, it appears that
+ a complete "style" attribute removal destroys the inline style declaration
+ (StyledElement::m_inlineStyleDecl), while the code used to rely on it being immutable (hence a crash).
+
+ Test: inspector/elements-delete-inline-style.html
+
+ * inspector/InspectorCSSAgent.cpp:
+ (WebCore::InspectorCSSAgent::didModifyDOMAttr):
+ * inspector/InspectorCSSAgent.h:
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::didModifyDOMAttr):
+ * inspector/InspectorDOMAgent.h:
+ * inspector/InspectorStyleSheet.cpp:
+ (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
+ (WebCore::InspectorStyleSheetForInlineStyle::didModifyElementAttribute):
+ (WebCore::InspectorStyleSheetForInlineStyle::text):
+ (WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
+ (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
+ * inspector/InspectorStyleSheet.h:
+ * inspector/front-end/ElementsTreeOutline.js:
+ (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):
+
2010-12-24 Noel Gordon <noel.gordon at gmail.com>
Reviewed by Andreas Kling.
diff --git a/WebCore/inspector/InspectorCSSAgent.cpp b/WebCore/inspector/InspectorCSSAgent.cpp
index 31d951a..67980f8 100644
--- a/WebCore/inspector/InspectorCSSAgent.cpp
+++ b/WebCore/inspector/InspectorCSSAgent.cpp
@@ -542,6 +542,18 @@ void InspectorCSSAgent::didRemoveDOMNode(Node* node)
m_nodeToInspectorStyleSheet.remove(node);
}
+void InspectorCSSAgent::didModifyDOMAttr(Element* element)
+{
+ if (!element)
+ return;
+
+ NodeToInspectorStyleSheet::iterator it = m_nodeToInspectorStyleSheet.find(element);
+ if (it == m_nodeToInspectorStyleSheet.end())
+ return;
+
+ it->second->didModifyElementAttribute();
+}
+
} // namespace WebCore
#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/inspector/InspectorCSSAgent.h b/WebCore/inspector/InspectorCSSAgent.h
index f67d57d..387c89b 100644
--- a/WebCore/inspector/InspectorCSSAgent.h
+++ b/WebCore/inspector/InspectorCSSAgent.h
@@ -97,6 +97,7 @@ private:
// InspectorDOMAgent::DOMListener interface
virtual void didRemoveDocument(Document*);
virtual void didRemoveDOMNode(Node*);
+ virtual void didModifyDOMAttr(Element*);
InspectorDOMAgent* m_domAgent;
diff --git a/WebCore/inspector/InspectorDOMAgent.cpp b/WebCore/inspector/InspectorDOMAgent.cpp
index cbba75f..e42bf2a 100644
--- a/WebCore/inspector/InspectorDOMAgent.cpp
+++ b/WebCore/inspector/InspectorDOMAgent.cpp
@@ -1132,6 +1132,9 @@ void InspectorDOMAgent::didModifyDOMAttr(Element* element)
if (!id)
return;
+ if (m_domListener)
+ m_domListener->didModifyDOMAttr(element);
+
m_frontend->attributesUpdated(id, buildArrayForElementAttributes(element));
}
diff --git a/WebCore/inspector/InspectorDOMAgent.h b/WebCore/inspector/InspectorDOMAgent.h
index 5347090..e57bcea 100644
--- a/WebCore/inspector/InspectorDOMAgent.h
+++ b/WebCore/inspector/InspectorDOMAgent.h
@@ -85,6 +85,7 @@ namespace WebCore {
}
virtual void didRemoveDocument(Document*) = 0;
virtual void didRemoveDOMNode(Node*) = 0;
+ virtual void didModifyDOMAttr(Element*) = 0;
};
static PassRefPtr<InspectorDOMAgent> create(InspectorFrontend* frontend)
diff --git a/WebCore/inspector/InspectorStyleSheet.cpp b/WebCore/inspector/InspectorStyleSheet.cpp
index 6e3ebe8..f575a52 100644
--- a/WebCore/inspector/InspectorStyleSheet.cpp
+++ b/WebCore/inspector/InspectorStyleSheet.cpp
@@ -1099,11 +1099,28 @@ InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle(const Strin
{
ASSERT(element);
m_inspectorStyle = InspectorStyle::create(InspectorCSSId(id, 0), inlineStyle(), this);
+ m_styleText = m_element->isStyledElement() ? m_element->getAttribute("style").string() : String();
+}
+
+void InspectorStyleSheetForInlineStyle::didModifyElementAttribute()
+{
+ String newStyleText = m_element->getAttribute("style");
+ bool shouldDropSourceData = false;
+ if (m_element->isStyledElement() && m_element->style() != m_inspectorStyle->cssStyle()) {
+ m_inspectorStyle = InspectorStyle::create(InspectorCSSId(id(), 0), inlineStyle(), this);
+ shouldDropSourceData = true;
+ }
+ if (newStyleText != m_styleText) {
+ m_styleText = newStyleText;
+ shouldDropSourceData = true;
+ }
+ if (shouldDropSourceData)
+ m_ruleSourceData.clear();
}
bool InspectorStyleSheetForInlineStyle::text(String* result) const
{
- *result = m_element->getAttribute("style");
+ *result = m_styleText;
return true;
}
@@ -1112,6 +1129,7 @@ bool InspectorStyleSheetForInlineStyle::setStyleText(CSSStyleDeclaration* style,
ASSERT_UNUSED(style, style == inlineStyle());
ExceptionCode ec = 0;
m_element->setAttribute("style", text, ec);
+ m_styleText = text;
m_ruleSourceData.clear();
return !ec;
}
@@ -1149,13 +1167,10 @@ CSSStyleDeclaration* InspectorStyleSheetForInlineStyle::inlineStyle() const
bool InspectorStyleSheetForInlineStyle::getStyleAttributeRanges(RefPtr<CSSStyleSourceData>* result)
{
- DEFINE_STATIC_LOCAL(String, styleAttributeName, ("style"));
-
if (!m_element->isStyledElement())
return false;
- String styleText = static_cast<StyledElement*>(m_element)->getAttribute(styleAttributeName);
- if (styleText.isEmpty()) {
+ if (m_styleText.isEmpty()) {
(*result)->styleBodyRange.start = 0;
(*result)->styleBodyRange.end = 0;
return true;
@@ -1163,7 +1178,7 @@ bool InspectorStyleSheetForInlineStyle::getStyleAttributeRanges(RefPtr<CSSStyleS
RefPtr<CSSMutableStyleDeclaration> tempDeclaration = CSSMutableStyleDeclaration::create();
CSSParser p;
- p.parseDeclaration(tempDeclaration.get(), styleText, result);
+ p.parseDeclaration(tempDeclaration.get(), m_styleText, result);
return true;
}
diff --git a/WebCore/inspector/InspectorStyleSheet.h b/WebCore/inspector/InspectorStyleSheet.h
index b649bed..ec266cd 100644
--- a/WebCore/inspector/InspectorStyleSheet.h
+++ b/WebCore/inspector/InspectorStyleSheet.h
@@ -237,6 +237,7 @@ public:
}
InspectorStyleSheetForInlineStyle(const String& id, Element* element, const String& origin);
+ void didModifyElementAttribute();
virtual bool text(String* result) const;
virtual CSSStyleDeclaration* styleForId(const InspectorCSSId& id) const { ASSERT_UNUSED(id, !id.ordinal()); return inlineStyle(); }
@@ -259,6 +260,9 @@ private:
Element* m_element;
RefPtr<CSSRuleSourceData> m_ruleSourceData;
RefPtr<InspectorStyle> m_inspectorStyle;
+
+ // Contains "style" attribute value and should always be up-to-date.
+ String m_styleText;
};
#endif
diff --git a/WebCore/inspector/front-end/ElementsTreeOutline.js b/WebCore/inspector/front-end/ElementsTreeOutline.js
index f25f858..67d34b2 100644
--- a/WebCore/inspector/front-end/ElementsTreeOutline.js
+++ b/WebCore/inspector/front-end/ElementsTreeOutline.js
@@ -1077,6 +1077,7 @@ WebInspector.ElementsTreeElement.prototype = {
if (!parseElement.hasAttributes()) {
this.representedObject.removeAttribute(attributeName);
+ this.treeOutline.focusedNodeChanged(true);
moveToNextAttributeIfNeeded.call(this);
return;
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list