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

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

Issue 2073343002: Timeline addTraceProvider API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: timelineFlameChart.js Created 4 years, 5 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Intel Inc. All rights reserved. 3 * Copyright (C) 2012 Intel Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 this.element.addEventListener("contextmenu", this._contextMenu.bind(this), f alse); 43 this.element.addEventListener("contextmenu", this._contextMenu.bind(this), f alse);
44 this._dropTarget = new WebInspector.DropTarget(this.element, [WebInspector.D ropTarget.Types.Files, WebInspector.DropTarget.Types.URIList], WebInspector.UISt ring("Drop timeline file or URL here"), this._handleDrop.bind(this)); 44 this._dropTarget = new WebInspector.DropTarget(this.element, [WebInspector.D ropTarget.Types.Files, WebInspector.DropTarget.Types.URIList], WebInspector.UISt ring("Drop timeline file or URL here"), this._handleDrop.bind(this));
45 45
46 this._state = WebInspector.TimelinePanel.State.Idle; 46 this._state = WebInspector.TimelinePanel.State.Idle;
47 this._detailsLinkifier = new WebInspector.Linkifier(); 47 this._detailsLinkifier = new WebInspector.Linkifier();
48 this._windowStartTime = 0; 48 this._windowStartTime = 0;
49 this._windowEndTime = Infinity; 49 this._windowEndTime = Infinity;
50 this._millisecondsToRecordAfterLoadEvent = 3000; 50 this._millisecondsToRecordAfterLoadEvent = 3000;
51 this._toggleRecordAction = /** @type {!WebInspector.Action }*/ (WebInspector .actionRegistry.action("timeline.toggle-recording")); 51 this._toggleRecordAction = /** @type {!WebInspector.Action }*/ (WebInspector .actionRegistry.action("timeline.toggle-recording"));
52 52
53 this._extensionTraceProviders = WebInspector.extensionServer.traceProviders( );
54
53 /** @type {!Array<!WebInspector.TimelineModel.Filter>} */ 55 /** @type {!Array<!WebInspector.TimelineModel.Filter>} */
54 this._filters = []; 56 this._filters = [];
55 if (!Runtime.experiments.isEnabled("timelineShowAllEvents")) { 57 if (!Runtime.experiments.isEnabled("timelineShowAllEvents")) {
56 this._filters.push(WebInspector.TimelineUIUtils.visibleEventsFilter()); 58 this._filters.push(WebInspector.TimelineUIUtils.visibleEventsFilter());
57 this._filters.push(new WebInspector.ExcludeTopLevelFilter()); 59 this._filters.push(new WebInspector.ExcludeTopLevelFilter());
58 } 60 }
59 61
60 // Create models. 62 // Create models.
61 this._tracingModelBackingStorage = new WebInspector.TempFileBackingStorage(" tracing"); 63 this._tracingModelBackingStorage = new WebInspector.TempFileBackingStorage(" tracing");
62 this._tracingModel = new WebInspector.TracingModel(this._tracingModelBacking Storage); 64 this._tracingModel = new WebInspector.TracingModel(this._tracingModelBacking Storage);
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 if (!Runtime.experiments.isEnabled("timelineRecordingPerspectives") || p erspectiveSetting.get() === WebInspector.TimelinePanel.Perspectives.Custom) { 385 if (!Runtime.experiments.isEnabled("timelineRecordingPerspectives") || p erspectiveSetting.get() === WebInspector.TimelinePanel.Perspectives.Custom) {
384 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox( 386 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox(
385 WebInspector.UIString("Network"), this._captureNetworkSetting, W ebInspector.UIString("Show network requests information"))); 387 WebInspector.UIString("Network"), this._captureNetworkSetting, W ebInspector.UIString("Show network requests information")));
386 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox( 388 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox(
387 WebInspector.UIString("JS Profile"), this._captureJSProfileSetti ng, WebInspector.UIString("Capture JavaScript stacks with sampling profiler. (Ha s small performance overhead)"))); 389 WebInspector.UIString("JS Profile"), this._captureJSProfileSetti ng, WebInspector.UIString("Capture JavaScript stacks with sampling profiler. (Ha s small performance overhead)")));
388 this._panelToolbar.appendToolbarItem(screenshotCheckbox); 390 this._panelToolbar.appendToolbarItem(screenshotCheckbox);
389 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox( 391 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox(
390 WebInspector.UIString("Memory"), this._captureMemorySetting, Web Inspector.UIString("Capture memory information on every timeline event."))); 392 WebInspector.UIString("Memory"), this._captureMemorySetting, Web Inspector.UIString("Capture memory information on every timeline event.")));
391 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox( 393 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox(
392 WebInspector.UIString("Paint"), this._captureLayersAndPicturesSe tting, WebInspector.UIString("Capture graphics layer positions and rasterization draw calls. (Has large performance overhead)"))); 394 WebInspector.UIString("Paint"), this._captureLayersAndPicturesSe tting, WebInspector.UIString("Capture graphics layer positions and rasterization draw calls. (Has large performance overhead)")));
395
396 for (var provider of this._extensionTraceProviders) {
397 this._panelToolbar.appendToolbarItem(this._createSettingCheckbox (
caseq 2016/07/11 18:58:38 let's also have some handling for trace providers
398 WebInspector.UIString(provider.categoryName),
399 WebInspector.settings.createSetting(provider.categoryName, f alse),
400 WebInspector.UIString(provider.categoryTooltip)));
401 }
393 } else { 402 } else {
394 this._panelToolbar.appendToolbarItem(screenshotCheckbox); 403 this._panelToolbar.appendToolbarItem(screenshotCheckbox);
395 } 404 }
396 405
397 this._captureNetworkSetting.addChangeListener(this._onNetworkChanged, th is); 406 this._captureNetworkSetting.addChangeListener(this._onNetworkChanged, th is);
398 this._captureMemorySetting.addChangeListener(this._onModeChanged, this); 407 this._captureMemorySetting.addChangeListener(this._onModeChanged, this);
399 this._captureFilmStripSetting.addChangeListener(this._onModeChanged, thi s); 408 this._captureFilmStripSetting.addChangeListener(this._onModeChanged, thi s);
400 409
401 this._panelToolbar.appendSeparator(); 410 this._panelToolbar.appendSeparator();
402 var garbageCollectButton = new WebInspector.ToolbarButton(WebInspector.U IString("Collect garbage"), "garbage-collect-toolbar-item"); 411 var garbageCollectButton = new WebInspector.ToolbarButton(WebInspector.U IString("Collect garbage"), "garbage-collect-toolbar-item");
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
765 774
766 if (!success) { 775 if (!success) {
767 this._statusPane.hide(); 776 this._statusPane.hide();
768 delete this._statusPane; 777 delete this._statusPane;
769 this._clear(); 778 this._clear();
770 return; 779 return;
771 } 780 }
772 781
773 if (this._statusPane) 782 if (this._statusPane)
774 this._statusPane.updateStatus(WebInspector.UIString("Processing time line\u2026")); 783 this._statusPane.updateStatus(WebInspector.UIString("Processing time line\u2026"));
775 this._model.setEvents(this._tracingModel, loadedFromFile); 784 this._model.setEvents(this._tracingModel, this._extensionTraceProviders, loadedFromFile);
776 this._frameModel.reset(); 785 this._frameModel.reset();
777 this._frameModel.addTraceEvents(this._model.target(), this._model.inspec tedTargetEvents(), this._model.sessionId() || ""); 786 this._frameModel.addTraceEvents(this._model.target(), this._model.inspec tedTargetEvents(), this._model.sessionId() || "");
778 787
779 var groups = WebInspector.TimelineModel.AsyncEventGroup; 788 var groups = WebInspector.TimelineModel.AsyncEventGroup;
780 var asyncEventsByGroup = this._model.mainThreadAsyncEvents(); 789 var asyncEventsByGroup = this._model.mainThreadAsyncEvents();
781 this._irModel.populate(asyncEventsByGroup.get(groups.input), asyncEvents ByGroup.get(groups.animation)); 790 this._irModel.populate(asyncEventsByGroup.get(groups.input), asyncEvents ByGroup.get(groups.animation));
782 this._model.cpuProfiles().forEach(profile => WebInspector.LineLevelProfi le.instance().appendCPUProfile(profile)); 791 this._model.cpuProfiles().forEach(profile => WebInspector.LineLevelProfi le.instance().appendCPUProfile(profile));
783 if (this._statusPane) 792 if (this._statusPane)
784 this._statusPane.hide(); 793 this._statusPane.hide();
785 delete this._statusPane; 794 delete this._statusPane;
(...skipping 1251 matching lines...) Expand 10 before | Expand all | Expand 10 after
2037 * @override 2046 * @override
2038 * @param {!WebInspector.Target} target 2047 * @param {!WebInspector.Target} target
2039 */ 2048 */
2040 targetRemoved: function(target) 2049 targetRemoved: function(target)
2041 { 2050 {
2042 this._targets.remove(target, true); 2051 this._targets.remove(target, true);
2043 }, 2052 },
2044 2053
2045 __proto__: WebInspector.Object.prototype 2054 __proto__: WebInspector.Object.prototype
2046 } 2055 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698