Index: Source/devtools/front_end/timeline/TimelinePanel.js |
diff --git a/Source/devtools/front_end/timeline/TimelinePanel.js b/Source/devtools/front_end/timeline/TimelinePanel.js |
index a9c0cff18cead1acc1064564bf724280f83a306b..c77a4bf726adfa80b1666b8f1b428b78affc81ae 100644 |
--- a/Source/devtools/front_end/timeline/TimelinePanel.js |
+++ b/Source/devtools/front_end/timeline/TimelinePanel.js |
@@ -60,6 +60,7 @@ importScript("PaintProfilerView.js"); |
* @extends {WebInspector.Panel} |
* @implements {WebInspector.TimelineModeViewDelegate} |
* @implements {WebInspector.Searchable} |
+ * @implements {WebInspector.TargetManager.Observer} |
*/ |
WebInspector.TimelinePanel = function() |
{ |
@@ -93,8 +94,6 @@ WebInspector.TimelinePanel = function() |
this._model.addEventListener(WebInspector.TimelineModel.Events.RecordFilterChanged, this._refreshViews, this); |
this._model.addEventListener(WebInspector.TimelineModel.Events.RecordAdded, this._onRecordAdded, this); |
- this._model.target().profilingLock.addEventListener(WebInspector.Lock.Events.StateChanged, this._onProfilingStateChanged, this); |
- |
this._categoryFilter = new WebInspector.TimelineCategoryFilter(this._uiUtils); |
this._durationFilter = new WebInspector.TimelineIsLongFilter(); |
this._textFilter = new WebInspector.TimelineTextFilter(this._uiUtils); |
@@ -170,6 +169,22 @@ WebInspector.TimelinePanel.durationFilterPresetsMs = [0, 1, 15]; |
WebInspector.TimelinePanel.prototype = { |
/** |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetAdded: function(target) |
+ { |
+ target.profilingLock.addEventListener(WebInspector.Lock.Events.StateChanged, this._onProfilingStateChanged, this); |
+ }, |
+ |
+ /** |
+ * @param {!WebInspector.Target} target |
+ */ |
+ targetRemoved: function(target) |
+ { |
+ target.profilingLock.removeEventListener(WebInspector.Lock.Events.StateChanged, this._onProfilingStateChanged, this); |
+ }, |
+ |
+ /** |
* @return {?WebInspector.SearchableView} |
*/ |
searchableView: function() |
@@ -725,6 +740,7 @@ WebInspector.TimelinePanel.prototype = { |
*/ |
_updateToggleTimelineButton: function(toggled) |
{ |
+ var isAcquiredInSomeTarget = WebInspector.targetManager.targets().some(function(target) { return target.profilingLock.isAcquired(); }); |
this.toggleTimelineButton.toggled = toggled; |
if (toggled) { |
this.toggleTimelineButton.title = WebInspector.UIString("Stop"); |
@@ -732,7 +748,7 @@ WebInspector.TimelinePanel.prototype = { |
} else if (this._stopPending) { |
this.toggleTimelineButton.title = WebInspector.UIString("Stop pending"); |
this.toggleTimelineButton.setEnabled(false); |
- } else if (this._model.target().profilingLock.isAcquired()) { |
+ } else if (isAcquiredInSomeTarget) { |
this.toggleTimelineButton.title = WebInspector.anotherProfilerActiveLabel(); |
this.toggleTimelineButton.setEnabled(false); |
} else { |
@@ -1027,7 +1043,7 @@ WebInspector.TimelinePanel.prototype = { |
break; |
case WebInspector.TimelineSelection.Type.TraceEvent: |
var event = /** @type {!WebInspector.TracingModel.Event} */ (this._selection.object()); |
- WebInspector.TracingTimelineUIUtils.buildTraceEventDetails(event, this._tracingTimelineModel, this._detailsLinkifier, this._appendDetailsTabsForTraceEventAndShowDetails.bind(this, event), false, this._model.target()); |
+ WebInspector.TracingTimelineUIUtils.buildTraceEventDetails(event, this._tracingTimelineModel, this._detailsLinkifier, this._appendDetailsTabsForTraceEventAndShowDetails.bind(this, event), false); |
break; |
case WebInspector.TimelineSelection.Type.Frame: |
var frame = /** @type {!WebInspector.TimelineFrame} */ (this._selection.object()); |
@@ -1051,7 +1067,7 @@ WebInspector.TimelinePanel.prototype = { |
this.showInDetails(title, content); |
if (event.picture) { |
var paintProfilerView = this._paintProfilerView(); |
- paintProfilerView.setPicture(this._model.target().weakReference(), event.picture); |
+ paintProfilerView.setPicture(event.thread.target(), event.picture); |
this._detailsView.appendTab("paintProfiler", WebInspector.UIString("Paint Profiler"), paintProfilerView); |
} |
}, |