Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1471)

Unified Diff: Source/devtools/front_end/DataGrid.js

Issue 207553010: DevTools: speed up network scrolling and layout. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | Source/devtools/front_end/NetworkPanel.js » ('j') | Source/devtools/front_end/NetworkPanel.js » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/DataGrid.js
diff --git a/Source/devtools/front_end/DataGrid.js b/Source/devtools/front_end/DataGrid.js
index b00702b5aa53e3bfd5d40b67bb38705c218b0471..d5c385a23887a8454946879aab6b3a157ea39eec 100644
--- a/Source/devtools/front_end/DataGrid.js
+++ b/Source/devtools/front_end/DataGrid.js
@@ -714,9 +714,16 @@ WebInspector.DataGrid.prototype = {
{
var headerTableColumns = this._headerTableColumnGroup.children;
var numColumns = headerTableColumns.length - 1; // Do not process corner column.
- var left = 0;
+ var left = [];
var previousResizer = null;
+ for (var i = 0; i < numColumns - 1; i++) {
eustas 2014/03/26 04:46:48 Though this avoids recalc-style waterfall, it does
pfeldman 2014/03/26 05:00:57 It prevents a dozen of full layouts from happening
+ // Get the width of the cell in the first (and only) row of the
+ // header table in order to determine the width of the column, since
+ // it is not possible to query a column for its width.
+ left[i] = (left[i-1] || 0) + this.headerTableBody.rows[0].cells[i].offsetWidth;
+ }
+
// Make n - 1 resizers for n columns.
for (var i = 0; i < numColumns - 1; i++) {
var resizer = this.resizers[i];
@@ -732,27 +739,24 @@ WebInspector.DataGrid.prototype = {
this.resizers[i] = resizer;
}
- // Get the width of the cell in the first (and only) row of the
- // header table in order to determine the width of the column, since
- // it is not possible to query a column for its width.
- left += this.headerTableBody.rows[0].cells[i].offsetWidth;
if (!this._columnsArray[i].hidden) {
resizer.style.removeProperty("display");
- if (resizer._position !== left) {
- resizer._position = left;
- resizer.style.left = left + "px";
+ if (resizer._position !== left[i]) {
+ resizer._position = left[i];
+ resizer.style.left = left[i] + "px";
}
resizer.leftNeighboringColumnIndex = i;
if (previousResizer)
previousResizer.rightNeighboringColumnIndex = i;
previousResizer = resizer;
} else {
- if (previousResizer && previousResizer._position !== left) {
- previousResizer._position = left;
- previousResizer.style.left = left + "px";
+ if (previousResizer && previousResizer._position !== left[i]) {
+ previousResizer._position = left[i];
+ previousResizer.style.left = left[i] + "px";
}
- resizer.style.setProperty("display", "none");
+ if (resizer.style.getPropertyValue("display") !== "none")
+ resizer.style.setProperty("display", "none");
resizer.leftNeighboringColumnIndex = 0;
resizer.rightNeighboringColumnIndex = 0;
}
« no previous file with comments | « no previous file | Source/devtools/front_end/NetworkPanel.js » ('j') | Source/devtools/front_end/NetworkPanel.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698