| 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 * @unrestricted | 8 * @unrestricted |
| 9 */ | 9 */ |
| 10 WebInspector.FilmStripModel = class { | 10 Components.FilmStripModel = class { |
| 11 /** | 11 /** |
| 12 * @param {!WebInspector.TracingModel} tracingModel | 12 * @param {!SDK.TracingModel} tracingModel |
| 13 * @param {number=} zeroTime | 13 * @param {number=} zeroTime |
| 14 */ | 14 */ |
| 15 constructor(tracingModel, zeroTime) { | 15 constructor(tracingModel, zeroTime) { |
| 16 this.reset(tracingModel, zeroTime); | 16 this.reset(tracingModel, zeroTime); |
| 17 } | 17 } |
| 18 | 18 |
| 19 /** | 19 /** |
| 20 * @param {!WebInspector.TracingModel} tracingModel | 20 * @param {!SDK.TracingModel} tracingModel |
| 21 * @param {number=} zeroTime | 21 * @param {number=} zeroTime |
| 22 */ | 22 */ |
| 23 reset(tracingModel, zeroTime) { | 23 reset(tracingModel, zeroTime) { |
| 24 this._zeroTime = zeroTime || tracingModel.minimumRecordTime(); | 24 this._zeroTime = zeroTime || tracingModel.minimumRecordTime(); |
| 25 this._spanTime = tracingModel.maximumRecordTime() - this._zeroTime; | 25 this._spanTime = tracingModel.maximumRecordTime() - this._zeroTime; |
| 26 | 26 |
| 27 /** @type {!Array<!WebInspector.FilmStripModel.Frame>} */ | 27 /** @type {!Array<!Components.FilmStripModel.Frame>} */ |
| 28 this._frames = []; | 28 this._frames = []; |
| 29 var browserMain = WebInspector.TracingModel.browserMainThread(tracingModel); | 29 var browserMain = SDK.TracingModel.browserMainThread(tracingModel); |
| 30 if (!browserMain) | 30 if (!browserMain) |
| 31 return; | 31 return; |
| 32 | 32 |
| 33 var events = browserMain.events(); | 33 var events = browserMain.events(); |
| 34 for (var i = 0; i < events.length; ++i) { | 34 for (var i = 0; i < events.length; ++i) { |
| 35 var event = events[i]; | 35 var event = events[i]; |
| 36 if (event.startTime < this._zeroTime) | 36 if (event.startTime < this._zeroTime) |
| 37 continue; | 37 continue; |
| 38 if (!event.hasCategory(WebInspector.FilmStripModel._category)) | 38 if (!event.hasCategory(Components.FilmStripModel._category)) |
| 39 continue; | 39 continue; |
| 40 if (event.name === WebInspector.FilmStripModel.TraceEvents.CaptureFrame) { | 40 if (event.name === Components.FilmStripModel.TraceEvents.CaptureFrame) { |
| 41 var data = event.args['data']; | 41 var data = event.args['data']; |
| 42 if (data) | 42 if (data) |
| 43 this._frames.push(WebInspector.FilmStripModel.Frame._fromEvent(this, e
vent, this._frames.length)); | 43 this._frames.push(Components.FilmStripModel.Frame._fromEvent(this, eve
nt, this._frames.length)); |
| 44 } else if (event.name === WebInspector.FilmStripModel.TraceEvents.Screensh
ot) { | 44 } else if (event.name === Components.FilmStripModel.TraceEvents.Screenshot
) { |
| 45 this._frames.push(WebInspector.FilmStripModel.Frame._fromSnapshot( | 45 this._frames.push(Components.FilmStripModel.Frame._fromSnapshot( |
| 46 this, /** @type {!WebInspector.TracingModel.ObjectSnapshot} */ (even
t), this._frames.length)); | 46 this, /** @type {!SDK.TracingModel.ObjectSnapshot} */ (event), this.
_frames.length)); |
| 47 } | 47 } |
| 48 } | 48 } |
| 49 } | 49 } |
| 50 | 50 |
| 51 /** | 51 /** |
| 52 * @return {!Array<!WebInspector.FilmStripModel.Frame>} | 52 * @return {!Array<!Components.FilmStripModel.Frame>} |
| 53 */ | 53 */ |
| 54 frames() { | 54 frames() { |
| 55 return this._frames; | 55 return this._frames; |
| 56 } | 56 } |
| 57 | 57 |
| 58 /** | 58 /** |
| 59 * @return {number} | 59 * @return {number} |
| 60 */ | 60 */ |
| 61 zeroTime() { | 61 zeroTime() { |
| 62 return this._zeroTime; | 62 return this._zeroTime; |
| 63 } | 63 } |
| 64 | 64 |
| 65 /** | 65 /** |
| 66 * @return {number} | 66 * @return {number} |
| 67 */ | 67 */ |
| 68 spanTime() { | 68 spanTime() { |
| 69 return this._spanTime; | 69 return this._spanTime; |
| 70 } | 70 } |
| 71 | 71 |
| 72 /** | 72 /** |
| 73 * @param {number} timestamp | 73 * @param {number} timestamp |
| 74 * @return {?WebInspector.FilmStripModel.Frame} | 74 * @return {?Components.FilmStripModel.Frame} |
| 75 */ | 75 */ |
| 76 frameByTimestamp(timestamp) { | 76 frameByTimestamp(timestamp) { |
| 77 var index = this._frames.upperBound(timestamp, (timestamp, frame) => timesta
mp - frame.timestamp) - 1; | 77 var index = this._frames.upperBound(timestamp, (timestamp, frame) => timesta
mp - frame.timestamp) - 1; |
| 78 return index >= 0 ? this._frames[index] : null; | 78 return index >= 0 ? this._frames[index] : null; |
| 79 } | 79 } |
| 80 }; | 80 }; |
| 81 | 81 |
| 82 WebInspector.FilmStripModel._category = 'disabled-by-default-devtools.screenshot
'; | 82 Components.FilmStripModel._category = 'disabled-by-default-devtools.screenshot'; |
| 83 | 83 |
| 84 WebInspector.FilmStripModel.TraceEvents = { | 84 Components.FilmStripModel.TraceEvents = { |
| 85 CaptureFrame: 'CaptureFrame', | 85 CaptureFrame: 'CaptureFrame', |
| 86 Screenshot: 'Screenshot' | 86 Screenshot: 'Screenshot' |
| 87 }; | 87 }; |
| 88 | 88 |
| 89 /** | 89 /** |
| 90 * @unrestricted | 90 * @unrestricted |
| 91 */ | 91 */ |
| 92 WebInspector.FilmStripModel.Frame = class { | 92 Components.FilmStripModel.Frame = class { |
| 93 /** | 93 /** |
| 94 * @param {!WebInspector.FilmStripModel} model | 94 * @param {!Components.FilmStripModel} model |
| 95 * @param {number} timestamp | 95 * @param {number} timestamp |
| 96 * @param {number} index | 96 * @param {number} index |
| 97 */ | 97 */ |
| 98 constructor(model, timestamp, index) { | 98 constructor(model, timestamp, index) { |
| 99 this._model = model; | 99 this._model = model; |
| 100 this.timestamp = timestamp; | 100 this.timestamp = timestamp; |
| 101 this.index = index; | 101 this.index = index; |
| 102 /** @type {?string} */ | 102 /** @type {?string} */ |
| 103 this._imageData = null; | 103 this._imageData = null; |
| 104 /** @type {?WebInspector.TracingModel.ObjectSnapshot} */ | 104 /** @type {?SDK.TracingModel.ObjectSnapshot} */ |
| 105 this._snapshot = null; | 105 this._snapshot = null; |
| 106 } | 106 } |
| 107 | 107 |
| 108 /** | 108 /** |
| 109 * @param {!WebInspector.FilmStripModel} model | 109 * @param {!Components.FilmStripModel} model |
| 110 * @param {!WebInspector.TracingModel.Event} event | 110 * @param {!SDK.TracingModel.Event} event |
| 111 * @param {number} index | 111 * @param {number} index |
| 112 * @return {!WebInspector.FilmStripModel.Frame} | 112 * @return {!Components.FilmStripModel.Frame} |
| 113 */ | 113 */ |
| 114 static _fromEvent(model, event, index) { | 114 static _fromEvent(model, event, index) { |
| 115 var frame = new WebInspector.FilmStripModel.Frame(model, event.startTime, in
dex); | 115 var frame = new Components.FilmStripModel.Frame(model, event.startTime, inde
x); |
| 116 frame._imageData = event.args['data']; | 116 frame._imageData = event.args['data']; |
| 117 return frame; | 117 return frame; |
| 118 } | 118 } |
| 119 | 119 |
| 120 /** | 120 /** |
| 121 * @param {!WebInspector.FilmStripModel} model | 121 * @param {!Components.FilmStripModel} model |
| 122 * @param {!WebInspector.TracingModel.ObjectSnapshot} snapshot | 122 * @param {!SDK.TracingModel.ObjectSnapshot} snapshot |
| 123 * @param {number} index | 123 * @param {number} index |
| 124 * @return {!WebInspector.FilmStripModel.Frame} | 124 * @return {!Components.FilmStripModel.Frame} |
| 125 */ | 125 */ |
| 126 static _fromSnapshot(model, snapshot, index) { | 126 static _fromSnapshot(model, snapshot, index) { |
| 127 var frame = new WebInspector.FilmStripModel.Frame(model, snapshot.startTime,
index); | 127 var frame = new Components.FilmStripModel.Frame(model, snapshot.startTime, i
ndex); |
| 128 frame._snapshot = snapshot; | 128 frame._snapshot = snapshot; |
| 129 return frame; | 129 return frame; |
| 130 } | 130 } |
| 131 | 131 |
| 132 /** | 132 /** |
| 133 * @return {!WebInspector.FilmStripModel} | 133 * @return {!Components.FilmStripModel} |
| 134 */ | 134 */ |
| 135 model() { | 135 model() { |
| 136 return this._model; | 136 return this._model; |
| 137 } | 137 } |
| 138 | 138 |
| 139 /** | 139 /** |
| 140 * @return {!Promise<?string>} | 140 * @return {!Promise<?string>} |
| 141 */ | 141 */ |
| 142 imageDataPromise() { | 142 imageDataPromise() { |
| 143 if (this._imageData || !this._snapshot) | 143 if (this._imageData || !this._snapshot) |
| 144 return Promise.resolve(this._imageData); | 144 return Promise.resolve(this._imageData); |
| 145 | 145 |
| 146 return /** @type {!Promise<?string>} */ (this._snapshot.objectPromise()); | 146 return /** @type {!Promise<?string>} */ (this._snapshot.objectPromise()); |
| 147 } | 147 } |
| 148 }; | 148 }; |
| OLD | NEW |