1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
/**
* @constructor
* @extends {WebInspector.SDKModel}
* @param {!WebInspector.Target} target
*/
WebInspector.HeapProfilerModel = function(target)
{
WebInspector.SDKModel.call(this, WebInspector.HeapProfilerModel, target);
target.registerHeapProfilerDispatcher(new WebInspector.HeapProfilerDispatcher(this));
this._enabled = false;
this._heapProfilerAgent = target.heapProfilerAgent();
}
WebInspector.HeapProfilerModel.Events = {
HeapStatsUpdate: "HeapStatsUpdate",
LastSeenObjectId: "LastSeenObjectId",
AddHeapSnapshotChunk: "AddHeapSnapshotChunk",
ReportHeapSnapshotProgress: "ReportHeapSnapshotProgress",
ResetProfiles: "ResetProfiles"
}
WebInspector.HeapProfilerModel.prototype = {
enable: function()
{
if (this._enabled)
return;
this._enabled = true;
this._heapProfilerAgent.enable();
},
/**
* @param {!Array.<number>} samples
*/
heapStatsUpdate: function(samples)
{
this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.HeapStatsUpdate, samples);
},
/**
* @param {number} lastSeenObjectId
* @param {number} timestamp
*/
lastSeenObjectId: function(lastSeenObjectId, timestamp)
{
this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.LastSeenObjectId ,{lastSeenObjectId: lastSeenObjectId, timestamp: timestamp});
},
/**
* @param {string} chunk
*/
addHeapSnapshotChunk: function(chunk)
{
this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.AddHeapSnapshotChunk, chunk);
},
/**
* @param {number} done
* @param {number} total
* @param {boolean=} finished
*/
reportHeapSnapshotProgress: function(done, total, finished)
{
this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.ReportHeapSnapshotProgress, {done: done, total: total, finished: finished});
},
resetProfiles: function()
{
this.dispatchEventToListeners(WebInspector.HeapProfilerModel.Events.ResetProfiles);
},
__proto__: WebInspector.SDKModel.prototype
}
/**
* @constructor
* @implements {HeapProfilerAgent.Dispatcher}
*/
WebInspector.HeapProfilerDispatcher = function(model)
{
this._heapProfilerModel = model;
}
WebInspector.HeapProfilerDispatcher.prototype = {
/**
* @override
* @param {!Array.<number>} samples
*/
heapStatsUpdate: function(samples)
{
this._heapProfilerModel.heapStatsUpdate(samples);
},
/**
* @override
* @param {number} lastSeenObjectId
* @param {number} timestamp
*/
lastSeenObjectId: function(lastSeenObjectId, timestamp)
{
this._heapProfilerModel.lastSeenObjectId(lastSeenObjectId, timestamp);
},
/**
* @override
* @param {string} chunk
*/
addHeapSnapshotChunk: function(chunk)
{
this._heapProfilerModel.addHeapSnapshotChunk(chunk);
},
/**
* @override
* @param {number} done
* @param {number} total
* @param {boolean=} finished
*/
reportHeapSnapshotProgress: function(done, total, finished)
{
this._heapProfilerModel.reportHeapSnapshotProgress(done, total, finished);
},
/**
* @override
*/
resetProfiles: function()
{
this._heapProfilerModel.resetProfiles();
}
}
|