<!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>[185213] 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/185213">185213</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-06-04 13:15:14 -0700 (Thu, 04 Jun 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Activity Viewer does not update on &quot;Clear Log on reload&quot;
https://bugs.webkit.org/show_bug.cgi?id=145466

Patch by Tobias Reiss &lt;tobi+webkit@basecode.de&gt; on 2015-06-04
Reviewed by Joseph Pecoraro.

1. Isolate logic within LogManager and remove hacks/logic from all other files
2. Within LogManager: Differentiate &quot;messagesCleared&quot; calls
 a) that happen as a result of a &quot;requested clear&quot; by Frontend (e.g. Button)
 b) that happen on page reload and install &quot;clear/keep-on-page-reload&quot; logic
 c) that happen on frame navigated, console.clear() or clear()
3. Unify &quot;ActiveLogCleared&quot; and &quot;Cleared&quot; events to &quot;Cleared&quot;

For step 2b and 2c it is important to delay the handling and wait until
&quot;_mainResourceDidChange&quot; has determined whether a page reload happened or
not.

* UserInterface/Base/Main.js:
(WebInspector.loaded):
Store &quot;clear-log-on-reload&quot; setting globally.

* UserInterface/Controllers/IssueManager.js:
(WebInspector.IssueManager):
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard): Deleted.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted.
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted.
(WebInspector.ObjectTreeView): Deleted.
Remove deleted events.

* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut):
(WebInspector.JavaScriptLogViewController.prototype.clear): Deleted.
Remove delegate function call and call LogManager directly.

* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._delayedMessagesCleared):
(WebInspector.LogManager.prototype.requestClearMessages):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Isolate &quot;clear log&quot; logic, especially clear/keep-log-on-reload logic.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
(WebInspector.LogContentView.prototype._clearLog):
(WebInspector.LogContentView.prototype.didClearMessages): Deleted.
(WebInspector.LogContentView.prototype._sessionsCleared): Deleted.
(WebInspector.LogContentView.prototype._activeLogCleared): Deleted.
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted.
Make it a consumer of LogManager and remove special hacks. Simplify code.</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="#trunkSourceWebInspectorUIUserInterfaceControllersIssueManagerjs">trunk/Source/WebInspectorUI/UserInterface/Controllers/IssueManager.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceControllersJavaScriptLogViewControllerjs">trunk/Source/WebInspectorUI/UserInterface/Controllers/JavaScriptLogViewController.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceControllersLogManagerjs">trunk/Source/WebInspectorUI/UserInterface/Controllers/LogManager.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceModelsDefaultDashboardjs">trunk/Source/WebInspectorUI/UserInterface/Models/DefaultDashboard.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsLogContentViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsObjectTreeViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/ObjectTreeView.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/ChangeLog        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -1,3 +1,61 @@
</span><ins>+2015-06-04  Tobias Reiss  &lt;tobi+webkit@basecode.de&gt;
+        
+        Web Inspector: Activity Viewer does not update on &quot;Clear Log on reload&quot;
+        https://bugs.webkit.org/show_bug.cgi?id=145466
+        
+        Reviewed by Joseph Pecoraro.
+
+        1. Isolate logic within LogManager and remove hacks/logic from all other files
+        2. Within LogManager: Differentiate &quot;messagesCleared&quot; calls
+         a) that happen as a result of a &quot;requested clear&quot; by Frontend (e.g. Button)
+         b) that happen on page reload and install &quot;clear/keep-on-page-reload&quot; logic
+         c) that happen on frame navigated, console.clear() or clear()
+        3. Unify &quot;ActiveLogCleared&quot; and &quot;Cleared&quot; events to &quot;Cleared&quot;
+        
+        For step 2b and 2c it is important to delay the handling and wait until
+        &quot;_mainResourceDidChange&quot; has determined whether a page reload happened or
+        not.
+        
+        * UserInterface/Base/Main.js:
+        (WebInspector.loaded):
+        Store &quot;clear-log-on-reload&quot; setting globally.
+        
+        * UserInterface/Controllers/IssueManager.js:
+        (WebInspector.IssueManager):
+        * UserInterface/Models/DefaultDashboard.js:
+        (WebInspector.DefaultDashboard): Deleted.
+        * UserInterface/Views/ObjectTreeView.js:
+        (WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted.
+        (WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted.
+        (WebInspector.ObjectTreeView): Deleted.
+        Remove deleted events.
+        
+        * UserInterface/Controllers/JavaScriptLogViewController.js:
+        (WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut):
+        (WebInspector.JavaScriptLogViewController.prototype.clear): Deleted.
+        Remove delegate function call and call LogManager directly.
+        
+        * UserInterface/Controllers/LogManager.js:
+        (WebInspector.LogManager):
+        (WebInspector.LogManager.prototype.messagesCleared):
+        (WebInspector.LogManager.prototype._delayedMessagesCleared):
+        (WebInspector.LogManager.prototype.requestClearMessages):
+        (WebInspector.LogManager.prototype._mainResourceDidChange):
+        Isolate &quot;clear log&quot; logic, especially clear/keep-log-on-reload logic.
+        
+        * UserInterface/Views/LogContentView.js:
+        (WebInspector.LogContentView):
+        (WebInspector.LogContentView.prototype._sessionStarted):
+        (WebInspector.LogContentView.prototype._handleContextMenuEvent):
+        (WebInspector.LogContentView.prototype._logCleared):
+        (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
+        (WebInspector.LogContentView.prototype._clearLog):
+        (WebInspector.LogContentView.prototype.didClearMessages): Deleted.
+        (WebInspector.LogContentView.prototype._sessionsCleared): Deleted.
+        (WebInspector.LogContentView.prototype._activeLogCleared): Deleted.
+        (WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted.
+        Make it a consumer of LogManager and remove special hacks. Simplify code.
+
</ins><span class="cx"> 2015-06-03  Devin Rousso  &lt;drousso@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: if a known CSS property has an unsupported value, only strikethrough the value
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceBaseMainjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -151,6 +151,7 @@
</span><span class="cx"> 
</span><span class="cx">     this.showShadowDOMSetting = new WebInspector.Setting(&quot;show-shadow-dom&quot;, false);
</span><span class="cx">     this.showReplayInterfaceSetting = new WebInspector.Setting(&quot;show-web-replay&quot;, false);
</span><ins>+    this.clearLogOnReload = new WebInspector.Setting(&quot;clear-log-on-reload&quot;, true);
</ins><span class="cx"> 
</span><span class="cx">     this.showJavaScriptTypeInformationSetting = new WebInspector.Setting(&quot;show-javascript-type-information&quot;, false);
</span><span class="cx">     if (this.showJavaScriptTypeInformationSetting.value &amp;&amp; window.RuntimeAgent &amp;&amp; RuntimeAgent.enableTypeProfiler)
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceControllersIssueManagerjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/IssueManager.js (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Controllers/IssueManager.js        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/IssueManager.js        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">         super();
</span><span class="cx"> 
</span><span class="cx">         WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
</span><del>-        WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.ActiveLogCleared, this._activeLogCleared, this);
</del><ins>+        WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.Cleared, this._logCleared, this);
</ins><span class="cx"> 
</span><span class="cx">         this.initialize();
</span><span class="cx">     }
</span><span class="lines">@@ -74,7 +74,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Private
</span><span class="cx"> 
</span><del>-    _activeLogCleared(event)
</del><ins>+    _logCleared(event)
</ins><span class="cx">     {
</span><span class="cx">         this.initialize();
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceControllersJavaScriptLogViewControllerjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/JavaScriptLogViewController.js (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Controllers/JavaScriptLogViewController.js        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/JavaScriptLogViewController.js        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -85,9 +85,6 @@
</span><span class="cx">         this.startNewSession(true);
</span><span class="cx"> 
</span><span class="cx">         this.prompt.focus();
</span><del>-
-        if (this.delegate &amp;&amp; typeof this.delegate.didClearMessages === &quot;function&quot;)
-            this.delegate.didClearMessages();
</del><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     startNewSession(clearPreviousSessions)
</span><span class="lines">@@ -244,7 +241,7 @@
</span><span class="cx"> 
</span><span class="cx">     _handleClearShortcut()
</span><span class="cx">     {
</span><del>-        this.clear();
</del><ins>+        WebInspector.logManager.requestClearMessages();
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     _handleFindShortcut()
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceControllersLogManagerjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/LogManager.js (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Controllers/LogManager.js        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/LogManager.js        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -1,5 +1,6 @@
</span><span class="cx"> /*
</span><span class="cx">  * Copyright (C) 2013 Apple Inc. All rights reserved.
</span><ins>+ * Copyright (C) 2015 Tobias Reiss &lt;tobi+webkit@basecode.de&gt;
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -29,6 +30,9 @@
</span><span class="cx">     {
</span><span class="cx">         super();
</span><span class="cx"> 
</span><ins>+        this._clearMessagesRequested = false;
+        this._isPageReload = false;
+
</ins><span class="cx">         WebInspector.Frame.addEventListener(WebInspector.Frame.Event.MainResourceDidChange, this._mainResourceDidChange, this);
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -53,16 +57,31 @@
</span><span class="cx"> 
</span><span class="cx">         WebInspector.ConsoleCommandResultMessage.clearMaximumSavedResultIndex();
</span><span class="cx"> 
</span><del>-        // We don't want to clear messages on reloads. We can't determine that easily right now.
-        // FIXME: &lt;rdar://problem/13767079&gt; Console.messagesCleared should include a reason
-        this._shouldClearMessages = true;
-        setTimeout(function() {
-            if (this._shouldClearMessages)
-                this.dispatchEventToListeners(WebInspector.LogManager.Event.ActiveLogCleared);
-            delete this._shouldClearMessages;
-        }.bind(this), 0);
</del><ins>+        if (this._clearMessagesRequested) {
+            // Frontend requested &quot;clear console&quot; and Backend successfully completed the request.
+            this._clearMessagesRequested = false;
+            this.dispatchEventToListeners(WebInspector.LogManager.Event.Cleared);
+        } else {
+            // Received an unrequested clear console event.
+            // This could be for a navigation or other reasons (like console.clear()).
+            // If this was a reload, we may not want to dispatch WebInspector.LogManager.Event.Cleared.
+            // To detect if this is a reload we wait a turn and check if there was a main resource change reload.
+            setTimeout(this._delayedMessagesCleared.bind(this), 0);
+        }
</ins><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    _delayedMessagesCleared()
+    {
+        if (this._isPageReload) {
+            this._isPageReload = false;
+            if (WebInspector.clearLogOnReload.value)
+                this.dispatchEventToListeners(WebInspector.LogManager.Event.Cleared);
+        } else {
+            // A frame navigated, console.clear() or command line clear() happened.
+            this.dispatchEventToListeners(WebInspector.LogManager.Event.Cleared);
+        }
+    }
+
</ins><span class="cx">     messageRepeatCountUpdated(count)
</span><span class="cx">     {
</span><span class="cx">         // Called from WebInspector.ConsoleObserver.
</span><span class="lines">@@ -72,6 +91,8 @@
</span><span class="cx"> 
</span><span class="cx">     requestClearMessages()
</span><span class="cx">     {
</span><ins>+        this._clearMessagesRequested = true;
+
</ins><span class="cx">         ConsoleAgent.clearMessages();
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -84,16 +105,13 @@
</span><span class="cx">         if (!event.target.isMainFrame())
</span><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        var oldMainResource = event.data.oldMainResource;
-        var newMainResource = event.target.mainResource;
-        if (oldMainResource.url !== newMainResource.url)
-            this.dispatchEventToListeners(WebInspector.LogManager.Event.Cleared);
-        else
</del><ins>+        if (event.data.oldMainResource.url === event.target.mainResource.url) {
+            this._isPageReload = true;
</ins><span class="cx">             this.dispatchEventToListeners(WebInspector.LogManager.Event.SessionStarted);
</span><ins>+        } else
+            this._isPageReload = false;
</ins><span class="cx"> 
</span><span class="cx">         WebInspector.ConsoleCommandResultMessage.clearMaximumSavedResultIndex();
</span><del>-
-        delete this._shouldClearMessages;
</del><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -101,6 +119,5 @@
</span><span class="cx">     SessionStarted: &quot;log-manager-session-was-started&quot;,
</span><span class="cx">     Cleared: &quot;log-manager-cleared&quot;,
</span><span class="cx">     MessageAdded: &quot;log-manager-message-added&quot;,
</span><del>-    ActiveLogCleared: &quot;log-manager-current-log-cleared&quot;,
</del><span class="cx">     PreviousMessageRepeatCountUpdated: &quot;log-manager-previous-message-repeat-count-updated&quot;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceModelsDefaultDashboardjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Models/DefaultDashboard.js (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Models/DefaultDashboard.js        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/DefaultDashboard.js        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx">         // Necessary events required to track console messages.
</span><span class="cx">         var logManager = WebInspector.logManager;
</span><span class="cx">         logManager.addEventListener(WebInspector.LogManager.Event.Cleared, this._consoleWasCleared, this);
</span><del>-        logManager.addEventListener(WebInspector.LogManager.Event.ActiveLogCleared, this._consoleWasCleared, this);
</del><span class="cx">         logManager.addEventListener(WebInspector.LogManager.Event.MessageAdded, this._consoleMessageAdded, this);
</span><span class="cx">         logManager.addEventListener(WebInspector.LogManager.Event.PreviousMessageRepeatCountUpdated, this._consoleMessageWasRepeated, this);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsLogContentViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -71,19 +71,16 @@
</span><span class="cx">     this._clearLogNavigationItem = new WebInspector.ButtonNavigationItem(&quot;clear-log&quot;, WebInspector.UIString(&quot;Clear log (%s or %s)&quot;).format(this._logViewController.messagesClearKeyboardShortcut.displayName, this._logViewController.messagesAlternateClearKeyboardShortcut.displayName), &quot;Images/NavigationItemTrash.svg&quot;, 15, 15);
</span><span class="cx">     this._clearLogNavigationItem.addEventListener(WebInspector.ButtonNavigationItem.Event.Clicked, this._clearLog, this);
</span><span class="cx"> 
</span><del>-    this._clearLogOnReloadSetting = new WebInspector.Setting(&quot;clear-log-on-reload&quot;, true);
-
</del><span class="cx">     var toolTip = WebInspector.UIString(&quot;Show console tab&quot;);
</span><span class="cx">     this._showConsoleTabNavigationItem = new WebInspector.ButtonNavigationItem(&quot;show-tab&quot;, toolTip, &quot;Images/SplitToggleUp.svg&quot;, 16, 16);
</span><span class="cx">     this._showConsoleTabNavigationItem.addEventListener(WebInspector.ButtonNavigationItem.Event.Clicked, this._showConsoleTab, this);
</span><span class="cx"> 
</span><span class="cx">     this.messagesElement.addEventListener(&quot;contextmenu&quot;, this._handleContextMenuEvent.bind(this), false);
</span><span class="cx"> 
</span><del>-    WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.Cleared, this._sessionsCleared, this);
</del><span class="cx">     WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.SessionStarted, this._sessionStarted, this);
</span><span class="cx">     WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.MessageAdded, this._messageAdded, this);
</span><span class="cx">     WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.PreviousMessageRepeatCountUpdated, this._previousMessageRepeatCountUpdated, this);
</span><del>-    WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.ActiveLogCleared, this._activeLogCleared, this);
</del><ins>+    WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.Cleared, this._logCleared, this);
</ins><span class="cx"> 
</span><span class="cx">     WebInspector.Frame.addEventListener(WebInspector.Frame.Event.ProvisionalLoadStarted, this._provisionalLoadStarted, this);
</span><span class="cx"> };
</span><span class="lines">@@ -152,13 +149,6 @@
</span><span class="cx">         return this.messagesElement.classList.contains(WebInspector.LogContentView.SearchInProgressStyleClassName);
</span><span class="cx">     },
</span><span class="cx"> 
</span><del>-    didClearMessages: function()
-    {
-        if (this._ignoreDidClearMessages)
-            return;
-        WebInspector.logManager.requestClearMessages();
-    },
-
</del><span class="cx">     didAppendConsoleMessageView: function(messageView)
</span><span class="cx">     {
</span><span class="cx">         console.assert(messageView instanceof WebInspector.ConsoleMessageView || messageView instanceof WebInspector.ConsoleCommandView);
</span><span class="lines">@@ -318,17 +308,9 @@
</span><span class="cx">         return data;
</span><span class="cx">     },
</span><span class="cx"> 
</span><del>-    _sessionsCleared: function(event)
-    {
-        this._ignoreDidClearMessages = true;
-        this._logViewController.clear();
-        this._ignoreDidClearMessages = false;
-    },
-
</del><span class="cx">     _sessionStarted: function(event)
</span><span class="cx">     {
</span><del>-        if (this._clearLogOnReloadSetting.value)  {
-            this._clearLogIgnoringClearMessages();
</del><ins>+        if (WebInspector.clearLogOnReload.value) {
</ins><span class="cx">             this._reappendProvisionalMessages();
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="lines">@@ -369,7 +351,7 @@
</span><span class="cx">         contextMenu.appendItem(WebInspector.UIString(&quot;Clear Log&quot;), this._clearLog.bind(this));
</span><span class="cx">         contextMenu.appendSeparator();
</span><span class="cx"> 
</span><del>-        var clearLogOnReloadUIString = this._clearLogOnReloadSetting.value ? WebInspector.UIString(&quot;Keep Log on Reload&quot;) : WebInspector.UIString(&quot;Clear Log on Reload&quot;);
</del><ins>+        var clearLogOnReloadUIString = WebInspector.clearLogOnReload.value ? WebInspector.UIString(&quot;Keep Log on Reload&quot;) : WebInspector.UIString(&quot;Clear Log on Reload&quot;);
</ins><span class="cx"> 
</span><span class="cx">         contextMenu.appendItem(clearLogOnReloadUIString, this._toggleClearLogOnReloadSetting.bind(this));
</span><span class="cx"> 
</span><span class="lines">@@ -649,21 +631,11 @@
</span><span class="cx">         });
</span><span class="cx">     },
</span><span class="cx"> 
</span><del>-    _activeLogCleared: function(event)
</del><ins>+    _logCleared: function(event)
</ins><span class="cx">     {
</span><del>-        this._ignoreDidClearMessages = true;
</del><span class="cx">         this._logViewController.clear();
</span><del>-        this._ignoreDidClearMessages = false;
</del><span class="cx">     },
</span><span class="cx"> 
</span><del>-    // FIXME: &lt;https://webkit.org/b/145466&gt; Web Inspector: Activity Viewer does not update on &quot;Clear Log on reload&quot;
-    _clearLogIgnoringClearMessages: function()
-    {
-        this._ignoreDidClearMessages = true;
-        this._logViewController.clear();
-        this._ignoreDidClearMessages = false;
-    },
-
</del><span class="cx">     _showConsoleTab: function()
</span><span class="cx">     {
</span><span class="cx">         WebInspector.showConsoleTab();
</span><span class="lines">@@ -671,12 +643,12 @@
</span><span class="cx"> 
</span><span class="cx">     _toggleClearLogOnReloadSetting: function()
</span><span class="cx">     {
</span><del>-        this._clearLogOnReloadSetting.value = !this._clearLogOnReloadSetting.value;
</del><ins>+        WebInspector.clearLogOnReload.value = !WebInspector.clearLogOnReload.value;
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _clearLog: function()
</span><span class="cx">     {
</span><del>-        this._logViewController.clear();
</del><ins>+        WebInspector.logManager.requestClearMessages();
</ins><span class="cx">     },
</span><span class="cx"> 
</span><span class="cx">     _scopeBarSelectionDidChange: function(event)
</span><span class="lines">@@ -976,7 +948,7 @@
</span><span class="cx">     _clearProvisionalState: function()
</span><span class="cx">     {
</span><span class="cx">         this._startedProvisionalLoad = false;
</span><del>-        this._provisionalMessages = [];        
</del><ins>+        this._provisionalMessages = [];
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsObjectTreeViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ObjectTreeView.js (185212 => 185213)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/ObjectTreeView.js        2015-06-04 19:37:26 UTC (rev 185212)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ObjectTreeView.js        2015-06-04 20:15:14 UTC (rev 185213)
</span><span class="lines">@@ -336,7 +336,6 @@
</span><span class="cx"> 
</span><span class="cx">         if (this._inConsole) {
</span><span class="cx">             WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.Cleared, this._untrackWeakEntries, this);
</span><del>-            WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.ActiveLogCleared, this._untrackWeakEntries, this);
</del><span class="cx">             WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.SessionStarted, this._untrackWeakEntries, this);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="lines">@@ -355,7 +354,6 @@
</span><span class="cx"> 
</span><span class="cx">         if (this._inConsole) {
</span><span class="cx">             WebInspector.logManager.removeEventListener(WebInspector.LogManager.Event.Cleared, this._untrackWeakEntries, this);
</span><del>-            WebInspector.logManager.removeEventListener(WebInspector.LogManager.Event.ActiveLogCleared, this._untrackWeakEntries, this);
</del><span class="cx">             WebInspector.logManager.removeEventListener(WebInspector.LogManager.Event.SessionStarted, this._untrackWeakEntries, this);
</span><span class="cx">         }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>