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

Unified Diff: third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js

Issue 2758963002: [DevTools] Remove dependency from TargetManager to ResourceTreeModel (Closed)
Patch Set: review comments addressed Created 3 years, 9 months 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js b/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js
index ee00e525dfeeecbcde45bfee38862a59910791d2..7ba8493cf748e48311a743e800fb4fe71afa3e38 100644
--- a/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/timeline/TimelinePanel.js
@@ -102,8 +102,10 @@ Timeline.TimelinePanel = class extends UI.Panel {
this._createFileSelector();
- SDK.targetManager.addEventListener(SDK.TargetManager.Events.PageReloadRequested, this._pageReloadRequested, this);
- SDK.targetManager.addEventListener(SDK.TargetManager.Events.Load, this._loadEventFired, this);
+ SDK.targetManager.addModelListener(
+ SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.PageReloadRequested, this._pageReloadRequested, this);
+ SDK.targetManager.addModelListener(
+ SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.Load, this._loadEventFired, this);
if (Runtime.experiments.isEnabled('timelineMultipleMainViews')) {
var viewMode = Timeline.TimelinePanel.ViewMode;
@@ -501,18 +503,16 @@ Timeline.TimelinePanel = class extends UI.Panel {
}
/**
+ * @param {!SDK.TracingManager} tracingManager
* @param {boolean} userInitiated
* @return {!Promise}
*/
- _startRecording(userInitiated) {
+ _startRecording(tracingManager, userInitiated) {
console.assert(!this._statusPane, 'Status pane is already opened.');
- var tracingManagers = SDK.targetManager.models(SDK.TracingManager);
- if (!tracingManagers.length)
- return Promise.resolve();
this._setState(Timeline.TimelinePanel.State.StartPending);
this._showRecordingStarted();
- this._autoRecordGeneration = userInitiated ? null : Symbol('Generation');
+ this._autoRecordGeneration = userInitiated ? null : {tracingManager: tracingManager};
var enabledTraceProviders = Extensions.extensionServer.traceProviders().filter(
provider => Timeline.TimelinePanel._settingForTraceProvider(provider).get());
@@ -523,7 +523,7 @@ Timeline.TimelinePanel = class extends UI.Panel {
};
this._pendingPerformanceModel = new Timeline.PerformanceModel();
- this._controller = new Timeline.TimelineController(tracingManagers[0], this._pendingPerformanceModel, this);
+ this._controller = new Timeline.TimelineController(tracingManager, this._pendingPerformanceModel, this);
Host.userMetrics.actionTaken(
userInitiated ? Host.UserMetrics.Action.TimelineStarted : Host.UserMetrics.Action.TimelinePageReloadStarted);
this._setUIControlsEnabled(false);
@@ -558,10 +558,13 @@ Timeline.TimelinePanel = class extends UI.Panel {
}
_toggleRecording() {
- if (this._state === Timeline.TimelinePanel.State.Idle)
- this._startRecording(true);
- else if (this._state === Timeline.TimelinePanel.State.Recording)
+ if (this._state === Timeline.TimelinePanel.State.Idle) {
+ var tracingManagers = SDK.targetManager.models(SDK.TracingManager);
+ if (tracingManagers.length)
+ this._startRecording(tracingManagers[0], true);
+ } else if (this._state === Timeline.TimelinePanel.State.Recording) {
this._stopRecording();
+ }
}
_clear() {
@@ -785,15 +788,20 @@ Timeline.TimelinePanel = class extends UI.Panel {
if (this._state !== Timeline.TimelinePanel.State.Idle || !this.isShowing())
return;
var resourceTreeModel = /** @type {!SDK.ResourceTreeModel} */ (event.data);
+ var tracingManager = resourceTreeModel.target().model(SDK.TracingManager);
+ if (resourceTreeModel.target() !== SDK.targetManager.mainTarget() || !tracingManager)
+ return;
+
resourceTreeModel.suspendReload();
- this._startRecording(false).then(() => resourceTreeModel.resumeReload());
+ this._startRecording(tracingManager, false).then(() => resourceTreeModel.resumeReload());
}
/**
* @param {!Common.Event} event
*/
_loadEventFired(event) {
- if (this._state !== Timeline.TimelinePanel.State.Recording || !this._autoRecordGeneration)
+ if (this._state !== Timeline.TimelinePanel.State.Recording || !this._autoRecordGeneration ||
+ this._autoRecordGeneration.tracingManager.target() !== event.data.resourceTreeModel.target())
return;
setTimeout(stopRecordingOnReload.bind(this, this._autoRecordGeneration), this._millisecondsToRecordAfterLoadEvent);
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/sdk/TargetManager.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698