<!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>[192790] 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/192790">192790</a></dd>
<dt>Author</dt> <dd>bburg@apple.com</dd>
<dt>Date</dt> <dd>2015-11-29 16:56:22 -0800 (Sun, 29 Nov 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Add context menu item to Reload the Inspector
https://bugs.webkit.org/show_bug.cgi?id=141742

Reviewed by Timothy Hatcher.

Add a global context menu and global shortcut (Cmd-Opt-Shift-R) to
reload the Web Inspector frontend without closing the browser.

This should make it possible to more quickly fix typos, small nits,
etc. without having to relaunch. It might also make state
restoration bugs more visible in engineering builds, since there
is hardly any delay between seeing the old and reloaded frontends.

Note that this functionality reloads scripts from the configuration's
build directory, so you still need to &quot;build&quot; WebInspectorUI to ensure
that any changed files are properly minified and staged.

* UserInterface/Base/Main.js:
(WebInspector.unlocalizedString):

    Added. Make it obvious when strings are intentionally not localized.

(WebInspector._contextMenuRequested):

    If the &quot;Show Debug UI&quot; setting is available and true, add
    a global &quot;Reload Web Inspector&quot; menu item to every context
    menu. Otherwise, don't eagerly create a context menu.
* UserInterface/Debug/Bootstrap.js: Add Cmd-Opt-Shift-R shortcut.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceBaseMainjs">trunk/Source/WebInspectorUI/UserInterface/Base/Main.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceDebugBootstrapjs">trunk/Source/WebInspectorUI/UserInterface/Debug/Bootstrap.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (192789 => 192790)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2015-11-30 00:39:08 UTC (rev 192789)
+++ trunk/Source/WebInspectorUI/ChangeLog        2015-11-30 00:56:22 UTC (rev 192790)
</span><span class="lines">@@ -1,5 +1,36 @@
</span><span class="cx"> 2015-11-29  Brian Burg  &lt;bburg@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Web Inspector: Add context menu item to Reload the Inspector
+        https://bugs.webkit.org/show_bug.cgi?id=141742
+
+        Reviewed by Timothy Hatcher.
+
+        Add a global context menu and global shortcut (Cmd-Opt-Shift-R) to
+        reload the Web Inspector frontend without closing the browser.
+
+        This should make it possible to more quickly fix typos, small nits,
+        etc. without having to relaunch. It might also make state
+        restoration bugs more visible in engineering builds, since there
+        is hardly any delay between seeing the old and reloaded frontends.
+
+        Note that this functionality reloads scripts from the configuration's
+        build directory, so you still need to &quot;build&quot; WebInspectorUI to ensure
+        that any changed files are properly minified and staged.
+
+        * UserInterface/Base/Main.js:
+        (WebInspector.unlocalizedString):
+
+            Added. Make it obvious when strings are intentionally not localized.
+
+        (WebInspector._contextMenuRequested):
+
+            If the &quot;Show Debug UI&quot; setting is available and true, add
+            a global &quot;Reload Web Inspector&quot; menu item to every context
+            menu. Otherwise, don't eagerly create a context menu.
+        * UserInterface/Debug/Bootstrap.js: Add Cmd-Opt-Shift-R shortcut.
+
+2015-11-29  Brian Burg  &lt;bburg@apple.com&gt;
+
</ins><span class="cx">         Web Inspector: allow multiple UI components to add menu items upon getting a &quot;contextmenu&quot; event
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=151629
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceBaseMainjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (192789 => 192790)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2015-11-30 00:39:08 UTC (rev 192789)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2015-11-30 00:56:22 UTC (rev 192790)
</span><span class="lines">@@ -883,6 +883,14 @@
</span><span class="cx">     this.tabBrowser.showTabForContentView(tabContentView);
</span><span class="cx"> };
</span><span class="cx"> 
</span><ins>+WebInspector.unlocalizedString = function(string)
+{
+    // Intentionally do nothing, since this is for engineering builds
+    // (such as in Debug UI) or in text that is standardized in English.
+    // For example, CSS property names and values are never localized.
+    return string;
+}
+
</ins><span class="cx"> WebInspector.UIString = function(string, vararg)
</span><span class="cx"> {
</span><span class="cx">     if (WebInspector.dontLocalizeUserInterface)
</span><span class="lines">@@ -1328,8 +1336,21 @@
</span><span class="cx"> 
</span><span class="cx"> WebInspector._contextMenuRequested = function(event)
</span><span class="cx"> {
</span><del>-    const onlyExisting = true;
-    let proposedContextMenu = WebInspector.ContextMenu.createFromEvent(event, onlyExisting);
</del><ins>+    let proposedContextMenu;
+
+    // This is setting is only defined in engineering builds.
+    let showDebugUI = WebInspector.showDebugUISetting &amp;&amp; WebInspector.showDebugUISetting.value;
+    if (showDebugUI) {
+        proposedContextMenu = WebInspector.ContextMenu.createFromEvent(event);
+        proposedContextMenu.appendSeparator();
+        proposedContextMenu.appendItem(WebInspector.unlocalizedString(&quot;Reload Web Inspector&quot;), () =&gt; {
+            window.location.reload();
+        });
+    } else {
+        const onlyExisting = true;
+        proposedContextMenu = WebInspector.ContextMenu.createFromEvent(event, onlyExisting);
+    }
+
</ins><span class="cx">     if (proposedContextMenu)
</span><span class="cx">         proposedContextMenu.show();
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceDebugBootstrapjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Debug/Bootstrap.js (192789 => 192790)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Debug/Bootstrap.js        2015-11-30 00:39:08 UTC (rev 192789)
+++ trunk/Source/WebInspectorUI/UserInterface/Debug/Bootstrap.js        2015-11-30 00:56:22 UTC (rev 192790)
</span><span class="lines">@@ -26,10 +26,17 @@
</span><span class="cx"> // This function is invoked after the inspector has loaded.
</span><span class="cx"> WebInspector.runBootstrapOperations = function() {
</span><span class="cx">     WebInspector.showDebugUISetting = new WebInspector.Setting(&quot;show-debug-ui&quot;, false);
</span><ins>+
+    // Toggle Debug UI setting.
</ins><span class="cx">     new WebInspector.KeyboardShortcut(WebInspector.KeyboardShortcut.Modifier.Option | WebInspector.KeyboardShortcut.Modifier.Shift | WebInspector.KeyboardShortcut.Modifier.CommandOrControl, &quot;D&quot;, () =&gt; {
</span><span class="cx">         WebInspector.showDebugUISetting.value = !WebInspector.showDebugUISetting.value;
</span><span class="cx">     });
</span><span class="cx"> 
</span><ins>+    // Reload the Web Inspector.
+    new WebInspector.KeyboardShortcut(WebInspector.KeyboardShortcut.Modifier.Option | WebInspector.KeyboardShortcut.Modifier.Shift | WebInspector.KeyboardShortcut.Modifier.CommandOrControl, &quot;R&quot;, () =&gt; {
+        window.location.reload();
+    });
+
</ins><span class="cx">     let toolTip = &quot;Enable dump inspector messages to console&quot;;
</span><span class="cx">     let activatedToolTip = &quot;Disable dump inspector messages to console&quot;;
</span><span class="cx">     let debugInspectorToolbarButton = new WebInspector.ActivateButtonToolbarItem(&quot;debug-inspector&quot;, toolTip, activatedToolTip, null, &quot;Images/Console.svg&quot;);
</span></span></pre>
</div>
</div>

</body>
</html>