Title: [200471] trunk/Source/WebInspectorUI
- Revision
- 200471
- Author
- [email protected]
- Date
- 2016-05-05 13:12:20 -0700 (Thu, 05 May 2016)
Log Message
Web Inspector: Console is unresponsive for >10 seconds when it tries to render 10,000 messages
https://bugs.webkit.org/show_bug.cgi?id=157368
<rdar://problem/26103657>
Reviewed by Timothy Hatcher.
Render only up to 100 messages per animation frame to keep the Inspector's UI responsive.
* UserInterface/Controllers/_javascript_LogViewController.js:
(WebInspector._javascript_LogViewController.prototype.renderPendingMessages):
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (200470 => 200471)
--- trunk/Source/WebInspectorUI/ChangeLog 2016-05-05 20:01:13 UTC (rev 200470)
+++ trunk/Source/WebInspectorUI/ChangeLog 2016-05-05 20:12:20 UTC (rev 200471)
@@ -1,3 +1,16 @@
+2016-05-05 Nikita Vasilyev <[email protected]>
+
+ Web Inspector: Console is unresponsive for >10 seconds when it tries to render 10,000 messages
+ https://bugs.webkit.org/show_bug.cgi?id=157368
+ <rdar://problem/26103657>
+
+ Reviewed by Timothy Hatcher.
+
+ Render only up to 100 messages per animation frame to keep the Inspector's UI responsive.
+
+ * UserInterface/Controllers/_javascript_LogViewController.js:
+ (WebInspector._javascript_LogViewController.prototype.renderPendingMessages):
+
2016-05-05 Joseph Pecoraro <[email protected]>
Crash if you type "debugger" in the console and continue
Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js (200470 => 200471)
--- trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js 2016-05-05 20:01:13 UTC (rev 200470)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js 2016-05-05 20:12:20 UTC (rev 200471)
@@ -285,13 +285,13 @@
if (this._pendingMessages.length === 0)
return;
- let lastMessageView = this._pendingMessages.lastValue;
+ const maxMessagesPerFrame = 100;
+ let messages = this._pendingMessages.splice(0, maxMessagesPerFrame);
+
+ let lastMessageView = messages.lastValue;
let isCommandView = lastMessageView instanceof WebInspector.ConsoleCommandView;
let shouldScrollToBottom = isCommandView || lastMessageView.message.type === WebInspector.ConsoleMessage.MessageType.Result || this.isScrolledToBottom();
- var messages = this._pendingMessages;
- this._pendingMessages = [];
-
for (let messageView of messages) {
messageView.render();
this._didRenderConsoleMessageView(messageView);
@@ -301,6 +301,9 @@
this.scrollToBottom();
WebInspector.quickConsole.needsLayout();
+
+ if (this._pendingMessages.length > 0)
+ this.renderPendingMessagesSoon();
}
renderPendingMessagesSoon()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes