Bug 1803222 - Return SyntaxError if fails to parse the moduleURL. r=smaug

Differential Revision: https://phabricator.services.mozilla.com/D163501
This commit is contained in:
Yoshi Cheng-Hao Huang 2022-12-01 11:38:11 +00:00
Родитель 747529d670
Коммит 5f6685a84b
2 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -108,6 +108,11 @@ class WorkletFetchHandler final : public PromiseNativeHandler,
nsresult rv = NS_NewURI(getter_AddRefs(resolvedURI), aModuleURL, nullptr,
doc->GetBaseURI());
if (NS_WARN_IF(NS_FAILED(rv))) {
// https://html.spec.whatwg.org/multipage/worklets.html#dom-worklet-addmodule
// Step 3. If this fails, then return a promise rejected with a
// "SyntaxError" DOMException.
rv = NS_ERROR_DOM_SYNTAX_ERR;
promise->MaybeReject(rv);
return promise.forget();
}
@ -115,6 +120,8 @@ class WorkletFetchHandler final : public PromiseNativeHandler,
nsAutoCString spec;
rv = resolvedURI->GetSpec(spec);
if (NS_WARN_IF(NS_FAILED(rv))) {
rv = NS_ERROR_DOM_SYNTAX_ERR;
promise->MaybeReject(rv);
return promise.forget();
}

Просмотреть файл

@ -7,9 +7,6 @@
[Importing cyclic scripts resolves the given promise]
expected: FAIL
[Importing an invalid URL should reject the given promise with a SyntaxError.]
expected: FAIL
[Importing a script that has a syntax error should reject the given promise.]
expected: FAIL