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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/CPUProfilerModel.js

Issue 2279513002: DevTools: make hitCount optional & experimental in Profiler domain. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 3 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) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 10 *
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 this._configureCpuProfilerSamplingInterval(); 42 this._configureCpuProfilerSamplingInterval();
43 WebInspector.moduleSetting("highResolutionCpuProfiling").addChangeListener(t his._configureCpuProfilerSamplingInterval, this); 43 WebInspector.moduleSetting("highResolutionCpuProfiling").addChangeListener(t his._configureCpuProfilerSamplingInterval, this);
44 } 44 }
45 45
46 /** @enum {symbol} */ 46 /** @enum {symbol} */
47 WebInspector.CPUProfilerModel.Events = { 47 WebInspector.CPUProfilerModel.Events = {
48 ConsoleProfileStarted: Symbol("ConsoleProfileStarted"), 48 ConsoleProfileStarted: Symbol("ConsoleProfileStarted"),
49 ConsoleProfileFinished: Symbol("ConsoleProfileFinished") 49 ConsoleProfileFinished: Symbol("ConsoleProfileFinished")
50 }; 50 };
51 51
52 /** @typedef {!{id: string, scriptLocation: !WebInspector.DebuggerModel.Location , title: (string|undefined), cpuProfile: (!ProfilerAgent.CPUProfile|undefined)}} */ 52 /** @typedef {!{id: string, scriptLocation: !WebInspector.DebuggerModel.Location , title: (string|undefined), cpuProfile: (!ProfilerAgent.Profile|undefined)}} */
53 WebInspector.CPUProfilerModel.EventData; 53 WebInspector.CPUProfilerModel.EventData;
54 54
55 WebInspector.CPUProfilerModel.prototype = { 55 WebInspector.CPUProfilerModel.prototype = {
56 _configureCpuProfilerSamplingInterval: function() 56 _configureCpuProfilerSamplingInterval: function()
57 { 57 {
58 var intervalUs = WebInspector.moduleSetting("highResolutionCpuProfiling" ).get() ? 100 : 1000; 58 var intervalUs = WebInspector.moduleSetting("highResolutionCpuProfiling" ).get() ? 100 : 1000;
59 this.target().profilerAgent().setSamplingInterval(intervalUs); 59 this.target().profilerAgent().setSamplingInterval(intervalUs);
60 }, 60 },
61 61
62 /** 62 /**
63 * @override 63 * @override
64 * @param {string} id 64 * @param {string} id
65 * @param {!DebuggerAgent.Location} scriptLocation 65 * @param {!DebuggerAgent.Location} scriptLocation
66 * @param {string=} title 66 * @param {string=} title
67 */ 67 */
68 consoleProfileStarted: function(id, scriptLocation, title) 68 consoleProfileStarted: function(id, scriptLocation, title)
69 { 69 {
70 this._dispatchProfileEvent(WebInspector.CPUProfilerModel.Events.ConsoleP rofileStarted, id, scriptLocation, title); 70 this._dispatchProfileEvent(WebInspector.CPUProfilerModel.Events.ConsoleP rofileStarted, id, scriptLocation, title);
71 }, 71 },
72 72
73 /** 73 /**
74 * @override 74 * @override
75 * @param {string} id 75 * @param {string} id
76 * @param {!DebuggerAgent.Location} scriptLocation 76 * @param {!DebuggerAgent.Location} scriptLocation
77 * @param {!ProfilerAgent.CPUProfile} cpuProfile 77 * @param {!ProfilerAgent.Profile} cpuProfile
78 * @param {string=} title 78 * @param {string=} title
79 */ 79 */
80 consoleProfileFinished: function(id, scriptLocation, cpuProfile, title) 80 consoleProfileFinished: function(id, scriptLocation, cpuProfile, title)
81 { 81 {
82 this._dispatchProfileEvent(WebInspector.CPUProfilerModel.Events.ConsoleP rofileFinished, id, scriptLocation, title, cpuProfile); 82 this._dispatchProfileEvent(WebInspector.CPUProfilerModel.Events.ConsoleP rofileFinished, id, scriptLocation, title, cpuProfile);
83 }, 83 },
84 84
85 /** 85 /**
86 * @param {symbol} eventName 86 * @param {symbol} eventName
87 * @param {string} id 87 * @param {string} id
88 * @param {!DebuggerAgent.Location} scriptLocation 88 * @param {!DebuggerAgent.Location} scriptLocation
89 * @param {string=} title 89 * @param {string=} title
90 * @param {!ProfilerAgent.CPUProfile=} cpuProfile 90 * @param {!ProfilerAgent.Profile=} cpuProfile
91 */ 91 */
92 _dispatchProfileEvent: function(eventName, id, scriptLocation, title, cpuPro file) 92 _dispatchProfileEvent: function(eventName, id, scriptLocation, title, cpuPro file)
93 { 93 {
94 // Make sure ProfilesPanel is initialized and CPUProfileType is created. 94 // Make sure ProfilesPanel is initialized and CPUProfileType is created.
95 self.runtime.loadModulePromise("profiler").then(_ => { 95 self.runtime.loadModulePromise("profiler").then(_ => {
96 var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (WebI nspector.DebuggerModel.fromTarget(this.target())); 96 var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (WebI nspector.DebuggerModel.fromTarget(this.target()));
97 var debuggerLocation = WebInspector.DebuggerModel.Location.fromPaylo ad(debuggerModel, scriptLocation); 97 var debuggerLocation = WebInspector.DebuggerModel.Location.fromPaylo ad(debuggerModel, scriptLocation);
98 var globalId = this.target().id() + "." + id; 98 var globalId = this.target().id() + "." + id;
99 var data = /** @type {!WebInspector.CPUProfilerModel.EventData} */ ( {id: globalId, scriptLocation: debuggerLocation, cpuProfile: cpuProfile, title: title}); 99 var data = /** @type {!WebInspector.CPUProfilerModel.EventData} */ ( {id: globalId, scriptLocation: debuggerLocation, cpuProfile: cpuProfile, title: title});
100 this.dispatchEventToListeners(eventName, data); 100 this.dispatchEventToListeners(eventName, data);
101 }); 101 });
102 }, 102 },
103 103
104 /** 104 /**
105 * @return {boolean} 105 * @return {boolean}
106 */ 106 */
107 isRecordingProfile: function() 107 isRecordingProfile: function()
108 { 108 {
109 return this._isRecording; 109 return this._isRecording;
110 }, 110 },
111 111
112 startRecording: function() 112 startRecording: function()
113 { 113 {
114 this._isRecording = true; 114 this._isRecording = true;
115 this.target().profilerAgent().start(); 115 this.target().profilerAgent().start();
116 WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Action.Pro filesCPUProfileTaken); 116 WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Action.Pro filesCPUProfileTaken);
117 }, 117 },
118 118
119 /** 119 /**
120 * @return {!Promise.<?ProfilerAgent.CPUProfile>} 120 * @return {!Promise.<?ProfilerAgent.Profile>}
121 */ 121 */
122 stopRecording: function() 122 stopRecording: function()
123 { 123 {
124 /** 124 /**
125 * @param {?Protocol.Error} error 125 * @param {?Protocol.Error} error
126 * @param {?ProfilerAgent.CPUProfile} profile 126 * @param {?ProfilerAgent.Profile} profile
127 * @return {?ProfilerAgent.CPUProfile} 127 * @return {?ProfilerAgent.Profile}
128 */ 128 */
129 function extractProfile(error, profile) 129 function extractProfile(error, profile)
130 { 130 {
131 return !error && profile ? profile : null; 131 return !error && profile ? profile : null;
132 } 132 }
133 this._isRecording = false; 133 this._isRecording = false;
134 return this.target().profilerAgent().stop(extractProfile); 134 return this.target().profilerAgent().stop(extractProfile);
135 }, 135 },
136 136
137 dispose: function() 137 dispose: function()
138 { 138 {
139 WebInspector.moduleSetting("highResolutionCpuProfiling").removeChangeLis tener(this._configureCpuProfilerSamplingInterval, this); 139 WebInspector.moduleSetting("highResolutionCpuProfiling").removeChangeLis tener(this._configureCpuProfilerSamplingInterval, this);
140 }, 140 },
141 141
142 __proto__: WebInspector.SDKModel.prototype 142 __proto__: WebInspector.SDKModel.prototype
143 } 143 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698