dom/indexedDB/test/browser_quotaPromptDelete.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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>

mercurial