Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2220)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/components/JavaScriptAutocomplete.js

Issue 2605693003: DevTools: introduce object previews experiment (Closed)
Patch Set: ac2 Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 Components.JavaScriptAutocomplete = {}; 5 Components.JavaScriptAutocomplete = {};
6 6
7 /** @typedef {{title:(string|undefined), items:Array<string>}} */ 7 /** @typedef {{title:(string|undefined), items:Array<string>}} */
8 Components.JavaScriptAutocomplete.CompletionGroup; 8 Components.JavaScriptAutocomplete.CompletionGroup;
9 9
10 /** 10 /**
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 /** 96 /**
97 * @param {?SDK.RemoteObject} object 97 * @param {?SDK.RemoteObject} object
98 * @return {!Promise<?SDK.RemoteObject>} 98 * @return {!Promise<?SDK.RemoteObject>}
99 */ 99 */
100 function extractTarget(object) { 100 function extractTarget(object) {
101 if (!object) 101 if (!object)
102 return Promise.resolve(/** @type {?SDK.RemoteObject} */ (null)); 102 return Promise.resolve(/** @type {?SDK.RemoteObject} */ (null));
103 if (object.type !== 'object' || object.subtype !== 'proxy') 103 if (object.type !== 'object' || object.subtype !== 'proxy')
104 return Promise.resolve(/** @type {?SDK.RemoteObject} */ (object)); 104 return Promise.resolve(/** @type {?SDK.RemoteObject} */ (object));
105 return object.getOwnPropertiesPromise().then(extractTargetFromProperties). then(extractTarget); 105 return object.getOwnPropertiesPromise(false /* generatePreview */)
106 .then(extractTargetFromProperties)
107 .then(extractTarget);
106 } 108 }
107 109
108 /** 110 /**
109 * @param {!{properties: ?Array<!SDK.RemoteObjectProperty>, internalProperti es: ?Array<!SDK.RemoteObjectProperty>}} properties 111 * @param {!{properties: ?Array<!SDK.RemoteObjectProperty>, internalProperti es: ?Array<!SDK.RemoteObjectProperty>}} properties
110 * @return {?SDK.RemoteObject} 112 * @return {?SDK.RemoteObject}
111 */ 113 */
112 function extractTargetFromProperties(properties) { 114 function extractTargetFromProperties(properties) {
113 var internalProperties = properties.internalProperties || []; 115 var internalProperties = properties.internalProperties || [];
114 var target = internalProperties.find(property => property.name === '[[Targ et]]'); 116 var target = internalProperties.find(property => property.name === '[[Targ et]]');
115 return target ? target.value : null; 117 return target ? target.value : null;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 group.items.push(properties[i].name); 199 group.items.push(properties[i].name);
198 if (--pendingRequests === 0) 200 if (--pendingRequests === 0)
199 callback(result); 201 callback(result);
200 } 202 }
201 203
202 var scopeChain = callFrame.scopeChain(); 204 var scopeChain = callFrame.scopeChain();
203 var pendingRequests = scopeChain.length; 205 var pendingRequests = scopeChain.length;
204 for (var i = 0; i < scopeChain.length; ++i) { 206 for (var i = 0; i < scopeChain.length; ++i) {
205 var scope = scopeChain[i]; 207 var scope = scopeChain[i];
206 var object = scope.object(); 208 var object = scope.object();
207 object.getAllProperties(false, propertiesCollected.bind(null, scope.typeNa me())); 209 object.getAllProperties(
210 false /* accessorPropertiesOnly */, false /* generatePreview */,
211 propertiesCollected.bind(null, scope.typeName()));
208 } 212 }
209 } 213 }
210 214
211 /** 215 /**
212 * @param {?SDK.RemoteObject} result 216 * @param {?SDK.RemoteObject} result
213 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails 217 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails
214 */ 218 */
215 function receivedPropertyNamesFromEval(result, exceptionDetails) { 219 function receivedPropertyNamesFromEval(result, exceptionDetails) {
216 executionContext.target().runtimeAgent().releaseObjectGroup('completion'); 220 executionContext.target().runtimeAgent().releaseObjectGroup('completion');
217 if (result && !exceptionDetails) 221 if (result && !exceptionDetails)
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 var structuredGroup = 330 var structuredGroup =
327 caseSensitivePrefix.concat(caseInsensitivePrefix, caseSensitiveAnywhere, caseInsensitiveAnywhere); 331 caseSensitivePrefix.concat(caseInsensitivePrefix, caseSensitiveAnywhere, caseInsensitiveAnywhere);
328 if (structuredGroup.length && group.title !== lastGroupTitle) { 332 if (structuredGroup.length && group.title !== lastGroupTitle) {
329 structuredGroup[0].subtitle = group.title; 333 structuredGroup[0].subtitle = group.title;
330 lastGroupTitle = group.title; 334 lastGroupTitle = group.title;
331 } 335 }
332 result = result.concat(structuredGroup); 336 result = result.concat(structuredGroup);
333 } 337 }
334 return result; 338 return result;
335 }; 339 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698