| 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);
|
| + }
|
| };
|
|
|