<!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>[208857] trunk</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/208857">208857</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-11-17 12:25:24 -0800 (Thu, 17 Nov 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Shift clicking on named color value only shows its hex form
https://bugs.webkit.org/show_bug.cgi?id=162758

Patch by Devin Rousso &lt;dcrousso+webkit@gmail.com&gt; on 2016-11-17
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

* UserInterface/Models/Color.js:
(WebInspector.Color.prototype.nextFormat):
Reworked the logic for the formatting order to be the following:
 - Long HEX and Long HEXAlpha
 - RGB and RGBA
 - HSL and HSLA
 - Keyword (if applicable)
 - Short HEX (if applicable)
 - Short HEXAlpha (if applicable)
It will only show formats with alpha values if the color value has an alpha that is not 1.
If the alpha is not 1, it will not show formats with non-alpha values.

The changes to this function have no effect on the context menu items of InlineSwatch
elements.  The purpose of each of those items is to allow the user to change the format to
a specified type, whereas WebInspector.Color.prototype.nextFormat is used to cycle through
all of the relevant formats.

(WebInspector.Color.prototype._toRGBString):
(WebInspector.Color.prototype._toRGBAString):
(WebInspector.Color.prototype._toHSLString):
(WebInspector.Color.prototype._toHSLAString):
Unrelated fix of extra decimals when converting from HEX to RGB and HSL.

* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor._inlineSwatchValueChanged):
Removed assertion for `_hasActiveInlineSwatchEditor` since the value may change from
switching the format of a color swatch (Shift-Click).

LayoutTests:

* inspector/model/color.html:
Updated the WebInspector.Color.prototype.nextFormat test for the new nextFormat logic.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsinspectormodelcolorhtml">trunk/LayoutTests/inspector/model/color.html</a></li>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceModelsColorjs">trunk/Source/WebInspectorUI/UserInterface/Models/Color.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsCSSStyleDeclarationTextEditorjs">trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (208856 => 208857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-11-17 20:15:51 UTC (rev 208856)
+++ trunk/LayoutTests/ChangeLog        2016-11-17 20:25:24 UTC (rev 208857)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2016-11-17  Devin Rousso  &lt;dcrousso+webkit@gmail.com&gt;
+
+        Web Inspector: Shift clicking on named color value only shows its hex form
+        https://bugs.webkit.org/show_bug.cgi?id=162758
+
+        Reviewed by Timothy Hatcher.
+
+        * inspector/model/color.html:
+        Updated the WebInspector.Color.prototype.nextFormat test for the new nextFormat logic.
+
</ins><span class="cx"> 2016-11-17  Ryan Haddad  &lt;ryanhaddad@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Marking http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html as flaky.
</span></span></pre></div>
<a id="trunkLayoutTestsinspectormodelcolorhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/model/color.html (208856 => 208857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/model/color.html        2016-11-17 20:15:51 UTC (rev 208856)
+++ trunk/LayoutTests/inspector/model/color.html        2016-11-17 20:25:24 UTC (rev 208857)
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx">     suite.addTestCase({
</span><span class="cx">         name: &quot;WebInspector.Color.prototype.nextFormat&quot;,
</span><span class="cx">         description: &quot;Test we can cycle through color formats for different colors.&quot;,
</span><del>-        test: (resolve, reject) =&gt; {
</del><ins>+        test(resolve, reject) {
</ins><span class="cx">             function test(string, phases) {
</span><span class="cx">                 let color = WebInspector.Color.fromString(string);
</span><span class="cx">                 color.format = WebInspector.Color.Format.Original;
</span><span class="lines">@@ -193,7 +193,6 @@
</span><span class="cx">                 WebInspector.Color.Format.Keyword,
</span><span class="cx">                 WebInspector.Color.Format.ShortHEXAlpha,
</span><span class="cx">                 WebInspector.Color.Format.HEXAlpha,
</span><del>-                WebInspector.Color.Format.Original,
</del><span class="cx">             ]);
</span><span class="cx"> 
</span><span class="cx">             // All without alpha.
</span><span class="lines">@@ -203,7 +202,6 @@
</span><span class="cx">                 WebInspector.Color.Format.Keyword,
</span><span class="cx">                 WebInspector.Color.Format.ShortHEX,
</span><span class="cx">                 WebInspector.Color.Format.HEX,
</span><del>-                WebInspector.Color.Format.Original,
</del><span class="cx">             ]);
</span><span class="cx"> 
</span><span class="cx">             // No short hex or keyword.
</span><span class="lines">@@ -211,7 +209,6 @@
</span><span class="cx">                 WebInspector.Color.Format.RGB,
</span><span class="cx">                 WebInspector.Color.Format.HSL,
</span><span class="cx">                 WebInspector.Color.Format.HEX,
</span><del>-                WebInspector.Color.Format.Original,
</del><span class="cx">             ]);
</span><span class="cx"> 
</span><span class="cx">             // No short hex alpha or keyword.
</span><span class="lines">@@ -219,7 +216,6 @@
</span><span class="cx">                 WebInspector.Color.Format.RGBA,
</span><span class="cx">                 WebInspector.Color.Format.HSLA,
</span><span class="cx">                 WebInspector.Color.Format.HEXAlpha,
</span><del>-                WebInspector.Color.Format.Original,
</del><span class="cx">             ]);
</span><span class="cx"> 
</span><span class="cx">             resolve();
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (208856 => 208857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2016-11-17 20:15:51 UTC (rev 208856)
+++ trunk/Source/WebInspectorUI/ChangeLog        2016-11-17 20:25:24 UTC (rev 208857)
</span><span class="lines">@@ -1,3 +1,38 @@
</span><ins>+2016-11-17  Devin Rousso  &lt;dcrousso+webkit@gmail.com&gt;
+
+        Web Inspector: Shift clicking on named color value only shows its hex form
+        https://bugs.webkit.org/show_bug.cgi?id=162758
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Models/Color.js:
+        (WebInspector.Color.prototype.nextFormat):
+        Reworked the logic for the formatting order to be the following:
+         - Long HEX and Long HEXAlpha
+         - RGB and RGBA
+         - HSL and HSLA
+         - Keyword (if applicable)
+         - Short HEX (if applicable)
+         - Short HEXAlpha (if applicable)
+        It will only show formats with alpha values if the color value has an alpha that is not 1.
+        If the alpha is not 1, it will not show formats with non-alpha values.
+
+        The changes to this function have no effect on the context menu items of InlineSwatch
+        elements.  The purpose of each of those items is to allow the user to change the format to
+        a specified type, whereas WebInspector.Color.prototype.nextFormat is used to cycle through
+        all of the relevant formats.
+
+        (WebInspector.Color.prototype._toRGBString):
+        (WebInspector.Color.prototype._toRGBAString):
+        (WebInspector.Color.prototype._toHSLString):
+        (WebInspector.Color.prototype._toHSLAString):
+        Unrelated fix of extra decimals when converting from HEX to RGB and HSL.
+
+        * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
+        (WebInspector.CSSStyleDeclarationTextEditor._inlineSwatchValueChanged):
+        Removed assertion for `_hasActiveInlineSwatchEditor` since the value may change from
+        switching the format of a color swatch (Shift-Click).
+
</ins><span class="cx"> 2016-11-16  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Background tabs are often updating non-stop because they think they are visible
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceModelsColorjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Models/Color.js (208856 => 208857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Models/Color.js        2016-11-17 20:15:51 UTC (rev 208856)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/Color.js        2016-11-17 20:25:24 UTC (rev 208857)
</span><span class="lines">@@ -234,6 +234,8 @@
</span><span class="cx"> 
</span><span class="cx">         switch (format) {
</span><span class="cx">         case WebInspector.Color.Format.Original:
</span><ins>+        case WebInspector.Color.Format.HEX:
+        case WebInspector.Color.Format.HEXAlpha:
</ins><span class="cx">             return this.simple ? WebInspector.Color.Format.RGB : WebInspector.Color.Format.RGBA;
</span><span class="cx"> 
</span><span class="cx">         case WebInspector.Color.Format.RGB:
</span><span class="lines">@@ -242,7 +244,7 @@
</span><span class="cx"> 
</span><span class="cx">         case WebInspector.Color.Format.HSL:
</span><span class="cx">         case WebInspector.Color.Format.HSLA:
</span><del>-            if (this.keyword)
</del><ins>+            if (this.isKeyword())
</ins><span class="cx">                 return WebInspector.Color.Format.Keyword;
</span><span class="cx">             if (this.simple)
</span><span class="cx">                 return this.canBeSerializedAsShortHEX() ? WebInspector.Color.Format.ShortHEX : WebInspector.Color.Format.HEX;
</span><span class="lines">@@ -254,10 +256,6 @@
</span><span class="cx">         case WebInspector.Color.Format.ShortHEXAlpha:
</span><span class="cx">             return WebInspector.Color.Format.HEXAlpha;
</span><span class="cx"> 
</span><del>-        case WebInspector.Color.Format.HEX:
-        case WebInspector.Color.Format.HEXAlpha:
-            return WebInspector.Color.Format.Original;
-
</del><span class="cx">         case WebInspector.Color.Format.Keyword:
</span><span class="cx">             if (this.simple)
</span><span class="cx">                 return this.canBeSerializedAsShortHEX() ? WebInspector.Color.Format.ShortHEX : WebInspector.Color.Format.HEX;
</span><span class="lines">@@ -484,12 +482,15 @@
</span><span class="cx">             return this._toRGBAString();
</span><span class="cx"> 
</span><span class="cx">         let rgba = this.rgba.slice(0, -1);
</span><ins>+        rgba = rgba.map((value) =&gt; value.maxDecimals(2));
</ins><span class="cx">         return &quot;rgb(&quot; + rgba.join(&quot;, &quot;) + &quot;)&quot;;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     _toRGBAString()
</span><span class="cx">     {
</span><del>-        return &quot;rgba(&quot; + this.rgba.join(&quot;, &quot;) + &quot;)&quot;;
</del><ins>+        let rgba = this.rgba;
+        rgba = rgba.map((value) =&gt; value.maxDecimals(2));
+        return &quot;rgba(&quot; + rgba.join(&quot;, &quot;) + &quot;)&quot;;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     _toHSLString()
</span><span class="lines">@@ -498,6 +499,7 @@
</span><span class="cx">             return this._toHSLAString();
</span><span class="cx"> 
</span><span class="cx">         let hsla = this.hsla;
</span><ins>+        hsla = hsla.map((value) =&gt; value.maxDecimals(2));
</ins><span class="cx">         return &quot;hsl(&quot; + hsla[0] + &quot;, &quot; + hsla[1] + &quot;%, &quot; + hsla[2] + &quot;%)&quot;;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -504,6 +506,7 @@
</span><span class="cx">     _toHSLAString()
</span><span class="cx">     {
</span><span class="cx">         let hsla = this.hsla;
</span><ins>+        hsla = hsla.map((value) =&gt; value.maxDecimals(2));
</ins><span class="cx">         return &quot;hsla(&quot; + hsla[0] + &quot;, &quot; + hsla[1] + &quot;%, &quot; + hsla[2] + &quot;%, &quot; + hsla[3] + &quot;)&quot;;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsCSSStyleDeclarationTextEditorjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js (208856 => 208857)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js        2016-11-17 20:15:51 UTC (rev 208856)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js        2016-11-17 20:25:24 UTC (rev 208857)
</span><span class="lines">@@ -1330,8 +1330,6 @@
</span><span class="cx"> 
</span><span class="cx">     _inlineSwatchValueChanged(event)
</span><span class="cx">     {
</span><del>-        console.assert(this._hasActiveInlineSwatchEditor);
-
</del><span class="cx">         let swatch = event &amp;&amp; event.target;
</span><span class="cx">         console.assert(swatch);
</span><span class="cx">         if (!swatch)
</span></span></pre>
</div>
</div>

</body>
</html>