Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (202132 => 202133)
--- trunk/Source/WebInspectorUI/ChangeLog 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/ChangeLog 2016-06-16 19:39:10 UTC (rev 202133)
@@ -1,3 +1,56 @@
+2016-06-16 Matt Baker <[email protected]>
+
+ Web Inspector: DataGrid should manage its own settings
+ https://bugs.webkit.org/show_bug.cgi?id=158675
+ <rdar://problem/26761338>
+
+ Reviewed by Timothy Hatcher.
+
+ Move grid sorting settings (sort order, column identifier) into DataGrid,
+ removing duplicated code from various views. A new grid method, "createSettings",
+ takes an identifier which is used as a prefix for naming the grid's settings.
+
+ So that the new behavior is easy to use and hard to misuse, default values
+ for each setting are set to the current value of the associated property.
+ The result is that:
+
+ grid.sortColumnIdentifier = "columnA";
+ grid.createSettings("myGrid");
+
+ will use "columnA" as the default value the first time the setting is created.
+
+ * UserInterface/Views/ApplicationCacheFrameContentView.js:
+ (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
+ * UserInterface/Views/CookieStorageContentView.js:
+ (WebInspector.CookieStorageContentView.prototype._rebuildTable):
+ * UserInterface/Views/DOMStorageContentView.js:
+ (WebInspector.DOMStorageContentView):
+ * UserInterface/Views/DataGrid.js:
+ (WebInspector.DataGrid):
+ (WebInspector.DataGrid.prototype.createSettings):
+ (WebInspector.DataGrid.prototype.get identifier): Deleted.
+ (WebInspector.DataGrid.prototype.set identifier): Deleted.
+ (WebInspector.DataGrid.prototype.set sortOrderSetting): Deleted.
+ (WebInspector.DataGrid.prototype.set sortColumnIdentifierSetting): Deleted.
+ * UserInterface/Views/HeapAllocationsTimelineView.js:
+ (WebInspector.HeapAllocationsTimelineView):
+ * UserInterface/Views/HeapSnapshotContentView.js:
+ (WebInspector.HeapSnapshotContentView):
+ * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
+ (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
+ * UserInterface/Views/LayoutTimelineView.js:
+ (WebInspector.LayoutTimelineView):
+ * UserInterface/Views/NetworkGridContentView.js:
+ (WebInspector.NetworkGridContentView):
+ * UserInterface/Views/NetworkTimelineView.js:
+ (WebInspector.NetworkTimelineView):
+ * UserInterface/Views/ProfileView.js:
+ (WebInspector.ProfileView):
+ * UserInterface/Views/RenderingFrameTimelineView.js:
+ (WebInspector.RenderingFrameTimelineView):
+ * UserInterface/Views/ScriptDetailsTimelineView.js:
+ (WebInspector.ScriptDetailsTimelineView):
+
2016-06-15 Joseph Pecoraro <[email protected]>
Uncaught Exception: TypeError: undefined is not an object (evaluating 'imageElement.classList')
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ApplicationCacheFrameContentView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ApplicationCacheFrameContentView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ApplicationCacheFrameContentView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -162,8 +162,9 @@
this._dataGrid = new WebInspector.DataGrid(columns);
this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SortChanged, this._sortDataGrid, this);
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("application-cache-frame-content-view-sort", "url");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("application-cache-frame-content-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
+ this._dataGrid.sortColumnIdentifier = "url";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.createSettings("application-cache-frame-content-view");
this.addSubview(this._dataGrid);
this._dataGrid.updateLayout();
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -145,8 +145,8 @@
this._dataGrid.appendChild(node);
}
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("cookie-storage-content-view-sort", "name");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("cookie-storage-content-view-sort-order", WebInspector.DataGrid.SortOrder.Indeterminate);
+ this._dataGrid.sortColumnIdentifier = "name";
+ this._dataGrid.createSettings("cookie-storage-content-view");
}
_filterCookies(cookies)
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DOMStorageContentView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/DOMStorageContentView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DOMStorageContentView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -42,8 +42,9 @@
columns.value = {title: WebInspector.UIString("Value"), sortable: true};
this._dataGrid = new WebInspector.DataGrid(columns, this._editingCallback.bind(this), this._deleteCallback.bind(this));
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("dom-storage-content-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("dom-storage-content-view-sort", "key");
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.sortColumnIdentifier = "key";
+ this._dataGrid.createSettings("dom-storage-content-view");
this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SortChanged, this._sortDataGrid, this);
this.addSubview(this._dataGrid);
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DataGrid.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/DataGrid.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DataGrid.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -32,7 +32,7 @@
this.columns = new Map;
this.orderedColumns = [];
- this._identifier = null;
+ this._settingsIdentifier = null;
this._sortColumnIdentifier = null;
this._sortColumnIdentifierSetting = null;
this._sortOrder = WebInspector.DataGrid.SortOrder.Indeterminate;
@@ -209,27 +209,6 @@
return dataGrid;
}
- get identifier() { return this._identifier; }
-
- set identifier(x)
- {
- console.assert(x && typeof x === "string");
-
- if (this._identifier === x)
- return;
-
- this._identifier = x;
-
- // FIXME: Add sortColumnIdentifierSetting and sortOrderSetting as part of <webkit.org/b/158675>.
- this._hiddenColumnSetting = new WebInspector.Setting(this._identifier + "-hidden-columns", []);
-
- if (!this.columns)
- return;
-
- for (let columnIdentifier of this._hiddenColumnSetting.value)
- this.setColumnVisible(columnIdentifier, false);
- }
-
get columnChooserEnabled() { return this._columnChooserEnabled; }
set columnChooserEnabled(x) { this._columnChooserEnabled = x; }
@@ -269,15 +248,6 @@
this.dispatchEventToListeners(WebInspector.DataGrid.Event.SortChanged);
}
- set sortOrderSetting(setting)
- {
- console.assert(setting instanceof WebInspector.Setting);
-
- this._sortOrderSetting = setting;
- if (this._sortOrderSetting.value)
- this.sortOrder = this._sortOrderSetting.value;
- }
-
get sortColumnIdentifier()
{
return this._sortColumnIdentifier;
@@ -296,15 +266,6 @@
this._updateSortedColumn(oldSortColumnIdentifier);
}
- set sortColumnIdentifierSetting(setting)
- {
- console.assert(setting instanceof WebInspector.Setting);
-
- this._sortColumnIdentifierSetting = setting;
- if (this._sortColumnIdentifierSetting.value)
- this.sortColumnIdentifier = this._sortColumnIdentifierSetting.value;
- }
-
get inline() { return this._inline; }
set inline(x)
@@ -377,6 +338,30 @@
return this._filterDelegate.dataGridMatchNodeAgainstCustomFilters(node);
}
+ createSettings(identifier)
+ {
+ console.assert(identifier && typeof identifier === "string");
+ if (this._settingsIdentifier === identifier)
+ return;
+
+ this._settingsIdentifier = identifier;
+
+ this._sortColumnIdentifierSetting = new WebInspector.Setting(this._settingsIdentifier + "-sort", this._sortColumnIdentifier);
+ this._sortOrderSetting = new WebInspector.Setting(this._settingsIdentifier + "-sort-order", this._sortOrder);
+ this._hiddenColumnSetting = new WebInspector.Setting(this._settingsIdentifier + "-hidden-columns", []);
+
+ if (!this.columns)
+ return;
+
+ if (this._sortColumnIdentifierSetting.value) {
+ this.sortColumnIdentifier = this._sortColumnIdentifierSetting.value;
+ this.sortOrder = this._sortOrderSetting.value;
+ }
+
+ for (let columnIdentifier of this._hiddenColumnSetting.value)
+ this.showColumn(columnIdentifier, false);
+ }
+
_updateScrollListeners()
{
if (this._inline || this._variableHeightRows) {
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/HeapAllocationsTimelineView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -77,9 +77,11 @@
this._snapshotListPathComponent.addEventListener(WebInspector.HierarchicalPathComponent.Event.Clicked, this._snapshotListPathComponentClicked, this);
this._dataGrid = new WebInspector.TimelineDataGrid(columns);
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("heap-allocations-timeline-view-sort", "timestamp");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("heap-allocations-timeline-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
+ this._dataGrid.sortColumnIdentifier = "timestamp";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.createSettings("heap-allocations-timeline-view");
this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SelectedNodeChanged, this._dataGridNodeSelected, this);
+
this.addSubview(this._dataGrid);
this._contentViewContainer = new WebInspector.ContentViewContainer;
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/HeapSnapshotContentView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/HeapSnapshotContentView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/HeapSnapshotContentView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -34,8 +34,9 @@
this.element.classList.add("heap-snapshot");
this._dataGrid = new WebInspector.DataGrid(columns);
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting(identifier + "-sort", "retainedSize");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting(identifier + "-sort-order", WebInspector.DataGrid.SortOrder.Descending);
+ this._dataGrid.sortColumnIdentifier = "retainedSize";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Descending;
+ this._dataGrid.createSettings(identifier);
this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SortChanged, this._sortDataGrid, this);
let sortComparator = WebInspector.HeapSnapshotDataGridTree.buildSortComparator(this._dataGrid.sortColumnIdentifier, this._dataGrid.sortOrder);
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LayerTreeDetailsSidebarPanel.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -142,8 +142,9 @@
this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SortChanged, this._sortDataGrid, this);
this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SelectedNodeChanged, this._selectedDataGridNodeChanged, this);
- this.sortColumnIdentifierSetting = new WebInspector.Setting("layer-tree-details-sidebar-panel-sort", "memory");
- this.sortOrderSetting = new WebInspector.Setting("layer-tree-details-sidebar-panel-sort-order", WebInspector.DataGrid.SortOrder.Descending);
+ this._dataGrid.sortColumnIdentifier = "memory";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Descending;
+ this._dataGrid.createSettings("layer-tree-details-sidebar-panel");
var element = this._dataGrid.element;
element.addEventListener("focus", this._dataGridGainedFocus.bind(this), false);
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LayoutTimelineView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/LayoutTimelineView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LayoutTimelineView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -77,12 +77,10 @@
this.setupDataGrid(this._dataGrid);
- this._dataGrid.identifier = "layout-timeline-view";
+ this._dataGrid.sortColumnIdentifier = "startTime";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.createSettings("layout-timeline-view");
- // FIXME: Remove once <webkit.org/b/158675> is fixed.
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("layout-timeline-view-sort", "startTime");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("layout-timeline-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
-
this._hoveredTreeElement = null;
this._hoveredDataGridNode = null;
this._showingHighlight = false;
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkGridContentView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkGridContentView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkGridContentView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -82,8 +82,9 @@
this._dataGrid = new WebInspector.TimelineDataGrid(columns, this._contentTreeOutline);
this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SelectedNodeChanged, this._dataGridNodeSelected, this);
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("network-grid-content-view-sort", "requestSent");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("network-grid-content-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
+ this._dataGrid.sortColumnIdentifier = "requestSent";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.createSettings("network-grid-content-view");
this.element.classList.add("network-grid");
this.addSubview(this._dataGrid);
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTimelineView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTimelineView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTimelineView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -89,13 +89,11 @@
columns[column].sortable = true;
this._dataGrid = new WebInspector.TimelineDataGrid(columns);
- this._dataGrid.identifier = "network-timeline-view";
this._dataGrid.sortDelegate = this;
+ this._dataGrid.sortColumnIdentifier = "requestSent";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.createSettings("network-timeline-view");
- // FIXME: Remove once <webkit.org/b/158675> is fixed.
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("network-timeline-view-sort", "requestSent");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("network-timeline-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
-
this.setupDataGrid(this._dataGrid);
this.element.classList.add("network");
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ProfileView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ProfileView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ProfileView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -65,8 +65,9 @@
this._dataGrid.element.addEventListener("mouseover", this._mouseOverDataGrid.bind(this));
this._dataGrid.element.addEventListener("mouseleave", this._mouseLeaveDataGrid.bind(this));
this._dataGrid.indentWidth = 20;
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("profile-view-sort", "totalTime");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("profile-view-sort-order", WebInspector.DataGrid.SortOrder.Descending);
+ this._dataGrid.sortColumnIdentifier = "totalTime";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Descending;
+ this._dataGrid.createSettings("profile-view");
this.addSubview(this._dataGrid);
}
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -78,12 +78,10 @@
columns[column].sortable = true;
this._dataGrid = new WebInspector.TimelineDataGrid(columns);
- this._dataGrid.identifier = "rendering-frame-timeline-view";
+ this._dataGrid.sortColumnIdentifier = "startTime";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.createSettings("rendering-frame-timeline-view");
- // FIXME: Remove once <webkit.org/b/158675> is fixed.
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("rendering-frame-timeline-view-sort", "startTime");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("rendering-frame-timeline-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
-
this.setupDataGrid(this._dataGrid);
this.element.classList.add("rendering-frame");
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.js (202132 => 202133)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.js 2016-06-16 18:49:14 UTC (rev 202132)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScriptDetailsTimelineView.js 2016-06-16 19:39:10 UTC (rev 202133)
@@ -73,13 +73,11 @@
columns[column].sortable = true;
this._dataGrid = new WebInspector.ScriptTimelineDataGrid(columns);
- this._dataGrid.identifier = "script-timeline-view";
this._dataGrid.sortDelegate = this;
+ this._dataGrid.sortColumnIdentifier = "startTime";
+ this._dataGrid.sortOrder = WebInspector.DataGrid.SortOrder.Ascending;
+ this._dataGrid.createSettings("script-timeline-view");
- // FIXME: Remove once <webkit.org/b/158675> is fixed.
- this._dataGrid.sortColumnIdentifierSetting = new WebInspector.Setting("script-timeline-view-sort", "startTime");
- this._dataGrid.sortOrderSetting = new WebInspector.Setting("script-timeline-view-sort-order", WebInspector.DataGrid.SortOrder.Ascending);
-
this.setupDataGrid(this._dataGrid);
this.element.classList.add("script");