Index: third_party/WebKit/Source/devtools/front_end/resources/DOMStorageItemsView.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageItemsView.js b/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageItemsView.js |
index 14dfdd2c7e2bfb2295ac15032c5ef01a964ce8bd..979d9a04eb85bce6fbb0d4d59217ad15eedcdc1f 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageItemsView.js |
+++ b/third_party/WebKit/Source/devtools/front_end/resources/DOMStorageItemsView.js |
@@ -23,241 +23,232 @@ |
* (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.SimpleView} |
+ * @unrestricted |
*/ |
-WebInspector.DOMStorageItemsView = function(domStorage) |
-{ |
- WebInspector.SimpleView.call(this, WebInspector.UIString("DOM Storage")); |
+WebInspector.DOMStorageItemsView = class extends WebInspector.SimpleView { |
+ constructor(domStorage) { |
+ super(WebInspector.UIString('DOM Storage')); |
this.domStorage = domStorage; |
- this.element.classList.add("storage-view", "table"); |
+ this.element.classList.add('storage-view', 'table'); |
- this.deleteButton = new WebInspector.ToolbarButton(WebInspector.UIString("Delete"), "delete-toolbar-item"); |
+ this.deleteButton = new WebInspector.ToolbarButton(WebInspector.UIString('Delete'), 'delete-toolbar-item'); |
this.deleteButton.setVisible(false); |
- this.deleteButton.addEventListener("click", this._deleteButtonClicked, this); |
- |
- this.refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString("Refresh"), "refresh-toolbar-item"); |
- this.refreshButton.addEventListener("click", this._refreshButtonClicked, this); |
- |
- this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemsCleared, this._domStorageItemsCleared, this); |
- this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemRemoved, this._domStorageItemRemoved, this); |
- this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemAdded, this._domStorageItemAdded, this); |
- this.domStorage.addEventListener(WebInspector.DOMStorage.Events.DOMStorageItemUpdated, this._domStorageItemUpdated, this); |
-}; |
- |
-WebInspector.DOMStorageItemsView.prototype = { |
- /** |
- * @override |
- * @return {!Array.<!WebInspector.ToolbarItem>} |
- */ |
- syncToolbarItems: function() |
- { |
- return [this.refreshButton, this.deleteButton]; |
- }, |
- |
- wasShown: function() |
- { |
- this._update(); |
- }, |
- |
- willHide: function() |
- { |
- this.deleteButton.setVisible(false); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _domStorageItemsCleared: function(event) |
- { |
- if (!this.isShowing() || !this._dataGrid) |
- return; |
- |
- this._dataGrid.rootNode().removeChildren(); |
- this._dataGrid.addCreationNode(false); |
- this.deleteButton.setVisible(false); |
- event.consume(true); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _domStorageItemRemoved: function(event) |
- { |
- if (!this.isShowing() || !this._dataGrid) |
- return; |
- |
- var storageData = event.data; |
- var rootNode = this._dataGrid.rootNode(); |
- var children = rootNode.children; |
- |
- event.consume(true); |
- |
- for (var i = 0; i < children.length; ++i) { |
- var childNode = children[i]; |
- if (childNode.data.key === storageData.key) { |
- rootNode.removeChild(childNode); |
- this.deleteButton.setVisible(children.length > 1); |
- return; |
- } |
- } |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _domStorageItemAdded: function(event) |
- { |
- if (!this.isShowing() || !this._dataGrid) |
- return; |
+ this.deleteButton.addEventListener('click', this._deleteButtonClicked, this); |
+ |
+ this.refreshButton = new WebInspector.ToolbarButton(WebInspector.UIString('Refresh'), 'refresh-toolbar-item'); |
+ this.refreshButton.addEventListener('click', this._refreshButtonClicked, this); |
+ |
+ this.domStorage.addEventListener( |
+ WebInspector.DOMStorage.Events.DOMStorageItemsCleared, this._domStorageItemsCleared, this); |
+ this.domStorage.addEventListener( |
+ WebInspector.DOMStorage.Events.DOMStorageItemRemoved, this._domStorageItemRemoved, this); |
+ this.domStorage.addEventListener( |
+ WebInspector.DOMStorage.Events.DOMStorageItemAdded, this._domStorageItemAdded, this); |
+ this.domStorage.addEventListener( |
+ WebInspector.DOMStorage.Events.DOMStorageItemUpdated, this._domStorageItemUpdated, this); |
+ } |
+ |
+ /** |
+ * @override |
+ * @return {!Array.<!WebInspector.ToolbarItem>} |
+ */ |
+ syncToolbarItems() { |
+ return [this.refreshButton, this.deleteButton]; |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ wasShown() { |
+ this._update(); |
+ } |
+ |
+ /** |
+ * @override |
+ */ |
+ willHide() { |
+ this.deleteButton.setVisible(false); |
+ } |
- var storageData = event.data; |
- var rootNode = this._dataGrid.rootNode(); |
- var children = rootNode.children; |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _domStorageItemsCleared(event) { |
+ if (!this.isShowing() || !this._dataGrid) |
+ return; |
- event.consume(true); |
- this.deleteButton.setVisible(true); |
- |
- for (var i = 0; i < children.length; ++i) |
- if (children[i].data.key === storageData.key) |
- return; |
- |
- var childNode = new WebInspector.DataGridNode({key: storageData.key, value: storageData.value}, false); |
- rootNode.insertChild(childNode, children.length - 1); |
- }, |
- |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _domStorageItemUpdated: function(event) |
- { |
- if (!this.isShowing() || !this._dataGrid) |
- return; |
- |
- var storageData = event.data; |
- var rootNode = this._dataGrid.rootNode(); |
- var children = rootNode.children; |
- |
- event.consume(true); |
- |
- var keyFound = false; |
- for (var i = 0; i < children.length; ++i) { |
- var childNode = children[i]; |
- if (childNode.data.key === storageData.key) { |
- if (keyFound) { |
- rootNode.removeChild(childNode); |
- return; |
- } |
- keyFound = true; |
- if (childNode.data.value !== storageData.value) { |
- childNode.data.value = storageData.value; |
- childNode.refresh(); |
- childNode.select(); |
- childNode.reveal(); |
- } |
- this.deleteButton.setVisible(true); |
- } |
- } |
- }, |
- |
- _update: function() |
- { |
- this.detachChildWidgets(); |
- this.domStorage.getItems(this._showDOMStorageItems.bind(this)); |
- }, |
- |
- _showDOMStorageItems: function(error, items) |
- { |
- if (error) |
- return; |
- |
- this._dataGrid = this._dataGridForDOMStorageItems(items); |
- this._dataGrid.asWidget().show(this.element); |
- this.deleteButton.setVisible(this._dataGrid.rootNode().children.length > 1); |
- }, |
- |
- _dataGridForDOMStorageItems: function(items) |
- { |
- var columns = /** @type {!Array<!WebInspector.DataGrid.ColumnDescriptor>} */ ([ |
- {id: "key", title: WebInspector.UIString("Key"), sortable: false, editable: true, weight: 50}, |
- {id: "value", title: WebInspector.UIString("Value"), sortable: false, editable: true, weight: 50} |
- ]); |
- |
- var nodes = []; |
- |
- var keys = []; |
- var length = items.length; |
- for (var i = 0; i < items.length; i++) { |
- var key = items[i][0]; |
- var value = items[i][1]; |
- var node = new WebInspector.DataGridNode({key: key, value: value}, false); |
- node.selectable = true; |
- nodes.push(node); |
- keys.push(key); |
+ this._dataGrid.rootNode().removeChildren(); |
+ this._dataGrid.addCreationNode(false); |
+ this.deleteButton.setVisible(false); |
+ event.consume(true); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _domStorageItemRemoved(event) { |
+ if (!this.isShowing() || !this._dataGrid) |
+ return; |
+ |
+ var storageData = event.data; |
+ var rootNode = this._dataGrid.rootNode(); |
+ var children = rootNode.children; |
+ |
+ event.consume(true); |
+ |
+ for (var i = 0; i < children.length; ++i) { |
+ var childNode = children[i]; |
+ if (childNode.data.key === storageData.key) { |
+ rootNode.removeChild(childNode); |
+ this.deleteButton.setVisible(children.length > 1); |
+ return; |
+ } |
+ } |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _domStorageItemAdded(event) { |
+ if (!this.isShowing() || !this._dataGrid) |
+ return; |
+ |
+ var storageData = event.data; |
+ var rootNode = this._dataGrid.rootNode(); |
+ var children = rootNode.children; |
+ |
+ event.consume(true); |
+ this.deleteButton.setVisible(true); |
+ |
+ for (var i = 0; i < children.length; ++i) |
+ if (children[i].data.key === storageData.key) |
+ return; |
+ |
+ var childNode = new WebInspector.DataGridNode({key: storageData.key, value: storageData.value}, false); |
+ rootNode.insertChild(childNode, children.length - 1); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _domStorageItemUpdated(event) { |
+ if (!this.isShowing() || !this._dataGrid) |
+ return; |
+ |
+ var storageData = event.data; |
+ var rootNode = this._dataGrid.rootNode(); |
+ var children = rootNode.children; |
+ |
+ event.consume(true); |
+ |
+ var keyFound = false; |
+ for (var i = 0; i < children.length; ++i) { |
+ var childNode = children[i]; |
+ if (childNode.data.key === storageData.key) { |
+ if (keyFound) { |
+ rootNode.removeChild(childNode); |
+ return; |
} |
- |
- var dataGrid = new WebInspector.DataGrid(columns, this._editingCallback.bind(this), this._deleteCallback.bind(this)); |
- dataGrid.setName("DOMStorageItemsView"); |
- length = nodes.length; |
- for (var i = 0; i < length; ++i) |
- dataGrid.rootNode().appendChild(nodes[i]); |
- dataGrid.addCreationNode(false); |
- if (length > 0) |
- nodes[0].selected = true; |
- return dataGrid; |
- }, |
- |
- _deleteButtonClicked: function(event) |
- { |
- if (!this._dataGrid || !this._dataGrid.selectedNode) |
- return; |
- |
- this._deleteCallback(this._dataGrid.selectedNode); |
- }, |
- |
- _refreshButtonClicked: function(event) |
- { |
- this._update(); |
- }, |
- |
- _editingCallback: function(editingNode, columnIdentifier, oldText, newText) |
- { |
- var domStorage = this.domStorage; |
- if (columnIdentifier === "key") { |
- if (typeof oldText === "string") |
- domStorage.removeItem(oldText); |
- domStorage.setItem(newText, editingNode.data.value || ""); |
- this._removeDupes(editingNode); |
- } else |
- domStorage.setItem(editingNode.data.key || "", newText); |
- }, |
- |
- /** |
- * @param {!WebInspector.DataGridNode} masterNode |
- */ |
- _removeDupes: function(masterNode) |
- { |
- var rootNode = this._dataGrid.rootNode(); |
- var children = rootNode.children; |
- for (var i = children.length - 1; i >= 0; --i) { |
- var childNode = children[i]; |
- if ((childNode.data.key === masterNode.data.key) && (masterNode !== childNode)) |
- rootNode.removeChild(childNode); |
+ keyFound = true; |
+ if (childNode.data.value !== storageData.value) { |
+ childNode.data.value = storageData.value; |
+ childNode.refresh(); |
+ childNode.select(); |
+ childNode.reveal(); |
} |
- }, |
- |
- _deleteCallback: function(node) |
- { |
- if (!node || node.isCreationNode) |
- return; |
- |
- if (this.domStorage) |
- this.domStorage.removeItem(node.data.key); |
- }, |
- |
- __proto__: WebInspector.SimpleView.prototype |
+ this.deleteButton.setVisible(true); |
+ } |
+ } |
+ } |
+ |
+ _update() { |
+ this.detachChildWidgets(); |
+ this.domStorage.getItems(this._showDOMStorageItems.bind(this)); |
+ } |
+ |
+ _showDOMStorageItems(error, items) { |
+ if (error) |
+ return; |
+ |
+ this._dataGrid = this._dataGridForDOMStorageItems(items); |
+ this._dataGrid.asWidget().show(this.element); |
+ this.deleteButton.setVisible(this._dataGrid.rootNode().children.length > 1); |
+ } |
+ |
+ _dataGridForDOMStorageItems(items) { |
+ var columns = /** @type {!Array<!WebInspector.DataGrid.ColumnDescriptor>} */ ([ |
+ {id: 'key', title: WebInspector.UIString('Key'), sortable: false, editable: true, weight: 50}, |
+ {id: 'value', title: WebInspector.UIString('Value'), sortable: false, editable: true, weight: 50} |
+ ]); |
+ |
+ var nodes = []; |
+ |
+ var keys = []; |
+ var length = items.length; |
+ for (var i = 0; i < items.length; i++) { |
+ var key = items[i][0]; |
+ var value = items[i][1]; |
+ var node = new WebInspector.DataGridNode({key: key, value: value}, false); |
+ node.selectable = true; |
+ nodes.push(node); |
+ keys.push(key); |
+ } |
+ |
+ var dataGrid = |
+ new WebInspector.DataGrid(columns, this._editingCallback.bind(this), this._deleteCallback.bind(this)); |
+ dataGrid.setName('DOMStorageItemsView'); |
+ length = nodes.length; |
+ for (var i = 0; i < length; ++i) |
+ dataGrid.rootNode().appendChild(nodes[i]); |
+ dataGrid.addCreationNode(false); |
+ if (length > 0) |
+ nodes[0].selected = true; |
+ return dataGrid; |
+ } |
+ |
+ _deleteButtonClicked(event) { |
+ if (!this._dataGrid || !this._dataGrid.selectedNode) |
+ return; |
+ |
+ this._deleteCallback(this._dataGrid.selectedNode); |
+ } |
+ |
+ _refreshButtonClicked(event) { |
+ this._update(); |
+ } |
+ |
+ _editingCallback(editingNode, columnIdentifier, oldText, newText) { |
+ var domStorage = this.domStorage; |
+ if (columnIdentifier === 'key') { |
+ if (typeof oldText === 'string') |
+ domStorage.removeItem(oldText); |
+ domStorage.setItem(newText, editingNode.data.value || ''); |
+ this._removeDupes(editingNode); |
+ } else |
+ domStorage.setItem(editingNode.data.key || '', newText); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.DataGridNode} masterNode |
+ */ |
+ _removeDupes(masterNode) { |
+ var rootNode = this._dataGrid.rootNode(); |
+ var children = rootNode.children; |
+ for (var i = children.length - 1; i >= 0; --i) { |
+ var childNode = children[i]; |
+ if ((childNode.data.key === masterNode.data.key) && (masterNode !== childNode)) |
+ rootNode.removeChild(childNode); |
+ } |
+ } |
+ |
+ _deleteCallback(node) { |
+ if (!node || node.isCreationNode) |
+ return; |
+ |
+ if (this.domStorage) |
+ this.domStorage.removeItem(node.data.key); |
+ } |
}; |