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

Side by Side Diff: third_party/WebKit/LayoutTests/storage/indexeddb/resources/delete-in-upgradeneeded-close-in-open-success.js

Issue 2084053004: IndexedDB: Defer delete calls when there is a running upgrade (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased, made delete lists contain unique_ptrs 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
1 if (this.importScripts) { 1 if (this.importScripts) {
2 importScripts('../../../resources/js-test.js'); 2 importScripts('../../../resources/js-test.js');
3 importScripts('shared.js'); 3 importScripts('shared.js');
4 } 4 }
5 5
6 description("Test that a deleteDatabase called while handling an upgradeneeded e vent is queued and fires its events at the right time. The close() call to unblo ck the delete occurs in the open request's 'success' event handler."); 6 description("Test that a deleteDatabase called while handling an upgradeneeded e vent is queued and fires its events at the right time. The close() call to unblo ck the delete occurs in the open request's 'success' event handler.");
7 7
8 function test() 8 function test()
9 { 9 {
10 setDBNameFromPath(); 10 setDBNameFromPath();
(...skipping 29 matching lines...) Expand all
40 evalAndLog("request2 = indexedDB.deleteDatabase(dbname)"); 40 evalAndLog("request2 = indexedDB.deleteDatabase(dbname)");
41 evalAndLog("request2.onsuccess = deleteSuccessCallback"); 41 evalAndLog("request2.onsuccess = deleteSuccessCallback");
42 request2.onerror = unexpectedErrorCallback; 42 request2.onerror = unexpectedErrorCallback;
43 request2.onblocked = deleteBlockedCallback; 43 request2.onblocked = deleteBlockedCallback;
44 } 44 }
45 45
46 function openSuccess(evt) 46 function openSuccess(evt)
47 { 47 {
48 preamble(evt); 48 preamble(evt);
49 shouldBeTrue("sawUpgradeNeeded"); 49 shouldBeTrue("sawUpgradeNeeded");
50 shouldBeTrue("sawVersionChange"); 50 shouldBeFalse("sawVersionChange");
51 evalAndLog("sawOpenSuccess = true"); 51 evalAndLog("sawOpenSuccess = true");
52 evalAndLog("db = event.target.result"); 52 evalAndLog("db = event.target.result");
53 shouldBe('db.version', '1'); 53 shouldBe('db.version', '1');
54
55 // Event ordering between 'success' and 'blocked' is not strictly defined
56 // in the spec. This documents current Chromium behavior to detect
57 // unexpected changes.
58 debug("Closing here is too late to prevent the in-flight 'blocked' event, bu t it does unblock the delete.");
59 evalAndLog("db.close()");
60 } 54 }
61 55
62 function versionChangeCallback(evt) 56 function versionChangeCallback(evt)
63 { 57 {
64 preamble(evt); 58 preamble(evt);
65 shouldBe("event.oldVersion", "1"); 59 shouldBe("event.oldVersion", "1");
66 shouldBeNull("event.newVersion"); 60 shouldBeNull("event.newVersion");
67 shouldBeFalse("sawOpenSuccess"); 61 shouldBeTrue("sawOpenSuccess");
68 evalAndLog("sawVersionChange = true"); 62 evalAndLog("sawVersionChange = true");
69 debug("Connection not closed at the end of 'versionchange', so 'blocked' sho uld fire"); 63 debug("Connection not closed at the end of 'versionchange', so 'blocked' sho uld fire");
70 } 64 }
71 65
72 function deleteBlockedCallback(evt) 66 function deleteBlockedCallback(evt)
73 { 67 {
74 preamble(evt); 68 preamble(evt);
75 shouldBeTrue("sawVersionChange"); 69 shouldBeTrue("sawVersionChange");
76 shouldBeTrue("sawOpenSuccess"); 70 shouldBeTrue("sawOpenSuccess");
77 evalAndLog("sawDeleteBlocked = true"); 71 evalAndLog("sawDeleteBlocked = true");
72 evalAndLog("db.close()");
78 } 73 }
79 74
80 function deleteSuccessCallback(evt) 75 function deleteSuccessCallback(evt)
81 { 76 {
82 preamble(evt); 77 preamble(evt);
83 shouldBeTrue("sawVersionChange"); 78 shouldBeTrue("sawVersionChange");
84 shouldBeTrue("sawDeleteBlocked"); 79 shouldBeTrue("sawDeleteBlocked");
85 finishJSTest(); 80 finishJSTest();
86 } 81 }
87 82
88 test(); 83 test();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698