OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007 Apple Inc. All rights reserved. |
3 * Copyright (C) 2013 Google Inc. All rights reserved. | 3 * Copyright (C) 2013 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * | 8 * |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
172 return a > b ? a : b; | 172 return a > b ? a : b; |
173 } | 173 } |
174 | 174 |
175 /** | 175 /** |
176 * @constructor | 176 * @constructor |
177 */ | 177 */ |
178 var InjectedScript = function() | 178 var InjectedScript = function() |
179 { | 179 { |
180 /** @type {number} */ | 180 /** @type {number} */ |
181 this._lastBoundObjectId = 1; | 181 this._lastBoundObjectId = 1; |
182 /** @type {!Object.<number, Object>} */ | 182 /** @type {!Object.<number, Object>} */ |
aandrey
2014/06/04 15:39:08
@type {!Object.<number, (!Object|symbol)>}
Alexandra Mikhaylova
2014/06/05 13:27:43
Done.
| |
183 this._idToWrappedObject = { __proto__: null }; | 183 this._idToWrappedObject = { __proto__: null }; |
184 /** @type {!Object.<number, string>} */ | 184 /** @type {!Object.<number, string>} */ |
185 this._idToObjectGroupName = { __proto__: null }; | 185 this._idToObjectGroupName = { __proto__: null }; |
186 /** @type {!Object.<string, Array.<number>>} */ | 186 /** @type {!Object.<string, Array.<number>>} */ |
187 this._objectGroups = { __proto__: null }; | 187 this._objectGroups = { __proto__: null }; |
188 /** @type {!Object.<string, Object>} */ | 188 /** @type {!Object.<string, Object>} */ |
189 this._modules = { __proto__: null }; | 189 this._modules = { __proto__: null }; |
190 } | 190 } |
191 | 191 |
192 /** | 192 /** |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
305 try { | 305 try { |
306 var description = injectedScript._describe(e); | 306 var description = injectedScript._describe(e); |
307 } catch (ex) { | 307 } catch (ex) { |
308 var description = "<failed to convert exception to string>"; | 308 var description = "<failed to convert exception to string>"; |
309 } | 309 } |
310 return new InjectedScript.RemoteObject(description); | 310 return new InjectedScript.RemoteObject(description); |
311 } | 311 } |
312 }, | 312 }, |
313 | 313 |
314 /** | 314 /** |
315 * @param {Object} object | 315 * @param {Object} object |
aandrey
2014/06/04 15:39:08
{!Object|symbol}
Alexandra Mikhaylova
2014/06/05 13:27:43
Done.
| |
316 * @param {string=} objectGroupName | 316 * @param {string=} objectGroupName |
317 * @return {string} | 317 * @return {string} |
318 */ | 318 */ |
319 _bind: function(object, objectGroupName) | 319 _bind: function(object, objectGroupName) |
320 { | 320 { |
321 var id = this._lastBoundObjectId++; | 321 var id = this._lastBoundObjectId++; |
322 this._idToWrappedObject[id] = object; | 322 this._idToWrappedObject[id] = object; |
323 var objectId = "{\"injectedScriptId\":" + injectedScriptId + ",\"id\":" + id + "}"; | 323 var objectId = "{\"injectedScriptId\":" + injectedScriptId + ",\"id\":" + id + "}"; |
324 if (objectGroupName) { | 324 if (objectGroupName) { |
325 var group = this._objectGroups[objectGroupName]; | 325 var group = this._objectGroups[objectGroupName]; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
376 * @param {boolean} ownProperties | 376 * @param {boolean} ownProperties |
377 * @param {boolean} accessorPropertiesOnly | 377 * @param {boolean} accessorPropertiesOnly |
378 * @return {Array.<RuntimeAgent.PropertyDescriptor>|boolean} | 378 * @return {Array.<RuntimeAgent.PropertyDescriptor>|boolean} |
379 */ | 379 */ |
380 getProperties: function(objectId, ownProperties, accessorPropertiesOnly) | 380 getProperties: function(objectId, ownProperties, accessorPropertiesOnly) |
381 { | 381 { |
382 var parsedObjectId = this._parseObjectId(objectId); | 382 var parsedObjectId = this._parseObjectId(objectId); |
383 var object = this._objectForId(parsedObjectId); | 383 var object = this._objectForId(parsedObjectId); |
384 var objectGroupName = this._idToObjectGroupName[parsedObjectId.id]; | 384 var objectGroupName = this._idToObjectGroupName[parsedObjectId.id]; |
385 | 385 |
386 if (!this._isDefined(object)) | 386 if (!this._isDefined(object) || typeof object !== "object") |
aandrey
2014/06/04 15:39:08
I think "console.dir(function(){})" will no longer
Alexandra Mikhaylova
2014/06/05 13:27:43
Done.
| |
387 return false; | 387 return false; |
388 var descriptors = this._propertyDescriptors(object, ownProperties, acces sorPropertiesOnly); | 388 var descriptors = this._propertyDescriptors(object, ownProperties, acces sorPropertiesOnly); |
389 | 389 |
390 // Go over properties, wrap object values. | 390 // Go over properties, wrap object values. |
391 for (var i = 0; i < descriptors.length; ++i) { | 391 for (var i = 0; i < descriptors.length; ++i) { |
392 var descriptor = descriptors[i]; | 392 var descriptor = descriptors[i]; |
393 if ("get" in descriptor) | 393 if ("get" in descriptor) |
394 descriptor.get = this._wrapObject(descriptor.get, objectGroupNam e); | 394 descriptor.get = this._wrapObject(descriptor.get, objectGroupNam e); |
395 if ("set" in descriptor) | 395 if ("set" in descriptor) |
396 descriptor.set = this._wrapObject(descriptor.set, objectGroupNam e); | 396 descriptor.set = this._wrapObject(descriptor.set, objectGroupNam e); |
(...skipping 11 matching lines...) Expand all Loading... | |
408 | 408 |
409 /** | 409 /** |
410 * @param {string} objectId | 410 * @param {string} objectId |
411 * @return {Array.<Object>|boolean} | 411 * @return {Array.<Object>|boolean} |
412 */ | 412 */ |
413 getInternalProperties: function(objectId, ownProperties) | 413 getInternalProperties: function(objectId, ownProperties) |
414 { | 414 { |
415 var parsedObjectId = this._parseObjectId(objectId); | 415 var parsedObjectId = this._parseObjectId(objectId); |
416 var object = this._objectForId(parsedObjectId); | 416 var object = this._objectForId(parsedObjectId); |
417 var objectGroupName = this._idToObjectGroupName[parsedObjectId.id]; | 417 var objectGroupName = this._idToObjectGroupName[parsedObjectId.id]; |
418 if (!this._isDefined(object)) | 418 if (!this._isDefined(object) || typeof object !== "object") |
419 return false; | 419 return false; |
420 var descriptors = []; | 420 var descriptors = []; |
421 var internalProperties = InjectedScriptHost.getInternalProperties(object ); | 421 var internalProperties = InjectedScriptHost.getInternalProperties(object ); |
422 if (internalProperties) { | 422 if (internalProperties) { |
423 for (var i = 0; i < internalProperties.length; i++) { | 423 for (var i = 0; i < internalProperties.length; i++) { |
424 var property = internalProperties[i]; | 424 var property = internalProperties[i]; |
425 var descriptor = { | 425 var descriptor = { |
426 name: property.name, | 426 name: property.name, |
427 value: this._wrapObject(property.value, objectGroupName), | 427 value: this._wrapObject(property.value, objectGroupName), |
428 __proto__: null | 428 __proto__: null |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
867 topCallFrame = asyncCallStacks[asyncOrdinal - 1]; | 867 topCallFrame = asyncCallStacks[asyncOrdinal - 1]; |
868 var ordinal = parsedCallFrameId["ordinal"]; | 868 var ordinal = parsedCallFrameId["ordinal"]; |
869 var callFrame = topCallFrame; | 869 var callFrame = topCallFrame; |
870 while (--ordinal >= 0 && callFrame) | 870 while (--ordinal >= 0 && callFrame) |
871 callFrame = callFrame.caller; | 871 callFrame = callFrame.caller; |
872 return callFrame; | 872 return callFrame; |
873 }, | 873 }, |
874 | 874 |
875 /** | 875 /** |
876 * @param {Object} objectId | 876 * @param {Object} objectId |
877 * @return {Object} | 877 * @return {Object|symbol} |
878 */ | 878 */ |
879 _objectForId: function(objectId) | 879 _objectForId: function(objectId) |
880 { | 880 { |
881 return this._idToWrappedObject[objectId.id]; | 881 return this._idToWrappedObject[objectId.id]; |
882 }, | 882 }, |
883 | 883 |
884 /** | 884 /** |
885 * @param {string} objectId | 885 * @param {string} objectId |
886 * @return {Object} | 886 * @return {Object|symbol} |
887 */ | 887 */ |
888 findObjectById: function(objectId) | 888 findObjectById: function(objectId) |
889 { | 889 { |
890 var parsedObjectId = this._parseObjectId(objectId); | 890 var parsedObjectId = this._parseObjectId(objectId); |
891 return this._objectForId(parsedObjectId); | 891 return this._objectForId(parsedObjectId); |
892 }, | 892 }, |
893 | 893 |
894 /** | 894 /** |
895 * @param {string} objectId | 895 * @param {string} objectId |
896 * @return {Node} | 896 * @return {Node} |
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1642 */ | 1642 */ |
1643 _logEvent: function(event) | 1643 _logEvent: function(event) |
1644 { | 1644 { |
1645 inspectedWindow.console.log(event.type, event); | 1645 inspectedWindow.console.log(event.type, event); |
1646 } | 1646 } |
1647 } | 1647 } |
1648 | 1648 |
1649 injectedScript._commandLineAPIImpl = new CommandLineAPIImpl(); | 1649 injectedScript._commandLineAPIImpl = new CommandLineAPIImpl(); |
1650 return injectedScript; | 1650 return injectedScript; |
1651 }) | 1651 }) |
OLD | NEW |