<!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>[209882] 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/209882">209882</a></dd>
<dt>Author</dt> <dd>mattbaker@apple.com</dd>
<dt>Date</dt> <dd>2016-12-15 15:52:42 -0800 (Thu, 15 Dec 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Web Inspector: console search bar jumps, behaves poorly at narrow widths
https://bugs.webkit.org/show_bug.cgi?id=164047
<rdar://problem/29055582>
Reviewed by Timothy Hatcher.
At narrow widths the find banner behaves poorly in the split console
toolbar. It should work like the main content browser, appearing below
the toolbar when Command-F is pressed and either the split console or
quick console prompt has the focus.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Enable split content browser find banner.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype.showFindBanner):
Check for custom find banner support at runtime.
(WebInspector.ContentBrowser.prototype._findBannerDidShow):
(WebInspector.ContentBrowser.prototype._findBannerDidHide):
Refresh search results when banner is shown/hidden, instead of relying
on toggling the "showing-find-banner" class name for everything.
(WebInspector.ContentBrowser.prototype.handleFindEvent): Deleted.
Renamed `showFindBanner`.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.prototype.get supportsCustomFindBanner):
(WebInspector.ContentView.prototype.showCustomFindBanner):
Custom find banner support (used by LogContentView).
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.get supportsSearch):
(WebInspector.LogContentView.prototype.get numberOfSearchResults):
(WebInspector.LogContentView.prototype.get hasPerformedSearch):
Cleanup.
(WebInspector.LogContentView.prototype.get supportsCustomFindBanner):
Use toolbar item find banner when showing Console tab.
(WebInspector.LogContentView.prototype.findBannerRevealPreviousResult):
(WebInspector.LogContentView.prototype.findBannerRevealNextResult):
(WebInspector.LogContentView.prototype._isMessageVisible):
(WebInspector.LogContentView.prototype._visibleMessageElements):
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._filterMessageElements):
(WebInspector.LogContentView.prototype.findBannerPerformSearch):
(WebInspector.LogContentView.prototype.findBannerSearchCleared):
(WebInspector.LogContentView.prototype.performSearch):
Support both the standard and custom (toolbar item) find banners.
(WebInspector.LogContentView.prototype.searchCleared):
Refresh search results.
(WebInspector.LogContentView.prototype._highlightRanges):
Correct spelling: _selectedSearchMathIsValid -> _selectedSearchMatchIsValid.
(WebInspector.LogContentView.prototype.get searchInProgress): Deleted.
Override ContentView.prototype.hasPerformedSearch instead.
(WebInspector.LogContentView.prototype.handleFindEvent): Deleted.
Replaced by `showCustomFindBanner`.
(WebInspector.LogContentView.prototype.highlightPreviousSearchMatch): Deleted.
Absorbed by findBannerRevealPreviousResult.
(WebInspector.LogContentView.prototype.highlightNextSearchMatch): Deleted.
Absorbed by findBannerRevealNextResult.
(WebInspector.LogContentView.prototype._performSearch): Deleted.
Override ContentView.prototype.performSearch instead.
* UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar :matches(.find-banner, .find-banner + .divider)):
Hide the toolbar banner and divider.</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="#trunkSourceWebInspectorUIUserInterfaceViewsContentBrowserjs">trunk/Source/WebInspectorUI/UserInterface/Views/ContentBrowser.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsContentViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/ContentView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsLogContentViewjs">trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js</a></li>
<li><a href="#trunkSourceWebInspectorUIUserInterfaceViewsMaincss">trunk/Source/WebInspectorUI/UserInterface/Views/Main.css</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebInspectorUIChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/ChangeLog (209881 => 209882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/ChangeLog        2016-12-15 23:42:54 UTC (rev 209881)
+++ trunk/Source/WebInspectorUI/ChangeLog        2016-12-15 23:52:42 UTC (rev 209882)
</span><span class="lines">@@ -1,3 +1,73 @@
</span><ins>+2016-12-15 Matt Baker <mattbaker@apple.com>
+
+ Web Inspector: console search bar jumps, behaves poorly at narrow widths
+ https://bugs.webkit.org/show_bug.cgi?id=164047
+ <rdar://problem/29055582>
+
+ Reviewed by Timothy Hatcher.
+
+ At narrow widths the find banner behaves poorly in the split console
+ toolbar. It should work like the main content browser, appearing below
+ the toolbar when Command-F is pressed and either the split console or
+ quick console prompt has the focus.
+
+ * UserInterface/Base/Main.js:
+ (WebInspector.contentLoaded):
+ Enable split content browser find banner.
+
+ * UserInterface/Views/ContentBrowser.js:
+ (WebInspector.ContentBrowser.prototype.showFindBanner):
+ Check for custom find banner support at runtime.
+ (WebInspector.ContentBrowser.prototype._findBannerDidShow):
+ (WebInspector.ContentBrowser.prototype._findBannerDidHide):
+ Refresh search results when banner is shown/hidden, instead of relying
+ on toggling the "showing-find-banner" class name for everything.
+
+ (WebInspector.ContentBrowser.prototype.handleFindEvent): Deleted.
+ Renamed `showFindBanner`.
+
+ * UserInterface/Views/ContentView.js:
+ (WebInspector.ContentView.prototype.get supportsCustomFindBanner):
+ (WebInspector.ContentView.prototype.showCustomFindBanner):
+ Custom find banner support (used by LogContentView).
+
+ * UserInterface/Views/LogContentView.js:
+ (WebInspector.LogContentView):
+ (WebInspector.LogContentView.prototype.get supportsSearch):
+ (WebInspector.LogContentView.prototype.get numberOfSearchResults):
+ (WebInspector.LogContentView.prototype.get hasPerformedSearch):
+ Cleanup.
+ (WebInspector.LogContentView.prototype.get supportsCustomFindBanner):
+ Use toolbar item find banner when showing Console tab.
+ (WebInspector.LogContentView.prototype.findBannerRevealPreviousResult):
+ (WebInspector.LogContentView.prototype.findBannerRevealNextResult):
+ (WebInspector.LogContentView.prototype._isMessageVisible):
+ (WebInspector.LogContentView.prototype._visibleMessageElements):
+ (WebInspector.LogContentView.prototype._logCleared):
+ (WebInspector.LogContentView.prototype._filterMessageElements):
+ (WebInspector.LogContentView.prototype.findBannerPerformSearch):
+ (WebInspector.LogContentView.prototype.findBannerSearchCleared):
+ (WebInspector.LogContentView.prototype.performSearch):
+ Support both the standard and custom (toolbar item) find banners.
+ (WebInspector.LogContentView.prototype.searchCleared):
+ Refresh search results.
+ (WebInspector.LogContentView.prototype._highlightRanges):
+ Correct spelling: _selectedSearchMathIsValid -> _selectedSearchMatchIsValid.
+ (WebInspector.LogContentView.prototype.get searchInProgress): Deleted.
+ Override ContentView.prototype.hasPerformedSearch instead.
+ (WebInspector.LogContentView.prototype.handleFindEvent): Deleted.
+ Replaced by `showCustomFindBanner`.
+ (WebInspector.LogContentView.prototype.highlightPreviousSearchMatch): Deleted.
+ Absorbed by findBannerRevealPreviousResult.
+ (WebInspector.LogContentView.prototype.highlightNextSearchMatch): Deleted.
+ Absorbed by findBannerRevealNextResult.
+ (WebInspector.LogContentView.prototype._performSearch): Deleted.
+ Override ContentView.prototype.performSearch instead.
+
+ * UserInterface/Views/Main.css:
+ (#split-content-browser > .navigation-bar :matches(.find-banner, .find-banner + .divider)):
+ Hide the toolbar banner and divider.
+
</ins><span class="cx"> 2016-12-14 Ryosuke Niwa <rniwa@webkit.org>
</span><span class="cx">
</span><span class="cx"> Web Inspector: Jumping to the definition of a custom elements is broken
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceBaseMainjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (209881 => 209882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2016-12-15 23:42:54 UTC (rev 209881)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js        2016-12-15 23:52:42 UTC (rev 209882)
</span><span class="lines">@@ -270,7 +270,9 @@
</span><span class="cx"> this._contentElement.setAttribute("role", "main");
</span><span class="cx"> this._contentElement.setAttribute("aria-label", WebInspector.UIString("Content"));
</span><span class="cx">
</span><del>- this.splitContentBrowser = new WebInspector.ContentBrowser(document.getElementById("split-content-browser"), this, true, true);
</del><ins>+ const disableBackForward = true;
+ const disableFindBanner = false;
+ this.splitContentBrowser = new WebInspector.ContentBrowser(document.getElementById("split-content-browser"), this, disableBackForward, disableFindBanner);
</ins><span class="cx"> this.splitContentBrowser.navigationBar.element.addEventListener("mousedown", this._consoleResizerMouseDown.bind(this));
</span><span class="cx">
</span><span class="cx"> this.quickConsole = new WebInspector.QuickConsole(document.getElementById("quick-console"));
</span><span class="lines">@@ -1984,11 +1986,11 @@
</span><span class="cx">
</span><span class="cx"> WebInspector._find = function(event)
</span><span class="cx"> {
</span><del>- var contentBrowser = this._focusedOrVisibleContentBrowser();
- if (!contentBrowser || typeof contentBrowser.handleFindEvent !== "function")
</del><ins>+ let contentBrowser = this._focusedOrVisibleContentBrowser();
+ if (!contentBrowser)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- contentBrowser.handleFindEvent(event);
</del><ins>+ contentBrowser.showFindBanner();
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> WebInspector._save = function(event)
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsContentBrowserjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ContentBrowser.js (209881 => 209882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/ContentBrowser.js        2016-12-15 23:42:54 UTC (rev 209881)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ContentBrowser.js        2016-12-15 23:52:42 UTC (rev 209882)
</span><span class="lines">@@ -197,7 +197,7 @@
</span><span class="cx"> // so it does not need to be called here.
</span><span class="cx"> }
</span><span class="cx">
</span><del>- handleFindEvent(event)
</del><ins>+ showFindBanner()
</ins><span class="cx"> {
</span><span class="cx"> if (!this._findBanner)
</span><span class="cx"> return;
</span><span class="lines">@@ -206,9 +206,8 @@
</span><span class="cx"> if (!currentContentView || !currentContentView.supportsSearch)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- // LogContentView has custom search handling.
- if (typeof currentContentView.handleFindEvent === "function") {
- currentContentView.handleFindEvent(event);
</del><ins>+ if (currentContentView.supportsCustomFindBanner) {
+ currentContentView.showCustomFindBanner();
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -295,6 +294,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> currentContentView.automaticallyRevealFirstSearchResult = true;
</span><ins>+ currentContentView.performSearch(this._findBanner.searchQuery);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> _findBannerDidHide(event)
</span><span class="lines">@@ -304,6 +304,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> currentContentView.automaticallyRevealFirstSearchResult = false;
</span><ins>+ currentContentView.searchCleared();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> _contentViewNumberOfSearchResultsDidChange(event)
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsContentViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ContentView.js (209881 => 209882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/ContentView.js        2016-12-15 23:42:54 UTC (rev 209881)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ContentView.js        2016-12-15 23:52:42 UTC (rev 209882)
</span><span class="lines">@@ -366,6 +366,17 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ get supportsCustomFindBanner()
+ {
+ // Implemented by subclasses.
+ return false;
+ }
+
+ showCustomFindBanner()
+ {
+ // Implemented by subclasses.
+ }
+
</ins><span class="cx"> get numberOfSearchResults()
</span><span class="cx"> {
</span><span class="cx"> // Implemented by subclasses.
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsLogContentViewjs"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js (209881 => 209882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js        2016-12-15 23:42:54 UTC (rev 209881)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js        2016-12-15 23:52:42 UTC (rev 209882)
</span><span class="lines">@@ -57,9 +57,16 @@
</span><span class="cx"> this._logViewController = new WebInspector.JavaScriptLogViewController(this.messagesElement, this.element, this.prompt, this, "console-prompt-history");
</span><span class="cx"> this._lastMessageView = null;
</span><span class="cx">
</span><del>- this._findBanner = new WebInspector.FindBanner(this, "console-find-banner", true);
</del><ins>+ const fixed = true;
+ this._findBanner = new WebInspector.FindBanner(this, "console-find-banner", fixed);
</ins><span class="cx"> this._findBanner.inputField.placeholder = WebInspector.UIString("Filter Console Log");
</span><ins>+ this._findBanner.targetElement = this.element;
</ins><span class="cx">
</span><ins>+ this._currentSearchQuery = "";
+ this._searchMatches = [];
+ this._selectedSearchMatch = null;
+ this._selectedSearchMatchIsValid = false;
+
</ins><span class="cx"> var scopeBarItems = [
</span><span class="cx"> new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.All, WebInspector.UIString("All"), true),
</span><span class="cx"> new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.Errors, WebInspector.UIString("Errors"), false, "errors"),
</span><span class="lines">@@ -117,11 +124,6 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- get searchInProgress()
- {
- return this.messagesElement.classList.contains(WebInspector.LogContentView.SearchInProgressStyleClassName);
- }
-
</del><span class="cx"> shown()
</span><span class="cx"> {
</span><span class="cx"> super.shown();
</span><span class="lines">@@ -171,12 +173,16 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- get supportsSearch()
</del><ins>+ get supportsSearch() { return true; }
+ get numberOfSearchResults() { return this.hasPerformedSearch ? this._searchMatches.length : null; }
+ get hasPerformedSearch() { return this._currentSearchQuery !== ""; }
+
+ get supportsCustomFindBanner()
</ins><span class="cx"> {
</span><del>- return true;
</del><ins>+ return WebInspector.isShowingConsoleTab();
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- handleFindEvent(event)
</del><ins>+ showCustomFindBanner()
</ins><span class="cx"> {
</span><span class="cx"> if (!this.visible)
</span><span class="cx"> return;
</span><span class="lines">@@ -212,12 +218,7 @@
</span><span class="cx">
</span><span class="cx"> findBannerRevealPreviousResult()
</span><span class="cx"> {
</span><del>- this.highlightPreviousSearchMatch();
- }
-
- highlightPreviousSearchMatch()
- {
- if (!this.searchInProgress || isEmptyObject(this._searchMatches))
</del><ins>+ if (!this.hasPerformedSearch || isEmptyObject(this._searchMatches))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> var index = this._selectedSearchMatch ? this._searchMatches.indexOf(this._selectedSearchMatch) : this._searchMatches.length;
</span><span class="lines">@@ -226,12 +227,7 @@
</span><span class="cx">
</span><span class="cx"> findBannerRevealNextResult()
</span><span class="cx"> {
</span><del>- this.highlightNextSearchMatch();
- }
-
- highlightNextSearchMatch()
- {
- if (!this.searchInProgress || isEmptyObject(this._searchMatches))
</del><ins>+ if (!this.hasPerformedSearch || isEmptyObject(this._searchMatches))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> var index = this._selectedSearchMatch ? this._searchMatches.indexOf(this._selectedSearchMatch) + 1 : 0;
</span><span class="lines">@@ -587,7 +583,7 @@
</span><span class="cx"> if (node.classList.contains(WebInspector.LogContentView.FilteredOutStyleClassName))
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (this.searchInProgress && node.classList.contains(WebInspector.LogContentView.FilteredOutBySearchStyleClassName))
</del><ins>+ if (this.hasPerformedSearch && node.classList.contains(WebInspector.LogContentView.FilteredOutBySearchStyleClassName))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> if (message.classList.contains("console-group-title"))
</span><span class="lines">@@ -644,7 +640,7 @@
</span><span class="cx"> {
</span><span class="cx"> var unfilteredMessages = this._unfilteredMessageElements();
</span><span class="cx">
</span><del>- if (!this.searchInProgress)
</del><ins>+ if (!this.hasPerformedSearch)
</ins><span class="cx"> return unfilteredMessages;
</span><span class="cx">
</span><span class="cx"> return unfilteredMessages.filter(function(message) {
</span><span class="lines">@@ -660,9 +656,8 @@
</span><span class="cx"> this._logViewController.clear();
</span><span class="cx"> this._nestingLevel = 0;
</span><span class="cx">
</span><del>- let searchQuery = this._findBanner.searchQuery;
- if (searchQuery)
- this._performSearch(searchQuery);
</del><ins>+ if (this._currentSearchQuery)
+ this.performSearch(this._currentSearchQuery);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> _showConsoleTab()
</span><span class="lines">@@ -716,7 +711,7 @@
</span><span class="cx"> }
</span><span class="cx"> }, this);
</span><span class="cx">
</span><del>- this._performSearch(this._findBanner.searchQuery);
</del><ins>+ this.performSearch(this._currentSearchQuery);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> _keyDown(event)
</span><span class="lines">@@ -873,14 +868,14 @@
</span><span class="cx"> focusableElements[i].removeAttribute("tabindex");
</span><span class="cx"> }
</span><span class="cx">
</span><del>- findBannerPerformSearch(findBanner, searchTerms)
</del><ins>+ findBannerPerformSearch(findBanner, searchQuery)
</ins><span class="cx"> {
</span><del>- this._performSearch(searchTerms);
</del><ins>+ this.performSearch(searchQuery);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> findBannerSearchCleared()
</span><span class="cx"> {
</span><del>- this._performSearch("");
</del><ins>+ this.searchCleared();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> revealNextSearchResult()
</span><span class="lines">@@ -893,32 +888,31 @@
</span><span class="cx"> this.findBannerRevealPreviousResult();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- _performSearch(searchTerms)
</del><ins>+ performSearch(searchQuery)
</ins><span class="cx"> {
</span><span class="cx"> if (!isEmptyObject(this._searchHighlightDOMChanges))
</span><span class="cx"> WebInspector.revertDomChanges(this._searchHighlightDOMChanges);
</span><span class="cx">
</span><del>- if (searchTerms === "") {
- delete this._selectedSearchMatch;
- this._matchingSearchElements = [];
- this.messagesElement.classList.remove(WebInspector.LogContentView.SearchInProgressStyleClassName);
</del><ins>+ this._currentSearchQuery = searchQuery;
+ this._searchHighlightDOMChanges = [];
+ this._searchMatches = [];
+ this._selectedSearchMatchIsValid = false;
+ this._selectedSearchMatch = null;
+
+ if (this._currentSearchQuery === "") {
+ this.element.classList.remove(WebInspector.LogContentView.SearchInProgressStyleClassName);
+ this.dispatchEventToListeners(WebInspector.ContentView.Event.NumberOfSearchResultsDidChange);
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- this.messagesElement.classList.add(WebInspector.LogContentView.SearchInProgressStyleClassName);
</del><ins>+ this.element.classList.add(WebInspector.LogContentView.SearchInProgressStyleClassName);
</ins><span class="cx">
</span><del>- this._searchHighlightDOMChanges = [];
- this._searchMatches = [];
- this._selectedSearchMathIsValid = false;
- let numberOfResults = 0;
-
- var searchRegex = new RegExp(searchTerms.escapeForRegExp(), "gi");
</del><ins>+ let searchRegex = new RegExp(this._currentSearchQuery.escapeForRegExp(), "gi");
</ins><span class="cx"> this._unfilteredMessageElements().forEach(function(message) {
</span><del>- var matchRanges = [];
- var text = message.textContent;
- var match = searchRegex.exec(text);
</del><ins>+ let matchRanges = [];
+ let text = message.textContent;
+ let match = searchRegex.exec(text);
</ins><span class="cx"> while (match) {
</span><del>- numberOfResults++;
</del><span class="cx"> matchRanges.push({offset: match.index, length: match[0].length});
</span><span class="cx"> match = searchRegex.exec(text);
</span><span class="cx"> }
</span><span class="lines">@@ -926,7 +920,7 @@
</span><span class="cx"> if (!isEmptyObject(matchRanges))
</span><span class="cx"> this._highlightRanges(message, matchRanges);
</span><span class="cx">
</span><del>- var classList = message.classList;
</del><ins>+ let classList = message.classList;
</ins><span class="cx"> if (!isEmptyObject(matchRanges) || message.__commandView instanceof WebInspector.ConsoleCommandView || message.__message instanceof WebInspector.ConsoleCommandResultMessage)
</span><span class="cx"> classList.remove(WebInspector.LogContentView.FilteredOutBySearchStyleClassName);
</span><span class="cx"> else
</span><span class="lines">@@ -933,12 +927,17 @@
</span><span class="cx"> classList.add(WebInspector.LogContentView.FilteredOutBySearchStyleClassName);
</span><span class="cx"> }, this);
</span><span class="cx">
</span><del>- if (!this._selectedSearchMathIsValid && this._selectedSearchMatch) {
</del><ins>+ this.dispatchEventToListeners(WebInspector.ContentView.Event.NumberOfSearchResultsDidChange);
+
+ if (!this._selectedSearchMatchIsValid && this._selectedSearchMatch) {
</ins><span class="cx"> this._selectedSearchMatch.highlight.classList.remove(WebInspector.LogContentView.SelectedStyleClassName);
</span><del>- delete this._selectedSearchMatch;
</del><ins>+ this._selectedSearchMatch = null;
</ins><span class="cx"> }
</span><ins>+ }
</ins><span class="cx">
</span><del>- this._findBanner.numberOfResults = numberOfResults;
</del><ins>+ searchCleared()
+ {
+ this.performSearch("");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> _highlightRanges(message, matchRanges)
</span><span class="lines">@@ -950,9 +949,9 @@
</span><span class="cx"> matchRanges.forEach(function(range, index) {
</span><span class="cx"> this._searchMatches.push({message, range, highlight: highlightedElements[index]});
</span><span class="cx">
</span><del>- if (this._selectedSearchMatch && !this._selectedSearchMathIsValid && this._selectedSearchMatch.message === message) {
- this._selectedSearchMathIsValid = this._rangesOverlap(this._selectedSearchMatch.range, range);
- if (this._selectedSearchMathIsValid) {
</del><ins>+ if (this._selectedSearchMatch && !this._selectedSearchMatchIsValid && this._selectedSearchMatch.message === message) {
+ this._selectedSearchMatchIsValid = this._rangesOverlap(this._selectedSearchMatch.range, range);
+ if (this._selectedSearchMatchIsValid) {
</ins><span class="cx"> delete this._selectedSearchMatch;
</span><span class="cx"> this._highlightSearchMatchAtIndex(this._searchMatches.length - 1);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebInspectorUIUserInterfaceViewsMaincss"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Main.css (209881 => 209882)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebInspectorUI/UserInterface/Views/Main.css        2016-12-15 23:42:54 UTC (rev 209881)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Main.css        2016-12-15 23:52:42 UTC (rev 209882)
</span><span class="lines">@@ -156,6 +156,10 @@
</span><span class="cx"> background-color: var(--panel-background-color);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#split-content-browser > .navigation-bar :matches(.find-banner, .find-banner + .divider) {
+ display: none;
+}
+
</ins><span class="cx"> #split-content-browser > .navigation-bar .item {
</span><span class="cx"> height: 100%;
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>