| Index: third_party/WebKit/Source/devtools/front_end/components/ObjectPropertiesSection.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/components/ObjectPropertiesSection.js b/third_party/WebKit/Source/devtools/front_end/components/ObjectPropertiesSection.js
|
| index c767dd5976fca7a8f3fdd253e32f4fae001bcae5..13124125924eeb437ab55b9cf809c7be0ca7ea1f 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/components/ObjectPropertiesSection.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/components/ObjectPropertiesSection.js
|
| @@ -181,6 +181,7 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| } else {
|
| addElements('function', text, nameAndArguments(text));
|
| }
|
| + valueElement.title = description || '';
|
| return valueElement;
|
|
|
| /**
|
| @@ -219,15 +220,17 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| * @param {boolean} wasThrown
|
| * @param {!Element=} parentElement
|
| * @param {!Components.Linkifier=} linkifier
|
| + * @param {boolean=} hidePreview
|
| * @return {!Element}
|
| */
|
| - static createValueElementWithCustomSupport(value, wasThrown, parentElement, linkifier) {
|
| + static createValueElementWithCustomSupport(value, wasThrown, parentElement, linkifier, hidePreview) {
|
| if (value.customPreview()) {
|
| var result = (new Components.CustomPreviewComponent(value)).element;
|
| result.classList.add('object-properties-section-custom-section');
|
| return result;
|
| }
|
| - return Components.ObjectPropertiesSection.createValueElement(value, wasThrown, parentElement, linkifier);
|
| + return Components.ObjectPropertiesSection.createValueElement(
|
| + value, wasThrown, parentElement, linkifier, hidePreview);
|
| }
|
|
|
| /**
|
| @@ -235,9 +238,10 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| * @param {boolean} wasThrown
|
| * @param {!Element=} parentElement
|
| * @param {!Components.Linkifier=} linkifier
|
| + * @param {boolean=} hidePreview
|
| * @return {!Element}
|
| */
|
| - static createValueElement(value, wasThrown, parentElement, linkifier) {
|
| + static createValueElement(value, wasThrown, parentElement, linkifier, hidePreview) {
|
| var valueElement;
|
| var type = value.type;
|
| var subtype = value.subtype;
|
| @@ -248,24 +252,25 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| if (rawLocation && linkifier)
|
| return linkifier.linkifyRawLocation(rawLocation, '');
|
| valueElement = createUnknownInternalLocationElement();
|
| - valueElement.title = description;
|
| } else if (type === 'string' && typeof description === 'string') {
|
| valueElement = createStringElement();
|
| - valueElement.title = description;
|
| } else if (type === 'function') {
|
| valueElement = Components.ObjectPropertiesSection.valueElementForFunctionDescription(description);
|
| - valueElement.title = description;
|
| } else if (type === 'object' && subtype === 'node' && description) {
|
| valueElement = createNodeElement();
|
| } else if (type === 'number' && description && description.indexOf('e') !== -1) {
|
| valueElement = createNumberWithExponentElement();
|
| - valueElement.title = description;
|
| if (parentElement) // FIXME: do it in the caller.
|
| parentElement.classList.add('hbox');
|
| } else {
|
| valueElement = createElementWithClass('span', 'object-value-' + (subtype || type));
|
| - valueElement.setTextContentTruncatedIfNeeded(description);
|
| - valueElement.title = description;
|
| + valueElement.title = description || '';
|
| + if (Runtime.experiments.isEnabled('objectPreviews') && value.preview && !hidePreview) {
|
| + var previewFormatter = new Components.RemoteObjectPreviewFormatter();
|
| + previewFormatter.appendObjectPreview(valueElement, value.preview);
|
| + } else {
|
| + valueElement.setTextContentTruncatedIfNeeded(description);
|
| + }
|
| }
|
|
|
| if (wasThrown) {
|
| @@ -284,6 +289,7 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| function createUnknownInternalLocationElement() {
|
| var valueElement = createElementWithClass('span');
|
| valueElement.textContent = '<' + Common.UIString('unknown') + '>';
|
| + valueElement.title = description || '';
|
| return valueElement;
|
| }
|
|
|
| @@ -295,6 +301,7 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| valueElement.createChild('span', 'object-value-string-quote').textContent = '"';
|
| valueElement.createTextChild('').setTextContentTruncatedIfNeeded(description.replace(/\n/g, '\u21B5'));
|
| valueElement.createChild('span', 'object-value-string-quote').textContent = '"';
|
| + valueElement.title = description || '';
|
| return valueElement;
|
| }
|
|
|
| @@ -309,7 +316,7 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| event.consume(true);
|
| }, false);
|
| valueElement.addEventListener('mousemove', () => SDK.DOMModel.highlightObjectAsDOMNode(value), false);
|
| - valueElement.addEventListener('mouseleave', SDK.DOMModel.hideDOMNodeHighlight, false);
|
| + valueElement.addEventListener('mouseleave', () => SDK.DOMModel.hideDOMNodeHighlight(), false);
|
| return valueElement;
|
| }
|
|
|
| @@ -322,6 +329,7 @@ Components.ObjectPropertiesSection = class extends UI.TreeOutlineInShadow {
|
| valueElement.createChild('span', 'object-value-scientific-notation-mantissa').textContent = numberParts[0];
|
| valueElement.createChild('span', 'object-value-scientific-notation-exponent').textContent = 'e' + numberParts[1];
|
| valueElement.classList.add('object-value-scientific-notation-number');
|
| + valueElement.title = description || '';
|
| return valueElement;
|
| }
|
| }
|
| @@ -546,10 +554,11 @@ Components.ObjectPropertyTreeElement = class extends UI.TreeElement {
|
| treeElement, properties, internalProperties, skipProto, targetValue || value, linkifier, emptyPlaceholder);
|
| }
|
|
|
| + var generatePreview = Runtime.experiments.isEnabled('objectPreviews');
|
| if (flattenProtoChain)
|
| - value.getAllProperties(false, callback);
|
| + value.getAllProperties(false, generatePreview, callback);
|
| else
|
| - SDK.RemoteObject.loadFromObjectPerProto(value, callback);
|
| + SDK.RemoteObject.loadFromObjectPerProto(value, generatePreview, callback);
|
| }
|
|
|
| /**
|
| @@ -781,8 +790,9 @@ Components.ObjectPropertyTreeElement = class extends UI.TreeElement {
|
| separatorElement.textContent = ': ';
|
|
|
| if (this.property.value) {
|
| + var hidePreview = this.property.name === '__proto__';
|
| this.valueElement = Components.ObjectPropertiesSection.createValueElementWithCustomSupport(
|
| - this.property.value, this.property.wasThrown, this.listItemElement, this._linkifier);
|
| + this.property.value, this.property.wasThrown, this.listItemElement, this._linkifier, hidePreview);
|
| this.valueElement.addEventListener('contextmenu', this._contextMenuFired.bind(this, this.property), false);
|
| } else if (this.property.getter) {
|
| this.valueElement = Components.ObjectPropertyTreeElement.createRemoteObjectAccessorPropertySpan(
|
| @@ -1166,7 +1176,8 @@ Components.ArrayGroupingTreeElement = class extends UI.TreeElement {
|
| function processArrayFragment(arrayFragment, wasThrown) {
|
| if (!arrayFragment || wasThrown)
|
| return;
|
| - arrayFragment.getAllProperties(false, processProperties.bind(this));
|
| + arrayFragment.getAllProperties(
|
| + false, Runtime.experiments.isEnabled('objectPreviews'), processProperties.bind(this));
|
| }
|
|
|
| /** @this {Components.ArrayGroupingTreeElement} */
|
| @@ -1224,7 +1235,7 @@ Components.ArrayGroupingTreeElement = class extends UI.TreeElement {
|
| function processObjectFragment(arrayFragment, wasThrown) {
|
| if (!arrayFragment || wasThrown)
|
| return;
|
| - arrayFragment.getOwnProperties(processProperties.bind(this));
|
| + arrayFragment.getOwnProperties(Runtime.experiments.isEnabled('objectPreviews'), processProperties.bind(this));
|
| }
|
|
|
| /**
|
|
|