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

Side by Side Diff: LayoutTests/fast/files/blob-close-revoke.html

Issue 157363003: Implement Blob.close(). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Avoid warning from PHP's fread() on empty reads Created 6 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!doctype html>
2 <script src="../../resources/js-test.js"></script>
3 <script src="resources/read-common.js"></script>
4 <script>
5 description("Test the Blob.close() method, revoking.");
6
7 window.jsTestIsAsync = true;
8
9 function base64ToUint8Array(a)
10 {
11 var binary = window.atob(a);
12 var buffer = new Uint8Array(binary.length);
13 for (var i = 0; i < binary.length; i++)
14 buffer[i] = binary.charCodeAt(i);
15
16 return buffer;
17 }
18
19 var pngBase64 = "iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAAsTAAA LEwEAmpwYAAAAnklEQVR42u3QMQEAAAgDoGlyo1vBzwciUJlw1ApkyZIlS5YsBbJkyZIlS5YCWbJkyZI lS4EsWbJkyZKlQJYsWbJkyVIgS5YsWbJkKZAlS5YsWbIUyJIlS5YsWQpkyZIlS5YsBbJkyZIlS5YCWbJ kyZIlS4EsWbJkyZKlQJYsWbJkyVIgS5YsWbJkKZAlS5YsWbIUyJIlS5YsWQpkyfq2MosBSIeKONMAAAA ASUVORK5CYII=";
20
21 var blobContents = [base64ToUint8Array(pngBase64)];
22
23 var blob;
24 var blobURL1;
25 var blobURL2;
26 var img;
27
28 function testRevokeAfterClose()
29 {
30 debug("Test that dereferencing URLs referring to closed Blobs fail.");
31 blob = buildBlob(blobContents, "image/png");
32 img = document.createElement("img");
33 img.onerror = function (e) {
34 testPassed("Error triggered on loading image from closed Blob.");
35 runNextTest();
36 };
37 img.onload = function () {
38 testFailed("Image loaded");
39 runNextTest();
40 };
41 blobURL1 = window.URL.createObjectURL(blob);
42 // create some more Blob URLs.
43 for (var i = 0; i < 10; i++)
44 window.URL.createObjectURL(blob);
45 // Make them all inaccessible.
46 blob.close();
47 img.src = blobURL1;
48 }
49
50 function testRegisterAfterClose()
51 {
52 debug("Test creating object URLs on closed Blobs");
53 blob = buildBlob(["body{background: green}"], "text/css");
54 blobURL1 = window.URL.createObjectURL(blob);
55 blob.close();
56 blobURL2 = window.URL.createObjectURL(blob);
57 shouldBeTrue("blobURL1 !== blobURL2");
58 shouldBeTrue("blobURL2.length > 0");
59 runNextTest();
60 }
61
62 var tests = [
63 testRevokeAfterClose,
64 testRegisterAfterClose ];
65
66 function runNextTest()
67 {
68 if (!tests.length) {
69 finishJSTest();
70 return;
71 }
72 tests.shift()();
73 }
74 </script>
75 <body onload="runNextTest()">
76 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698