Title: [181437] trunk/Source/WebInspectorUI
Revision
181437
Author
[email protected]
Date
2015-03-12 09:10:00 -0700 (Thu, 12 Mar 2015)

Log Message

Web Inspector: Console Errors during provisional document loads get lost with "Clear Log on Reload"
https://bugs.webkit.org/show_bug.cgi?id=142603

Patch by Joseph Pecoraro <[email protected]> on 2015-03-12
Reviewed by Timothy Hatcher.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._provisionalLoadStarted):
Detect a provisional load has started to start save messages that come in at this time.

(WebInspector.LogContentView.prototype._sessionStarted):
Reappend provisional load messages if we auto-cleared.

(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
(WebInspector.LogContentView.prototype._clearProvisionalState):
Helpers for dealing with the provisional loading state.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (181436 => 181437)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-03-12 14:50:21 UTC (rev 181436)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-03-12 16:10:00 UTC (rev 181437)
@@ -1,3 +1,22 @@
+2015-03-12  Joseph Pecoraro  <[email protected]>
+
+        Web Inspector: Console Errors during provisional document loads get lost with "Clear Log on Reload"
+        https://bugs.webkit.org/show_bug.cgi?id=142603
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Views/LogContentView.js:
+        (WebInspector.LogContentView.prototype._messageAdded):
+        (WebInspector.LogContentView.prototype._provisionalLoadStarted):
+        Detect a provisional load has started to start save messages that come in at this time.
+
+        (WebInspector.LogContentView.prototype._sessionStarted):
+        Reappend provisional load messages if we auto-cleared.
+
+        (WebInspector.LogContentView.prototype._reappendProvisionalMessages):
+        (WebInspector.LogContentView.prototype._clearProvisionalState):
+        Helpers for dealing with the provisional loading state.
+
 2015-03-11  Joseph Pecoraro  <[email protected]>
 
         Web Inspector: CSS parser errors in the console should include column numbers

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js (181436 => 181437)


--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js	2015-03-12 14:50:21 UTC (rev 181436)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js	2015-03-12 16:10:00 UTC (rev 181437)
@@ -30,6 +30,9 @@
     this._nestingLevel = 0;
     this._selectedMessages = [];
 
+    // FIXME: Try to use a marker, instead of a list of messages that get re-added.
+    this._provisionalMessages = [];
+
     this.element.classList.add(WebInspector.LogContentView.StyleClassName);
 
     this.messagesElement = document.createElement("div");
@@ -88,6 +91,8 @@
     WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.MessageAdded, this._messageAdded, this);
     WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.PreviousMessageRepeatCountUpdated, this._previousMessageRepeatCountUpdated, this);
     WebInspector.logManager.addEventListener(WebInspector.LogManager.Event.ActiveLogCleared, this._activeLogCleared, this);
+
+    WebInspector.Frame.addEventListener(WebInspector.Frame.Event.ProvisionalLoadStarted, this._provisionalLoadStarted, this);
 };
 
 WebInspector.LogContentView.Scopes = {
@@ -310,14 +315,20 @@
     {
         if (this._clearLogOnReloadSetting.value)  {
             this._clearLog();
+            this._reappendProvisionalMessages();
             return;
         }
 
         this._logViewController.startNewSession();
+
+        this._clearProvisionalState();
     },
 
     _messageAdded: function(event)
     {
+        if (this._startedProvisionalLoad)
+            this._provisionalMessages.push(event.data.message);
+
         var message = this._logViewController.appendConsoleMessage(event.data.message);
         if (message.type !== WebInspector.ConsoleMessage.MessageType.EndGroup)
             this._filterMessages([message.toMessageElement()]);
@@ -969,6 +980,33 @@
         this._selectedSearchMatch.highlight.classList.add(WebInspector.LogContentView.SelectedStyleClassName);
 
         this._ensureMessageIsVisible(this._selectedSearchMatch.message);
+    },
+
+    _provisionalLoadStarted: function()
+    {
+        this._startedProvisionalLoad = true;
+    },
+
+    _reappendProvisionalMessages: function()
+    {
+        if (!this._startedProvisionalLoad)
+            return;
+
+        this._startedProvisionalLoad = false;
+
+        for (var provisionalMessage of this._provisionalMessages) {
+            var message = this._logViewController.appendConsoleMessage(provisionalMessage);
+            if (message.type !== WebInspector.ConsoleMessage.MessageType.EndGroup)
+                this._filterMessages([message.toMessageElement()]);
+        }
+
+        this._provisionalMessages = [];
+    },
+
+    _clearProvisionalState: function()
+    {
+        this._startedProvisionalLoad = false;
+        this._provisionalMessages = [];        
     }
 };
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to