OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 The Chromium Authors. All rights reserved. | 2 * Copyright 2015 The Chromium Authors. All rights reserved. |
3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
5 */ | 5 */ |
6 | 6 |
7 /** | 7 /** |
8 * @constructor | 8 * @constructor |
9 * @param {!WebInspector.TracingModel} tracingModel | 9 * @param {!WebInspector.TracingModel} tracingModel |
| 10 * @param {number=} zeroTime |
10 */ | 11 */ |
11 WebInspector.FilmStripModel = function(tracingModel) | 12 WebInspector.FilmStripModel = function(tracingModel, zeroTime) |
12 { | 13 { |
13 this._tracingModel = tracingModel; | 14 this._tracingModel = tracingModel; |
| 15 this._zeroTime = zeroTime || tracingModel.minimumRecordTime(); |
14 | 16 |
15 /** @type {!Array<!WebInspector.FilmStripModel.Frame>} */ | 17 /** @type {!Array<!WebInspector.FilmStripModel.Frame>} */ |
16 this._frames = []; | 18 this._frames = []; |
17 | 19 |
18 var browserProcess = tracingModel.processByName("Browser"); | 20 var browserProcess = tracingModel.processByName("Browser"); |
19 if (!browserProcess) | 21 if (!browserProcess) |
20 return; | 22 return; |
21 var mainThread = browserProcess.threadByName("CrBrowserMain"); | 23 var mainThread = browserProcess.threadByName("CrBrowserMain"); |
22 if (!mainThread) | 24 if (!mainThread) |
23 return; | 25 return; |
24 | 26 |
25 var events = mainThread.events(); | 27 var events = mainThread.events(); |
26 for (var i = 0; i < events.length; ++i) { | 28 for (var i = 0; i < events.length; ++i) { |
27 if (!events[i].hasCategory(WebInspector.FilmStripModel._category)) | 29 var event = events[i]; |
| 30 if (event.startTime < this._zeroTime) |
28 continue; | 31 continue; |
29 | 32 if (!event.hasCategory(WebInspector.FilmStripModel._category)) |
30 if (events[i].name === WebInspector.FilmStripModel.TraceEvents.CaptureFr
ame) { | 33 continue; |
31 var data = events[i].args["data"]; | 34 if (event.name === WebInspector.FilmStripModel.TraceEvents.CaptureFrame)
{ |
| 35 var data = event.args["data"]; |
32 if (data) | 36 if (data) |
33 this._frames.push(WebInspector.FilmStripModel.Frame._fromEvent(t
his, events[i], this._frames.length)); | 37 this._frames.push(WebInspector.FilmStripModel.Frame._fromEvent(t
his, event, this._frames.length)); |
34 } else if (events[i].name === WebInspector.FilmStripModel.TraceEvents.Sc
reenshot) { | 38 } else if (event.name === WebInspector.FilmStripModel.TraceEvents.Screen
shot) { |
35 this._frames.push(WebInspector.FilmStripModel.Frame._fromSnapshot(th
is, /** @type {!WebInspector.TracingModel.ObjectSnapshot} */ (events[i]), this._
frames.length)); | 39 this._frames.push(WebInspector.FilmStripModel.Frame._fromSnapshot(th
is, /** @type {!WebInspector.TracingModel.ObjectSnapshot} */ (event), this._fram
es.length)); |
36 } | 40 } |
37 } | 41 } |
38 } | 42 } |
39 | 43 |
40 WebInspector.FilmStripModel._category = "disabled-by-default-devtools.screenshot
"; | 44 WebInspector.FilmStripModel._category = "disabled-by-default-devtools.screenshot
"; |
41 | 45 |
42 WebInspector.FilmStripModel.TraceEvents = { | 46 WebInspector.FilmStripModel.TraceEvents = { |
43 CaptureFrame: "CaptureFrame", | 47 CaptureFrame: "CaptureFrame", |
44 Screenshot: "Screenshot" | 48 Screenshot: "Screenshot" |
45 } | 49 } |
46 | 50 |
47 WebInspector.FilmStripModel.prototype = { | 51 WebInspector.FilmStripModel.prototype = { |
48 /** | 52 /** |
49 * @return {!Array<!WebInspector.FilmStripModel.Frame>} | 53 * @return {!Array<!WebInspector.FilmStripModel.Frame>} |
50 */ | 54 */ |
51 frames: function() | 55 frames: function() |
52 { | 56 { |
53 return this._frames; | 57 return this._frames; |
54 }, | 58 }, |
55 | 59 |
56 /** | 60 /** |
57 * @return {number} | 61 * @return {number} |
58 */ | 62 */ |
59 zeroTime: function() | 63 zeroTime: function() |
60 { | 64 { |
61 return this._tracingModel.minimumRecordTime(); | 65 return this._zeroTime; |
62 }, | 66 }, |
63 | 67 |
64 /** | 68 /** |
65 * @param {number} timestamp | 69 * @param {number} timestamp |
66 * @return {?WebInspector.FilmStripModel.Frame} | 70 * @return {?WebInspector.FilmStripModel.Frame} |
67 */ | 71 */ |
68 frameByTimestamp: function(timestamp) | 72 frameByTimestamp: function(timestamp) |
69 { | 73 { |
70 /** | 74 /** |
71 * @param {number} timestamp | 75 * @param {number} timestamp |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 * @return {!Promise<?string>} | 141 * @return {!Promise<?string>} |
138 */ | 142 */ |
139 imageDataPromise: function() | 143 imageDataPromise: function() |
140 { | 144 { |
141 if (this._imageData || !this._snapshot) | 145 if (this._imageData || !this._snapshot) |
142 return Promise.resolve(this._imageData); | 146 return Promise.resolve(this._imageData); |
143 | 147 |
144 return /** @type {!Promise<?string>} */ (this._snapshot.objectPromise())
; | 148 return /** @type {!Promise<?string>} */ (this._snapshot.objectPromise())
; |
145 } | 149 } |
146 } | 150 } |
OLD | NEW |