mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-19 16:25:38 +00:00
Bug 1440033 [wpt PR 9609] - Update Web Platform Tests for storage APIs in 'data:' contexts, a=testonly
Automatic update from web-platform-testsUpdate Web Platform Tests for storage APIs in 'data:' contexts Per https://github.com/w3c/web-platform-tests/pull/4832 remove WebSQL cases from WPT's workers/data-url*.html since it's not otherwise tested in WPT, and the test "passes" even if the API is not present. Also add an addition assertion that indexedDB is present before blithely checking that using it throws. WebSQL is not exposed to Workers in Chrome so we don't lose coverage here - we only "passed" because the API was not present in these contexts. The webexposed/ tests cover this. Change-Id: I0aa05ff9e674351a2a49ba0bae8e5a9938b2cf34 Reviewed-on: https://chromium-review.googlesource.com/929602 Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Commit-Queue: Joshua Bell <jsbell@chromium.org> Cr-Commit-Position: refs/heads/master@{#538833} wpt-commits: d116ec3d76ee417df0982c4dde13c1baa846cf42 wpt-pr: 9609 wpt-commits: d116ec3d76ee417df0982c4dde13c1baa846cf42 wpt-pr: 9609
This commit is contained in:
parent
5d8028c48d
commit
79387e064f
@ -604397,11 +604397,11 @@
|
||||
"support"
|
||||
],
|
||||
"workers/data-url-shared.html": [
|
||||
"3650dbf419d8bbfe7380a36426793336998975cc",
|
||||
"7fae8fa78f0e66ffa8cf0dd1bf3e887fae349e4e",
|
||||
"testharness"
|
||||
],
|
||||
"workers/data-url.html": [
|
||||
"c693eac37e1a8856b82a923b2f1142360afc6411",
|
||||
"3de4925fb0a05ecf4da839dbf9b293c73a3c0354",
|
||||
"testharness"
|
||||
],
|
||||
"workers/interfaces.worker.js": [
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<title>data URL shared worker</title>
|
||||
<title>data URL shared workers</title>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
@ -15,8 +15,8 @@ function assert_worker_sends_pass(test_desc, mime_type, worker_code) {
|
||||
}, test_desc);
|
||||
}
|
||||
|
||||
function assert_worker_throws(test_desc, worker_code, before_connect_worker_code) {
|
||||
assert_worker_sends_pass(test_desc, '', `try { ${worker_code}; port.postMessage("FAIL"); } catch (e) { port.postMessage("PASS"); }`, before_connect_worker_code);
|
||||
function assert_worker_throws(test_desc, worker_code) {
|
||||
assert_worker_sends_pass(test_desc, '', `try { ${worker_code}; port.postMessage("FAIL"); } catch (e) { port.postMessage("PASS"); }`);
|
||||
}
|
||||
|
||||
// Any MIME type allowed
|
||||
@ -28,12 +28,17 @@ assert_worker_sends_pass('empty MIME allowed', '', 'port.postMessage("PASS")');
|
||||
assert_worker_sends_pass('communication goes both ways', 'application/javascript', 'port.onmessage = function(e) { port.postMessage("PASS"); }');
|
||||
|
||||
// test access to storage APIs
|
||||
// once https://github.com/w3c/IndexedDB/pull/150 lands, this is spec conforming
|
||||
assert_worker_throws('indexedDB inaccessible', 'self.indexedDB.open("someDBName")');
|
||||
assert_worker_throws('Web SQL Database inaccessible', 'self.openDatabase("someDBName", "1.0", "someDBName", 1);');
|
||||
|
||||
// https://w3c.github.io/IndexedDB/#dom-idbfactory-open
|
||||
assert_worker_sends_pass('indexedDB is present', '', 'port.postMessage("indexedDB" in self ? "PASS" : "FAIL")');
|
||||
assert_worker_throws('indexedDB is inaccessible', 'self.indexedDB.open("someDBName")');
|
||||
// Other standardized storage APIs are either not exposed to workers
|
||||
// (e.g. window.localStorage, window.sessionStorage), or are [SecureContext]
|
||||
// (e.g. self.caches).
|
||||
|
||||
// 'data:' workers are cross-origin
|
||||
assert_worker_sends_pass('cross-origin worker', '', 'fetch("/").then(() => port.postMessage("FAIL"), () => port.postMessage("PASS"))');
|
||||
|
||||
// 'data:' workers have opaque origin
|
||||
assert_worker_sends_pass('worker has opaque origin', 'application/javascript', 'if (self.location.origin == "null") port.postMessage("PASS"); else { port.postMessage("FAIL"); }');
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<title>Test workers can be started with a data URL</title>
|
||||
<title>data URL dedicated workers</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
// Helper assert functions -START-
|
||||
function assert_worker_sends_pass(test_desc, mime_type, worker_code) {
|
||||
@ -36,7 +35,7 @@ function assert_worker_construction_fails(test_desc, mime_type, worker_code) {
|
||||
|
||||
// Actual tests -START-
|
||||
|
||||
// Any MIME type
|
||||
// Any MIME type allowed
|
||||
assert_worker_sends_pass('application/javascript MIME allowed', 'application/javascript', 'self.postMessage("PASS")');
|
||||
assert_worker_sends_pass('text/plain MIME allowed', 'text/plain', 'self.postMessage("PASS")');
|
||||
assert_worker_sends_pass('empty MIME allowed', '', 'self.postMessage("PASS")');
|
||||
@ -45,9 +44,14 @@ assert_worker_sends_pass('empty MIME allowed', '', 'self.postMessage("PASS")');
|
||||
assert_worker_sends_pass('communication goes both ways', 'application/javascript', 'onmessage = function(e) { self.postMessage("PASS"); }');
|
||||
|
||||
// test access to storage APIs
|
||||
// once https://github.com/w3c/IndexedDB/pull/150 lands, this is spec conforming
|
||||
assert_worker_throws('indexedDB inaccessible', 'self.indexedDB.open("someDBName")');
|
||||
assert_worker_throws('Web SQL Database inaccessible', 'self.openDatabase("someDBName", "1.0", "someDBName", 1);');
|
||||
|
||||
// https://w3c.github.io/IndexedDB/#dom-idbfactory-open
|
||||
assert_worker_sends_pass('indexedDB is present', '', 'self.postMessage("indexedDB" in self ? "PASS" : "FAIL")');
|
||||
assert_worker_throws('indexedDB is inaccessible', 'self.indexedDB.open("someDBName")');
|
||||
|
||||
// Other standardized storage APIs are either not exposed to workers
|
||||
// (e.g. window.localStorage, window.sessionStorage), or are [SecureContext]
|
||||
// (e.g. self.caches).
|
||||
|
||||
// 'data:' workers are cross-origin
|
||||
assert_worker_sends_pass('cross-origin worker', '', 'fetch("/").then(() => self.postMessage("FAIL"), () => self.postMessage("PASS"))');
|
||||
|
Loading…
Reference in New Issue
Block a user