Index: third_party/WebKit/Source/devtools/front_end/elements/PropertiesWidget.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/PropertiesWidget.js b/third_party/WebKit/Source/devtools/front_end/elements/PropertiesWidget.js |
index 052982fc650d1ab93772fb3a4271007d326eeb74..dc0450f80ed87e9c6d24e65247dd3f3224bba4b4 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/elements/PropertiesWidget.js |
+++ b/third_party/WebKit/Source/devtools/front_end/elements/PropertiesWidget.js |
@@ -26,161 +26,153 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
/** |
- * @constructor |
- * @extends {WebInspector.ThrottledWidget} |
+ * @unrestricted |
*/ |
-WebInspector.PropertiesWidget = function() |
-{ |
- WebInspector.ThrottledWidget.call(this); |
- |
- WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrModified, this._onNodeChange, this); |
- WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrRemoved, this._onNodeChange, this); |
- WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspector.DOMModel.Events.CharacterDataModified, this._onNodeChange, this); |
- WebInspector.targetManager.addModelListener(WebInspector.DOMModel, WebInspector.DOMModel.Events.ChildNodeCountUpdated, this._onNodeChange, this); |
+WebInspector.PropertiesWidget = class extends WebInspector.ThrottledWidget { |
+ constructor() { |
+ super(); |
+ |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrModified, this._onNodeChange, this); |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.DOMModel, WebInspector.DOMModel.Events.AttrRemoved, this._onNodeChange, this); |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.DOMModel, WebInspector.DOMModel.Events.CharacterDataModified, this._onNodeChange, this); |
+ WebInspector.targetManager.addModelListener( |
+ WebInspector.DOMModel, WebInspector.DOMModel.Events.ChildNodeCountUpdated, this._onNodeChange, this); |
WebInspector.context.addFlavorChangeListener(WebInspector.DOMNode, this._setNode, this); |
this._node = WebInspector.context.flavor(WebInspector.DOMNode); |
this.update(); |
-}; |
- |
-WebInspector.PropertiesWidget._objectGroupName = "properties-sidebar-pane"; |
+ } |
-WebInspector.PropertiesWidget.prototype = { |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _setNode: function(event) |
- { |
- this._node = /** @type {?WebInspector.DOMNode} */(event.data); |
- this.update(); |
- }, |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _setNode(event) { |
+ this._node = /** @type {?WebInspector.DOMNode} */ (event.data); |
+ this.update(); |
+ } |
+ |
+ /** |
+ * @override |
+ * @protected |
+ * @return {!Promise.<?>} |
+ */ |
+ doUpdate() { |
+ if (this._lastRequestedNode) { |
+ this._lastRequestedNode.target().runtimeAgent().releaseObjectGroup( |
+ WebInspector.PropertiesWidget._objectGroupName); |
+ delete this._lastRequestedNode; |
+ } |
+ |
+ if (!this._node) { |
+ this.element.removeChildren(); |
+ this.sections = []; |
+ return Promise.resolve(); |
+ } |
+ |
+ this._lastRequestedNode = this._node; |
+ return this._node.resolveToObjectPromise(WebInspector.PropertiesWidget._objectGroupName) |
+ .then(nodeResolved.bind(this)); |
/** |
- * @override |
- * @protected |
- * @return {!Promise.<?>} |
+ * @param {?WebInspector.RemoteObject} object |
+ * @this {WebInspector.PropertiesWidget} |
*/ |
- doUpdate: function() |
- { |
- if (this._lastRequestedNode) { |
- this._lastRequestedNode.target().runtimeAgent().releaseObjectGroup(WebInspector.PropertiesWidget._objectGroupName); |
- delete this._lastRequestedNode; |
- } |
- |
- if (!this._node) { |
- this.element.removeChildren(); |
- this.sections = []; |
- return Promise.resolve(); |
- } |
- |
- this._lastRequestedNode = this._node; |
- return this._node.resolveToObjectPromise(WebInspector.PropertiesWidget._objectGroupName) |
- .then(nodeResolved.bind(this)); |
- |
- /** |
- * @param {?WebInspector.RemoteObject} object |
- * @this {WebInspector.PropertiesWidget} |
- */ |
- function nodeResolved(object) |
- { |
- if (!object) |
- return; |
- |
- /** |
- * @suppressReceiverCheck |
- * @this {*} |
- */ |
- function protoList() |
- { |
- var proto = this; |
- var result = { __proto__: null }; |
- var counter = 1; |
- while (proto) { |
- result[counter++] = proto; |
- proto = proto.__proto__; |
- } |
- return result; |
- } |
- var promise = object.callFunctionPromise(protoList).then(nodePrototypesReady.bind(this)); |
- object.release(); |
- return promise; |
- } |
- |
- /** |
- * @param {!{object: ?WebInspector.RemoteObject, wasThrown: (boolean|undefined)}} result |
- * @this {WebInspector.PropertiesWidget} |
- */ |
- function nodePrototypesReady(result) |
- { |
- if (!result.object || result.wasThrown) |
- return; |
- |
- var promise = result.object.getOwnPropertiesPromise().then(fillSection.bind(this)); |
- result.object.release(); |
- return promise; |
- } |
- |
- /** |
- * @param {!{properties: ?Array.<!WebInspector.RemoteObjectProperty>, internalProperties: ?Array.<!WebInspector.RemoteObjectProperty>}} result |
- * @this {WebInspector.PropertiesWidget} |
- */ |
- function fillSection(result) |
- { |
- if (!result || !result.properties) |
- return; |
- |
- var properties = result.properties; |
- var expanded = []; |
- var sections = this.sections || []; |
- for (var i = 0; i < sections.length; ++i) |
- expanded.push(sections[i].expanded); |
- |
- this.element.removeChildren(); |
- this.sections = []; |
- |
- // Get array of property user-friendly names. |
- for (var i = 0; i < properties.length; ++i) { |
- if (!parseInt(properties[i].name, 10)) |
- continue; |
- var property = properties[i].value; |
- var title = property.description; |
- title = title.replace(/Prototype$/, ""); |
- var section = new WebInspector.ObjectPropertiesSection(property, title); |
- section.element.classList.add("properties-widget-section"); |
- this.sections.push(section); |
- this.element.appendChild(section.element); |
- if (expanded[this.sections.length - 1]) |
- section.expand(); |
- section.addEventListener(TreeOutline.Events.ElementExpanded, this._propertyExpanded, this); |
- } |
+ function nodeResolved(object) { |
+ if (!object) |
+ return; |
+ |
+ /** |
+ * @suppressReceiverCheck |
+ * @this {*} |
+ */ |
+ function protoList() { |
+ var proto = this; |
+ var result = {__proto__: null}; |
+ var counter = 1; |
+ while (proto) { |
+ result[counter++] = proto; |
+ proto = proto.__proto__; |
} |
- }, |
+ return result; |
+ } |
+ var promise = object.callFunctionPromise(protoList).then(nodePrototypesReady.bind(this)); |
+ object.release(); |
+ return promise; |
+ } |
/** |
- * @param {!WebInspector.Event} event |
+ * @param {!{object: ?WebInspector.RemoteObject, wasThrown: (boolean|undefined)}} result |
+ * @this {WebInspector.PropertiesWidget} |
*/ |
- _propertyExpanded: function(event) |
- { |
- WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Action.DOMPropertiesExpanded); |
- for (var section of this.sections) { |
- section.removeEventListener(TreeOutline.Events.ElementExpanded, this._propertyExpanded, this); |
- } |
- }, |
+ function nodePrototypesReady(result) { |
+ if (!result.object || result.wasThrown) |
+ return; |
+ |
+ var promise = result.object.getOwnPropertiesPromise().then(fillSection.bind(this)); |
+ result.object.release(); |
+ return promise; |
+ } |
/** |
- * @param {!WebInspector.Event} event |
+ * @param {!{properties: ?Array.<!WebInspector.RemoteObjectProperty>, internalProperties: ?Array.<!WebInspector.RemoteObjectProperty>}} result |
+ * @this {WebInspector.PropertiesWidget} |
*/ |
- _onNodeChange: function(event) |
- { |
- if (!this._node) |
- return; |
- var data = event.data; |
- var node = /** @type {!WebInspector.DOMNode} */ (data instanceof WebInspector.DOMNode ? data : data.node); |
- if (this._node !== node) |
- return; |
- this.update(); |
- }, |
- |
- __proto__: WebInspector.ThrottledWidget.prototype |
+ function fillSection(result) { |
+ if (!result || !result.properties) |
+ return; |
+ |
+ var properties = result.properties; |
+ var expanded = []; |
+ var sections = this.sections || []; |
+ for (var i = 0; i < sections.length; ++i) |
+ expanded.push(sections[i].expanded); |
+ |
+ this.element.removeChildren(); |
+ this.sections = []; |
+ |
+ // Get array of property user-friendly names. |
+ for (var i = 0; i < properties.length; ++i) { |
+ if (!parseInt(properties[i].name, 10)) |
+ continue; |
+ var property = properties[i].value; |
+ var title = property.description; |
+ title = title.replace(/Prototype$/, ''); |
+ var section = new WebInspector.ObjectPropertiesSection(property, title); |
+ section.element.classList.add('properties-widget-section'); |
+ this.sections.push(section); |
+ this.element.appendChild(section.element); |
+ if (expanded[this.sections.length - 1]) |
+ section.expand(); |
+ section.addEventListener(TreeOutline.Events.ElementExpanded, this._propertyExpanded, this); |
+ } |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _propertyExpanded(event) { |
+ WebInspector.userMetrics.actionTaken(WebInspector.UserMetrics.Action.DOMPropertiesExpanded); |
+ for (var section of this.sections) { |
+ section.removeEventListener(TreeOutline.Events.ElementExpanded, this._propertyExpanded, this); |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _onNodeChange(event) { |
+ if (!this._node) |
+ return; |
+ var data = event.data; |
+ var node = /** @type {!WebInspector.DOMNode} */ (data instanceof WebInspector.DOMNode ? data : data.node); |
+ if (this._node !== node) |
+ return; |
+ this.update(); |
+ } |
}; |
+ |
+WebInspector.PropertiesWidget._objectGroupName = 'properties-sidebar-pane'; |