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 Test</title>
9 <script type="text/javascript;version=1.7">
10 let db;
11 let name = window.location.pathname;
13 function onAddMore() {
14 let transaction = db.transaction("foo", "readwrite");
16 transaction.oncomplete = function(event) {
17 setTimeout(testFinishedCallback, 0, "complete");
18 }
19 transaction.onabort = function(event) {
20 setTimeout(testFinishedCallback, 0, "abort");
21 }
23 let objectStore = transaction.objectStore("foo");
24 let obj = {
25 foo: " ",
26 bar: " ",
27 baz: " "
28 };
29 for (let i = 0; i < 1000; i++) {
30 objectStore.add(obj).onerror = errorHandler;
31 }
32 }
34 function onDone() {
35 window.removeEventListener("indexedDB-addMore", onAddMore, true);
36 window.removeEventListener("indexedDB-done", onDone, true);
37 window.removeEventListener("indexedDB-reset", onReset, true);
39 testResult = "finished";
40 testException = undefined;
41 finishTest();
42 }
44 function onReset() {
45 db.close();
46 // N.B. the spec provides no ordering guarantee w.r.t deleteDatabase.
47 let deleteRequest = indexedDB.deleteDatabase(name);
49 deleteRequest.onerror = errorHandler;
50 deleteRequest.onsuccess = function () {
51 // It is imperative that we open a different database this time.
52 let request = indexedDB.open("take2", 1);
53 request.onerror = errorHandler;
54 request.onupgradeneeded = function(event) {
55 db = event.target.result;
56 db.createObjectStore("foo", { autoIncrement: true });
57 }
58 request.onsuccess = function ()
59 { setTimeout(testFinishedCallback, 0, "resetDone"); };
60 request.onblocked = errorHandler;
61 }
62 }
64 function testSteps()
65 {
66 window.addEventListener("indexedDB-addMore", onAddMore, true);
67 window.addEventListener("indexedDB-reset", onReset, true);
68 window.addEventListener("indexedDB-done", onDone, true);
70 let request = indexedDB.open(name, 1);
71 request.onerror = errorHandler;
72 request.onupgradeneeded = grabEventAndContinueHandler;
73 let event = yield undefined;
75 db = event.target.result;
77 db.onversionchange = function () { db.close(); };
79 db.createObjectStore("foo", { autoIncrement: true });
81 request.onsuccess = grabEventAndContinueHandler;
82 yield undefined;
84 setTimeout(testFinishedCallback, 0, "ready");
85 yield undefined;
86 }
87 </script>
89 <script type="text/javascript;version=1.7" src="browserHelpers.js"></script>
91 </head>
93 <body onload="runTest();" onunload="finishTestNow();"></body>
95 </html>