2 <title>Service Worker: Indexed DB
</title>
3 <script src=
"../resources/testharness.js"></script>
4 <script src=
"../resources/testharnessreport.js"></script>
5 <script src=
"resources/test-helpers.js"></script>
7 async_test(function(t
) {
8 var scope
= 'resources/blank.html';
9 service_worker_unregister_and_register(
10 t
, 'resources/indexeddb-worker.js', scope
)
11 .then(function(registration
) {
12 var sw
= registration
.installing
;
13 var messageChannel
= new MessageChannel();
14 messageChannel
.port1
.onmessage
= t
.step_func(onMessage
);
15 sw
.postMessage({port
: messageChannel
.port2
}, [messageChannel
.port2
]);
17 .catch(unreached_rejection(t
));
19 function onMessage() {
20 var openRequest
= indexedDB
.open('db');
21 openRequest
.onsuccess
= t
.step_func(function() {
22 var db
= openRequest
.result
;
23 var tx
= db
.transaction('store');
24 var store
= tx
.objectStore('store');
25 var getRequest
= store
.get('key');
26 getRequest
.onsuccess
= t
.step_func(function() {
28 getRequest
.result
, 'value',
29 'The get() result should match what the worker put().');
30 service_worker_unregister_and_done(t
, scope
);
34 }, 'Verify Indexed DB operation in a Service Worker');