| 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 */ | 10 */ |
| 11 WebInspector.FilmStripModel = function(tracingModel) | 11 WebInspector.FilmStripModel = function(tracingModel) |
| 12 { | 12 { |
| 13 this._tracingModel = tracingModel; | 13 this._tracingModel = tracingModel; |
| 14 | 14 |
| 15 /** @type {!Array<!WebInspector.FilmStripModel.Frame>} */ | 15 /** @type {!Array<!WebInspector.FilmStripModel.Frame>} */ |
| 16 this._frames = []; | 16 this._frames = []; |
| 17 | 17 |
| 18 var browserProcess = tracingModel.processByName("Browser"); | 18 var browserProcess = tracingModel.processByName("Browser"); |
| 19 if (!browserProcess) | 19 if (!browserProcess) |
| 20 return; | 20 return; |
| 21 var mainThread = browserProcess.threadByName("CrBrowserMain"); | 21 var mainThread = browserProcess.threadByName("CrBrowserMain"); |
| 22 if (!mainThread) | 22 if (!mainThread) |
| 23 return; | 23 return; |
| 24 | 24 |
| 25 var events = mainThread.events(); | 25 var events = mainThread.events(); |
| 26 for (var i = 0; i < events.length; ++i) { | 26 for (var i = 0; i < events.length; ++i) { |
| 27 if (events[i].category === "disabled-by-default-devtools.screenshot" &&
events[i].name === "CaptureFrame") { | 27 if (events[i].category !== "disabled-by-default-devtools.screenshot") |
| 28 var data = events[i].args.data; | 28 continue; |
| 29 if (!data) | 29 |
| 30 continue; | 30 if (events[i].name === WebInspector.FilmStripModel.TraceEvents.CaptureFr
ame) { |
| 31 this._frames.push(new WebInspector.FilmStripModel.Frame(this, data,
events[i].startTime, this._frames.length)); | 31 var data = events[i].args["data"]; |
| 32 if (data) |
| 33 this._frames.push(WebInspector.FilmStripModel.Frame._fromEvent(t
his, events[i], this._frames.length)); |
| 34 } else if (events[i].name === WebInspector.FilmStripModel.TraceEvents.Sc
reenshot) { |
| 35 this._frames.push(WebInspector.FilmStripModel.Frame._fromSnapshot(th
is, /** @type {!WebInspector.TracingModel.ObjectSnapshot} */ (events[i]), this._
frames.length)); |
| 32 } | 36 } |
| 33 } | 37 } |
| 34 } | 38 } |
| 35 | 39 |
| 40 WebInspector.FilmStripModel.TraceEvents = { |
| 41 CaptureFrame: "CaptureFrame", |
| 42 Screenshot: "Screenshot" |
| 43 } |
| 44 |
| 36 WebInspector.FilmStripModel.prototype = { | 45 WebInspector.FilmStripModel.prototype = { |
| 37 /** | 46 /** |
| 38 * @return {!Array<!WebInspector.FilmStripModel.Frame>} | 47 * @return {!Array<!WebInspector.FilmStripModel.Frame>} |
| 39 */ | 48 */ |
| 40 frames: function() | 49 frames: function() |
| 41 { | 50 { |
| 42 return this._frames; | 51 return this._frames; |
| 43 }, | 52 }, |
| 44 | 53 |
| 45 /** | 54 /** |
| (...skipping 20 matching lines...) Expand all Loading... |
| 66 return timestamp - frame.timestamp; | 75 return timestamp - frame.timestamp; |
| 67 } | 76 } |
| 68 var index = this._frames.lowerBound(timestamp, comparator); | 77 var index = this._frames.lowerBound(timestamp, comparator); |
| 69 return index < this._frames.length ? this._frames[index] : null; | 78 return index < this._frames.length ? this._frames[index] : null; |
| 70 } | 79 } |
| 71 } | 80 } |
| 72 | 81 |
| 73 /** | 82 /** |
| 74 * @constructor | 83 * @constructor |
| 75 * @param {!WebInspector.FilmStripModel} model | 84 * @param {!WebInspector.FilmStripModel} model |
| 76 * @param {string} imageData | |
| 77 * @param {number} timestamp | 85 * @param {number} timestamp |
| 78 * @param {number} index | 86 * @param {number} index |
| 79 */ | 87 */ |
| 80 WebInspector.FilmStripModel.Frame = function(model, imageData, timestamp, index) | 88 WebInspector.FilmStripModel.Frame = function(model, timestamp, index) |
| 81 { | 89 { |
| 82 this._model = model; | 90 this._model = model; |
| 83 this.imageData = imageData; | |
| 84 this.timestamp = timestamp; | 91 this.timestamp = timestamp; |
| 85 this.index = index; | 92 this.index = index; |
| 93 /** @type {?string} */ |
| 94 this._imageData = null; |
| 95 /** @type {?WebInspector.TracingModel.ObjectSnapshot} */ |
| 96 this._snapshot = null; |
| 97 } |
| 98 |
| 99 /** |
| 100 * @param {!WebInspector.FilmStripModel} model |
| 101 * @param {!WebInspector.TracingModel.Event} event |
| 102 * @param {number} index |
| 103 */ |
| 104 WebInspector.FilmStripModel.Frame._fromEvent = function(model, event, index) |
| 105 { |
| 106 var frame = new WebInspector.FilmStripModel.Frame(model, event.startTime, in
dex); |
| 107 frame._imageData = event.args.data; |
| 108 return frame; |
| 109 } |
| 110 |
| 111 /** |
| 112 * @param {!WebInspector.FilmStripModel} model |
| 113 * @param {!WebInspector.TracingModel.ObjectSnapshot} snapshot |
| 114 * @param {number} index |
| 115 */ |
| 116 WebInspector.FilmStripModel.Frame._fromSnapshot = function(model, snapshot, inde
x) |
| 117 { |
| 118 var frame = new WebInspector.FilmStripModel.Frame(model, snapshot.startTime,
index); |
| 119 frame._snapshot = snapshot; |
| 120 return frame; |
| 86 } | 121 } |
| 87 | 122 |
| 88 WebInspector.FilmStripModel.Frame.prototype = { | 123 WebInspector.FilmStripModel.Frame.prototype = { |
| 89 /** | 124 /** |
| 90 * @return {!WebInspector.FilmStripModel} | 125 * @return {!WebInspector.FilmStripModel} |
| 91 */ | 126 */ |
| 92 model: function() | 127 model: function() |
| 93 { | 128 { |
| 94 return this._model; | 129 return this._model; |
| 130 }, |
| 131 |
| 132 /** |
| 133 * @return {!Promise<?string>} |
| 134 */ |
| 135 imageDataPromise: function() |
| 136 { |
| 137 if (this._imageData || !this._snapshot) |
| 138 return Promise.resolve(this._imageData); |
| 139 |
| 140 return /** @type {!Promise<?string>} */ (this._snapshot.objectPromise())
; |
| 95 } | 141 } |
| 96 } | 142 } |
| OLD | NEW |