Chromium Code Reviews| Index: Source/devtools/front_end/TimelineManager.js |
| diff --git a/Source/devtools/front_end/TimelineManager.js b/Source/devtools/front_end/TimelineManager.js |
| index 914230ef509dc95c7f996cf482611821c9c26a85..c8f2a9e47ec482f953795af137aacdf2caf58e78 100644 |
| --- a/Source/devtools/front_end/TimelineManager.js |
| +++ b/Source/devtools/front_end/TimelineManager.js |
| @@ -37,6 +37,7 @@ WebInspector.TimelineManager = function() |
| WebInspector.Object.call(this); |
| this._dispatcher = new WebInspector.TimelineDispatcher(this); |
| this._enablementCount = 0; |
| + TimelineAgent.enable(); |
| } |
| WebInspector.TimelineManager.EventTypes = { |
| @@ -50,33 +51,31 @@ WebInspector.TimelineManager.prototype = { |
| * @param {number=} maxCallStackDepth |
| * @param {boolean=} includeDomCounters |
| * @param {boolean=} includeNativeMemoryStatistics |
| + * @param {function(?Protocol.Error)=} callback |
| */ |
| - start: function(maxCallStackDepth, includeDomCounters, includeNativeMemoryStatistics) |
| + start: function(maxCallStackDepth, includeDomCounters, includeNativeMemoryStatistics, callback) |
| { |
| this._enablementCount++; |
| if (this._enablementCount === 1) |
| - TimelineAgent.start(maxCallStackDepth, includeDomCounters, includeNativeMemoryStatistics, this._started.bind(this)); |
| + TimelineAgent.start(maxCallStackDepth, includeDomCounters, includeNativeMemoryStatistics, callback); |
| + else if (callback) |
| + callback(null); |
| }, |
| - stop: function() |
| + /** |
| + * @param {function(?Protocol.Error)=} callback |
| + */ |
| + stop: function(callback) |
| { |
| - if (!this._enablementCount) { |
| - console.error("WebInspector.TimelineManager start/stop calls are unbalanced"); |
| + this._enablementCount--; |
| + if (this._enablementCount < 0) { |
|
caseq
2013/09/13 15:00:23
So if we actually hit this, we now let enablemenet
pfeldman
2013/09/13 15:21:03
Yes, it is anyways impossible to recover from the
|
| + console.error("WebInspector.TimelineManager start/stop calls are unbalanced " + new Error().stack); |
| return; |
| } |
| - this._enablementCount--; |
| if (!this._enablementCount) |
| - TimelineAgent.stop(this._stopped.bind(this)); |
| - }, |
| - |
| - _started: function() |
| - { |
| - this.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineStarted); |
| - }, |
| - |
| - _stopped: function() |
| - { |
| - this.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineStopped); |
| + TimelineAgent.stop(callback); |
| + else if (callback) |
| + callback(null); |
| }, |
| __proto__: WebInspector.Object.prototype |
| @@ -93,9 +92,32 @@ WebInspector.TimelineDispatcher = function(manager) |
| } |
| WebInspector.TimelineDispatcher.prototype = { |
| + /** |
| + * @param {TimelineAgent.TimelineEvent} record |
| + */ |
| eventRecorded: function(record) |
| { |
| this._manager.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineEventRecorded, record); |
| + }, |
| + |
| + /** |
| + * @param {boolean=} consoleTimeline |
| + */ |
| + started: function(consoleTimeline) |
| + { |
| + if (consoleTimeline) { |
| + // Wake up timeline panel module. |
| + WebInspector.panel("timeline"); |
| + } |
| + this._manager.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineStarted, consoleTimeline); |
| + }, |
| + |
| + /** |
| + * @param {boolean=} consoleTimeline |
| + */ |
| + stopped: function(consoleTimeline) |
| + { |
| + this._manager.dispatchEventToListeners(WebInspector.TimelineManager.EventTypes.TimelineStopped, consoleTimeline); |
| } |
| } |