Automatic update from web-platform-tests Silently ignore unknown CSS URL modifiers A CSSWG resolution[1] says that unknown modifiers should be silently ignored rather than invalidating the whole function. We shouldn't allow duplicated modifiers[2], which makes that slightly more tricky, so we also need to track whether (which?) unknown modifiers are duplicated. [1] https://github.com/w3c/csswg-drafts/issues/1603#issuecomment-467221081 [2] https://github.com/w3c/csswg-drafts/issues/12151#issuecomment-3009005578 Bug: 435625756 Change-Id: I74f4979605713173b32ea6da4a244d39de6d815c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7807092 Reviewed-by: Fredrik Söderquist <fs@opera.com> Commit-Queue: jj <jj@chromium.org> Cr-Commit-Position: refs/heads/main@{#1624624} -- wpt-commits: 0513a9e6e4beca68d576ed0f9dca0e5c0f358681 wpt-pr: 59632
85 lines
7.4 KiB
HTML
85 lines
7.4 KiB
HTML
<!DOCTYPE html>
|
|
<link rel="help" href="https://drafts.csswg.org/css-values-5/#request-url-modifiers">
|
|
<link rel="author" title="Sam Weinig" href="mailto:weinig@webkit.org">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/css/support/parsing-testcommon.js"></script>
|
|
<div id=target></div>
|
|
<script>
|
|
|
|
// No modifiers
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png")');
|
|
|
|
// <cross-origin-modifier> = cross-origin(anonymous | use-credentials)
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(use-credentials))');
|
|
|
|
// <integrity-modifier> = integrity(<string>)
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar"))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity(""))');
|
|
|
|
// <referrer-policy-modifier> = referrer-policy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url)
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer-when-downgrade))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(same-origin))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin-when-cross-origin))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin-when-cross-origin))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(unsafe-url))');
|
|
|
|
// Multiple modifiers
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))');
|
|
test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))');
|
|
|
|
// Unknown <url-modifier>s are silently ignored, and so are dropped
|
|
// from the serialized form...
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" foobar(baz))',
|
|
'url("/css/support/1x1-green.png")');
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" foobar)',
|
|
'url("/css/support/1x1-green.png")');
|
|
|
|
// ...but if there is a valid <url-modifier> following an unknown
|
|
// modifier, it should still be recognized.
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" foobar(baz) cross-origin(anonymous))',
|
|
'url("/css/support/1x1-green.png" cross-origin(anonymous))');
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" cross-origin(anonymous) foobar(a b c))',
|
|
'url("/css/support/1x1-green.png" cross-origin(anonymous))');
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" foobar(nes(ted)) integrity("sha384-foobar"))',
|
|
'url("/css/support/1x1-green.png" integrity("sha384-foobar"))');
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" foobar([brackets {braces}]) referrer-policy(no-referrer))',
|
|
'url("/css/support/1x1-green.png" referrer-policy(no-referrer))');
|
|
|
|
// Outdated modifier names (no dashes) are unknown and so are silently ignored.
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" crossorigin(anonymous))',
|
|
'url("/css/support/1x1-green.png")');
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" referrerpolicy(no-referrer))',
|
|
'url("/css/support/1x1-green.png")');
|
|
|
|
// An ident-form unknown modifier and a function-form unknown modifier
|
|
// with the same name are not duplicates of each other, since they're
|
|
// syntactically distinct.
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" foobar foobar(42))',
|
|
'url("/css/support/1x1-green.png")');
|
|
test_valid_value('background-image',
|
|
'url("/css/support/1x1-green.png" foobar(42) foobar)',
|
|
'url("/css/support/1x1-green.png")');
|
|
</script>
|