Index: third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js |
index a392a8ee3655d86fd46848fd819368876bcaafae..c4ede32c0b42f32de1c868d62438a0b224b5482b 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js |
+++ b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js |
@@ -2018,6 +2018,27 @@ WebInspector.StylePropertyTreeElement.prototype = { |
return new WebInspector.BezierPopoverIcon(this, swatchPopoverHelper, text).element(); |
}, |
+ /** |
+ * @param {string} propertyValue |
+ * @param {string} propertyName |
+ * @return {!Node} |
+ */ |
+ _processShadow: function(propertyValue, propertyName) |
+ { |
+ if (!this._editable()) |
+ return createTextNode(propertyValue); |
+ |
+ var shadowValues = WebInspector.ShadowEditor.Shadow.splitShadows(propertyValue); |
+ var container = createDocumentFragment(); |
+ for (var i = 0; i < shadowValues.length; i++) { |
+ if (i !== 0) |
+ container.appendChild(createTextNode(",")); // Add back the removed commas. |
+ var shadowPopoverIcon = new WebInspector.ShadowPopoverIcon(this, this._parentPane._swatchPopoverHelper, shadowValues[i], propertyName); |
+ container.appendChild(shadowPopoverIcon.element()); |
+ } |
+ return container; |
+ }, |
+ |
_updateState: function() |
{ |
if (!this.listItemElement) |
@@ -2181,6 +2202,7 @@ WebInspector.StylePropertyTreeElement.prototype = { |
if (this.property.parsedOk) { |
propertyRenderer.setColorHandler(this._processColor.bind(this)); |
propertyRenderer.setBezierHandler(this._processBezier.bind(this)); |
+ propertyRenderer.setShadowHandler(this._processShadow.bind(this)); |
} |
this.listItemElement.removeChildren(); |
@@ -2992,6 +3014,14 @@ WebInspector.StylesSidebarPropertyRenderer.prototype = { |
}, |
/** |
+ * @param {function(string, string):!Node} handler |
+ */ |
+ setShadowHandler: function(handler) |
+ { |
+ this._shadowHandler = handler; |
+ }, |
+ |
+ /** |
* @return {!Element} |
*/ |
renderName: function() |
@@ -3013,6 +3043,13 @@ WebInspector.StylesSidebarPropertyRenderer.prototype = { |
if (!this._propertyValue) |
return valueElement; |
+ if (this._shadowHandler && (this._propertyName === "box-shadow" || this._propertyName === "text-shadow") |
+ && !WebInspector.CSSMetadata.VariableRegex.test(this._propertyValue) && Runtime.experiments.isEnabled("shadowEditor")) { |
+ valueElement.appendChild(this._shadowHandler(this._propertyValue, this._propertyName)); |
+ valueElement.normalize(); |
+ return valueElement; |
+ } |
+ |
var regexes = [WebInspector.CSSMetadata.VariableRegex, WebInspector.CSSMetadata.URLRegex]; |
var processors = [createTextNode, this._processURL.bind(this)]; |
if (this._bezierHandler && WebInspector.cssMetadata().isBezierAwareProperty(this._propertyName)) { |