Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(882)

Side by Side Diff: third_party/WebKit/LayoutTests/storage/indexeddb/open-request-queue.html

Issue 2148253003: IndexedDB: Implement explicit queue for IDBOpenDBRequests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use pending member, other review nits Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <title>IndexedDB: open and delete requests are processed as a FIFO queue</title>
3 <script src='../../resources/testharness.js'></script>
4 <script src='../../resources/testharnessreport.js'></script>
5 <script src='resources/testharness-helpers.js'></script>
6 <script>
7
8 async_test(t => {
9 let db_name = 'db' + self.location.pathname + '-' + t.name;
10 indexedDB.deleteDatabase(db_name);
11
12 // Open and hold connection while other requests are queued up.
13 let r = indexedDB.open(db_name, 1);
14 r.onerror = t.unreached_func('open should succeed');
15 r.onsuccess = t.step_func(e => {
16 let db = r.result;
17
18 let saw = expect(t, [
19 'open1 success',
20 'open1 versionchange',
21 'delete1 blocked',
22 'delete1 success',
23 'open2 success',
24 'open2 versionchange',
25 'delete2 blocked',
26 'delete2 success'
27 ]);
28
29 function open(token, version) {
30 let r = indexedDB.open(db_name, version);
31 r.onsuccess = t.step_func(e => {
32 saw(token + ' success');
33 let db = r.result;
34 db.onversionchange = t.step_func(e => {
35 saw(token + ' versionchange');
36 setTimeout(t.step_func(() => db.close()), 0);
37 });
38 });
39 r.onblocked = t.step_func(e => saw(token + ' blocked'));
40 r.onerror = t.unreached_func('open should succeed');
41 }
42
43 function deleteDatabase(token) {
44 let r = indexedDB.deleteDatabase(db_name);
45 r.onsuccess = t.step_func(e => saw(token + ' success'));
46 r.onblocked = t.step_func(e => saw(token + ' blocked'));
47 r.onerror = t.unreached_func('deleteDatabase should succeed');
48 }
49
50 open('open1', 2);
51 deleteDatabase('delete1');
52 open('open2', 3);
53 deleteDatabase('delete2');
54
55 // Now unblock the queue.
56 db.close();
57 });
58
59 }, 'Opens and deletes are processed in order');
60
61 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698