OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @implements {SDK.TargetManager.Observer} | 6 * @implements {SDK.TargetManager.Observer} |
7 * @implements {SDK.TracingManagerClient} | 7 * @implements {SDK.TracingManagerClient} |
8 * @unrestricted | 8 * @unrestricted |
9 */ | 9 */ |
10 Timeline.TimelineController = class { | 10 Timeline.TimelineController = class { |
(...skipping 15 matching lines...) Expand all Loading... |
26 this._markUnusedCSS = Common.settings.createSetting('timelineMarkUnusedCSS
', false); | 26 this._markUnusedCSS = Common.settings.createSetting('timelineMarkUnusedCSS
', false); |
27 } | 27 } |
28 | 28 |
29 /** | 29 /** |
30 * @param {!Timeline.TimelineController.CaptureOptions} options | 30 * @param {!Timeline.TimelineController.CaptureOptions} options |
31 * @param {!Array<!Extensions.ExtensionTraceProvider>} providers | 31 * @param {!Array<!Extensions.ExtensionTraceProvider>} providers |
32 */ | 32 */ |
33 startRecording(options, providers) { | 33 startRecording(options, providers) { |
34 this._extensionTraceProviders = Extensions.extensionServer.traceProviders().
slice(); | 34 this._extensionTraceProviders = Extensions.extensionServer.traceProviders().
slice(); |
35 | 35 |
| 36 /** |
| 37 * @param {string} category |
| 38 * @return {string} |
| 39 */ |
36 function disabledByDefault(category) { | 40 function disabledByDefault(category) { |
37 return 'disabled-by-default-' + category; | 41 return 'disabled-by-default-' + category; |
38 } | 42 } |
39 var categoriesArray = [ | 43 const categoriesArray = [ |
40 '-*', 'devtools.timeline', 'v8.execute', disabledByDefault('devtools.timel
ine'), | 44 '-*', 'devtools.timeline', 'v8.execute', disabledByDefault('devtools.timel
ine'), |
41 disabledByDefault('devtools.timeline.frame'), SDK.TracingModel.TopLevelEve
ntCategory, | 45 disabledByDefault('devtools.timeline.frame'), SDK.TracingModel.TopLevelEve
ntCategory, |
42 TimelineModel.TimelineModel.Category.Console, TimelineModel.TimelineModel.
Category.UserTiming | 46 TimelineModel.TimelineModel.Category.Console, TimelineModel.TimelineModel.
Category.UserTiming |
43 ]; | 47 ]; |
44 categoriesArray.push(TimelineModel.TimelineModel.Category.LatencyInfo); | 48 categoriesArray.push(TimelineModel.TimelineModel.Category.LatencyInfo); |
45 | 49 |
46 if (Runtime.experiments.isEnabled('timelineV8RuntimeCallStats') && options.e
nableJSSampling) | 50 if (Runtime.experiments.isEnabled('timelineV8RuntimeCallStats') && options.e
nableJSSampling) |
47 categoriesArray.push(disabledByDefault('v8.runtime_stats_sampling')); | 51 categoriesArray.push(disabledByDefault('v8.runtime_stats_sampling')); |
48 if (Runtime.experiments.isEnabled('timelineTracingJSProfile') && options.ena
bleJSSampling) { | 52 if (Runtime.experiments.isEnabled('timelineTracingJSProfile') && options.ena
bleJSSampling) { |
49 categoriesArray.push(disabledByDefault('v8.cpu_profiler')); | 53 categoriesArray.push(disabledByDefault('v8.cpu_profiler')); |
50 if (Common.moduleSetting('highResolutionCpuProfiling').get()) | 54 if (Common.moduleSetting('highResolutionCpuProfiling').get()) |
51 categoriesArray.push(disabledByDefault('v8.cpu_profiler.hires')); | 55 categoriesArray.push(disabledByDefault('v8.cpu_profiler.hires')); |
52 } | 56 } |
53 if (options.captureCauses || options.enableJSSampling) | 57 if (options.captureCauses || options.enableJSSampling) |
54 categoriesArray.push(disabledByDefault('devtools.timeline.stack')); | 58 categoriesArray.push(disabledByDefault('devtools.timeline.stack')); |
55 if (options.captureCauses && Runtime.experiments.isEnabled('timelineInvalida
tionTracking')) | 59 if (options.captureCauses && Runtime.experiments.isEnabled('timelineInvalida
tionTracking')) |
56 categoriesArray.push(disabledByDefault('devtools.timeline.invalidationTrac
king')); | 60 categoriesArray.push(disabledByDefault('devtools.timeline.invalidationTrac
king')); |
57 if (options.capturePictures) { | 61 if (options.capturePictures) { |
58 categoriesArray.push( | 62 categoriesArray.push( |
59 disabledByDefault('devtools.timeline.layers'), disabledByDefault('devt
ools.timeline.picture'), | 63 disabledByDefault('devtools.timeline.layers'), disabledByDefault('devt
ools.timeline.picture'), |
60 disabledByDefault('blink.graphics_context_annotations')); | 64 disabledByDefault('blink.graphics_context_annotations')); |
61 } | 65 } |
62 if (options.captureFilmStrip) | 66 if (options.captureFilmStrip) |
63 categoriesArray.push(disabledByDefault('devtools.screenshot')); | 67 categoriesArray.push(disabledByDefault('devtools.screenshot')); |
64 | 68 |
65 this._extensionSessions = providers.map(provider => new Timeline.ExtensionTr
acingSession(provider, this._delegate)); | 69 this._extensionSessions = providers.map(provider => new Timeline.ExtensionTr
acingSession(provider, this._delegate)); |
66 this._extensionSessions.forEach(session => session.start()); | 70 this._extensionSessions.forEach(session => session.start()); |
67 var categories = categoriesArray.join(','); | 71 this._startRecordingWithCategories(categoriesArray.join(','), options.enable
JSSampling); |
68 this._startRecordingWithCategories(categories, options.enableJSSampling); | |
69 } | 72 } |
70 | 73 |
71 stopRecording() { | 74 stopRecording() { |
72 var tracingStoppedPromises = []; | 75 var tracingStoppedPromises = []; |
73 tracingStoppedPromises.push(new Promise(resolve => this._tracingCompleteCall
back = resolve)); | 76 tracingStoppedPromises.push(new Promise(resolve => this._tracingCompleteCall
back = resolve)); |
74 tracingStoppedPromises.push(this._stopProfilingOnAllTargets()); | 77 tracingStoppedPromises.push(this._stopProfilingOnAllTargets()); |
75 this._target.tracingManager.stop(); | 78 this._target.tracingManager.stop(); |
76 | 79 |
77 if (!Runtime.experiments.isEnabled('timelineRuleUsageRecording') || !this._m
arkUnusedCSS.get()) | 80 if (!Runtime.experiments.isEnabled('timelineRuleUsageRecording') || !this._m
arkUnusedCSS.get()) |
78 tracingStoppedPromises.push(SDK.targetManager.resumeAllTargets()); | 81 tracingStoppedPromises.push(SDK.targetManager.resumeAllTargets()); |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 | 313 |
311 /** @typedef {!{ | 314 /** @typedef {!{ |
312 * captureCauses: (boolean|undefined), | 315 * captureCauses: (boolean|undefined), |
313 * enableJSSampling: (boolean|undefined), | 316 * enableJSSampling: (boolean|undefined), |
314 * captureMemory: (boolean|undefined), | 317 * captureMemory: (boolean|undefined), |
315 * capturePictures: (boolean|undefined), | 318 * capturePictures: (boolean|undefined), |
316 * captureFilmStrip: (boolean|undefined) | 319 * captureFilmStrip: (boolean|undefined) |
317 * }} | 320 * }} |
318 */ | 321 */ |
319 Timeline.TimelineController.CaptureOptions; | 322 Timeline.TimelineController.CaptureOptions; |
OLD | NEW |