Index: third_party/WebKit/Source/devtools/front_end/sdk/RemoteObject.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/RemoteObject.js b/third_party/WebKit/Source/devtools/front_end/sdk/RemoteObject.js |
index 7e4001ef80d2b56d0a2c2ea2df9f9cc671065bb3..6dbd64494b56032efc62ddc4355bcc02224a8b4e 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/sdk/RemoteObject.js |
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/RemoteObject.js |
@@ -32,9 +32,6 @@ |
*/ |
SDK.CallFunctionResult; |
-/** |
- * @unrestricted |
- */ |
SDK.RemoteObject = class { |
/** |
* This may not be an interface due to "instanceof SDK.RemoteObject" checks in the code. |
@@ -127,13 +124,11 @@ SDK.RemoteObject = class { |
if (typeof object.unserializableValue !== 'undefined') |
return {unserializableValue: object.unserializableValue}; |
- if (typeof object._unserializableValue !== 'undefined') |
+ if (object instanceof SDK.RemoteObjectImpl && typeof object._unserializableValue !== 'undefined') |
caseq
2017/03/17 18:30:44
is this a related change?
dgozman
2017/03/17 21:43:46
Yeah, closure started to complain.
|
return {unserializableValue: object._unserializableValue}; |
if (typeof object.objectId !== 'undefined') |
return {objectId: object.objectId}; |
- if (typeof object._objectId !== 'undefined') |
- return {objectId: object._objectId}; |
return {value: object.value}; |
} |
@@ -210,6 +205,11 @@ SDK.RemoteObject = class { |
return null; |
} |
+ /** @return {!Protocol.Runtime.RemoteObjectId|undefined} */ |
+ get objectId() { |
caseq
2017/03/17 18:30:44
ditto. perhaps extract this?
|
+ return 'Not implemented'; |
+ } |
+ |
/** @return {string} */ |
get type() { |
throw 'Not implemented'; |
@@ -220,6 +220,11 @@ SDK.RemoteObject = class { |
throw 'Not implemented'; |
} |
+ /** @return {*} */ |
+ get value() { |
+ throw 'Not implemented'; |
+ } |
+ |
/** @return {string|undefined} */ |
get description() { |
throw 'Not implemented'; |
@@ -231,6 +236,13 @@ SDK.RemoteObject = class { |
} |
/** |
+ * @return {!Protocol.Runtime.ObjectPreview|undefined} |
+ */ |
+ get preview() { |
+ return undefined; |
+ } |
+ |
+ /** |
* @return {number} |
*/ |
arrayLength() { |
@@ -306,6 +318,14 @@ SDK.RemoteObject = class { |
} |
/** |
+ * @param {!Array.<string>} propertyPath |
+ * @param {function(?SDK.RemoteObject, boolean=)} callback |
+ */ |
+ getProperty(propertyPath, callback) { |
+ throw 'Not implemented'; |
+ } |
+ |
+ /** |
* @return {!Promise<?Array<!SDK.EventListener>>} |
*/ |
eventListeners() { |
@@ -391,21 +411,24 @@ SDK.RemoteObject = class { |
} |
} |
- /** |
- * @return {!SDK.Target} |
- */ |
- target() { |
- throw new Error('Target-less object'); |
+ release() { |
} |
/** |
- * @return {?SDK.DebuggerModel} |
+ * @return {!SDK.DebuggerModel} |
*/ |
debuggerModel() { |
throw new Error('DebuggerModel-less object'); |
} |
/** |
+ * @return {!SDK.RuntimeModel} |
+ */ |
+ runtimeModel() { |
+ throw new Error('RuntimeModel-less object'); |
+ } |
+ |
+ /** |
* @return {boolean} |
*/ |
isNode() { |
@@ -414,12 +437,9 @@ SDK.RemoteObject = class { |
}; |
-/** |
- * @unrestricted |
- */ |
SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
/** |
- * @param {!SDK.Target} target |
+ * @param {!SDK.RuntimeModel} runtimeModel |
* @param {string|undefined} objectId |
* @param {string} type |
* @param {string|undefined} subtype |
@@ -429,12 +449,11 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
* @param {!Protocol.Runtime.ObjectPreview=} preview |
* @param {!Protocol.Runtime.CustomPreview=} customPreview |
*/ |
- constructor(target, objectId, type, subtype, value, unserializableValue, description, preview, customPreview) { |
+ constructor(runtimeModel, objectId, type, subtype, value, unserializableValue, description, preview, customPreview) { |
super(); |
- this._target = target; |
- this._runtimeAgent = target.runtimeAgent(); |
- this._debuggerModel = SDK.DebuggerModel.fromTarget(target); |
+ this._runtimeModel = runtimeModel; |
+ this._runtimeAgent = runtimeModel.target().runtimeAgent(); |
this._type = type; |
this._subtype = subtype; |
@@ -455,12 +474,12 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
unserializableValue === Protocol.Runtime.UnserializableValue.NegativeInfinity || |
unserializableValue === Protocol.Runtime.UnserializableValue.Negative0 || |
unserializableValue === Protocol.Runtime.UnserializableValue.NaN) |
- this.value = Number(unserializableValue); |
+ this._value = Number(unserializableValue); |
else |
- this.value = unserializableValue; |
+ this._value = unserializableValue; |
} else { |
- this.value = value; |
+ this._value = value; |
} |
} |
this._customPreview = customPreview || null; |
@@ -474,7 +493,10 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
return this._customPreview; |
} |
- /** @return {!Protocol.Runtime.RemoteObjectId} */ |
+ /** |
+ * @override |
+ * @return {!Protocol.Runtime.RemoteObjectId|undefined} |
+ */ |
get objectId() { |
return this._objectId; |
} |
@@ -497,6 +519,14 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
/** |
* @override |
+ * @return {*} |
+ */ |
+ get value() { |
+ return this._value; |
+ } |
+ |
+ /** |
+ * @override |
* @return {string|undefined} |
*/ |
get description() { |
@@ -512,6 +542,7 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
} |
/** |
+ * @override |
* @return {!Protocol.Runtime.ObjectPreview|undefined} |
*/ |
get preview() { |
@@ -549,7 +580,7 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
* @this {SDK.RemoteObjectImpl} |
*/ |
function eventListeners(fulfill, reject) { |
- if (!this.target().hasDOMCapability()) { |
+ if (!this._runtimeModel.target().hasDOMCapability()) { |
// TODO(kozyatinskiy): figure out how this should work for |window| when there is no DOMDebugger. |
fulfill([]); |
return; |
@@ -560,7 +591,8 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
return; |
} |
- this.target().domdebuggerAgent().getEventListeners(this._objectId, undefined, undefined, mycallback.bind(this)); |
+ this._runtimeModel.target().domdebuggerAgent().getEventListeners( |
+ this._objectId, undefined, undefined, mycallback.bind(this)); |
/** |
* @this {SDK.RemoteObjectImpl} |
@@ -581,10 +613,11 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
*/ |
function createEventListener(payload) { |
return new SDK.EventListener( |
- this._target, this, payload.type, payload.useCapture, payload.passive, payload.once, |
- payload.handler ? this.target().runtimeModel.createRemoteObject(payload.handler) : null, |
- payload.originalHandler ? this.target().runtimeModel.createRemoteObject(payload.originalHandler) : null, |
- /** @type {!SDK.DebuggerModel.Location} */ (this._debuggerModel.createRawLocationByScriptId( |
+ this._runtimeModel, this, payload.type, payload.useCapture, payload.passive, payload.once, |
+ payload.handler ? this._runtimeModel.createRemoteObject(payload.handler) : null, |
+ payload.originalHandler ? this._runtimeModel.createRemoteObject(payload.originalHandler) : null, |
+ /** @type {!SDK.DebuggerModel.Location} */ |
+ (this.debuggerModel().createRawLocationByScriptId( |
payload.scriptId, payload.lineNumber, payload.columnNumber)), |
null); |
} |
@@ -592,6 +625,7 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
} |
/** |
+ * @override |
* @param {!Array.<string>} propertyPath |
* @param {function(?SDK.RemoteObject, boolean=)} callback |
*/ |
@@ -638,24 +672,24 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
return; |
} |
if (exceptionDetails) { |
- this.target().runtimeModel.exceptionThrown(Date.now(), exceptionDetails); |
+ this._runtimeModel.exceptionThrown(Date.now(), exceptionDetails); |
callback(null, null); |
return; |
} |
var result = []; |
for (var i = 0; properties && i < properties.length; ++i) { |
var property = properties[i]; |
- var propertyValue = property.value ? this._target.runtimeModel.createRemoteObject(property.value) : null; |
- var propertySymbol = property.symbol ? this._target.runtimeModel.createRemoteObject(property.symbol) : null; |
+ var propertyValue = property.value ? this._runtimeModel.createRemoteObject(property.value) : null; |
+ var propertySymbol = property.symbol ? this._runtimeModel.createRemoteObject(property.symbol) : null; |
var remoteProperty = new SDK.RemoteObjectProperty( |
property.name, propertyValue, !!property.enumerable, !!property.writable, !!property.isOwn, |
!!property.wasThrown, propertySymbol); |
if (typeof property.value === 'undefined') { |
if (property.get && property.get.type !== 'undefined') |
- remoteProperty.getter = this._target.runtimeModel.createRemoteObject(property.get); |
+ remoteProperty.getter = this._runtimeModel.createRemoteObject(property.get); |
if (property.set && property.set.type !== 'undefined') |
- remoteProperty.setter = this._target.runtimeModel.createRemoteObject(property.set); |
+ remoteProperty.setter = this._runtimeModel.createRemoteObject(property.set); |
} |
result.push(remoteProperty); |
@@ -667,7 +701,7 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
var property = internalProperties[i]; |
if (!property.value) |
continue; |
- var propertyValue = this._target.runtimeModel.createRemoteObject(property.value); |
+ var propertyValue = this._runtimeModel.createRemoteObject(property.value); |
internalPropertiesResult.push(new SDK.RemoteObjectProperty(property.name, propertyValue, true, false)); |
} |
} |
@@ -695,7 +729,7 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
* @param {?Protocol.Error} error |
* @param {!Protocol.Runtime.RemoteObject} result |
* @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails |
- * @this {SDK.RemoteObject} |
+ * @this {SDK.RemoteObjectImpl} |
*/ |
function evaluatedCallback(error, result, exceptionDetails) { |
if (error || !!exceptionDetails) { |
@@ -796,7 +830,7 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
if (error) |
callback(null, false); |
else |
- callback(this.target().runtimeModel.createRemoteObject(result), !!exceptionDetails); |
+ callback(this._runtimeModel.createRemoteObject(result), !!exceptionDetails); |
} |
this._runtimeAgent.callFunctionOn( |
@@ -824,6 +858,9 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
this._objectId, functionDeclaration.toString(), args, true, true, false, undefined, undefined, mycallback); |
} |
+ /** |
+ * @override |
+ */ |
release() { |
if (!this._objectId) |
return; |
@@ -840,18 +877,18 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
/** |
* @override |
- * @return {!SDK.Target} |
+ * @return {!SDK.DebuggerModel} |
*/ |
- target() { |
- return this._target; |
+ debuggerModel() { |
+ return this._runtimeModel.debuggerModel(); |
} |
/** |
* @override |
- * @return {?SDK.DebuggerModel} |
+ * @return {!SDK.RuntimeModel} |
*/ |
- debuggerModel() { |
- return this._debuggerModel; |
+ runtimeModel() { |
+ return this._runtimeModel; |
} |
/** |
@@ -864,12 +901,9 @@ SDK.RemoteObjectImpl = class extends SDK.RemoteObject { |
}; |
-/** |
- * @unrestricted |
- */ |
SDK.ScopeRemoteObject = class extends SDK.RemoteObjectImpl { |
/** |
- * @param {!SDK.Target} target |
+ * @param {!SDK.RuntimeModel} runtimeModel |
* @param {string|undefined} objectId |
* @param {!SDK.ScopeRef} scopeRef |
* @param {string} type |
@@ -879,8 +913,8 @@ SDK.ScopeRemoteObject = class extends SDK.RemoteObjectImpl { |
* @param {string=} description |
* @param {!Protocol.Runtime.ObjectPreview=} preview |
*/ |
- constructor(target, objectId, scopeRef, type, subtype, value, unserializableValue, description, preview) { |
- super(target, objectId, type, subtype, value, unserializableValue, description, preview); |
+ constructor(runtimeModel, objectId, scopeRef, type, subtype, value, unserializableValue, description, preview) { |
+ super(runtimeModel, objectId, type, subtype, value, unserializableValue, description, preview); |
this._scopeRef = scopeRef; |
this._savedScopeProperties = undefined; |
} |
@@ -936,7 +970,7 @@ SDK.ScopeRemoteObject = class extends SDK.RemoteObjectImpl { |
*/ |
doSetObjectPropertyValue(result, argumentName, callback) { |
var name = /** @type {string} */ (argumentName.value); |
- this._debuggerModel.setVariableValue( |
+ this.debuggerModel().setVariableValue( |
this._scopeRef.number, name, SDK.RemoteObject.toCallArgument(result), this._scopeRef.callFrameId, |
setVariableValueCallback.bind(this)); |
@@ -952,7 +986,7 @@ SDK.ScopeRemoteObject = class extends SDK.RemoteObjectImpl { |
if (this._savedScopeProperties) { |
for (var i = 0; i < this._savedScopeProperties.length; i++) { |
if (this._savedScopeProperties[i].name === name) |
- this._savedScopeProperties[i].value = this._target.runtimeModel.createRemoteObject(result); |
+ this._savedScopeProperties[i].value = this._runtimeModel.createRemoteObject(result); |
} |
} |
callback(); |
@@ -960,9 +994,6 @@ SDK.ScopeRemoteObject = class extends SDK.RemoteObjectImpl { |
} |
}; |
-/** |
- * @unrestricted |
- */ |
SDK.ScopeRef = class { |
/** |
* @param {number} number |
@@ -1015,9 +1046,6 @@ SDK.RemoteObjectProperty = class { |
// for traversing prototypes, extracting class names via constructor, handling properties |
// or functions. |
-/** |
- * @unrestricted |
- */ |
SDK.LocalJSONObject = class extends SDK.RemoteObject { |
/** |
* @param {*} value |
@@ -1025,6 +1053,26 @@ SDK.LocalJSONObject = class extends SDK.RemoteObject { |
constructor(value) { |
super(); |
this._value = value; |
+ /** @type {string} */ |
+ this._cachedDescription; |
+ /** @type {!Array<!SDK.RemoteObjectProperty>} */ |
+ this._cachedChildren; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {!Protocol.Runtime.RemoteObjectId|undefined} |
+ * */ |
+ get objectId() { |
+ return undefined; |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {*} |
+ */ |
+ get value() { |
+ return this._value; |
} |
/** |
@@ -1260,9 +1308,6 @@ SDK.LocalJSONObject = class extends SDK.RemoteObject { |
} |
}; |
-/** |
- * @unrestricted |
- */ |
SDK.RemoteArray = class { |
/** |
* @param {!SDK.RemoteObject} object |
@@ -1372,9 +1417,6 @@ SDK.RemoteArray = class { |
}; |
-/** |
- * @unrestricted |
- */ |
SDK.RemoteFunction = class { |
/** |
* @param {!SDK.RemoteObject} object |