<!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>[190437] 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/190437">190437</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-10-01 16:34:09 -0700 (Thu, 01 Oct 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Web Inspector: Do not immediately create all ProfileNodeTreeElements when showing JavaScript and Events timeline
https://bugs.webkit.org/show_bug.cgi?id=149726

Patch by Joseph Pecoraro &lt;pecoraro@apple.com&gt; on 2015-10-01
Reviewed by Timothy Hatcher.

* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.shouldFilterPopulate):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
We were populating during filtering if there were any custom filters.
However the TimelineSidebarPanel has custom filters (based on time and type)
but those don't need to trigger population. Delay population until it
would actually be needed (like a text search).

* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.shouldFilterPopulate):
Do not populate on filter via this custom filters.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebInspectorUIChangeLog">trunk/Source/WebInspectorUI/ChangeLog</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsNavigationSidebarPaneljs">trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsTimelineSidebarPaneljs">trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (190436 => 190437)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2015-10-01 23:33:06 UTC (rev 190436)
+++ trunk/Source/WebInspectorUI/ChangeLog        2015-10-01 23:34:09 UTC (rev 190437)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2015-10-01  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        Web Inspector: Do not immediately create all ProfileNodeTreeElements when showing JavaScript and Events timeline
+        https://bugs.webkit.org/show_bug.cgi?id=149726
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Views/NavigationSidebarPanel.js:
+        (WebInspector.NavigationSidebarPanel.prototype.shouldFilterPopulate):
+        (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
+        (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
+        We were populating during filtering if there were any custom filters.
+        However the TimelineSidebarPanel has custom filters (based on time and type)
+        but those don't need to trigger population. Delay population until it
+        would actually be needed (like a text search).
+
+        * UserInterface/Views/TimelineSidebarPanel.js:
+        (WebInspector.TimelineSidebarPanel.prototype.shouldFilterPopulate):
+        Do not populate on filter via this custom filters.
+
</ins><span class="cx"> 2015-10-01  Matt Baker  &lt;mattbaker@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: REGRESSION (r189567): Toolbar collapses when inspector at minimum height with console open
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsNavigationSidebarPaneljs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js (190436 => 190437)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js        2015-10-01 23:33:06 UTC (rev 190436)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NavigationSidebarPanel.js        2015-10-01 23:34:09 UTC (rev 190437)
</span><span class="lines">@@ -292,6 +292,12 @@
</span><span class="cx">         this._updateFilter();
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    shouldFilterPopulate()
+    {
+        // Overriden by subclasses if needed.
+        return this.hasCustomFilters();
+    }
+
</ins><span class="cx">     hasCustomFilters()
</span><span class="cx">     {
</span><span class="cx">         // Implemented by subclasses if needed.
</span><span class="lines">@@ -525,7 +531,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Don't populate if we don't have any active filters.
</span><span class="cx">         // We only need to populate when a filter needs to reveal.
</span><del>-        var dontPopulate = !this._filterBar.hasActiveFilters() &amp;&amp; !this.hasCustomFilters();
</del><ins>+        var dontPopulate = !this._filterBar.hasActiveFilters() &amp;&amp; !this.shouldFilterPopulate();
</ins><span class="cx"> 
</span><span class="cx">         // Update the whole tree.
</span><span class="cx">         var currentTreeElement = this._contentTreeOutline.children[0];
</span><span class="lines">@@ -554,7 +560,7 @@
</span><span class="cx">     {
</span><span class="cx">         // Don't populate if we don't have any active filters.
</span><span class="cx">         // We only need to populate when a filter needs to reveal.
</span><del>-        var dontPopulate = !this._filterBar.hasActiveFilters() &amp;&amp; !this.hasCustomFilters();
</del><ins>+        var dontPopulate = !this._filterBar.hasActiveFilters() &amp;&amp; !this.shouldFilterPopulate();
</ins><span class="cx"> 
</span><span class="cx">         // Apply the filters to the tree element and its descendants.
</span><span class="cx">         var currentTreeElement = treeElement;
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsTimelineSidebarPaneljs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js (190436 => 190437)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js        2015-10-01 23:33:06 UTC (rev 190436)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineSidebarPanel.js        2015-10-01 23:34:09 UTC (rev 190437)
</span><span class="lines">@@ -399,6 +399,11 @@
</span><span class="cx">         this._displayedContentView.filterDidChange();
</span><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    shouldFilterPopulate()
+    {
+        return false;
+    }
+
</ins><span class="cx">     hasCustomFilters()
</span><span class="cx">     {
</span><span class="cx">         return true;
</span></span></pre>
</div>
</div>

</body>
</html>