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

Unified Diff: third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbfactory-open-opaque-origin.html

Issue 2711183003: Import wpt@a7e9c2abcf65b78fcf1c246fec6681c74e1bc352 (Closed)
Patch Set: Update test expectations and baselines. Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbfactory-open-opaque-origin.html
diff --git a/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbfactory-open-opaque-origin.html b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbfactory-open-opaque-origin.html
new file mode 100644
index 0000000000000000000000000000000000000000..f69c47d31ad0baf1e91cdb40ab59a330a71a889f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/IndexedDB/idbfactory-open-opaque-origin.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>IDBFactory.open() and opaque origins</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+
+function load_iframe(src, sandbox) {
+ return new Promise(resolve => {
+ const iframe = document.createElement('iframe');
+ iframe.onload = () => { resolve(iframe); };
+ if (sandbox)
+ iframe.sandbox = sandbox;
+ iframe.srcdoc = src;
+ iframe.style.display = 'none';
+ document.documentElement.appendChild(iframe);
+ });
+}
+
+function wait_for_message(iframe) {
+ return new Promise(resolve => {
+ self.addEventListener('message', function listener(e) {
+ if (e.source === iframe.contentWindow) {
+ resolve(e.data);
+ self.removeEventListener('message', listener);
+ }
+ });
+ });
+}
+
+const script =
+ '<script>' +
+ ' window.onmessage = () => {' +
+ ' try {' +
+ ' indexedDB.deleteDatabase("opaque-origin-test");' +
+ ' const r = indexedDB.open("opaque-origin-test");' +
+ ' r.onupgradeneeded = () => { r.transaction.abort(); };' +
+ ' window.parent.postMessage({result: "no exception"}, "*");' +
+ ' } catch (ex) {' +
+ ' window.parent.postMessage({result: ex.name}, "*");' +
+ ' };' +
+ ' };' +
+ '<\/script>';
+
+promise_test(t => {
+ return load_iframe(script)
+ .then(iframe => {
+ iframe.contentWindow.postMessage({}, '*');
+ return wait_for_message(iframe);
+ })
+ .then(message => {
+ assert_equals(message.result, 'no exception',
+ 'IDBFactory.open() should not throw');
+ });
+}, 'IDBFactory.open() in non-sandboxed iframe should not throw');
+
+promise_test(t => {
+ return load_iframe(script, 'allow-scripts')
+ .then(iframe => {
+ iframe.contentWindow.postMessage({}, '*');
+ return wait_for_message(iframe);
+ })
+ .then(message => {
+ assert_equals(message.result, 'SecurityError',
+ 'Exception should be SecurityError');
+ });
+}, 'IDBFactory.open() in sandboxed iframe should throw SecurityError');
+</script>

Powered by Google App Engine
This is Rietveld 408576698