[SCM] WebKit Debian packaging branch, webkit-1.3, updated. upstream/1.3.7-4207-g178b198
pfeldman at chromium.org
pfeldman at chromium.org
Mon Feb 21 00:26:10 UTC 2011
The following commit has been merged in the webkit-1.3 branch:
commit 28efb0a754102f7b40e389316e2f110c2e3d9aea
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Jan 31 14:43:18 2011 +0000
2011-01-30 Pavel Feldman <pfeldman at chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: speed up network panel rendering.
https://bugs.webkit.org/show_bug.cgi?id=53397
* inspector/front-end/DataGrid.js:
(WebInspector.DataGrid.prototype.get scrollContainer):
* inspector/front-end/NetworkPanel.js:
(WebInspector.NetworkPanel.prototype.elementsToRestoreScrollPositionsFor):
(WebInspector.NetworkPanel.prototype._positionSummaryBar):
(WebInspector.NetworkPanel.prototype._createTable):
(WebInspector.NetworkPanel.prototype._exportResource):
(WebInspector.NetworkPanel.prototype._onScroll):
* inspector/front-end/networkPanel.css:
(.network-sidebar .data-grid.small tr.offscreen):
(.network-sidebar .data-grid tr.offscreen):
(.network-sidebar .data-grid tr.offscreen td):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@77127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 2037922..9c4877e 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,23 @@
+2011-01-30 Pavel Feldman <pfeldman at chromium.org>
+
+ Reviewed by Timothy Hatcher.
+
+ Web Inspector: speed up network panel rendering.
+ https://bugs.webkit.org/show_bug.cgi?id=53397
+
+ * inspector/front-end/DataGrid.js:
+ (WebInspector.DataGrid.prototype.get scrollContainer):
+ * inspector/front-end/NetworkPanel.js:
+ (WebInspector.NetworkPanel.prototype.elementsToRestoreScrollPositionsFor):
+ (WebInspector.NetworkPanel.prototype._positionSummaryBar):
+ (WebInspector.NetworkPanel.prototype._createTable):
+ (WebInspector.NetworkPanel.prototype._exportResource):
+ (WebInspector.NetworkPanel.prototype._onScroll):
+ * inspector/front-end/networkPanel.css:
+ (.network-sidebar .data-grid.small tr.offscreen):
+ (.network-sidebar .data-grid tr.offscreen):
+ (.network-sidebar .data-grid tr.offscreen td):
+
2011-01-31 Peter Varga <pvarga at webkit.org>
Reviewed by Andreas Kling.
diff --git a/Source/WebCore/inspector/front-end/DataGrid.js b/Source/WebCore/inspector/front-end/DataGrid.js
index 5831d1e..45f0b55 100644
--- a/Source/WebCore/inspector/front-end/DataGrid.js
+++ b/Source/WebCore/inspector/front-end/DataGrid.js
@@ -493,6 +493,11 @@ WebInspector.DataGrid.prototype = {
this._columnWidthsInitialized = false;
},
+ get scrollContainer()
+ {
+ return this._scrollContainer;
+ },
+
isScrolledToLastRow: function()
{
return this._scrollContainer.isScrolledToBottom();
diff --git a/Source/WebCore/inspector/front-end/NetworkPanel.js b/Source/WebCore/inspector/front-end/NetworkPanel.js
index 8bf4cbe..dd507bf 100644
--- a/Source/WebCore/inspector/front-end/NetworkPanel.js
+++ b/Source/WebCore/inspector/front-end/NetworkPanel.js
@@ -103,7 +103,7 @@ WebInspector.NetworkPanel.prototype = {
elementsToRestoreScrollPositionsFor: function()
{
- return [this.containerElement];
+ return [this.containerElement, this._dataGrid.scrollContainer];
},
resize: function()
@@ -158,6 +158,7 @@ WebInspector.NetworkPanel.prototype = {
this._dataGrid.element.style.bottom = 0;
this._sortItems();
}
+ this._updateOffscreenRows();
},
_resetSummaryBar: function()
@@ -214,6 +215,7 @@ WebInspector.NetworkPanel.prototype = {
this.containerElement.appendChild(this._dataGrid.element);
this._dataGrid.addEventListener("sorting changed", this._sortItems, this);
this._dataGrid.addEventListener("width changed", this._updateDividersIfNeeded, this);
+ this._dataGrid.scrollContainer.addEventListener("scroll", this._updateOffscreenRows.bind(this));
this._patchTimelineHeader();
},
@@ -1025,6 +1027,36 @@ WebInspector.NetworkPanel.prototype = {
{
var har = (new WebInspector.HAREntry(resource)).build();
offerFileForDownload(JSON.stringify(har));
+ },
+
+ _updateOffscreenRows: function(e)
+ {
+ var dataTableBody = this._dataGrid.dataTableBody;
+ var rows = dataTableBody.children;
+ var recordsCount = rows.length;
+ if (recordsCount < 2)
+ return; // Filler row only.
+
+ var visibleTop = this._dataGrid.scrollContainer.scrollTop;
+ var visibleBottom = visibleTop + this._dataGrid.scrollContainer.offsetHeight;
+
+ var rowHeight = rows[0].offsetHeight;
+
+ // Filler is at recordsCount - 1.
+ for (var i = 0; i < recordsCount - 1; ++i) {
+ var row = rows[i];
+ // Don't touch summaty - quit instead.
+ if (row === this._summaryBarRowNode)
+ break;
+ var rowIsVisible = i * rowHeight < visibleBottom && (i + 1) * rowHeight > visibleTop;
+ if (rowIsVisible !== row.rowIsVisible) {
+ if (rowIsVisible)
+ row.removeStyleClass("offscreen");
+ else
+ row.addStyleClass("offscreen");
+ row.rowIsVisible = rowIsVisible;
+ }
+ }
}
}
diff --git a/Source/WebCore/inspector/front-end/networkPanel.css b/Source/WebCore/inspector/front-end/networkPanel.css
index 95ed1bf..c750323 100644
--- a/Source/WebCore/inspector/front-end/networkPanel.css
+++ b/Source/WebCore/inspector/front-end/networkPanel.css
@@ -65,6 +65,18 @@
font-weight: bold;
}
+.network-sidebar .data-grid.small tr.offscreen {
+ height: 21px;
+}
+
+.network-sidebar .data-grid tr.offscreen {
+ height: 41px;
+}
+
+.network-sidebar .data-grid tr.offscreen td {
+ display: none;
+}
+
.network-sidebar .data-grid tr.filler {
background-color: white;
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list