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

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

Issue 166273018: Added showing slow scroll rectangles in Layers panel. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fixes and updates. Created 6 years, 10 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
Index: Source/devtools/front_end/Layers3DView.js
diff --git a/Source/devtools/front_end/Layers3DView.js b/Source/devtools/front_end/Layers3DView.js
index 0ba03ccf3652e9198f5530eba4362e9a849770e6..ceb4f5d35f8b0e7f7faf72a1a9086e14b525bb57 100644
--- a/Source/devtools/front_end/Layers3DView.js
+++ b/Source/devtools/front_end/Layers3DView.js
@@ -50,6 +50,7 @@ WebInspector.Layers3DView = function(model)
this.element.addEventListener("dblclick", this._onDoubleClick.bind(this), false);
this.element.addEventListener("click", this._onClick.bind(this), false);
this._elementsByLayerId = {};
+ this._scrollRectElementsByLayerId = {}
this._rotateX = 0;
this._rotateY = 0;
this._scaleAdjustmentStylesheet = this.element.ownerDocument.head.createChild("style");
@@ -82,6 +83,15 @@ WebInspector.Layers3DView.PaintRectColors = [
WebInspector.Color.fromRGBA([0, 0xFF, 0, 0x3F])
]
+/**
+ * @enum {string}
+ */
+WebInspector.Layers3DView.ScrollRectTitles = {
+ RepaintsOnScroll: WebInspector.UIString("repaints on scroll"),
+ TouchEventHandler: WebInspector.UIString("touch event listener"),
+ WheelEventHandler: WebInspector.UIString("mousewheel event listener")
+}
+
WebInspector.Layers3DView.prototype = {
onResize: function()
{
@@ -211,6 +221,7 @@ WebInspector.Layers3DView.prototype = {
}
this._scaleToFit();
this._model.forEachLayer(updateLayer.bind(this), this._model.contentRoot());
+ this._updateScrollRects();
this._needsUpdate = false;
},
@@ -284,6 +295,60 @@ WebInspector.Layers3DView.prototype = {
}
},
+ _createScrollRectElement: function(scrollRect)
caseq 2014/02/25 16:38:41 Please annotate.
malch 2014/02/26 07:28:21 Done.
+ {
+ var element = document.createElement("div");
+ var style = element.style;
+ var parentLayerid =
caseq 2014/02/25 16:38:41 parentLayerId
malch 2014/02/26 07:28:21 Done.
+ this._model._layersById[scrollRect.layerId].nodeId() ? scrollRect.layerId : this._model.contentRoot().id();
+ var parentLayerElement = this._elementsByLayerId[parentLayerid];
+ element.className = "scroll-rect";
+ element.title = WebInspector.Layers3DView.ScrollRectTitles[scrollRect.type];
+ style.width = scrollRect.width + "px";
+ style.height = scrollRect.height + "px";
+ style.left = scrollRect.x + "px";
+ style.top = scrollRect.y + "px";
+ parentLayerElement.appendChild(element);
+ element.__scrollRect = scrollRect;
+ return element;
+ },
+
+ _updateScrollRectsForLayer: function(newScrollRects, oldScrollRects)
caseq 2014/02/25 16:38:41 Ditto.
malch 2014/02/26 07:28:21 Done.
+ {
+ for (var i = 0; i < newScrollRects.length; ++i) {
+ if (i >= oldScrollRects.length) {
+ oldScrollRects.push(this._createScrollRectElement(newScrollRects[i]));
+ } else if (newScrollRects[i] != oldScrollRects[i].__scrollRect) {
+ oldScrollRects[i].remove();
+ oldScrollRects[i] = this._createScrollRectElement(newScrollRects[i]);
caseq 2014/02/25 16:38:41 oldScrollRects is a poor choice of name -- it cont
malch 2014/02/26 07:28:21 Done.
+ }
+ }
+ },
+
+ _updateScrollRects: function()
+ {
+ function removeElement(element)
+ {
+ element.remove()
+ }
+
+ for (var layerId in this._scrollRectElementsByLayerId) {
+ if (!this._model.scrollRectsByLayerId()[layerId]) {
+ this._scrollRectElementsByLayerId[layerId].forEach(removeElement);
+ delete this._scrollRectElementsByLayerId[layerId];
+ }
+ }
+ for (var layerId in this._model.scrollRectsByLayerId()) {
+ if (!this._scrollRectElementsByLayerId[layerId])
+ this._scrollRectElementsByLayerId[layerId] = [];
+ var scrollRects = this._model.scrollRectsByLayerId()[layerId];
+ this._updateScrollRectsForLayer(scrollRects, this._scrollRectElementsByLayerId[layerId]);
+ this._scrollRectElementsByLayerId[layerId]
caseq 2014/02/25 16:38:41 Why is this line not a part of _updateScrollRectsF
malch 2014/02/26 07:28:21 Done.
+ .splice(scrollRects.length)
+ .forEach(removeElement);
+ }
+ },
+
_updatePaintRect: function(element)
{
var details = element.__layerDetails;

Powered by Google App Engine
This is Rietveld 408576698