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

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbfactory-deleteDatabase-opaque-origin.html

Issue 2711183003: Import wpt@a7e9c2abcf65b78fcf1c246fec6681c74e1bc352 (Closed)
Patch Set: Update test expectations and baselines. Created 3 years, 9 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 <meta charset=utf-8>
3 <title>IDBFactory.deleteDatabase() and opaque origins</title>
4 <script src=/resources/testharness.js></script>
5 <script src=/resources/testharnessreport.js></script>
6 <script>
7
8 function load_iframe(src, sandbox) {
9 return new Promise(resolve => {
10 const iframe = document.createElement('iframe');
11 iframe.onload = () => { resolve(iframe); };
12 if (sandbox)
13 iframe.sandbox = sandbox;
14 iframe.srcdoc = src;
15 iframe.style.display = 'none';
16 document.documentElement.appendChild(iframe);
17 });
18 }
19
20 function wait_for_message(iframe) {
21 return new Promise(resolve => {
22 self.addEventListener('message', function listener(e) {
23 if (e.source === iframe.contentWindow) {
24 resolve(e.data);
25 self.removeEventListener('message', listener);
26 }
27 });
28 });
29 }
30
31 const script =
32 '<script>' +
33 ' window.onmessage = () => {' +
34 ' try {' +
35 ' const r = indexedDB.deleteDatabase("opaque-origin-test");' +
36 ' window.parent.postMessage({result: "no exception"}, "*");' +
37 ' } catch (ex) {' +
38 ' window.parent.postMessage({result: ex.name}, "*");' +
39 ' };' +
40 ' };' +
41 '<\/script>';
42
43 promise_test(t => {
44 return load_iframe(script)
45 .then(iframe => {
46 iframe.contentWindow.postMessage({}, '*');
47 return wait_for_message(iframe);
48 })
49 .then(message => {
50 assert_equals(message.result, 'no exception',
51 'IDBFactory.deleteDatabase() should not throw');
52 });
53 }, 'IDBFactory.deleteDatabase() in non-sandboxed iframe should not throw');
54
55 promise_test(t => {
56 return load_iframe(script, 'allow-scripts')
57 .then(iframe => {
58 iframe.contentWindow.postMessage({}, '*');
59 return wait_for_message(iframe);
60 })
61 .then(message => {
62 assert_equals(message.result, 'SecurityError',
63 'Exception should be SecurityError');
64 });
65 }, 'IDBFactory.deleteDatabase() in sandboxed iframe should throw SecurityError') ;
66 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698