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

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

Issue 2073343002: Timeline addTraceProvider API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: timelineFlameChart.js Created 4 years, 6 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
Index: third_party/WebKit/Source/devtools/front_end/timeline/TimelineController.js
diff --git a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineController.js b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineController.js
index 3ce1bc2a3b2d5eb85e22af33d1ca022a59eb61d4..d2d78102f7a09a39f4e08a7aa43d9dc15c9ee265 100644
--- a/third_party/WebKit/Source/devtools/front_end/timeline/TimelineController.js
+++ b/third_party/WebKit/Source/devtools/front_end/timeline/TimelineController.js
@@ -18,6 +18,7 @@ WebInspector.TimelineController = function(target, delegate, tracingModel)
this._targets = [];
this._allProfilesStoppedPromise = Promise.resolve();
this._targetsResumedPromise = Promise.resolve();
+ this._extensionTraceProviders = WebInspector.extensionServer.traceProviders();
WebInspector.targetManager.observeTargets(this);
}
@@ -67,6 +68,10 @@ WebInspector.TimelineController.prototype = {
if (captureFilmStrip)
categoriesArray.push(disabledByDefault("devtools.screenshot"));
+ for (var traceProvider of this._extensionTraceProviders) {
+ traceProvider.run();
+ }
+
var categories = categoriesArray.join(",");
this._startRecordingWithCategories(categories, enableJSSampling);
},
@@ -77,6 +82,12 @@ WebInspector.TimelineController.prototype = {
this._target.tracingManager.stop();
this._targetsResumedPromise = WebInspector.targetManager.resumeAllTargets();
this._delegate.loadingStarted();
+
+ var target = WebInspector.targetManager.mainTarget();
+ var requests = target.networkLog.requests().slice();
+ for (var traceProvider of this._extensionTraceProviders) {
+ traceProvider.stop(requests);
+ }
},
/**
@@ -189,6 +200,9 @@ WebInspector.TimelineController.prototype = {
tracingStarted: function()
{
this._tracingModel.reset();
+ for (var provider of this._extensionTraceProviders) {
+ provider.tracingModel.reset();
+ }
this._delegate.recordingStarted();
},
@@ -214,7 +228,36 @@ WebInspector.TimelineController.prototype = {
{
this._injectCpuProfileEvents();
this._tracingModel.tracingComplete();
- this._delegate.loadingComplete(true);
+
+ var count = 0;
+ var total = this._extensionTraceProviders.length;
+ var traceProviders = this._extensionTraceProviders;
+ var this_ = this;
+ var p = new Promise(function(resolve, reject) {
caseq 2016/07/11 18:58:38 Let's piggy-back on the existent allProfilesStoppp
+ for (var traceProvider of traceProviders) {
+ var traceData = traceProvider.traceData;
+ function appendEventsComplete() {
+ if (traceData.events === null) {
+ setTimeout(appendEventsComplete, 1000);
+ } else {
+ traceProvider.tracingModel.addEvents(traceData.events);
+ traceProvider.tracingModel.tracingComplete();
+ count++;
+ }
+ }
+ appendEventsComplete();
+ }
+ function waitUntil(callback) {
+ setTimeout(function() {
+ count == total ? callback(): waitUntil(callback);}, 1000);
+ }
+ waitUntil(function() {
+ resolve();
+ });
+ });
+ p.then(function() {
+ this_._delegate.loadingComplete(true);
+ });
},
/**

Powered by Google App Engine
This is Rietveld 408576698