| <!DOCTYPE html> | |
| <title>SharedWorker: type or credentials mismatch failure</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script> | |
| const mismatch_test = (testName, firstOptions, secondOptions) => { | |
| promise_test(async () => { | |
| firstOptions.name = testName; | |
| secondOptions.name = testName; | |
| const scriptURL = 'support/empty-worker.js'; | |
| const firstWorker = new SharedWorker(scriptURL, firstOptions); | |
| const secondWorker = new SharedWorker(scriptURL, secondOptions); | |
| return new Promise(resolve => secondWorker.onerror = resolve); | |
| }, 'Connecting to shared worker with different options should be blocked: ' | |
| + testName); | |
| }; | |
| // Tests different type. | |
| mismatch_test('default to module', {}, { type: 'module' }); | |
| mismatch_test('module to default', { type: 'module' }, {}); | |
| mismatch_test('classic to module', { type: 'classic' }, { type: 'module' }); | |
| mismatch_test('module to classic', { type: 'module' }, { type: 'classic' }); | |
| // Tests different credentials in classic and module. | |
| ['classic', 'module'].forEach(type => { | |
| mismatch_test('default to omit in ' + type, | |
| { type }, | |
| { type, credentials: 'omit' }); | |
| mismatch_test('default to include in ' + type, | |
| { type }, | |
| { type, credentials: 'include' }); | |
| mismatch_test('omit to default in ' + type, | |
| { type, credentials: 'omit' }, | |
| { type }); | |
| mismatch_test('omit to same-origin in ' + type, | |
| { type, credentials: 'omit' }, | |
| { type, credentials: 'same-origin' }); | |
| mismatch_test('omit to include in ' + type, | |
| { type, credentials: 'omit' }, | |
| { type, credentials: 'include' }); | |
| mismatch_test('same-origin to omit in ' + type, | |
| { type, credentials: 'same-origin'}, | |
| { type, credentials: 'omit' }); | |
| mismatch_test('same-origin to include in ' + type, | |
| { type, credentials: 'same-origin'}, | |
| { type, credentials: 'include' }); | |
| mismatch_test('include to default in ' + type, | |
| { type, credentials: 'include' }, | |
| { type }); | |
| mismatch_test('include to omit in ' + type, | |
| { type, credentials: 'include' }, | |
| { type, credentials: 'omit' }); | |
| mismatch_test('include to same-origin in ' + type, | |
| { type, credentials: 'include' }, | |
| { type, credentials: 'same-origin' }); | |
| }); | |
| </script> |