diff options
author | Moonchild <mcwerewolf@gmail.com> | 2018-06-25 16:26:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-25 16:26:13 +0200 |
commit | 5a559eb6c9c9cf05206506b0ea62fe9337834b9c (patch) | |
tree | b25bfe25acea9b8ffe9deaaf1c70cd32400e1172 /devtools | |
parent | 03e667b388fc6bd1df6c8306942867adfc563f10 (diff) | |
parent | 0d89d668e4dd4041edcf5616b367c840ec4a0046 (diff) | |
download | uxp-5a559eb6c9c9cf05206506b0ea62fe9337834b9c.tar.gz |
Merge pull request #545 from janekptacijarabaci/devtools_eyedropper_slow_1
DevTools - Eyedropper Tool - Used "createImageBitmap(canvas.toBlob())" instead of "createImageBitmap(ctx.getImageData())"
Diffstat (limited to 'devtools')
-rw-r--r-- | devtools/server/actors/highlighters/eye-dropper.js | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/devtools/server/actors/highlighters/eye-dropper.js b/devtools/server/actors/highlighters/eye-dropper.js index a90ec22bd0..bbfa2d78ca 100644 --- a/devtools/server/actors/highlighters/eye-dropper.js +++ b/devtools/server/actors/highlighters/eye-dropper.js @@ -191,20 +191,22 @@ EyeDropper.prototype = { }, prepareImageCapture() { - // Get the image data from the content window. - let imageData = getWindowAsImageData(this.win); - - // We need to transform imageData to something drawWindow will consume. An ImageBitmap - // works well. We could have used an Image, but doing so results in errors if the page - // defines CSP headers. - this.win.createImageBitmap(imageData).then(image => { - this.pageImage = image; - // We likely haven't drawn anything yet (no mousemove events yet), so start now. - this.draw(); + // Get the canvas from the content window. + let canvas = getWindowAsImageData(this.win); + + canvas.toBlob(blob => { + // We need to transform imageData to something drawWindow will consume. An ImageBitmap + // works well. We could have used an Image, but doing so results in errors if the page + // defines CSP headers. + this.win.createImageBitmap(blob).then(image => { + this.pageImage = image; + // We likely haven't drawn anything yet (no mousemove events yet), so start now. + this.draw(); - // Set an attribute on the root element to be able to run tests after the first draw - // was done. - this.getElement("root").setAttribute("drawn", "true"); + // Set an attribute on the root element to be able to run tests after the first draw + // was done. + this.getElement("root").setAttribute("drawn", "true"); + }); }); }, @@ -486,7 +488,7 @@ function getWindowAsImageData(win) { ctx.scale(scale, scale); ctx.drawWindow(win, win.scrollX, win.scrollY, width, height, "#fff"); - return ctx.getImageData(0, 0, canvas.width, canvas.height); + return canvas; } /** |