blob: 66cef2fca4e0e8a336817cdf98d3f4a0aba60943 [file] [log] [blame]
<!DOCTYPE html>
<title>Service Worker: URL Length Limits</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.js"></script>
<script>
// URLs longer than this are rejected by Chromium IPC.
var max_url_chars = 2 * 1024 * 1024;
var long_url = location.href + '/' + Array(max_url_chars).join('x');
async_test(function(t) {
navigator.serviceWorker.register(long_url).
then(t.unreached_func('registering a long script url should fail')).
catch(t.step_func(function(reason) {
assert_equals(reason.name, 'SecurityError');
t.done();
}));
}, 'Exceedingly long script URLs are rejected by register()');
async_test(function(t) {
navigator.serviceWorker.register('empty-worker.js', {scope:long_url}).
then(t.unreached_func('registering a long scope url should fail')).
catch(t.step_func(function(reason) {
assert_equals(reason.name, 'SecurityError');
t.done();
}));
}, 'Exceedingly long scope URLs are rejected by register()');
async_test(function(t) {
navigator.serviceWorker.getRegistration(long_url).
then(t.unreached_func('getRegistration with a long url should fail')).
catch(t.step_func(function(reason) {
assert_equals(reason.name, 'SecurityError');
t.done();
}));
}, 'Exceedingly long document URLs are rejected by getRegistration()');
</script>