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

Unified Diff: third_party/WebKit/Source/devtools/front_end/components/RemoteObjectPreviewFormatter.js

Issue 2605693003: DevTools: introduce object previews experiment (Closed)
Patch Set: tests Created 3 years, 12 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/components/RemoteObjectPreviewFormatter.js
diff --git a/third_party/WebKit/Source/devtools/front_end/components/RemoteObjectPreviewFormatter.js b/third_party/WebKit/Source/devtools/front_end/components/RemoteObjectPreviewFormatter.js
index 30cb1a700ee91cca76392ab33f5162e37f90aa55..e195764d352e4130686f730bfc3efcb3b7c0e9a6 100644
--- a/third_party/WebKit/Source/devtools/front_end/components/RemoteObjectPreviewFormatter.js
+++ b/third_party/WebKit/Source/devtools/front_end/components/RemoteObjectPreviewFormatter.js
@@ -24,24 +24,40 @@ Components.RemoteObjectPreviewFormatter = class {
*/
appendObjectPreview(parentElement, preview) {
var description = preview.description;
- if (preview.type !== 'object' || preview.subtype === 'null') {
+ if (preview.type !== 'object' || preview.subtype === 'null' || preview.subtype === 'regexp' ||
dgozman 2017/01/10 22:26:09 Why don't we land changes in this file separately?
luoe 2017/01/13 01:11:45 The logic in lines 32 to 47 belong only to the exp
+ preview.subtype === 'error' || preview.subtype === 'internal#entry') {
parentElement.appendChild(this.renderPropertyPreview(preview.type, preview.subtype, description));
return;
}
- if (description && preview.subtype !== 'array')
- parentElement.createTextChildren(description, ' ');
+ if (description) {
+ if (Runtime.experiments.isEnabled('objectPreviews')) {
+ var text = '';
+ if (preview.subtype === 'typedarray' || preview.subtype === 'map' || preview.subtype === 'set')
+ text = description.replace(/\[([0-9]+)\]|\(([0-9]+)\)/, '');
+ else if (preview.subtype !== 'array')
+ text = description;
+ var size = SDK.RemoteObject.arrayLength(preview) || SDK.RemoteObject.numEntries(preview);
+ if (size > 1)
+ text += '(' + size + ')';
+ if (text.length > 0)
+ parentElement.createChild('span', 'object-description').textContent = text + ' ';
+ } else if (preview.subtype !== 'array') {
+ parentElement.createTextChildren(description, ' ');
+ }
+ }
var isArray = preview.subtype === 'array' || preview.subtype === 'typedarray';
- parentElement.createTextChild(isArray ? '[' : '{');
+ var previewElement = parentElement.createChild('span', 'object-preview');
+ previewElement.createTextChild(isArray ? '[' : '{');
if (preview.entries)
- this._appendEntriesPreview(parentElement, preview);
+ this._appendEntriesPreview(previewElement, preview);
else if (isArray)
- this._appendArrayPropertiesPreview(parentElement, preview);
+ this._appendArrayPropertiesPreview(previewElement, preview);
else
- this._appendObjectPropertiesPreview(parentElement, preview);
+ this._appendObjectPropertiesPreview(previewElement, preview);
if (preview.overflow)
- parentElement.createChild('span').textContent = '\u2026';
- parentElement.createTextChild(isArray ? ']' : '}');
+ previewElement.createChild('span').textContent = '\u2026';
+ previewElement.createTextChild(isArray ? ']' : '}');
}
/**
@@ -228,7 +244,7 @@ Components.RemoteObjectPreviewFormatter = class {
return span;
}
- span.textContent = description;
+ span.setTextContentTruncatedIfNeeded(description);
return span;
}
};

Powered by Google App Engine
This is Rietveld 408576698