Title: [237016] trunk/Source/WebInspectorUI
- Revision
- 237016
- Author
- [email protected]
- Date
- 2018-10-10 13:52:12 -0700 (Wed, 10 Oct 2018)
Log Message
Web Inspector: REGRESSION: selection in network table is lost when new entries are added
https://bugs.webkit.org/show_bug.cgi?id=190362
Reviewed by Matt Baker.
The `_selectedRows` list is cleared each time `reloadData` is called, meaning that
`WI.Table` expects its "owner" to restore the selection (since it doesn't know how). As a
result, `WI.NetworkTableContentView` needs to call `selectRow` _after_ `reloadData` is
called, not before.
* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype.tableSortChanged):
(WI.NetworkTableContentView.prototype._populateNameCell):
(WI.NetworkTableContentView.prototype._processPendingEntries):
(WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
(WI.NetworkTableContentView.prototype._updateSort): Added.
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._reloadTable): Added.
(WI.NetworkTableContentView.prototype._resetFilters):
(WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
(WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
(WI.NetworkTableContentView.prototype._urlFilterDidChange):
(WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries): Deleted.
* UserInterface/Views/Table.js:
(WI.Table.prototype.reloadData):
Ensure that the `_selectedRowIndex` is also reset.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (237015 => 237016)
--- trunk/Source/WebInspectorUI/ChangeLog 2018-10-10 20:29:01 UTC (rev 237015)
+++ trunk/Source/WebInspectorUI/ChangeLog 2018-10-10 20:52:12 UTC (rev 237016)
@@ -1,5 +1,35 @@
2018-10-10 Devin Rousso <[email protected]>
+ Web Inspector: REGRESSION: selection in network table is lost when new entries are added
+ https://bugs.webkit.org/show_bug.cgi?id=190362
+
+ Reviewed by Matt Baker.
+
+ The `_selectedRows` list is cleared each time `reloadData` is called, meaning that
+ `WI.Table` expects its "owner" to restore the selection (since it doesn't know how). As a
+ result, `WI.NetworkTableContentView` needs to call `selectRow` _after_ `reloadData` is
+ called, not before.
+
+ * UserInterface/Views/NetworkTableContentView.js:
+ (WI.NetworkTableContentView.prototype.tableSortChanged):
+ (WI.NetworkTableContentView.prototype._populateNameCell):
+ (WI.NetworkTableContentView.prototype._processPendingEntries):
+ (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
+ (WI.NetworkTableContentView.prototype._updateSort): Added.
+ (WI.NetworkTableContentView.prototype._updateFilteredEntries):
+ (WI.NetworkTableContentView.prototype._reloadTable): Added.
+ (WI.NetworkTableContentView.prototype._resetFilters):
+ (WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
+ (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
+ (WI.NetworkTableContentView.prototype._urlFilterDidChange):
+ (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries): Deleted.
+
+ * UserInterface/Views/Table.js:
+ (WI.Table.prototype.reloadData):
+ Ensure that the `_selectedRowIndex` is also reset.
+
+2018-10-10 Devin Rousso <[email protected]>
+
Web Inspector: notify the frontend when a canvas has started recording via console.record
https://bugs.webkit.org/show_bug.cgi?id=190306
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js (237015 => 237016)
--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js 2018-10-10 20:29:01 UTC (rev 237015)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js 2018-10-10 20:52:12 UTC (rev 237016)
@@ -332,10 +332,9 @@
for (let nodeEntry of this._domNodeEntries.values())
nodeEntry.initiatedResourceEntries.sort(this._entriesSortComparator);
- this._entries.sort(this._entriesSortComparator);
-
+ this._updateSort();
this._updateFilteredEntries();
- this._table.reloadData();
+ this._reloadTable();
}
// Table delegate
@@ -492,7 +491,7 @@
entry.expanded = !entry.expanded;
this._updateFilteredEntries();
- this._table.reloadData();
+ this._reloadTable();
});
createIconElement();
@@ -1057,8 +1056,9 @@
this._pendingFilter = false;
- this._updateSortAndFilteredEntries();
- this._table.reloadData();
+ this._updateSort();
+ this._updateFilteredEntries();
+ this._reloadTable();
}
_populateWithInitialResourcesIfNeeded()
@@ -1394,7 +1394,7 @@
if (this._filteredEntries.lastValue === resourceEntry)
this._table.reloadDataAddedToEndOnly();
else
- this._table.reloadData();
+ this._reloadTable();
}
}
@@ -1503,12 +1503,10 @@
&& this._passURLFilter(entry);
}
- _updateSortAndFilteredEntries()
+ _updateSort()
{
if (this._entriesSortComparator)
this._entries = this._entries.sort(this._entriesSortComparator);
-
- this._updateFilteredEntries();
}
_updateFilteredEntries()
@@ -1549,12 +1547,16 @@
});
}
- this._restoreSelectedRow();
-
this._updateURLFilterActiveIndicator();
this._updateEmptyFilterResultsMessage();
}
+ _reloadTable()
+ {
+ this._table.reloadData();
+ this._restoreSelectedRow();
+ }
+
_generateTypeFilter()
{
let selectedItems = this._typeFilterScopeBar.selectedItems;
@@ -1583,7 +1585,7 @@
console.assert(!this._hasActiveFilter());
this._updateFilteredEntries();
- this._table.reloadData();
+ this._reloadTable();
}
_areFilterListsIdentical(listA, listB)
@@ -1617,7 +1619,7 @@
this._activeTypeFilters = newFilter;
this._updateFilteredEntries();
- this._table.reloadData();
+ this._reloadTable();
}
_handleGroupByDOMNodeCheckedDidChange(event)
@@ -1627,8 +1629,9 @@
if (!WI.settings.groupByDOMNode.value)
this._table.element.classList.remove("grouped");
- this._updateSortAndFilteredEntries();
- this._table.reloadData();
+ this._updateSort();
+ this._updateFilteredEntries();
+ this._reloadTable();
}
_urlFilterDidChange(event)
@@ -1648,7 +1651,7 @@
this._activeURLFilterResources.clear();
this._updateFilteredEntries();
- this._table.reloadData();
+ this._reloadTable();
return;
}
@@ -1662,7 +1665,7 @@
this._checkURLFilterAgainstResource(entry.resource);
this._updateFilteredEntries();
- this._table.reloadData();
+ this._reloadTable();
}
_restoreSelectedRow()
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Table.js (237015 => 237016)
--- trunk/Source/WebInspectorUI/UserInterface/Views/Table.js 2018-10-10 20:29:01 UTC (rev 237015)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Table.js 2018-10-10 20:52:12 UTC (rev 237016)
@@ -237,6 +237,8 @@
reloadData()
{
this._cachedRows.clear();
+
+ this._selectedRowIndex = NaN;
this._selectedRows.clear();
this._previousRevealedRowCount = NaN;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes