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

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 for assertion failure. Created 7 years, 4 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..5e6245af1190f4b1f4f8cab66e9c3aff9b2e6fda
--- /dev/null
+++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-immutable.html
@@ -0,0 +1,105 @@
+<html>
+<body>
+<script>
+if (window.testRunner)
+ window.testRunner.waitUntilDone();
+
+function shouldNotBeCalled() {
+ testFailed("Promise was rejected.");
+ finishJSTest();
+}
+
+var aCanvas = document.createElement('canvas');
+aCanvas.setAttribute('width', '10');
+aCanvas.setAttribute('height', '10');
+var aCtx = aCanvas.getContext('2d');
+aCtx.fillStyle = 'green';
+aCtx.fillRect(0, 0, 20, 20);
+
+var bCanvas = document.createElement('canvas');
+bCanvas.setAttribute('width', '10');
+bCanvas.setAttribute('height', '10');
+var bCtx = bCanvas.getContext('2d');
+bCtx.fillStyle = 'red';
+bCtx.fillRect(0, 0, 20, 20);
+
+var canvas = document.createElement('canvas');
+canvas.setAttribute('width', '40');
+canvas.setAttribute('height', '30');
+var ctx = canvas.getContext('2d');
+document.body.appendChild(canvas);
+
+var image = new Image();
+image.onload = imageLoaded;
+image.src = aCanvas.toDataURL();
+
+var d;
+
+function imageLoaded() {
+ d = aCtx.getImageData(0, 0, 10, 10);
+ createImageBitmap(image).then(callback('Image'), shouldNotBeCalled);
+ createImageBitmap(d).then(callback('Data'), shouldNotBeCalled);
+ createImageBitmap(aCanvas).then(callback('Canvas'), shouldNotBeCalled);
+}
+
+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).then(callback('ImageBitmapImage', shouldNotBeCalled));
+ break;
+ case 'Data':
+ imageBitmapData = imageBitmap;
+ d = 0;
+ ctx.drawImage(imageBitmapData, 11, 0);
+ createImageBitmap(imageBitmapData).then(callback('ImageBitmapData', shouldNotBeCalled));
+ checkIfDone();
+ break;
+ case 'Canvas':
+ imageBitmapCanvas = imageBitmap;
+ aCtx.clearRect(0, 0, 10, 10);
+ ctx.drawImage(imageBitmapCanvas, 22, 0);
+ createImageBitmap(imageBitmapCanvas).then(callback('ImageBitmapCanvas', shouldNotBeCalled));
+ checkIfDone();
+ break;
+ case 'ImageBitmapImage':
+ imageBitmapImage = 0;
+ ctx.drawImage(imageBitmap, 0, 11);
+ checkIfDone();
+ break;
+ case 'ImageBitmapData':
+ d = 0;
+ imageBitmapData = 0;
+ ctx.drawImage(imageBitmap, 11, 11);
+ checkIfDone();
+ break;
+ case 'ImageBitmapCanvas':
+ aCtx.clearRect(0, 0, 10, 10);
+ imageBitmapCanvas = 0;
+ ctx.drawImage(imageBitmap, 22, 11);
+ 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