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

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

Issue 20748002: Blob creation methods for ImageBitmap. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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-drawImage.html
diff --git a/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html b/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html
index 2e2744859061dcae407659a1983cb912ca5ec2e4..8b26f994049846133c6ea71e77c2633527a6d63c 100644
--- a/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html
+++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html
@@ -4,8 +4,8 @@
<script src="../js/resources/js-test-pre.js"></script>
</head>
<body>
+<input type="file" name="file" id="file" onchange="onInputFileChange()">
<script>
-
description("Ensure correct behavior of drawImage with ImageBitmaps.");
window.jsTestIsAsync = true;
@@ -87,6 +87,7 @@ var bitmap;
var image;
var testBitmap; // this is an ImageBitmap that is uncropped. We use this to test createImageBitmap(testBitmap)
var d; // image.imageData
+var blob;
var checks;
var elements;
@@ -111,6 +112,7 @@ image.src = aCanvas.toDataURL(); // set a data URI of the base64 enconded image
var imageLoaded = false;
var imageBitmapLoaded = false;
+var blobLoaded = false;
function imageLoaded() {
createImageBitmap(image, imageBitmapLoadedCallback);
@@ -135,13 +137,40 @@ function imageBitmapLoadedCallback(imageBitmap) {
loaded();
}
+if (window.eventSender) {
+ window.onload = function() {
+ eventSender.beginDragWithFiles(['resources/pattern.png']);
+ moveMouseToCenterOfElement(document.getElementById('file'));
+ eventSender.mouseUp();
Justin Novosad 2013/07/26 18:15:58 This is a weird indirect way to get a blob. Since
+ };
+}
+
+function onInputFileChange()
+{
+ var file = document.getElementById("file").files[0];
+ var reader = new FileReader();
+ reader.onload = function(event) {
+ blob = new Blob([event.target.result]);
+ blobLoaded = true;
+ loaded();
+ }
+ reader.readAsArrayBuffer(file);
+}
+
+function moveMouseToCenterOfElement(element)
+{
+ var centerX = element.offsetLeft + element.offsetWidth / 2;
+ var centerY = element.offsetTop + element.offsetHeight / 2;
+ eventSender.mouseMoveTo(centerX, centerY);
+}
+
function loaded() {
- if (imageLoaded && imageBitmapLoaded) {
+ if (imageLoaded && imageBitmapLoaded && blobLoaded) {
// check all of these elements
- elements = [image, aCanvas, d, aCtx, testBitmap];
+ elements = [image, aCanvas, d, aCtx, blob, testBitmap];
// with all of these checks
- checks = [checkNoCrop, checkCrop, checkCropRight, checkOverCrop, checkOverCropRight, checkNegativeCrop, checkEmpty, checkEmpty2, checkImmutable];
+ checks = [checkNoCrop, checkCrop, checkCropRight, checkOverCrop, checkOverCropRight, checkNegativeCrop, checkEmpty, checkEmpty2];
// wait for callback to finish before each check to ensure synchronous behavior
nextCheck();
@@ -202,11 +231,6 @@ function checkEmpty2(element) {
createImageBitmap(element, callbackEmpty, 40, 30, 30, 30);
}
-function checkImmutable(element) {
- debug("checkImmutable with ".concat(jsWrapperClass(element)));
- createImageBitmap(element, callbackImmutable);
-}
-
function callbackNoCrop(imageBitmap) {
bitmap = imageBitmap;
shouldBe("bitmap.width", "imageWidth");
@@ -425,34 +449,6 @@ function callbackEmpty(imageBitmap) {
commonCallback(imageBitmap);
}
-function callbackImmutable(imageBitmap) {
- // change the underlying element to ensure that it does not change the imageBitmap
- switch(i) {
- case 0: // image
- image = new Image();
- break;
- case 1: // canvas
- clearContext(aCtx);
- break;
- case 2: // data
- d = 0;
- break;
- case 3: // context
- clearContext(aCtx);
- break;
- case 4: // bitmap
- testBitmap = 0;
- break;
- default:
- testFailed("Default should not be called.");
- }
- // should be drawn to (0, 0), (20, 20)
- callbackNoCrop(imageBitmap);
-
- // we potentially cleared our auxillary context, so redraw the image
- drawPattern(aCtx);
-}
-
function commonCallback(imageBitmap) {
bitmap = imageBitmap;
shouldBeType("bitmap", "ImageBitmap");

Powered by Google App Engine
This is Rietveld 408576698