dom/indexedDB/test/test_filehandle_serialization.html

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

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 databaseInfo = [
    18       { name: window.location.pathname + "1" },
    19       { name: window.location.pathname + "2" }
    20     ];
    22     const objectStoreName = "Blobs";
    24     const testFile = getRandomFile("random.bin", 100000);
    26     let databases = [];
    27     for each (let info in databaseInfo) {
    28       let request = indexedDB.open(info.name, 1);
    29       request.onerror = errorHandler;
    30       request.onupgradeneeded = grabEventAndContinueHandler;
    31       request.onsuccess = grabEventAndContinueHandler;
    32       let event = yield undefined;
    34       is(event.type, "upgradeneeded", "Got correct event type");
    36       let db = event.target.result;
    37       db.onerror = errorHandler;
    39       db.createObjectStore(objectStoreName, { });
    41       event = yield undefined;
    43       is(event.type, "success", "Got correct event type");
    45       databases.push(db);
    46     }
    48     let db1 = databases[0];
    50     let request = db1.mozCreateFileHandle("random.bin", "binary/random");
    51     request.onsuccess = grabEventAndContinueHandler;
    52     event = yield undefined;
    54     let fileHandle = event.target.result;
    55     is(getFileId(fileHandle), 1, "Correct file id");
    56     is(fileHandle.name, "random.bin", "Correct name");
    57     is(fileHandle.type, "binary/random", "Correct type");
    59     let trans = db1.transaction([objectStoreName], READ_WRITE);
    60     let objectStore = trans.objectStore(objectStoreName);
    62     request = objectStore.add(fileHandle, 42);
    63     request.onsuccess = grabEventAndContinueHandler;
    64     event = yield undefined;
    66     request = objectStore.get(42);
    67     request.onsuccess = grabEventAndContinueHandler;
    68     event = yield undefined;
    70     let result = event.target.result;
    71     is(getFileId(result), 1, "Correct file id");
    72     is(result.name, fileHandle.name, "Correct name");
    73     is(result.type, fileHandle.type, "Correct type");
    75     let db2 = databases[1];
    77     trans = db2.transaction([objectStoreName], READ_WRITE);
    78     objectStore = trans.objectStore(objectStoreName);
    80     try {
    81       objectStore.add(fileHandle, 42);
    82       ok(false, "Should have thrown!");
    83     }
    84     catch (e) {
    85       ok(e instanceof DOMException, "Got exception.");
    86       is(e.name, "DataCloneError", "Good error.");
    87       is(e.code, DOMException.DATA_CLONE_ERR, "Good error code.");
    88     }
    90     finishTest();
    91     yield undefined;
    92   }
    93   </script>
    94   <script type="text/javascript;version=1.7" src="file.js"></script>
    95   <script type="text/javascript;version=1.7" src="helpers.js"></script>
    97 </head>
    99 <body onload="runTest();"></body>
   101 </html>

mercurial