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

Unified Diff: third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.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/extensions/ExtensionServer.js
diff --git a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
index 92fde8b013f621b9097e0b0288aa7a474221b7f4..9a6d62a741068a2bf566b70b46f77f7db580d139 100644
--- a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
+++ b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
@@ -49,11 +49,16 @@ WebInspector.ExtensionServer = function()
this._sidebarPanes = [];
/** @type {!Array.<!WebInspector.ExtensionAuditCategory>} */
this._auditCategories = [];
+ /** @type {!Array.<!WebInspector.ExtensionTraceProvider>} */
+ this._traceProviders = [];
+
var commands = WebInspector.extensionAPI.Commands;
this._registerHandler(commands.AddAuditCategory, this._onAddAuditCategory.bind(this));
this._registerHandler(commands.AddAuditResult, this._onAddAuditResult.bind(this));
+ this._registerHandler(commands.AddTraceProvider, this._onAddTraceProvider.bind(this));
+ this._registerHandler(commands.AddTraceData, this._onAddTraceData.bind(this));
this._registerHandler(commands.AddRequestHeaders, this._onAddRequestHeaders.bind(this));
this._registerHandler(commands.ApplyStyleSheet, this._onApplyStyleSheet.bind(this));
this._registerHandler(commands.CreatePanel, this._onCreatePanel.bind(this));
@@ -87,7 +92,8 @@ WebInspector.ExtensionServer = function()
WebInspector.ExtensionServer.Events = {
SidebarPaneAdded: "SidebarPaneAdded",
- AuditCategoryAdded: "AuditCategoryAdded"
+ AuditCategoryAdded: "AuditCategoryAdded",
+ TraceProviderAdded: "TraceProviderAdded"
}
WebInspector.ExtensionServer.prototype = {
@@ -170,6 +176,23 @@ WebInspector.ExtensionServer.prototype = {
},
/**
+ * @param {string} traceProviderId
+ */
+ startTraceRecording: function(traceProviderId)
+ {
+ this._postNotification("trace-recording-started-" + traceProviderId);
+ },
+
+ /**
+ * @param {string} traceProviderId
+ * @param {!WebInspector.ExtensionTraceData} traceData
+ */
+ stopTraceRecording: function(traceProviderId, traceData)
+ {
+ this._postNotification("trace-recording-stopped-" + traceProviderId, traceData.id());
+ },
+
+ /**
* @param {string} type
* @return {boolean}
*/
@@ -582,6 +605,22 @@ WebInspector.ExtensionServer.prototype = {
this.dispatchEventToListeners(WebInspector.ExtensionServer.Events.AuditCategoryAdded, category);
},
+ _onAddTraceProvider: function(message, port)
+ {
+ var provider = new WebInspector.ExtensionTraceProvider(port._extensionOrigin, message.id, message.categoryName, message.categoryTooltip);
+ this._clientObjects[message.id] = provider;
+ this._traceProviders.push(provider);
+ this.dispatchEventToListeners(WebInspector.ExtensionServer.Events.TraceProviderAdded, provider);
+ },
+
+ /**
+ * @return {!Array.<!WebInspector.ExtensionTraceProvider>}
+ */
+ traceProviders: function()
+ {
+ return this._traceProviders;
+ },
+
/**
* @return {!Array.<!WebInspector.ExtensionAuditCategory>}
*/
@@ -603,6 +642,20 @@ WebInspector.ExtensionServer.prototype = {
return this._status.OK();
},
+ _onAddTraceData: function(message)
+ {
+ var traceProvider = /** {!WebInspector.ExtensionTraceProvider} */ (this._clientObjects[message.traceProviderId]);
+ if (!traceProvider)
+ return this._status.E_NOTFOUND(message.traceProviderId);
+ var traceData = traceProvider.traceData;
+ try {
+ traceData.addTraceData(message.threadName, message.events);
+ } catch (e) {
+ return e;
+ }
+ return this._status.OK();
+ },
+
_onUpdateAuditProgress: function(message)
{
var auditResult = /** {!WebInspector.ExtensionAuditCategoryResults} */ (this._clientObjects[message.resultId]);

Powered by Google App Engine
This is Rietveld 408576698