storage-secured-iframe-usercontextid.html (2530B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 Iframe for testing multiple host detetion in storage actor 5 --> 6 <head> 7 <meta charset="utf-8"> 8 </head> 9 <body> 10 <script type="application/javascript"> 11 "use strict"; 12 document.cookie = "sc1uc1=foobar;"; 13 localStorage.setItem("iframe-s-ls1uc1", "foobar"); 14 sessionStorage.setItem("iframe-s-ss1uc1", "foobar-2"); 15 dump("added cookies and storage from secured iframe\n"); 16 17 const idbGenerator = async function () { 18 let request = indexedDB.open("idb-s1uc1", 1); 19 request.onerror = function() { 20 throw new Error("error opening db connection"); 21 }; 22 const db = await new Promise(done => { 23 request.onupgradeneeded = event => { 24 const _db = event.target.result; 25 const store1 = _db.createObjectStore("obj-s1uc1", { keyPath: "id" }); 26 store1.transaction.oncomplete = () => { 27 done(_db); 28 }; 29 }; 30 }); 31 await new Promise(done => { 32 request.onsuccess = done; 33 }); 34 35 let transaction = db.transaction(["obj-s1uc1"], "readwrite"); 36 const store1 = transaction.objectStore("obj-s1uc1"); 37 store1.add({id: 6, name: "foo", email: "foo@bar.com"}); 38 store1.add({id: 7, name: "foo2", email: "foo2@bar.com"}); 39 await new Promise(success => { 40 transaction.oncomplete = success; 41 }); 42 43 db.close(); 44 45 request = indexedDB.open("idb-s2uc1", 1); 46 const db2 = await new Promise(done => { 47 request.onupgradeneeded = event => { 48 const _db2 = event.target.result; 49 const store3 = 50 _db2.createObjectStore("obj-s2uc1", { keyPath: "id3", autoIncrement: true }); 51 store3.createIndex("name2", "name2", { unique: true }); 52 store3.transaction.oncomplete = () => { 53 done(_db2); 54 }; 55 }; 56 }); 57 await new Promise(done => { 58 request.onsuccess = done; 59 }); 60 61 transaction = db2.transaction(["obj-s2uc1"], "readwrite"); 62 const store3 = transaction.objectStore("obj-s2uc1"); 63 store3.add({id3: 16, name2: "foo", email: "foo@bar.com"}); 64 await new Promise(success => { 65 transaction.oncomplete = success; 66 }); 67 68 db2.close(); 69 dump("added indexedDB from secured iframe\n"); 70 }; 71 72 function deleteDB(dbName) { 73 return new Promise(resolve => { 74 dump("removing database " + dbName + " from " + document.location + "\n"); 75 indexedDB.deleteDatabase(dbName).onsuccess = resolve; 76 }); 77 } 78 79 window.setup = async function () { 80 await idbGenerator(); 81 }; 82 83 window.clear = async function () { 84 await deleteDB("idb-s1uc1"); 85 await deleteDB("idb-s2uc1"); 86 87 dump("removed indexedDB data from " + document.location + "\n"); 88 }; 89 </script> 90 </body> 91 </html>