Closed Bug 1614503 Opened 4 years ago Closed 4 years ago

[wpt-sync] Sync PR 21707 - [Import Maps] Make errors block the whole resolution, Blink-side

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox75 fixed)

RESOLVED FIXED
mozilla75
Tracking Status
firefox75 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 21707 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/21707
Details from upstream follow.

Hiroshige Hayashizaki <hiroshige@chromium.org> wrote:

[Import Maps] Make errors block the whole resolution, Blink-side

Reflects https://github.com/WICG/import-maps/pull/205.

This CL updates tests from #205.

To match the behavior with the updated spec,
this CL turns non-String values into null entries
(i.e. make whole resolution fail without further fallback),
instead of ignoring such entries.
Other aspects were already conformant with the updated spec
(i.e. weren't matching with the spec before #205).

This CL updates (test-only) import maps serialization code
so that it matches with the reference implementation, i.e.
dump null entries as null instead of [].

This CL also updates spec comments.

Bug: 990561, https://github.com/WICG/import-maps/issues/184
Change-Id: Ifa2d04bf20fcef5575c14d135c328730ea09c454

Reviewed-on: https://chromium-review.googlesource.com/2037012
WPT-Export-Revision: 727411d3a53a64cd71c337b91646b8b3a94155a3

CI Results

Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 2 tests and 158 subtests

Status Summary

Firefox

OK : 2
PASS: 20
FAIL: 205

Chrome

OK : 2
PASS: 41
FAIL: 184

Safari

OK : 2
PASS: 20
FAIL: 205

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/import-maps/common/parsing.tentative.html
Relative URL scope keys should work with /s, ?s, and #s: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching scopes schema: should throw if a scope's value is not an object: array: FAIL (Chrome: PASS, Safari: FAIL)
Mismatching the top-level schema: should throw if scopes is a non-object: string: FAIL (Chrome: PASS, Safari: FAIL)
Failing addresses: mismatched trailing slashes: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw for top-level non-objects: boolean: FAIL (Chrome: PASS, Safari: FAIL)
Relative URL-like addresses: should ignore percent-encoded variants of ./, ../, or /: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL specifier keys should absolutize strings prefixed with ./, ../, or / into the corresponding URLs: FAIL (Chrome: FAIL, Safari: FAIL)
Absolute URL specifier keys should accept all absolute URL specifier keys, with or without fetch schemes: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL specifier keys should ignore an empty string key: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw for top-level non-objects: array: FAIL (Chrome: PASS, Safari: FAIL)
Mismatching the top-level schema: should throw if imports is a non-object: string: FAIL (Chrome: PASS, Safari: FAIL)
Specifier keys should be sort correctly (issue #181) - Test #1: FAIL (Chrome: FAIL, Safari: FAIL)
Specifier keys should be sort correctly (issue #181) - Test #2: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching scopes schema: should throw if a scope's value is not an object: string: FAIL (Chrome: PASS, Safari: FAIL)
Normalization: should normalize an import map without imports to have imports: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the specifier map schema: should ignore entries where the specifier key is an empty string: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL specifier keys should deduplicate based on URL parsing rules: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL specifier keys should treat percent-encoded variants of ./, ../, or / as bare specifiers: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw if scopes is a non-object: number: FAIL (Chrome: PASS, Safari: FAIL)
Mismatching the top-level schema: should ignore unspecified top-level entries: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw if imports is a non-object: null: FAIL (Chrome: PASS, Safari: FAIL)
Mismatching scopes schema: should throw if a scope's value is not an object: null: FAIL (Chrome: PASS, Safari: FAIL)
Relative URL scope keys should work with no prefix: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw if imports is a non-object: boolean: FAIL (Chrome: PASS, Safari: FAIL)
Invalid JSON: FAIL (Chrome: PASS, Safari: FAIL)
Other invalid addresses: should ignore unprefixed strings that are not absolute URLs: FAIL (Chrome: FAIL, Safari: FAIL)
Normalization: should normalize an import map without scopes to have scopes: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw if imports is a non-object: number: FAIL (Chrome: PASS, Safari: FAIL)
Relative URL scope keys should deduplicate based on URL parsing rules: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys should work with ./, ../, and / prefixes: FAIL (Chrome: FAIL, Safari: FAIL)
Normalization: should normalize empty import maps to have imports and scopes keys: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw if imports is a non-object: array: FAIL (Chrome: PASS, Safari: FAIL)
Relative URL specifier keys should not absolutize strings prefixed with ./, ../, or / with a data: URL base: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw if scopes is a non-object: array: FAIL (Chrome: PASS, Safari: FAIL)
Mismatching the top-level schema: should throw for top-level non-objects: string: FAIL (Chrome: PASS, Safari: FAIL)
Relative URL scope keys should work with ./, ../, or / with no suffix: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys should work with / suffixes: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys should work with an empty string scope key: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching scopes schema: should throw if a scope's value is not an object: boolean: FAIL (Chrome: PASS, Safari: FAIL)
Mismatching the top-level schema: should throw if scopes is a non-object: boolean: FAIL (Chrome: PASS, Safari: FAIL)
Relative URL-like addresses: should accept strings prefixed with ./, ../, or /: FAIL (Chrome: FAIL, Safari: FAIL)
Absolute URL scope keys should ignore relative URL scope keys when the base URL is a data: URL: FAIL (Chrome: FAIL, Safari: FAIL)
Absolute URL scope keys should accept all absolute URL scope keys, with or without fetch schemes: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw if scopes is a non-object: null: FAIL (Chrome: PASS, Safari: FAIL)
Absolute URL scope keys should parse absolute URL scope keys, ignoring unparseable ones: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL specifier keys should absolutize the literal strings ./, ../, or / with no suffix: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw for top-level non-objects: null: FAIL (Chrome: PASS, Safari: FAIL)
Relative URL-like addresses: should accept the literal strings ./, ../, or / with no suffix: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the specifier map schema: should ignore entries where the address is not a string: FAIL (Chrome: FAIL, Safari: FAIL)
Absolute URL addresses: should parse absolute URLs, ignoring unparseable ones: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching the top-level schema: should throw for top-level non-objects: number: FAIL (Chrome: PASS, Safari: FAIL)
Absolute URL specifier keys should parse absolute URLs, treating unparseable ones as bare specifiers: FAIL (Chrome: FAIL, Safari: FAIL)
Absolute URL addresses: should only accept absolute URL addresses with fetch schemes: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL-like addresses: should not accept strings prefixed with ./, ../, or / for data: base URLs: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL specifier keys should work with /s, ?s, and #s: FAIL (Chrome: FAIL, Safari: FAIL)
Mismatching scopes schema: should throw if a scope's value is not an object: number: FAIL (Chrome: PASS, Safari: FAIL)
/import-maps/common/resolving.tentative.html
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/null: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package submodules: moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative URLs that are invalid as specifiers should fail: \invalid-specifier: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Import map entries just composed from / and .: https://example.com/app/: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: prefix-resolution-error/b/x: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Import map entries just composed from / and .: /app/: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Non-subpath base URL (fail): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: prefix-resolution-error/b/c/x: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs inside the scope fallback to toplevel: moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use a direct scope override: c: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Subpath base URL (prefix match): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
fetch scheme absolute URLs: https://fetch%2Dscheme.com/: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: specifier with punctuation: ..: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative URLs that are invalid as specifiers should fail: %2E/invalid-specifier: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative URLs that are invalid as specifiers should fail: .%2Finvalid-specifier: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package modules that are not declared should fail: underscore/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: invalid-url/b/c/x: FAIL (Chrome: FAIL, Safari: FAIL)
fetch scheme absolute URLs: https://fetch-scheme.net: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Non-subpath base URL (fail): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dot: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Non-trailing-slash base URL (fail): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Non-subpath base URL (fail): moment: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Import map entries just composed from / and .: /: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: null/b/c/x: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dot/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: explicitly-mapped specifiers that happen to have a slash: package/withslash: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dotdot/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package main modules: lodash-dot: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: prefix-matched by keys with trailing slashes: https://example.com/app/test/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
should favor the most-specific key: Overlapping entries with trailing slashes: a/x: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs inside the scope fallback to less specific scope: moment: FAIL (Chrome: FAIL, Safari: FAIL)
should favor the most-specific key: Overlapping entries with trailing slashes: a/b: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package main modules: moment: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: invalid-url/x: FAIL (Chrome: FAIL, Safari: FAIL)
should favor the most-specific key: Overlapping entries with trailing slashes: a: FAIL (Chrome: FAIL, Safari: FAIL)
should favor the most-specific key: Overlapping entries with trailing slashes: a/: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: /foo/bar: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: ../foo: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dotdot/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: specifier with punctuation: %2F: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: specifier with punctuation: %2E: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: should use the last entry's address when URL-like specifiers parse to the same absolute URL: /test: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: ../../../foo/bar: FAIL (Chrome: FAIL, Safari: FAIL)
should favor the most-specific key: Overlapping entries with trailing slashes: a/b/: FAIL (Chrome: FAIL, Safari: FAIL)
non-fetch scheme absolute URLs: wss:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: FAIL)
should favor the most-specific key: Overlapping entries with trailing slashes: a/b/c: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/invalid-url: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Non-trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: ./foo/bar: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: should still fail for package-like specifiers that are not declared: underscore/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Non-subpath base URL (fail): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific scopes: invalid-url: FAIL (Chrome: FAIL, Safari: FAIL)
non-fetch scheme absolute URLs: mailto:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: '../' scope is a scope with import map base URL's parent directory: a: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Subpath base URL (fail): moment: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: ./foo: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: without-trailing-slashes/b/c/x: FAIL (Chrome: FAIL, Safari: FAIL)
invalid absolute URLs should fail: https://invalid-url.com:demo: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: without-trailing-slashes/x: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: submodule of something not declared with a trailing slash should fail: not-a-package/foo: FAIL (Chrome: FAIL, Safari: FAIL)
fetch scheme absolute URLs: about:fetch-scheme: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative URLs that are invalid as specifiers should fail: %2E%2E/invalid-specifier: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific scopes: without-trailing-slashes/x: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: An empty string scope is a scope with import map base URL: c: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative URLs that are invalid as specifiers should fail: invalid-specifier: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: An empty string scope is a scope with import map base URL: a: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative URLs that are invalid as specifiers should fail: :invalid-specifier: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Trailing-slash base URL (fail): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
invalid absolute URLs should fail: http://[invalid-url.com]/: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Ordinal URL-like specifiers: https://example.com/dotdotrelative/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: should still fail for package-like specifiers that are not declared: underscore/: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: /foo: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Fallback to toplevel or not, depending on trailing slash match: moment: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Non-trailing-slash base URL (fail): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package main modules: lodash-dotdot: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: /../../foo/bar: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs inside the scope fallback to less specific scope: vue: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dot/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Subpath base URL (prefix match): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Trailing-slash base URL (exact match): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope with trailing slash only: Trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Non-trailing-slash base URL (exact match): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: '../' scope is a scope with import map base URL's parent directory: c: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: '../' scope is a scope with import map base URL's parent directory: b: FAIL (Chrome: FAIL, Safari: FAIL)
fetch scheme absolute URLs: https://///fetch-scheme.com///: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Non-subpath base URL (fail): moment: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Import map entries just composed from / and .: https://example.com/: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dot: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: without-trailing-slashes/b/x: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: invalid-url/b/x: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package names that end in a slash should just pass through: moment/: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Ordinal URL-like specifiers: https://example.com/lib/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
non-fetch scheme absolute URLs: import:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Ordinal URL-like specifiers: https://example.com/app/dotrelative/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Subpath base URL (prefix match): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package submodules: lodash-dot/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Non-trailing-slash base URL (exact match): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: null/x: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: module for which only a trailing-slash version is present should fail: only-slash: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/without-trailing-slashes/x: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs outside a scope shouldn't use the scope even if the scope has matching keys: lodash-dotdot: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: /../foo/../bar: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Ordinal URL-like specifiers: https://///example.com/lib/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package submodules: lodash-dotdot/foo: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: ./foo/../bar: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Import map entries just composed from / and .: ../: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: specifier with punctuation: ..: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use an indirect scope override: d: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Base URLs inside the scope should use the scope if the scope has matching keys: lodash-dotdot: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use an indirect scope override: a: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use an indirect scope override: b: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use an indirect scope override: c: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Trailing-slash base URL (fail): moment: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: ../foo/bar: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: './' scope is a scope with import map base URL's directory: c: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: './' scope is a scope with import map base URL's directory: b: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: './' scope is a scope with import map base URL's directory: a: FAIL (Chrome: FAIL, Safari: FAIL)
non-fetch scheme absolute URLs: javascript:non-fetch-scheme: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Ordinal URL-like specifiers: ../app/dotrelative/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
data: base URL (?): should favor the most-specific key: foo/bar: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Non-trailing-slash base URL (exact match): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Non-subpath base URL (fail): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: prefix-resolution-error/x: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative specifiers: ./foo/../../bar: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Ordinal URL-like specifiers: /lib/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Ordinal URL-like specifiers: ../dotdotrelative/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
valid relative URLs that are invalid as specifiers should fail: @invalid-specifier: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific scopes: null: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: Import map entries just composed from / and .: ../app/: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: d: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: a: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: c: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should fall back to imports when no scopes match: b: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to absolute URL parsing: https://example.com/prefix-resolution-error/x: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: Fallback to toplevel or not, depending on trailing slash match: moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
fetch scheme absolute URLs: https:fetch-scheme.org: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific prefixes: null/b/x: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Trailing-slash base URL (exact match): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scopes with and without trailing slash: Subpath base URL (prefix match): moment: FAIL (Chrome: FAIL, Safari: FAIL)
Entries with errors shouldn't allow fallback: No fallback to less-specific scopes: prefix-resolution-error/x: FAIL (Chrome: FAIL, Safari: FAIL)
Relative URL scope keys: An empty string scope is a scope with import map base URL: b: FAIL (Chrome: FAIL, Safari: FAIL)
Exact vs. prefix based matching: Scope without trailing slash only: Subpath base URL (fail): moment/foo: FAIL (Chrome: FAIL, Safari: FAIL)
URL-like specifiers: prefix-matched by keys with trailing slashes: /test/foo.mjs: FAIL (Chrome: FAIL, Safari: FAIL)
Package-like scenarios: package modules that are not declared should fail: underscore/: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use a direct scope override: b: FAIL (Chrome: FAIL, Safari: FAIL)
Tricky specifiers: specifier with punctuation: .: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use a direct scope override: a: FAIL (Chrome: FAIL, Safari: FAIL)
Fallback to toplevel and between scopes: should use a direct scope override: d: FAIL (Chrome: FAIL, Safari: FAIL)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e620b95565ea
[wpt PR 21707] - [Import Maps] Make errors block the whole resolution, Blink-side, a=testonly
https://hg.mozilla.org/integration/autoland/rev/9286a2f046a4
[wpt PR 21707] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75
You need to log in before you can comment on or make changes to this bug.