Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: chrome/browser/resources/net_internals/main.js

Issue 4118004: Update NetLog to be thread safe. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Response to comments (And net-internals refresh fix) Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/net_internals/main.js
===================================================================
--- chrome/browser/resources/net_internals/main.js (revision 65207)
+++ chrome/browser/resources/net_internals/main.js (working copy)
@@ -189,6 +189,13 @@
this.numPassivelyCapturedEvents_ = 0;
this.capturedEvents_ = [];
+ // It's possible for a few actively captured events to be received before any
+ // passively captured events. When this happens, the actively captured
+ // events aren't processed until after the passively captured events have been
+ // received.
+ this.receivedPassivelyCapturedEvents_ = false;
+ this.delayedActivelyCapturedEvents_ = [];
+
// Next unique id to be assigned to a log entry without a source.
// Needed to simplify deletion, identify associated GUI elements, etc.
this.nextSourcelessEventId_ = -1;
@@ -308,9 +315,11 @@
//------------------------------------------------------------------------------
BrowserBridge.prototype.receivedLogEntry = function(logEntry) {
- // Silently drop entries received before ready to receive them.
- if (!this.areLogTypesReady_())
+ // Delay processing any active events received before passive events.
+ if (!this.receivedPassivelyCapturedEvents_) {
eroman 2010/11/18 18:04:03 What I don't like about this approach, is we pay a
mmenke 2010/11/23 16:48:45 Don't really like the idea of starting to populate
+ this.delayedActivelyCapturedEvents_.push(logEntry);
return;
+ }
// Assign unique ID, if needed.
if (logEntry.source.id == 0) {
logEntry.source.id = this.nextSourcelessEventId_;
@@ -389,11 +398,17 @@
BrowserBridge.prototype.receivedPassiveLogEntries = function(entries) {
this.numPassivelyCapturedEvents_ += entries.length;
+ this.receivedPassivelyCapturedEvents_ = true;
for (var i = 0; i < entries.length; ++i) {
var entry = entries[i];
entry.wasPassivelyCaptured = true;
this.receivedLogEntry(entry);
}
+ // Handle delayed actively captured events, if any.
+ for (var i = 0; i < this.delayedActivelyCapturedEvents_.length; ++i) {
+ this.receivedLogEntry(this.delayedActivelyCapturedEvents_[i]);
+ }
+ this.delayedActivelyCapturedEvents_ = [];
};
@@ -427,12 +442,6 @@
this.pollableDataHelpers_.httpCacheInfo.update(info);
};
-BrowserBridge.prototype.areLogTypesReady_ = function() {
- return (LogEventType != null &&
- LogEventPhase != null &&
- LogSourceType != null);
-};
-
//------------------------------------------------------------------------------
/**

Powered by Google App Engine
This is Rietveld 408576698