<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[188490] trunk/Source/WebInspectorUI</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/188490">188490</a></dd>
<dt>Author</dt> <dd>drousso@apple.com</dd>
<dt>Date</dt> <dd>2015-08-14 15:04:56 -0700 (Fri, 14 Aug 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Style changes to Visual sidebar editors
https://bugs.webkit.org/show_bug.cgi?id=148021

Reviewed by Brian Burg.

Various style fixes and feature enhancements in some of the Visual style property editors.

* UserInterface/Views/VisualStyleColorPicker.css:
(.visual-style-property-container.input-color-picker &gt; .visual-style-property-value-container &gt; .color-swatch):
(.visual-style-property-container.input-color-picker &gt; .visual-style-property-value-container &gt; input):
(.visual-style-property-container.input-color-picker.multiple &gt; .visual-style-property-value-container &gt; .visual-style-multiple-property-placeholder):

* UserInterface/Views/VisualStyleKeywordCheckbox.css:
(.visual-style-property-container.keyword-checkbox.font-variant &gt; .visual-style-property-value-container &gt; input):
(.visual-style-property-container.keyword-checkbox.font-variant &gt; .visual-style-property-value-container &gt; input::before):
(.visual-style-property-container.keyword-checkbox &gt; .visual-style-property-value-container &gt; input): Deleted.
(.visual-style-property-container.keyword-checkbox &gt; .visual-style-property-value-container &gt; div): Deleted.
Replaced the SVG image before the checkbox with a :before pseudo-element with content.

* UserInterface/Views/VisualStyleKeywordCheckbox.js:
(WebInspector.VisualStyleKeywordCheckbox):
Removed the SVG image before the checkbox.

* UserInterface/Views/VisualStyleKeywordPicker.js:
(WebInspector.VisualStyleKeywordPicker.prototype.get value):
(WebInspector.VisualStyleKeywordPicker.prototype.set value):
(WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
(WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._getValue):
(WebInspector.VisualStyleKeywordPicker.prototype._setValue):
(WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue):
(WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
Due to a current bug (https://webkit.org/b/147064), you cannot extend ES6 getters/setters.  In order to work
around this, a member function was added that performs the same action as the getter/setter, but can be extended.

* UserInterface/Views/VisualStylePropertyEditorLink.css:
(.visual-style-property-editor-link.linked &gt; .visual-style-property-editor-link-border):
(.visual-style-property-editor-link &gt; .visual-style-property-editor-link-icon &gt; .unlinked-icon):

* UserInterface/Views/VisualStyleRelativeNumberSlider.js:
(WebInspector.VisualStyleRelativeNumberSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
(WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):

* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item &gt; input[type=&quot;checkbox&quot;]):
(.item.visual-style-selector-item.selected &gt; input[type=&quot;checkbox&quot;]::before):
(.item.visual-style-selector-item.modified &gt; .icon):
(.item.visual-style-selector-item:not(.dom-element-icon).editable &gt; .titles &gt; .title:focus):

* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
Added another context menu item to show the source location for the selected rule.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleColorPickercss">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleKeywordCheckboxcss">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.css</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleKeywordCheckboxjs">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleKeywordPickerjs">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStylePropertyEditorLinkcss">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStylePropertyEditorLink.css</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleRelativeNumberSliderjs">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleRelativeNumberSlider.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleSelectorTreeItemcss">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.css</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleSelectorTreeItemjs">trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/ChangeLog        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -1,5 +1,62 @@
</span><span class="cx"> 2015-08-14  Devin Rousso  &lt;drousso@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Web Inspector: Style changes to Visual sidebar editors
+        https://bugs.webkit.org/show_bug.cgi?id=148021
+
+        Reviewed by Brian Burg.
+
+        Various style fixes and feature enhancements in some of the Visual style property editors.
+
+        * UserInterface/Views/VisualStyleColorPicker.css:
+        (.visual-style-property-container.input-color-picker &gt; .visual-style-property-value-container &gt; .color-swatch):
+        (.visual-style-property-container.input-color-picker &gt; .visual-style-property-value-container &gt; input):
+        (.visual-style-property-container.input-color-picker.multiple &gt; .visual-style-property-value-container &gt; .visual-style-multiple-property-placeholder):
+
+        * UserInterface/Views/VisualStyleKeywordCheckbox.css:
+        (.visual-style-property-container.keyword-checkbox.font-variant &gt; .visual-style-property-value-container &gt; input):
+        (.visual-style-property-container.keyword-checkbox.font-variant &gt; .visual-style-property-value-container &gt; input::before):
+        (.visual-style-property-container.keyword-checkbox &gt; .visual-style-property-value-container &gt; input): Deleted.
+        (.visual-style-property-container.keyword-checkbox &gt; .visual-style-property-value-container &gt; div): Deleted.
+        Replaced the SVG image before the checkbox with a :before pseudo-element with content.
+
+        * UserInterface/Views/VisualStyleKeywordCheckbox.js:
+        (WebInspector.VisualStyleKeywordCheckbox):
+        Removed the SVG image before the checkbox.
+
+        * UserInterface/Views/VisualStyleKeywordPicker.js:
+        (WebInspector.VisualStyleKeywordPicker.prototype.get value):
+        (WebInspector.VisualStyleKeywordPicker.prototype.set value):
+        (WebInspector.VisualStyleKeywordPicker.prototype.set placeholder):
+        (WebInspector.VisualStyleKeywordPicker.prototype.get synthesizedValue):
+        (WebInspector.VisualStyleKeywordPicker.prototype._getValue):
+        (WebInspector.VisualStyleKeywordPicker.prototype._setValue):
+        (WebInspector.VisualStyleKeywordPicker.prototype._generateSynthesizedValue):
+        (WebInspector.VisualStyleKeywordPicker.prototype._handleKeywordChanged):
+        Due to a current bug (https://webkit.org/b/147064), you cannot extend ES6 getters/setters.  In order to work
+        around this, a member function was added that performs the same action as the getter/setter, but can be extended.
+
+        * UserInterface/Views/VisualStylePropertyEditorLink.css:
+        (.visual-style-property-editor-link.linked &gt; .visual-style-property-editor-link-border):
+        (.visual-style-property-editor-link &gt; .visual-style-property-editor-link-icon &gt; .unlinked-icon):
+
+        * UserInterface/Views/VisualStyleRelativeNumberSlider.js:
+        (WebInspector.VisualStyleRelativeNumberSlider):
+        (WebInspector.VisualStyleRelativeNumberSlider.prototype._resetSlider):
+        (WebInspector.VisualStyleRelativeNumberSlider.prototype._sliderChanged):
+
+        * UserInterface/Views/VisualStyleSelectorTreeItem.css:
+        (.item.visual-style-selector-item &gt; input[type=&quot;checkbox&quot;]):
+        (.item.visual-style-selector-item.selected &gt; input[type=&quot;checkbox&quot;]::before):
+        (.item.visual-style-selector-item.modified &gt; .icon):
+        (.item.visual-style-selector-item:not(.dom-element-icon).editable &gt; .titles &gt; .title:focus):
+
+        * UserInterface/Views/VisualStyleSelectorTreeItem.js:
+        (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
+        (WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
+        Added another context menu item to show the source location for the selected rule.
+
+2015-08-14  Devin Rousso  &lt;drousso@apple.com&gt;
+
</ins><span class="cx">         Web Inspector: Add visual editors for CSS properties
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=147576
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleColorPickercss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx">     /* Make a checkered background for transparent colors to show against. */
</span><span class="cx">     background-image: linear-gradient(to bottom, hsl(0, 0%, 80%), hsl(0, 0%, 80%)),
</span><span class="cx">         linear-gradient(to bottom, hsl(0, 0%, 80%), hsl(0, 0%, 80%));
</span><del>-    background-color: hsl(0, 100%, 100%);
</del><ins>+    background-color: white;
</ins><span class="cx">     background-size: 50%;
</span><span class="cx">     background-position: top left, bottom right;
</span><span class="cx">     background-repeat: no-repeat;
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx">     border-bottom-right-radius: 4px;
</span><span class="cx">     border: solid 1px hsl(0, 0%, 83%);
</span><span class="cx">     border-left: none;
</span><del>-    text-align: right;
</del><ins>+    text-align: left;
</ins><span class="cx">     font-size: 10px;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -81,5 +81,5 @@
</span><span class="cx">     width: calc(100% - 20px);
</span><span class="cx">     left: 18px;
</span><span class="cx">     padding-right: 3px;
</span><del>-    text-align: right;
</del><ins>+    text-align: left;
</ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleKeywordCheckboxcss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.css (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.css        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.css        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -29,13 +29,20 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .visual-style-property-container.keyword-checkbox &gt; .visual-style-property-value-container &gt; input {
</span><del>-    order: 1;
-    position: absolute;
-    top: 4px;
</del><span class="cx">     width: auto;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-.visual-style-property-container.keyword-checkbox &gt; .visual-style-property-value-container &gt; div {
-    width: 18px;
-    margin: 0 2px;
</del><ins>+/* Font Variant */
+.visual-style-property-container.keyword-checkbox.font-variant &gt; .visual-style-property-value-container &gt; input {
+    margin-left: 47px;
</ins><span class="cx"> }
</span><ins>+
+.visual-style-property-container.keyword-checkbox.font-variant &gt; .visual-style-property-value-container &gt; input::before {
+    position: absolute;
+    top: 5px;
+    left: 0;
+    font-size: 9px;
+    font-variant: small-caps;
+    word-spacing: -2px;
+    content: &quot;Small Caps&quot;;
+}
</ins></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleKeywordCheckboxjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordCheckbox.js        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -25,22 +25,16 @@
</span><span class="cx"> 
</span><span class="cx"> WebInspector.VisualStyleKeywordCheckbox = class VisualStyleKeywordCheckbox extends WebInspector.VisualStylePropertyEditor
</span><span class="cx"> {
</span><del>-    constructor(propertyNames, text, value, checkboxImage, layoutReversed)
</del><ins>+    constructor(propertyNames, text, value, layoutReversed)
</ins><span class="cx">     {
</span><span class="cx">         super(propertyNames, text, null, null, &quot;keyword-checkbox&quot;, layoutReversed);
</span><span class="cx"> 
</span><del>-        this._value = value || null;
-
</del><span class="cx">         this._checkboxElement = document.createElement(&quot;input&quot;);
</span><span class="cx">         this._checkboxElement.type = &quot;checkbox&quot;;
</span><span class="cx">         this._checkboxElement.addEventListener(&quot;change&quot;, this._valueDidChange.bind(this));
</span><span class="cx">         this.contentElement.appendChild(this._checkboxElement);
</span><span class="cx"> 
</span><del>-        if (checkboxImage) {
-            wrappedSVGDocument(checkboxImage, null, value, function(wrapper) {
-                this.contentElement.appendChild(wrapper);
-            }.bind(this));
-        }
</del><ins>+        this._value = value.toLowerCase().replace(/\s/g, &quot;-&quot;) || null;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Public
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleKeywordPickerjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleKeywordPicker.js        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -53,21 +53,14 @@
</span><span class="cx"> 
</span><span class="cx">     get value()
</span><span class="cx">     {
</span><del>-        return this._keywordSelectElement.value;
</del><ins>+        // FIXME: &lt;https://webkit.org/b/147064&gt; Getter and setter on super are called with wrong &quot;this&quot; object
+        return this._getValue();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     set value(value)
</span><span class="cx">     {
</span><del>-        if (this._updatedValues.propertyMissing || !this.valueIsSupportedKeyword(value))
-            return;
-
-        if (value === this.value)
-            return;
-
-        if (this._valueIsSupportedAdvancedKeyword(value))
-            this._addAdvancedValues();
-
-        this._keywordSelectElement.value = value;
</del><ins>+        // FIXME: &lt;https://webkit.org/b/147064&gt; Getter and setter on super are called with wrong &quot;this&quot; object
+        this._setValue(value);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     set placeholder(placeholder)
</span><span class="lines">@@ -75,16 +68,13 @@
</span><span class="cx">         if (this._updatedValues.conflictingValues)
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        this.specialPropertyPlaceholderElement.textContent = this._keyForKeyword(placeholder) || placeholder;
</del><ins>+        this.specialPropertyPlaceholderElement.textContent = this._canonicalizedKeywordForKey(placeholder) || placeholder;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     get synthesizedValue()
</span><span class="cx">     {
</span><del>-        let value = this._keywordSelectElement.value;
-        if (!value || !value.length)
-            return null;
-
-        return value;
</del><ins>+        // FIXME: &lt;https://webkit.org/b/147064&gt; Getter and setter on super are called with wrong &quot;this&quot; object
+        return this._generateSynthesizedValue();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     updateEditorValues(updatedValues)
</span><span class="lines">@@ -99,14 +89,42 @@
</span><span class="cx"> 
</span><span class="cx">     // Private
</span><span class="cx"> 
</span><del>-    _handleKeywordChanged()
</del><ins>+    _getValue()
</ins><span class="cx">     {
</span><del>-        this._valueDidChange();
</del><ins>+        return this._keywordSelectElement.value;
+    }
</ins><span class="cx"> 
</span><del>-        if (this._keywordSelectElement.contains(this._unchangedOptionElement) &amp;&amp; this._unchangedOptionElement.selected)
</del><ins>+    _setValue(value)
+    {
+        if (!value || !value.length) {
+            this._unchangedOptionElement.selected = true;
</ins><span class="cx">             this.specialPropertyPlaceholderElement.hidden = false;
</span><ins>+            return;
+        }
+
+        if (this._updatedValues.propertyMissing || !this.valueIsSupportedKeyword(value))
+            return;
+
+        if (value === this._keywordSelectElement.value)
+            return;
+
+        if (this._valueIsSupportedAdvancedKeyword(value))
+            this._addAdvancedValues();
+
+        this._keywordSelectElement.value = value;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    _generateSynthesizedValue()
+    {
+        return this._unchangedOptionElement.selected ? null : this._keywordSelectElement.value;
+    }
+
+    _handleKeywordChanged()
+    {
+        this._valueDidChange();
+        this.specialPropertyPlaceholderElement.hidden = !this._unchangedOptionElement.selected;
+    }
+
</ins><span class="cx">     _keywordSelectMouseDown(event)
</span><span class="cx">     {
</span><span class="cx">         if (event.altKey)
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStylePropertyEditorLinkcss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStylePropertyEditorLink.css (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStylePropertyEditorLink.css        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStylePropertyEditorLink.css        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -71,7 +71,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .visual-style-property-editor-link.linked &gt; .visual-style-property-editor-link-border {
</span><del>-    border-top: 1px solid hsl(0, 0, 0);
</del><ins>+    border-top: 1px solid black;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .visual-style-property-editor-link &gt; .visual-style-property-editor-link-border.left {
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx"> .visual-style-property-editor-link &gt; .visual-style-property-editor-link-icon &gt; .unlinked-icon {
</span><span class="cx">     position: relative;
</span><del>-    background-color: hsl(0, 100%, 100%);
</del><ins>+    background-color: white;
</ins><span class="cx">     z-index: 1;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleRelativeNumberSliderjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleRelativeNumberSlider.js (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleRelativeNumberSlider.js        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleRelativeNumberSlider.js        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -37,8 +37,8 @@
</span><span class="cx">         this._sliderElement.addEventListener(&quot;input&quot;, this._sliderChanged.bind(this));
</span><span class="cx">         this._element.appendChild(this._sliderElement);
</span><span class="cx"> 
</span><del>-        this._startingValue = null;
-        this._scale = 100;
</del><ins>+        this._startingValue = 0;
+        this._scale = 200;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // Public
</span><span class="lines">@@ -62,15 +62,16 @@
</span><span class="cx">         if (isNaN(this._startingValue))
</span><span class="cx">             this._startingValue = parseFloat(this.placeholder) || 0;
</span><span class="cx"> 
</span><del>-        let origin = this._scale / 2;
-        if (this._allowNegativeValues || this._startingValue &gt; origin) {
-            this._sliderElement.min = -origin;
-            this._sliderElement.max = origin;
</del><ins>+        let midpoint = this._scale / 2;
+        if (this._allowNegativeValues || this._startingValue &gt; midpoint) {
+            this._sliderElement.min = -midpoint;
+            this._sliderElement.max = midpoint;
</ins><span class="cx">             this._sliderElement.value = 0;
</span><span class="cx">         } else {
</span><span class="cx">             this._sliderElement.min = 0;
</span><span class="cx">             this._sliderElement.max = this._scale;
</span><span class="cx">             this._sliderElement.value = this._startingValue;
</span><ins>+            this._startingValue = 0;
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleSelectorTreeItemcss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.css (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.css        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.css        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> 
</span><span class="cx"> .item.visual-style-selector-item.selected {
</span><span class="cx">     background-color: hsl(213, 92%, 55%) !important;
</span><del>-    color: hsl(0, 100%, 100%);
</del><ins>+    color: white;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .item.visual-style-selector-item &gt; .disclosure-button {
</span><span class="lines">@@ -42,9 +42,21 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .item.visual-style-selector-item &gt; input[type=&quot;checkbox&quot;] {
</span><ins>+    position: relative;
</ins><span class="cx">     margin: 4.5px 0 4px 5px;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+.item.visual-style-selector-item.selected &gt; input[type=&quot;checkbox&quot;]::before {
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+    border: 1px solid white;
+    border-radius: 3px;
+    content: &quot;&quot;;
+}
+
</ins><span class="cx"> .item.visual-style-selector-item &gt; .icon {
</span><span class="cx">     width: 16px;
</span><span class="cx">     height: 16px;
</span><span class="lines">@@ -52,7 +64,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .item.visual-style-selector-item.modified &gt; .icon {
</span><del>-    -webkit-filter: brightness(0.75);
</del><ins>+    filter: brightness(0.75);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .item.visual-style-selector-item.selector-invalid &gt; .icon {
</span><span class="lines">@@ -96,7 +108,7 @@
</span><span class="cx"> 
</span><span class="cx"> .item.visual-style-selector-item:not(.dom-element-icon).editable &gt; .titles &gt; .title:focus {
</span><span class="cx">     color: black;
</span><del>-    background-color: hsl(0, 100%, 100%);
</del><ins>+    background-color: white;
</ins><span class="cx">     border-radius: 2px;
</span><span class="cx">     box-shadow: hsla(0, 0%, 0%, 0.15) 0 1px 0, 0 0 0 3px hsla(0, 100%, 100%, 0.3);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsVisualStyleSelectorTreeItemjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.js (188489 => 188490)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.js        2015-08-14 22:01:34 UTC (rev 188489)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.js        2015-08-14 22:04:56 UTC (rev 188490)
</span><span class="lines">@@ -134,8 +134,18 @@
</span><span class="cx">     {
</span><span class="cx">         let contextMenu = new WebInspector.ContextMenu(event);
</span><span class="cx"> 
</span><ins>+        if (this.representedObject.ownerRule) {
+            contextMenu.appendItem(WebInspector.UIString(&quot;Show Source&quot;), function() {
+                if (event.metaKey)
+                    WebInspector.showOriginalUnformattedSourceCodeLocation(this.representedObject.ownerRule.sourceCodeLocation);
+                else
+                    WebInspector.showSourceCodeLocation(this.representedObject.ownerRule.sourceCodeLocation);
+            }.bind(this));
+        }
+
</ins><span class="cx">         contextMenu.appendItem(WebInspector.UIString(&quot;Copy Rule&quot;), function() {
</span><del>-            InspectorFrontendHost.copyText(this.representedObject.generateCSSRuleString());
</del><ins>+            let selectorText = !this.representedObject.ownerRule ? this.representedObject.node.appropriateSelectorFor(true) : null;
+            InspectorFrontendHost.copyText(this.representedObject.generateCSSRuleString(selectorText));
</ins><span class="cx">         }.bind(this));
</span><span class="cx"> 
</span><span class="cx">         contextMenu.appendItem(WebInspector.UIString(&quot;Reset&quot;), function() {
</span><span class="lines">@@ -162,6 +172,9 @@
</span><span class="cx"> 
</span><span class="cx">     _handleMainTitleMouseDown(event)
</span><span class="cx">     {
</span><ins>+        if (event.button !== 0 || event.ctrlKey)
+            return;
+
</ins><span class="cx">         this._listItemNode.classList.toggle(&quot;editable&quot;, this.selected);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>