this._previousCallbacks = [];
this._worker = new Worker("HeapSnapshotWorker.js");
this._worker.onmessage = this._messageReceived.bind(this);
- if (WebInspector.HeapSnapshotView.allocationProfilerEnabled)
- this._postMessage({disposition: "enableAllocationProfiler"});
}
WebInspector.HeapSnapshotWorkerProxy.prototype = {
/**
- * @param {string} snapshotConstructorName
- * @param {function(new:T, ...[?])} proxyConstructor
+ * @param {number} profileUid
* @param {function(!WebInspector.HeapSnapshotProxy)} snapshotReceivedCallback
* @return {!WebInspector.HeapSnapshotLoaderProxy}
- * @template T
*/
- createLoader: function(snapshotConstructorName, proxyConstructor, snapshotReceivedCallback)
+ createLoader: function(profileUid, snapshotReceivedCallback)
{
var objectId = this._nextObjectId++;
- var proxy = new WebInspector.HeapSnapshotLoaderProxy(this, objectId, snapshotConstructorName, proxyConstructor, snapshotReceivedCallback);
+ var proxy = new WebInspector.HeapSnapshotLoaderProxy(this, objectId, profileUid, snapshotReceivedCallback);
this._postMessage({callId: this._nextCallId++, disposition: "create", objectId: objectId, methodName: "WebInspector.HeapSnapshotLoader"});
return proxy;
},
/**
* @constructor
+ * @param {number} objectId
*/
WebInspector.HeapSnapshotProxyObject = function(worker, objectId)
{
/**
* @param {?function(...[?])} callback
* @param {string} methodName
- * @param {function (new:WebInspector.HeapSnapshotProviderProxy, ...[?])} proxyConstructor
+ * @param {function (new:T, ...[?])} proxyConstructor
* @param {...*} var_args
* @return {?WebInspector.HeapSnapshotProviderProxy}
* @template T
* @constructor
* @extends {WebInspector.HeapSnapshotProxyObject}
* @implements {WebInspector.OutputStream}
- * @param {string} snapshotConstructorName
- * @param {function(new:T, ...[?])} proxyConstructor
+ * @param {number} objectId
+ * @param {number} profileUid
* @param {function(!WebInspector.HeapSnapshotProxy)} snapshotReceivedCallback
- * @template T
*/
-WebInspector.HeapSnapshotLoaderProxy = function(worker, objectId, snapshotConstructorName, proxyConstructor, snapshotReceivedCallback)
+WebInspector.HeapSnapshotLoaderProxy = function(worker, objectId, profileUid, snapshotReceivedCallback)
{
WebInspector.HeapSnapshotProxyObject.call(this, worker, objectId);
- this._snapshotConstructorName = snapshotConstructorName;
- this._proxyConstructor = proxyConstructor;
+ this._profileUid = profileUid;
this._snapshotReceivedCallback = snapshotReceivedCallback;
}
{
if (callback)
callback();
- this.callFactoryMethod(updateStaticData.bind(this), "buildSnapshot", this._proxyConstructor, this._snapshotConstructorName);
+ this.callFactoryMethod(updateStaticData.bind(this), "buildSnapshot", WebInspector.HeapSnapshotProxy);
}
/**
+ * @param {!WebInspector.HeapSnapshotProxy} snapshotProxy
* @this {WebInspector.HeapSnapshotLoaderProxy}
*/
function updateStaticData(snapshotProxy)
{
this.dispose();
+ snapshotProxy.setProfileUid(this._profileUid);
snapshotProxy.updateStaticData(this._snapshotReceivedCallback.bind(this));
}
* @constructor
* @extends {WebInspector.HeapSnapshotProxyObject}
* @param {!WebInspector.HeapSnapshotWorkerProxy} worker
- * @param {string} objectId
+ * @param {number} objectId
*/
WebInspector.HeapSnapshotProxy = function(worker, objectId)
{
get uid()
{
- return this._staticData.uid;
+ return this._profileUid;
+ },
+
+ setProfileUid: function(profileUid)
+ {
+ this._profileUid = profileUid;
},
/**
/**
* @constructor
* @extends {WebInspector.HeapSnapshotProxyObject}
+ * @param {!WebInspector.HeapSnapshotWorkerProxy} worker
+ * @param {number} objectId
*/
WebInspector.HeapSnapshotProviderProxy = function(worker, objectId)
{