Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(998)

Unified Diff: third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js

Issue 2230183004: DevTools: Add shadow-editor swatch/icon before box-shadows and text-shadows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move model to another patch Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 da94dcc7ded3ed81af9008d31ac1751125d0717a..9219bd50e1cbd0104cb4cf0a455396545fff2292 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,32 @@ WebInspector.StylePropertyTreeElement.prototype = {
return new WebInspector.BezierPopoverIcon(this, swatchPopoverHelper, text).element();
},
+ /**
+ * @param {string} propertyValue
+ * @param {string} propertyName
+ * @return {!Node}
+ */
+ _processShadow: function(propertyValue, propertyName)
+ {
+ var shadows;
+ if (propertyName === "box-shadow")
+ shadows = WebInspector.CSSShadowModel.parseBoxShadow(propertyValue);
+ else
+ shadows = WebInspector.CSSShadowModel.parseTextShadow(propertyValue);
+ if (!shadows.length || !this._editable())
dgozman 2016/08/23 17:40:56 Let's not even parse if value is not editable.
flandy 2016/08/23 19:27:15 Done.
+ return createTextNode(propertyValue);
+ var container = createDocumentFragment();
+ var swatchPopoverHelper = this._parentPane._swatchPopoverHelper;
+ for (var i = 0; i < shadows.length; i++) {
+ if (i !== 0)
+ container.appendChild(createTextNode(", ")); // Add back commas and spaces between each shadow.
dgozman 2016/08/23 17:40:57 This removes original formatting. Do we do this ev
flandy 2016/08/23 19:27:15 Andrey says it is okay right now.
dgozman 2016/08/23 19:29:47 Let's have a TODO then.
+ var cssShadowSwatch = WebInspector.CSSShadowSwatch.create();
+ cssShadowSwatch.setCSSShadow(shadows[i]);
+ container.appendChild(cssShadowSwatch);
+ }
+ return container;
+ },
+
_updateState: function()
{
if (!this.listItemElement)
@@ -2181,6 +2207,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 +3019,14 @@ WebInspector.StylesSidebarPropertyRenderer.prototype = {
},
/**
+ * @param {function(string, string):!Node} handler
+ */
+ setShadowHandler: function(handler)
+ {
+ this._shadowHandler = handler;
+ },
+
+ /**
* @return {!Element}
*/
renderName: function()
@@ -3013,6 +3048,13 @@ WebInspector.StylesSidebarPropertyRenderer.prototype = {
if (!this._propertyValue)
return valueElement;
+ if (this._shadowHandler && (this._propertyName === "box-shadow" || this._propertyName === "text-shadow")
dgozman 2016/08/23 17:40:57 Are there any -webkit aliases we should support as
flandy 2016/08/23 19:27:14 Yes, thanks. There is -webkit-box-shadow but not -
+ && !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)) {

Powered by Google App Engine
This is Rietveld 408576698