mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
Bug 1064262 - The waterfall background should use mozSetImageElement instead of toDataURL. r=pbrosset
This commit is contained in:
parent
76677027da
commit
c6b2474fe5
@ -1212,9 +1212,6 @@ RequestsMenuView.prototype = Heritage.extend(WidgetMethods, {
|
||||
this.updateMenuView(template, 'method', aMethod);
|
||||
this.updateMenuView(template, 'url', aUrl);
|
||||
|
||||
let waterfall = $(".requests-menu-waterfall", template);
|
||||
waterfall.style.backgroundImage = this._cachedWaterfallBackground;
|
||||
|
||||
// Flatten the DOM by removing one redundant box (the template container).
|
||||
for (let node of template.childNodes) {
|
||||
fragment.appendChild(node.cloneNode(true));
|
||||
@ -1378,7 +1375,6 @@ RequestsMenuView.prototype = Heritage.extend(WidgetMethods, {
|
||||
// Redraw and set the canvas background for each waterfall view.
|
||||
this._showWaterfallDivisionLabels(scale);
|
||||
this._drawWaterfallBackground(scale);
|
||||
this._flushWaterfallBackgrounds();
|
||||
|
||||
// Apply CSS transforms to each waterfall in this container totalTime
|
||||
// accurately translate and resize as needed.
|
||||
@ -1497,8 +1493,8 @@ RequestsMenuView.prototype = Heritage.extend(WidgetMethods, {
|
||||
let pixelArray = imageData.data;
|
||||
|
||||
let buf = new ArrayBuffer(pixelArray.length);
|
||||
let buf8 = new Uint8ClampedArray(buf);
|
||||
let data32 = new Uint32Array(buf);
|
||||
let view8bit = new Uint8ClampedArray(buf);
|
||||
let view32bit = new Uint32Array(buf);
|
||||
|
||||
// Build new millisecond tick lines...
|
||||
let timingStep = REQUESTS_WATERFALL_BACKGROUND_TICKS_MULTIPLE;
|
||||
@ -1520,26 +1516,16 @@ RequestsMenuView.prototype = Heritage.extend(WidgetMethods, {
|
||||
let increment = scaledStep * Math.pow(2, i);
|
||||
for (let x = 0; x < canvasWidth; x += increment) {
|
||||
let position = (window.isRTL ? canvasWidth - x : x) | 0;
|
||||
data32[position] = (alphaComponent << 24) | (b << 16) | (g << 8) | r;
|
||||
view32bit[position] = (alphaComponent << 24) | (b << 16) | (g << 8) | r;
|
||||
}
|
||||
alphaComponent += REQUESTS_WATERFALL_BACKGROUND_TICKS_OPACITY_ADD;
|
||||
}
|
||||
}
|
||||
|
||||
// Flush the image data and cache the waterfall background.
|
||||
pixelArray.set(buf8);
|
||||
pixelArray.set(view8bit);
|
||||
ctx.putImageData(imageData, 0, 0);
|
||||
this._cachedWaterfallBackground = "url(" + canvas.toDataURL() + ")";
|
||||
},
|
||||
|
||||
/**
|
||||
* Reapplies the current waterfall background on all request items.
|
||||
*/
|
||||
_flushWaterfallBackgrounds: function() {
|
||||
for (let { target } of this) {
|
||||
let waterfallNode = $(".requests-menu-waterfall", target);
|
||||
waterfallNode.style.backgroundImage = this._cachedWaterfallBackground;
|
||||
}
|
||||
document.mozSetImageElement("waterfall-background", canvas);
|
||||
},
|
||||
|
||||
/**
|
||||
@ -1762,7 +1748,6 @@ RequestsMenuView.prototype = Heritage.extend(WidgetMethods, {
|
||||
_canvas: null,
|
||||
_ctx: null,
|
||||
_cachedWaterfallWidth: 0,
|
||||
_cachedWaterfallBackground: "",
|
||||
_firstRequestStartedMillis: -1,
|
||||
_lastRequestEndedMillis: -1,
|
||||
_updateQueue: [],
|
||||
|
@ -320,7 +320,10 @@ label.requests-menu-status-code {
|
||||
.requests-menu-subitem.requests-menu-waterfall {
|
||||
-moz-padding-start: 0px;
|
||||
-moz-padding-end: 4px;
|
||||
background-repeat: repeat-y; /* Background created on a <canvas> in js. */
|
||||
/* Background created on a <canvas> in js. */
|
||||
/* @see browser/devtools/netmonitor/netmonitor-view.js */
|
||||
background-image: -moz-element(#waterfall-background);
|
||||
background-repeat: repeat-y;
|
||||
background-position: -1px center;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user