Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 <!--
2 Any copyright is dedicated to the Public Domain.
3 http://creativecommons.org/publicdomain/zero/1.0/
4 -->
5 <html>
6 <head>
7 <title>Indexed Database Property Test</title>
9 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
12 <script type="text/javascript;version=1.7">
13 function testSteps()
14 {
15 const READ_WRITE = "readwrite";
17 const name = window.location.pathname;
19 const objectStoreName = "Blobs";
21 const testFile = getRandomFile("random.bin", 100000);
23 let request = indexedDB.open(name, 1);
24 request.onerror = errorHandler;
25 request.onupgradeneeded = grabEventAndContinueHandler;
26 request.onsuccess = grabEventAndContinueHandler;
27 let event = yield undefined;
29 is(event.type, "upgradeneeded", "Got correct event type");
31 let db = event.target.result;
32 db.onerror = errorHandler;
34 let objectStore = db.createObjectStore(objectStoreName, { });
36 event = yield undefined;
38 is(event.type, "success", "Got correct event type");
40 request = db.mozCreateFileHandle("random.bin", "binary/random");
41 request.onsuccess = grabEventAndContinueHandler;
42 event = yield undefined;
44 let fileHandle = event.target.result;
45 fileHandle.onerror = errorHandler;
47 let lockedFile = fileHandle.open("readwrite");
49 is(getFileId(fileHandle), 1, "Correct file id");
51 request = lockedFile.write(testFile);
52 request.onsuccess = grabEventAndContinueHandler;
53 event = yield undefined;
55 request = fileHandle.getFile();
56 request.onsuccess = grabEventAndContinueHandler;
57 event = yield undefined;
59 let file = event.target.result;
61 let trans = db.transaction([objectStoreName], READ_WRITE);
62 let objectStore = trans.objectStore(objectStoreName);
64 request = objectStore.add(file, 42);
65 request.onsuccess = grabEventAndContinueHandler;
66 event = yield undefined;
68 // At this moment, the file should not be readable anymore.
69 let reader = new FileReader();
70 try {
71 reader.readAsArrayBuffer(file);
72 ok(false, "Should have thrown!");
73 }
74 catch (e) {
75 ok(e instanceof DOMException, "Got exception.");
76 is(e.name, "LockedFileInactiveError", "Good error.");
77 is(e.code, 0, "Good error code.");
78 }
80 request = objectStore.get(42);
81 request.onsuccess = grabEventAndContinueHandler;
82 event = yield undefined;
84 verifyBlob(event.target.result, testFile, 2);
85 yield undefined;
87 finishTest();
88 yield undefined;
89 }
90 </script>
91 <script type="text/javascript;version=1.7" src="file.js"></script>
92 <script type="text/javascript;version=1.7" src="helpers.js"></script>
94 </head>
96 <body onload="runTest();"></body>
98 </html>