3 <script src=
"../../resources/js-test.js"></script>
4 <script src=
"resources/shared.js"></script>
7 <iframe id=
"frame0"></iframe>
8 <iframe id=
"frame1"></iframe>
9 <iframe id=
"frame2"></iframe>
12 description("Confirm that blobs stay alive after their records are deleted.");
14 indexedDBTest(prepareDatabase
, doRead
);
15 function prepareDatabase()
17 db
= event
.target
.result
;
18 event
.target
.transaction
.onabort
= unexpectedAbortCallback
;
19 evalAndLog("store = db.createObjectStore('store')");
20 blobAContent
= "Blob A content";
21 blobBContent
= "Blob B content";
22 var blobA
= new Blob([blobAContent
], {"type" : "text/plain"});
23 var blobB
= new Blob([blobBContent
], {"type" : "text/plain"});
25 value
= { a0
: blobA
, a1
: blobA
, b0
: blobB
};
26 evalAndLog("store.put(value, key)");
33 evalAndLog("trans = db.transaction('store')");
34 evalAndLog("store = trans.objectStore('store')");
35 evalAndLog("request = store.get(key)");
36 request
.onsuccess
= didRead
;
41 record
= request
.result
;
42 trans
.oncomplete
= doDelete
;
47 evalAndLog("trans = db.transaction('store', 'readwrite')");
48 evalAndLog("store = trans.objectStore('store')");
49 evalAndLog("request = store.delete(key)");
50 trans
.oncomplete
= didDelete
;
55 urlA0
= URL
.createObjectURL(record
.a0
);
56 urlA1
= URL
.createObjectURL(record
.a1
);
57 urlB
= URL
.createObjectURL(record
.b0
);
58 document
.getElementById('frame0').src
= urlA0
;
59 document
.getElementById('frame0').onload
= verification
;
60 document
.getElementById('frame1').src
= urlA1
;
61 document
.getElementById('frame1').onload
= verification
;
62 document
.getElementById('frame2').src
= urlB
;
63 document
.getElementById('frame2').onload
= verification
;
67 function verification()
71 URL
.revokeObjectURL(urlA0
);
72 URL
.revokeObjectURL(urlA1
);
73 URL
.revokeObjectURL(urlB
);
74 shouldBe("document.getElementById('frame0').contentDocument.body.innerText",
76 shouldBe("document.getElementById('frame1').contentDocument.body.innerText",
78 shouldBe("document.getElementById('frame2').contentDocument.body.innerText",