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

Unified Diff: LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html

Issue 19393004: Allow eviction of ImageBitmaps that are created from ImageElements. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix drawImage out of bounds src rect. Created 7 years, 5 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: LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html
diff --git a/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html b/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html
new file mode 100644
index 0000000000000000000000000000000000000000..4d88af976ce1494b2eb762c3f7a3c0ecbd6710bd
--- /dev/null
+++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html
@@ -0,0 +1,101 @@
+<html>
+<body>
+<script>
+if (window.testRunner)
+ window.testRunner.waitUntilDone();
+
+// Create auxiliary canvas to draw to and create an image from.
Stephen White 2013/07/25 18:01:07 Grammar nit: ending a sentence with a preposition
+var aCanvas = document.createElement('canvas');
+aCanvas.setAttribute('width', '100');
+aCanvas.setAttribute('height', '100');
+var aCtx = aCanvas.getContext('2d');
+aCtx.fillStyle = 'green';
+aCtx.fillRect(0, 0, 200, 200);
+
+var bCanvas = document.createElement('canvas');
+bCanvas.setAttribute('width', '100');
+bCanvas.setAttribute('height', '100');
+var bCtx = bCanvas.getContext('2d');
+bCtx.fillStyle = 'red';
+bCtx.fillRect(0, 0, 200, 200);
+
+var canvas = document.createElement('canvas');
+canvas.setAttribute('width', '400');
+canvas.setAttribute('height', '300');
+var ctx = canvas.getContext('2d');
+document.body.appendChild(canvas);
+
+var image = new Image();
+image.onload = imageLoaded;
+image.src = aCanvas.toDataURL(); // set a data URI of the base64 enconded image as the source
Stephen White 2013/07/25 18:01:07 Nit: enconded. Also, no punctuation
+
+var d;
+
+function imageLoaded() {
+ d = aCtx.getImageData(0, 0, 100, 100);
+ createImageBitmap(image, callback('Image'));
+ createImageBitmap(d, callback('Data'));
+ createImageBitmap(aCanvas, callback('Canvas'));
+}
+
+var imageBitmapImage, imageBitmapData, imageBitmapCanvas;
+var i = 0;
+function callback(name) {
+ var name = name;
+ return function(imageBitmap) {
+ switch(name) {
+ case 'Image':
+ imageBitmapImage = imageBitmap;
+ image.onload = draw(imageBitmapImage);
+ image.src = bCanvas.toDataURL();
+ createImageBitmap(imageBitmapImage, callback('ImageBitmapImage'));
+ break;
+ case 'Data':
+ imageBitmapData = imageBitmap;
+ d = 0;
+ ctx.drawImage(imageBitmapData, 110, 0);
+ createImageBitmap(imageBitmapData, callback('ImageBitmapData'));
+ checkIfDone();
+ break;
+ case 'Canvas':
+ imageBitmapCanvas = imageBitmap;
+ aCtx.clearRect(0, 0, 100, 100);
+ ctx.drawImage(imageBitmapCanvas, 220, 0);
+ createImageBitmap(imageBitmapCanvas, callback('ImageBitmapCanvas'));
+ checkIfDone();
+ break;
+ case 'ImageBitmapImage':
+ imageBitmapImage = 0;
+ ctx.drawImage(imageBitmap, 0, 110);
+ checkIfDone();
+ break;
+ case 'ImageBitmapData':
+ d = 0;
+ imageBitmapData = 0;
+ ctx.drawImage(imageBitmap, 110, 110);
+ checkIfDone();
+ break;
+ case 'ImageBitmapCanvas':
+ aCtx.clearRect(0, 0, 100, 100);
+ imageBitmapCanvas = 0;
+ ctx.drawImage(imageBitmap, 220, 110);
+ checkIfDone();
+ break;
+ }
+ }
+}
+
+function draw(imageBitmap) {
+ ctx.drawImage(imageBitmap, 0, 0);
+ checkIfDone();
+}
+
+function checkIfDone() {
+ if (++i == 6 && window.testRunner)
+ window.testRunner.notifyDone();
+}
+
+</script>
+<p>There should be 6 green squares displayed in a 2 row by 3 column grid.</p>
+</body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698