Web Inspector: Console Tab navigation bar sometimes does not include filter bar,...
authorjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Nov 2017 19:07:11 +0000 (19:07 +0000)
committerjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Nov 2017 19:07:11 +0000 (19:07 +0000)
https://bugs.webkit.org/show_bug.cgi?id=180124
<rdar://problem/35740353>

Reviewed by Brian Burg.

* UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype.closed):
Avoid removing event listeners if this LogContentView singleton is ever closed.
The singleton will always be alive so we don't want to remove the event listeners
without a way to add them back.

* UserInterface/Base/Main.js:
(WI.showSplitConsole):
* UserInterface/Views/ConsoleTabContentView.js:
(WI.ConsoleTabContentView.prototype.shown):
When showing the ConsoleTab immediately collapse the split console so that any
following code that checks WI.isShowingSplitConsole will get the expected value.
It is also now possible to share a ContentView across ContentBrowsers via
tombstones, so remove the old code that would frequently close the LogContentView.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225280 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebInspectorUI/ChangeLog
Source/WebInspectorUI/UserInterface/Base/Main.js
Source/WebInspectorUI/UserInterface/Views/ConsoleTabContentView.js
Source/WebInspectorUI/UserInterface/Views/LogContentView.js

index 7354962..04c61b7 100644 (file)
@@ -1,3 +1,26 @@
+2017-11-29  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Console Tab navigation bar sometimes does not include filter bar, clear console sometimes does not work
+        https://bugs.webkit.org/show_bug.cgi?id=180124
+        <rdar://problem/35740353>
+
+        Reviewed by Brian Burg.
+
+        * UserInterface/Views/LogContentView.js:
+        (WI.LogContentView.prototype.closed):
+        Avoid removing event listeners if this LogContentView singleton is ever closed.
+        The singleton will always be alive so we don't want to remove the event listeners
+        without a way to add them back.
+
+        * UserInterface/Base/Main.js:
+        (WI.showSplitConsole):
+        * UserInterface/Views/ConsoleTabContentView.js:
+        (WI.ConsoleTabContentView.prototype.shown):
+        When showing the ConsoleTab immediately collapse the split console so that any
+        following code that checks WI.isShowingSplitConsole will get the expected value.
+        It is also now possible to share a ContentView across ContentBrowsers via
+        tombstones, so remove the old code that would frequently close the LogContentView.
+
 2017-11-28  Devin Rousso  <webkit@devinrousso.com>
 
         Web Inspector: remove extra space before call frames in Canvas backtraces
index 258309a..2c013e3 100644 (file)
@@ -886,10 +886,6 @@ WI.showSplitConsole = function()
     if (this.consoleDrawer.currentContentView === this.consoleContentView)
         return;
 
-    // Be sure to close the view in the tab content browser before showing it in the
-    // split content browser. We can only show a content view in one browser at a time.
-    if (this.consoleContentView.parentContainer)
-        this.consoleContentView.parentContainer.closeContentView(this.consoleContentView);
     this.consoleDrawer.showContentView(this.consoleContentView);
 };
 
index 83d33b6..c8594d8 100644 (file)
@@ -52,17 +52,12 @@ WI.ConsoleTabContentView = class ConsoleTabContentView extends WI.ContentBrowser
     {
         super.shown();
 
-        WI.consoleContentView.prompt.focus();
-
-        if (this.contentBrowser.currentContentView === WI.consoleContentView)
-            return;
-
-        // Be sure to close the view in the split content browser before showing it in the
-        // tab content browser. We can only show a content view in one browser at a time.
-        if (WI.consoleContentView.parentContainer)
-            WI.consoleContentView.parentContainer.closeContentView(WI.consoleContentView);
+        WI.hideSplitConsole();
 
         this.contentBrowser.showContentView(WI.consoleContentView);
+        WI.consoleContentView.dispatchEventToListeners(WI.ContentView.Event.NavigationItemsDidChange);
+
+        WI.consoleContentView.prompt.focus();
 
         console.assert(this.contentBrowser.currentContentView === WI.consoleContentView);
     }
index 1224678..3211710 100644 (file)
@@ -170,8 +170,10 @@ WI.LogContentView = class LogContentView extends WI.ContentView
 
     closed()
     {
-        WI.logManager.removeEventListener(null, null, this);
-        WI.Frame.removeEventListener(null, null, this);
+        // While it may be possible to get here, this is a singleton ContentView instance
+        // that is often re-inserted back into different ContentBrowsers, so we shouldn't
+        // remove the event listeners. The singleton will never go away anyways.
+        console.assert(this === WI.consoleContentView);
 
         super.closed();
     }