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

Unified Diff: third_party/WebKit/Source/devtools/front_end/extensions/ExtensionAPI.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/ExtensionAPI.js
diff --git a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionAPI.js b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionAPI.js
index 7a9b305fbc76abcc0829e3ba5893acbb4068899f..41a8d6e8dfdc77c2244c31ca014a60199f4ab6cf 100644
--- a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionAPI.js
+++ b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionAPI.js
@@ -51,6 +51,8 @@ function defineCommonExtensionSymbols(apiPrivate)
apiPrivate.Events = {
AuditStarted: "audit-started-",
+ RecordingStarted: "trace-recording-started-",
+ RecordingStopped: "trace-recording-stopped-",
ButtonClicked: "button-clicked-",
PanelObjectSelected: "panel-objectSelected-",
NetworkRequestFinished: "network-request-finished",
@@ -66,6 +68,8 @@ function defineCommonExtensionSymbols(apiPrivate)
AddAuditCategory: "addAuditCategory",
AddAuditResult: "addAuditResult",
AddRequestHeaders: "addRequestHeaders",
+ AddTraceProvider: "addTraceProvider",
+ AddTraceData: "addTraceData",
ApplyStyleSheet: "applyStyleSheet",
CreatePanel: "createPanel",
CreateSidebarPane: "createSidebarPane",
@@ -174,6 +178,7 @@ EventSinkImpl.prototype = {
function InspectorExtensionAPI()
{
this.audits = new Audits();
+ this.timeline = new Timeline();
this.inspectedWindow = new InspectedWindow();
this.panels = new Panels();
this.network = new Network();
@@ -411,6 +416,7 @@ function extractCallbackArgument(args)
var AuditCategory = declareInterfaceClass(AuditCategoryImpl);
var AuditResult = declareInterfaceClass(AuditResultImpl);
+var TraceData = declareInterfaceClass(TraceDataImpl);
var Button = declareInterfaceClass(ButtonImpl);
var EventSink = declareInterfaceClass(EventSinkImpl);
var ExtensionPanel = declareInterfaceClass(ExtensionPanelImpl);
@@ -553,6 +559,71 @@ ButtonImpl.prototype = {
/**
* @constructor
*/
+function Timeline()
+{
+}
+
+Timeline.prototype = {
+ /**
+ * @param {string} categoryName
+ * @param {string} categoryTooltip
+ * @return {!TraceProvider}
+ */
+ addTraceProvider: function(categoryName, categoryTooltip)
+ {
+ var id = "extension-timeline-category-" + extensionServer.nextObjectId();
+ extensionServer.sendRequest({ command: commands.AddTraceProvider, id: id, categoryName: categoryName, categoryTooltip: categoryTooltip});
+ return new TraceProvider(id);
+ }
+}
+
+/**
+ * @constructor
+ */
+function TraceProvider(id)
+{
+ /**
+ * @this {EventSinkImpl}
+ */
+ function dispatchRecordingStoppedEvent(request)
+ {
+ var traceData = new TraceData(request.arguments[0], id);
+ try {
+ this._fire(traceData);
+ } catch (e) {
+ console.error("Uncaught exception in extension recording stopped event handler: " + e);
+ }
+ }
+ this.onRecordingStarted = new EventSink(events.RecordingStarted + id);
+ this.onRecordingStopped = new EventSink(events.RecordingStopped + id, dispatchRecordingStoppedEvent);
+}
+
+/**
+ * @constructor
+ */
+function TraceDataImpl(id, traceProviderId)
+{
+ this._id = id;
+ this._traceProviderId = traceProviderId;
+}
+
+TraceDataImpl.prototype = {
+ addTraceData: function(threadName, events)
+ {
+ var request = {
+ command: commands.AddTraceData,
+ dataId: this._id,
+ threadName: threadName,
+ events: events,
+ traceProviderId: this._traceProviderId,
+ };
+ extensionServer.sendRequest(request);
+ }
+}
+
+/**
+ * @constructor
+ */
function Audits()
{
}

Powered by Google App Engine
This is Rietveld 408576698