Update web-platform-tests to revision 097043b336e46876e281ddec3bb014fe9c480128

This commit is contained in:
WPT Sync Bot 2019-08-03 10:25:42 +00:00
parent ecd32570c0
commit b68253eac0
405 changed files with 9164 additions and 3050 deletions

View file

@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
expected: FAIL
expected: TIMEOUT
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: FAIL

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,2 @@
[mix-blend-mode-animation.html]
expected: FAIL

View file

@ -53,3 +53,9 @@
[Property font-kerning inherits]
expected: FAIL
[Property font-variation-settings inherits]
expected: FAIL
[Property font-variation-settings has initial value normal]
expected: FAIL

View file

@ -0,0 +1,13 @@
[font-variation-settings-computed.html]
[Property font-variation-settings value 'normal' computes to 'normal']
expected: FAIL
[Property font-variation-settings value '"wght" 700' computes to '"wght" 700']
expected: FAIL
[Property font-variation-settings value '"wght" 700, "XHGT" 0.7' computes to '"wght" 700, "XHGT" 0.7']
expected: FAIL
[Property font-variation-settings value '"XHGT" calc(0.4 + 0.3)' computes to '"XHGT" 0.7']
expected: FAIL

View file

@ -0,0 +1,16 @@
[font-variation-settings-valid.html]
[e.style['font-variation-settings'\] = "\\"wght\\" 700" should set the property value]
expected: FAIL
[e.style['font-variation-settings'\] = "\\"a cd\\" 0.5" should set the property value]
expected: FAIL
[e.style['font-variation-settings'\] = "\\"ab@d\\" 0.5" should set the property value]
expected: FAIL
[e.style['font-variation-settings'\] = "normal" should set the property value]
expected: FAIL
[e.style['font-variation-settings'\] = "\\"wght\\" 700, \\"XHGT\\" 0.7" should set the property value]
expected: FAIL

View file

@ -509,3 +509,15 @@
[border-left-width length(pt) / values]
expected: FAIL
[padding-bottom length(mm) / values]
expected: FAIL
[margin-top length(px) / values]
expected: FAIL
[padding-left length(pt) / values]
expected: FAIL
[padding-left length(pc) / values]
expected: FAIL

View file

@ -0,0 +1,7 @@
[scroll-behavior-computed.html]
[Property scroll-behavior value 'smooth' computes to 'smooth']
expected: FAIL
[Property scroll-behavior value 'auto' computes to 'auto']
expected: FAIL

View file

@ -0,0 +1,7 @@
[scroll-behavior-valid.html]
[e.style['scroll-behavior'\] = "auto" should set the property value]
expected: FAIL
[e.style['scroll-behavior'\] = "smooth" should set the property value]
expected: FAIL

View file

@ -315,24 +315,24 @@
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL

View file

@ -56,3 +56,6 @@
[separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL
[separate text/javascript x/x]
expected: FAIL

View file

@ -11,3 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,4 +0,0 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -1,5 +1,24 @@
[open-features-negative-innerwidth-innerheight.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
expected: FAIL
[features "innerheight=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404.5" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerheight=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404e1" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,5 +1,24 @@
[open-features-negative-screenx-screeny.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
expected: FAIL
[features "screenx=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "screeny=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "screenx=-0" should NOT set "left=204"]
expected: TIMEOUT
[features "screenx=-204.5" should NOT set "left=204"]
expected: TIMEOUT

View file

@ -1,5 +1,24 @@
[open-features-negative-top-left.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `top`, `left`]
expected: FAIL
[features "top=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "top=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "top=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204.5" should NOT set "left=204"]
expected: TIMEOUT
[features "left=-0" should NOT set "left=204"]
expected: TIMEOUT

View file

@ -1,5 +1,24 @@
[open-features-negative-width-height.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `width`, `height`]
expected: FAIL
[features "height=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "width=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404e1" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404.5" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,32 +1,48 @@
[open-features-non-integer-height.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `height`]
expected: FAIL
[features "height=405*3" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405.32" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405e1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405/5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405^4" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405.5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405e-1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405 " should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=405LLl" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "height=/404" should NOT set "height=404"]
expected: TIMEOUT
[top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[top=0,left=0: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[features "height=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=L404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-innerheight.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
expected: FAIL
[features "innerheight=405e-1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405LLl" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405^4" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405e1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405 " should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405/5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405.32" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405.5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=405*3" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "innerheight=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=/404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-innerwidth.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
expected: FAIL
[features "innerwidth=405e-1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405*3" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405.5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405e1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405.32" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405 " should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405LLl" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405/5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=405^4" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "innerwidth=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=_404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=L404" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-left.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `left`]
expected: FAIL
[features "left=105e1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105 " should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105/5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105e-1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105^4" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105LLl" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105.32" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105*3" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=105.5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "left=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=/104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=_104" should NOT set "left=104"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-screenx.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
expected: FAIL
[features "screenx=105.5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105e1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105 " should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105*3" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105e-1" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105^4" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105LLl" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105/5" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=105.32" should set "left=105"]
expected: FAIL
expected: TIMEOUT
[features "screenx=_104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=/104" should NOT set "left=104"]
expected: TIMEOUT

View file

@ -1,32 +1,42 @@
[open-features-non-integer-screeny.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
expected: FAIL
[features "screeny=405^4" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405e-1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405LLl" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405e1" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405 " should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405/5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405*3" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405.32" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=405.5" should set "height=405"]
expected: FAIL
expected: TIMEOUT
[features "screeny=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=/404" should NOT set "height=404"]
expected: TIMEOUT

View file

@ -1,32 +1,48 @@
[open-features-non-integer-width.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `width`]
expected: FAIL
[features "width=405^4" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405.5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405e1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405 " should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405.32" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405LLl" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405*3" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405e-1" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[features "width=405/5" should set "width=405"]
expected: FAIL
expected: TIMEOUT
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=_404" should NOT set "width=404"]
expected: TIMEOUT
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=L404" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -0,0 +1,28 @@
[align.html]
[align=middle on replaced elements]
expected: FAIL
[align=absmiddle on replaced elements]
expected: FAIL
[align=top on replaced elements]
expected: FAIL
[align=texttop on replaced elements]
expected: FAIL
[align=left on replaced elements]
expected: FAIL
[align=center on replaced elements]
expected: FAIL
[align=absbottom on replaced elements]
expected: FAIL
[align=abscenter on replaced elements]
expected: FAIL
[align=right on replaced elements]
expected: FAIL

View file

@ -1,7 +1,11 @@
[form-submission-algorithm.html]
expected: TIMEOUT
[If form's firing submission events is true, then return; 'submit' event]
expected: FAIL
[If form's firing submission events is true, then return; 'invalid' event]
expected: FAIL
[Cannot navigate (after constructing the entry list)]
expected: TIMEOUT

View file

@ -1,7 +0,0 @@
[toggleEvent.html]
[Calling open twice on 'details' fires only one toggle event]
expected: FAIL
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
expected: FAIL

View file

@ -0,0 +1,4 @@
[iframe-inheritance-data.html]
[iframes with data url uses no referrer]
expected: FAIL

View file

@ -0,0 +1,5 @@
[iframe-inheritance-srcdoc-child.html]
expected: TIMEOUT
[iframes srcdoc child correctly inherit the ancestor's referrer policy]
expected: NOTRUN

View file

@ -0,0 +1,5 @@
[iframe-inheritance-srcdoc.html]
expected: TIMEOUT
[iframes srcdoc correctly inherit the ancestor's referrer policy]
expected: NOTRUN

View file

@ -1,4 +1,5 @@
[realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL

View file

@ -152,3 +152,9 @@
[X SNR (-379.8758083905784 dB) is not greater than or equal to 65.737. Got -379.8758083905784.]
expected: FAIL
[X SNR (-36.33203143920875 dB) is not greater than or equal to 65.737. Got -36.33203143920875.]
expected: FAIL
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.7228890145421028e+3 at index of 39267.\n\t[39267\]\t9.7219062500000000e+3\t-9.8276454210281372e-1\t9.7228890145421028e+3\t9.8934064040793655e+3\t3.8985999999999999e-3\n\tMax RelError of 9.8934064040793655e+3 at index of 39267.\n\t[39267\]\t9.7219062500000000e+3\t-9.8276454210281372e-1\t9.7228890145421028e+3\t9.8934064040793655e+3\t3.8985999999999999e-3\n]
expected: FAIL

View file

@ -23,3 +23,6 @@
[test_abort_by_user_prompt_twice[alert\]]
expected: FAIL
[test_override_listeners]
expected: FAIL

View file

@ -0,0 +1,4 @@
[xrInputSource_profiles.https.html]
[WebXR InputSource's profiles list can be set]
expected: FAIL

View file

@ -1,5 +1,4 @@
[xrWebGLLayer_constructor.https.html]
expected: ERROR
[Ensure that XRWebGLLayer's constructor throws appropriate errors]
expected: TIMEOUT
expected: FAIL

View file

@ -19,3 +19,14 @@ action "website-build-and-publish" {
runs = ["/bin/bash", "tools/ci/website_build.sh"]
secrets = ["DEPLOY_TOKEN"]
}
workflow "Synchronize the Pull Request Preview" {
on = "pull_request"
resolves = "update-pr-preview"
}
action "update-pr-preview" {
uses = "./tools/docker/github"
runs = ["python", "tools/ci/update_pr_preview.py", "https://api.github.com"]
secrets = ["GITHUB_TOKEN"]
}

View file

@ -57,6 +57,57 @@ def dump_test_parameters(selection):
selection, indent=2, separators=(',', ': '), sort_keys=True)
def get_test_filename(config, selection):
'''Returns the filname for the main test HTML file'''
selection_for_filename = copy.deepcopy(selection)
# Use 'unset' rather than 'None' in test filenames.
if selection_for_filename['delivery_value'] is None:
selection_for_filename['delivery_value'] = 'unset'
return os.path.join(config.spec_directory,
config.test_file_path_pattern % selection_for_filename)
def handle_deliveries(policy_deliveries):
'''
Generate <meta> elements and HTTP headers for the given list of
PolicyDelivery.
TODO(hiroshige): Merge duplicated code here, scope/document.py, etc.
'''
meta = ''
headers = {}
for delivery in policy_deliveries:
if delivery.value is None:
continue
if delivery.key == 'referrerPolicy':
if delivery.delivery_type == 'meta':
meta += \
'<meta name="referrer" content="%s">' % delivery.value
elif delivery.delivery_type == 'http-rp':
headers['Referrer-Policy'] = delivery.value
# TODO(kristijanburnik): Limit to WPT origins.
headers['Access-Control-Allow-Origin'] = '*'
else:
raise Exception(
'Invalid delivery_type: %s' % delivery.delivery_type)
elif delivery.key == 'mixedContent':
assert (delivery.value == 'opt-in')
if delivery.delivery_type == 'meta':
meta += '<meta http-equiv="Content-Security-Policy" ' + \
'content="block-all-mixed-content">'
elif delivery.delivery_type == 'http-rp':
headers['Content-Security-Policy'] = 'block-all-mixed-content'
else:
raise Exception(
'Invalid delivery_type: %s' % delivery.delivery_type)
else:
raise Exception('Invalid delivery_key: %s' % delivery.key)
return {"meta": meta, "headers": headers}
def generate_selection(config, selection, spec, test_html_template_basename):
test_parameters = dump_test_parameters(selection)
# Adjust the template for the test invoking JS. Indent it to look nice.
@ -80,8 +131,7 @@ def generate_selection(config, selection, spec, test_html_template_basename):
selection['sanity_checker_js'] = config.sanity_checker_js
selection['spec_json_js'] = config.spec_json_js
test_filename = os.path.join(config.spec_directory,
config.test_file_path_pattern % selection)
test_filename = get_test_filename(config, selection)
test_headers_filename = test_filename + ".headers"
test_directory = os.path.dirname(test_filename)
@ -109,13 +159,16 @@ def generate_selection(config, selection, spec, test_html_template_basename):
except:
pass
delivery = config.handleDelivery(selection, spec)
delivery = handle_deliveries([
util.PolicyDelivery(selection['delivery_type'],
selection['delivery_key'],
selection['delivery_value'])
])
if len(delivery['headers']) > 0:
with open(test_headers_filename, "w") as f:
for header in delivery['headers']:
f.write(header)
f.write('\n')
f.write('%s: %s\n' % (header, delivery['headers'][header]))
selection['meta_delivery_method'] = delivery['meta']
# Obey the lint and pretty format.

View file

@ -39,3 +39,14 @@ def load_spec_json(path_to_spec):
print(read_nth_line(f, line_number).rstrip())
print(" " * (column - 1) + "^")
sys.exit(1)
class PolicyDelivery(object):
'''
See `@typedef PolicyDelivery` comments in `resources/common.js`.
'''
def __init__(self, delivery_type, key, value):
self.delivery_type = delivery_type
self.key = key
self.value = value

View file

@ -0,0 +1,10 @@
<!DOCTYPE html>
<head>
<title>CSP script-hash block causes error event</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'sha256-deadbeef'"></meta>
</head>
<body>
<script src="support/inline-script-should-be-blocked.js"></script>
</body>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<head>
<title>CSP inline script check is done at #prepare-a-script (hash)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!--
'log1 += 'scr1 at #prepare-a-script';' => 'sha256-sI+xsvqqUw0LQQGgsgkYoXKWhlGgaCqsqVbPx0Z2A4s=' (allowed)
'log1 += 'scr1 at #execute-the-script-block';' => 'sha256-Vtap5AhPN9kbQAbWqObJexCvNDexqoIwo4XsABQBqcg=' (blocked)
-->
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'nonce-abc' 'sha256-sI+xsvqqUw0LQQGgsgkYoXKWhlGgaCqsqVbPx0Z2A4s='"></meta>
</head>
<!--
"Should element's inline behavior be blocked by Content Security Policy?"
is executed at the time of https://html.spec.whatwg.org/C/#prepare-a-script,
not at https://html.spec.whatwg.org/C/#execute-the-script-block.
So when innerText is modified after #prepare-a-script, the text BEFORE
the modification is used for hash check.
-->
<script nonce="abc">
let log1 = '';
</script>
<!-- Execution order:
async script is executed
-> stylesheet is loaded
-> inline script is executed. -->
<link rel="stylesheet" href="support/empty.css?dummy=1&pipe=trickle(d2)" type="text/css">
<script src="support/change-scripthash-before-execute.js?dummy=1&pipe=trickle(d1)" async></script>
<script id="scr1">log1 += 'scr1 at #prepare-a-script';</script>
<script nonce="abc">
test(() => {
assert_equals(log1, 'scr1 at #prepare-a-script');
}, 'scr1.innerText before modification should not be blocked');
</script>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<head>
<title>CSP inline script check is done at #prepare-a-script (hash)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!--
'log2 += 'scr2 at #prepare-a-script';' => 'sha256-9vE5NuHfEDoLvk3nPZPDX2/mnG+ZwKhpPuwQZwCDGc4=' (blocked)
'log2 += 'scr2 at #execute-the-script-block';' => 'sha256-3AdhWTFuyxSUPxmqpTJaFRx3R5WNcyGw57lFoj1rTXw=' (allowed)
-->
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'nonce-abc' 'sha256-3AdhWTFuyxSUPxmqpTJaFRx3R5WNcyGw57lFoj1rTXw='"></meta>
</head>
<!--
"Should element's inline behavior be blocked by Content Security Policy?"
is executed at the time of https://html.spec.whatwg.org/C/#prepare-a-script,
not at https://html.spec.whatwg.org/C/#execute-the-script-block.
So when innerText is modified after #prepare-a-script, the text BEFORE
the modification is used for hash check.
-->
<script nonce="abc">
let log2 = '';
</script>
<!-- Execution order:
async script is executed
-> stylesheet is loaded
-> inline script is executed. -->
<link rel="stylesheet" href="support/empty.css?dummy=2&pipe=trickle(d2)" type="text/css">
<script src="support/change-scripthash-before-execute.js?dummy=2&pipe=trickle(d1)" async></script>
<script id="scr2">log2 += 'scr2 at #prepare-a-script';</script>
<script nonce="abc">
test(() => {
assert_equals(log2, '');
}, 'scr2.innerText before modification should be blocked');
</script>

View file

@ -0,0 +1,31 @@
<!DOCTYPE html>
<head>
<title>CSP inline script check is done at #prepare-a-script (nonce)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'nonce-abc' 'sha256-deadbeef'"></meta>
</head>
<!--
"Should element's inline behavior be blocked by Content Security Policy?"
is executed at the time of https://html.spec.whatwg.org/C/#prepare-a-script,
not at https://html.spec.whatwg.org/C/#execute-the-script-block.
So when nonce is modified after #prepare-a-script, the nonce BEFORE
the modification is used for hash check.
-->
<script nonce="abc">
let log1 = '';
</script>
<!-- Execution order:
async script is executed
-> stylesheet is loaded
-> inline script is executed. -->
<link rel="stylesheet" href="support/empty.css?dummy=3&pipe=trickle(d2)" type="text/css">
<script src="support/change-scriptnonce-before-execute.js?dummy=3&pipe=trickle(d1)" async></script>
<script id="scr1" nonce="abc">log1 += 'scr1 executed';</script>
<script nonce="abc">
test(() => {
assert_equals(log1, 'scr1 executed');
}, 'scr1 nonce before modification should not be blocked');
</script>

View file

@ -0,0 +1,31 @@
<!DOCTYPE html>
<head>
<title>CSP inline script check is done at #prepare-a-script (nonce)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'nonce-abc' 'sha256-deadbeef'"></meta>
</head>
<!--
"Should element's inline behavior be blocked by Content Security Policy?"
is executed at the time of https://html.spec.whatwg.org/C/#prepare-a-script,
not at https://html.spec.whatwg.org/C/#execute-the-script-block.
So when nonce is modified after #prepare-a-script, the nonce BEFORE
the modification is used for hash check.
-->
<script nonce="abc">
let log2 = '';
</script>
<!-- Execution order:
async script is executed
-> stylesheet is loaded
-> inline script is executed. -->
<link rel="stylesheet" href="support/empty.css?dummy=4&pipe=trickle(d2)" type="text/css">
<script src="support/change-scriptnonce-before-execute.js?dummy=4&pipe=trickle(d1)" async></script>
<script id="scr2" nonce="wrong">log2 += 'scr2 executed';</script>
<script nonce="abc">
test(() => {
assert_equals(log2, '');
}, 'scr2 nonce before modification should be blocked');
</script>

View file

@ -0,0 +1,10 @@
// This script is executed after |scr1| and |scr2| are inserted into DOM
// before their execution (if not blocked by CSP).
if (document.getElementById("scr1")) {
document.getElementById("scr1").innerText =
"log1 += 'scr1 at #execute-the-script-block';";
}
if (document.getElementById("scr2")) {
document.getElementById("scr2").innerText =
"log2 += 'scr2 at #execute-the-script-block';";
}

View file

@ -0,0 +1,8 @@
// This script is executed after |scr1| and |scr2| are inserted into DOM
// before their execution (if not blocked by CSP).
if (document.getElementById('scr1')) {
document.getElementById('scr1').setAttribute('nonce', 'wrong');
}
if (document.getElementById('scr2')) {
document.getElementById('scr2').setAttribute('nonce', 'abc');
}

View file

@ -0,0 +1,14 @@
var t;
async_test(t => {
self.t = t;
const s = document.createElement('script');
s.onerror = t.step_func(function() {
assert_unreached('Script error event should not be fired.');
});
s.onload = t.step_func(function() {
assert_unreached('Script load event should not be fired.');
});
s.innerText = 'self.t.assert_unreached("Script should not run.");'
document.body.appendChild(s);
setTimeout(() => t.done(), 2000);
});

View file

@ -4,7 +4,7 @@
<meta charset="utf-8">
<title>Inheritance of CSS Fonts Level 3 properties</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#property-index">
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-stretch-prop">
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#property-index">
<meta name="assert" content="Properties inherit according to the spec.">
<meta name="assert" content="Properties have initial values according to the spec.">
<script src="/resources/testharness.js"></script>
@ -40,6 +40,7 @@ assert_inherited('font-variant-east-asian', 'normal', 'ruby');
assert_inherited('font-variant-ligatures', 'normal', 'none');
assert_inherited('font-variant-numeric', 'normal', 'ordinal');
assert_inherited('font-variant-position', 'normal', 'super');
assert_inherited('font-variation-settings', 'normal', '"wght" 700');
assert_inherited('font-weight', '400' /* normal */, '900');
</script>
</body>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: getComputedStyle().fontVariationSettings</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-variation-settings">
<meta name="assert" content="font-variation-settings computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value('font-variation-settings', 'normal');
test_computed_value('font-variation-settings', '"wght" 700');
test_computed_value('font-variation-settings', '"wght" 700, "XHGT" 0.7');
test_computed_value('font-variation-settings', '"XHGT" calc(0.4 + 0.3)', '"XHGT" 0.7');
</script>
</body>
</html>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 4: parsing font-variation-settings with invalid values</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-variation-settings">
<meta name="assert" content="font-variation-settings supports only the grammar 'normal | [ <string> <number>] #'.">
<meta name="assert" content="font-variation-settings strings must have 4 characters.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value('font-variation-settings', '700');
test_invalid_value('font-variation-settings', '"XHGT"');
test_invalid_value('font-variation-settings', 'wght 700');
test_invalid_value('font-variation-settings', 'normal, "wght" 700');
test_invalid_value('font-variation-settings', '"wgt" 700');
test_invalid_value('font-variation-settings', '"XHGTX" 0.7');
test_invalid_value('font-variation-settings', '"abc\1F" 0.5');
test_invalid_value('font-variation-settings', '"abc\7F" 0.5');
test_invalid_value('font-variation-settings', '"abc\A9" 0.5');
</script>
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 4: parsing font-variation-settings with valid values</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-variation-settings">
<meta name="assert" content="font-variation-settings supports the full grammar 'normal | [ <string> <number>] #'.">
<meta name="assert" content="font-variation-settings strings are case sensitive.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value('font-variation-settings', 'normal');
test_valid_value('font-variation-settings', '"wght" 700');
test_valid_value('font-variation-settings', '"wght" 700, "XHGT" 0.7');
test_valid_value('font-variation-settings', '"a cd" 0.5');
test_valid_value('font-variation-settings', '"ab@d" 0.5');
</script>
</body>
</html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Inline Layout: getComputedStyle().dominantBaseline</title>
<link rel="help" href="https://drafts.csswg.org/css-inline-3/#dominant-baseline-property">
<meta name="assert" content="dominant-baseline computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("dominant-baseline", "auto");
test_computed_value("dominant-baseline", "text-bottom");
test_computed_value("dominant-baseline", "alphabetic");
test_computed_value("dominant-baseline", "ideographic");
test_computed_value("dominant-baseline", "middle");
test_computed_value("dominant-baseline", "central");
test_computed_value("dominant-baseline", "mathematical");
test_computed_value("dominant-baseline", "hanging");
test_computed_value("dominant-baseline", "text-top");
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Inline Layout: parsing dominant-baseline with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-inline-3/#dominant-baseline-property">
<meta name="assert" content="dominant-baseline supports only the grammar 'auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("dominant-baseline", "normal");
test_invalid_value("dominant-baseline", "none");
test_invalid_value("dominant-baseline", "alphabetic, ideographic");
test_invalid_value("dominant-baseline", "middle central");
</script>
</body>
</html>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Inline Layout: parsing dominant-baseline with valid values</title>
<link rel="help" href="https://drafts.csswg.org/css-inline-3/#dominant-baseline-property">
<meta name="assert" content="dominant-baseline supports the full grammar 'auto | text-bottom | alphabetic | ideographic | middle | central | mathematical | hanging | text-top'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("dominant-baseline", "auto");
test_valid_value("dominant-baseline", "text-bottom");
test_valid_value("dominant-baseline", "alphabetic");
test_valid_value("dominant-baseline", "ideographic");
test_valid_value("dominant-baseline", "middle");
test_valid_value("dominant-baseline", "central");
test_valid_value("dominant-baseline", "mathematical");
test_valid_value("dominant-baseline", "hanging");
test_valid_value("dominant-baseline", "text-top");
</script>
</body>
</html>

View file

@ -52,7 +52,7 @@
<div class="outer">
<div class="blueborders"></div>
<div class="innerbg" style="left: 0"></div>
<div class="inner lefthalf" style="left: 0; height: 60px">
<div class="inner lefthalf" style="left: 0">
AAAAA<br>
BBBBB<br>
CCCCC

View file

@ -5,6 +5,7 @@
<link rel="author" title="Mozilla" href="https://mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#column-gaps-and-rules">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#cf">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="match" href="multicol-breaking-000-ref.html">
<style>

View file

@ -67,7 +67,7 @@
JJJJJ
</div>
<div class="innerbg" style="left: 204px"></div>
<div class="inner lefthalf" style="left: 204px; height: 80px">
<div class="inner lefthalf" style="left: 204px">
KKKKK<br>
LLLLL<br>
MMMMM<br>

View file

@ -5,6 +5,7 @@
<link rel="author" title="Mozilla" href="https://mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#column-gaps-and-rules">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#cf">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="match" href="multicol-breaking-001-ref.html">
<style>

View file

@ -77,7 +77,7 @@
</div>
<div class="border-bottom" style="left: 0"></div>
<div class="innerbg" style="left: 204px"></div>
<div class="inner lefthalf" style="left: 204px; height: 80px">
<div class="inner lefthalf" style="left: 204px">
KKKKK<br>
LLLLL<br>
MMMMM<br>

View file

@ -6,6 +6,7 @@
<link rel="author" title="Mozilla" href="https://mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#column-gaps-and-rules">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#cf">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="help" href="https://drafts.csswg.org/css-break/#break-decoration">
<link rel="match" href="multicol-breaking-004-ref.html">
<style>

View file

@ -32,7 +32,7 @@
</style>
<div class="outer">
<div class="inner lefthalf" style="left: 0; height: 60px">
<div class="inner lefthalf" style="left: 0">
AAAAA<br>
BBBBB<br>
CCCCC

View file

@ -5,6 +5,7 @@
<link rel="author" title="Mozilla" href="https://mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#column-gaps-and-rules">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#cf">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="match" href="multicol-breaking-nobackground-000-ref.html">
<style>

View file

@ -46,7 +46,7 @@
IIIII<br>
JJJJJ
</div>
<div class="inner lefthalf" style="left: 204px; height: 80px">
<div class="inner lefthalf" style="left: 204px">
KKKKK<br>
LLLLL<br>
MMMMM<br>

View file

@ -5,6 +5,7 @@
<link rel="author" title="Mozilla" href="https://mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#column-gaps-and-rules">
<link rel="help" href="https://drafts.csswg.org/css-multicol/#cf">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="match" href="multicol-breaking-nobackground-001-ref.html">
<style>

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test Reference: Test the column rules' block-size with nested balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
.outer {
column-count: 2;
column-rule: 6px solid black;
column-fill: auto;
width: 400px;
height: 250px;
}
.inner {
column-count: 2;
column-rule: 3px solid gray;
column-fill: auto;
height: 200px;
}
.outer-block {
background-color: lightgreen;
height: 200px;
}
.inner-block {
background-color: lightblue;
height: 150px;
}
.space {
height: 50px;
}
</style>
<article class="outer">
<div class="outer-block"></div>
<div class="space"></div>
<article class="inner">
<div class="inner-block"></div><div class="space"></div>
<div class="inner-block"></div><div class="space"></div>
</article>
</article>
</html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the column rules' block-size with nested balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#cf">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-gaps-and-rules">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="match" href="multicol-rule-nested-balancing-001-ref.html">
<meta name="assert" content="This test verifies that the column-rules are extended to the content block-end edges of their corresponding inner and outer multicol container.">
<style>
.outer {
column-count: 2;
column-rule: 6px solid black;
width: 400px;
height: 250px;
}
.inner {
column-count: 2;
column-rule: 3px solid gray;
height: 200px;
}
.outer-block {
background-color: lightgreen;
height: 200px;
}
.inner-block {
background-color: lightblue;
height: 300px;
}
</style>
<article class="outer">
<div class="outer-block"></div>
<article class="inner">
<div class="inner-block"></div>
</article>
</article>
</html>

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test Reference: Test the column rules' block-size with nested balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
.outer {
column-count: 2;
column-rule: 6px solid black;
column-fill: auto;
width: 400px;
height: 250px;
}
.inner {
column-count: 2;
column-rule: 3px solid gray;
column-fill: auto;
height: 200px;
}
.outer-block {
background-color: lightgreen;
height: 200px;
}
.inner-block {
background-color: lightblue;
height: 200px;
}
.space {
height: 50px;
}
</style>
<article class="outer">
<div class="outer-block"></div>
<div class="space"></div>
<article class="inner">
<div class="inner-block"></div>
<div class="inner-block"></div>
</article>
</article>
</html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the column rules' block-size with nested balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#cf">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-gaps-and-rules">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="match" href="multicol-rule-nested-balancing-002-ref.html">
<meta name="assert" content="This test verifies that the column-rules are extended to the content block-end edges of their corresponding inner and outer multicol container, where the inner container has height: auto.">
<style>
.outer {
column-count: 2;
column-rule: 6px solid black;
width: 400px;
height: 250px;
}
.inner {
column-count: 2;
column-rule: 3px solid gray;
height: auto;
}
.outer-block {
background-color: lightgreen;
height: 200px;
}
.inner-block {
background-color: lightblue;
height: 400px;
}
</style>
<article class="outer">
<div class="outer-block"></div>
<article class="inner">
<div class="inner-block"></div>
</article>
</article>
</html>

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test Reference: Test the block-size distribution across column-span split in a balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
article {
column-count: 2;
width: 400px;
background-color: lightgreen;
}
div.container {
height: 200px;
background-color: pink;
}
div.block {
width: 100px;
height: 200px;
background-color: yellow;
}
div.column-span {
width: 400px;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<div class="container">
<div class="block">block1</div>
</div>
</article>
<div class="column-span">column-span1</div>
<article>
<div class="container">
<div class="block">block2</div>
</div>
</article>
<div class="column-span">column-span2</div>
<article>
<div class="container" style="height: 50px;">
<div class="block">block3</div>
</div>
</article>
</html>

View file

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the block-size distribution across column-span split in a balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
<link rel="match" href="multicol-span-all-children-height-004a-ref.html">
<meta name="assert" content="This test verifies that a block container with a fixed block-size, split by column-span, distributes just enough block-size to hold its children.">
<style>
article {
column-count: 2;
width: 400px;
background-color: lightgreen;
}
div.container {
height: 450px;
background-color: pink;
}
div.block {
width: 100px;
height: 200px;
background-color: yellow;
}
div.column-span {
column-span: all;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<!-- The container is split by the column-spans.
a) Before column-span1, it distributes 200px height into two columns,
and each column takes 100px height.
b) In between column-span1 and column-span2, same distribution as a).
c) After column-span2, it has 50px height left, which goes to the first
column.
-->
<div class="container">
<!-- Each block spreads its height evenly into two columns, and
each column contains 100px height. -->
<div class="block">block1</div>
<div class="column-span">column-span1</div>
<div class="block">block2</div>
<div class="column-span">column-span2</div>
<div class="block">block3</div>
</div>
</article>
</html>

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test Reference: Test the block-size distribution across column-span split in a balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
article {
column-count: 2;
width: 400px;
background-color: lightgreen;
}
div.container {
height: 200px;
background-color: pink;
}
div.block {
width: 100px;
height: 200px;
background-color: yellow;
}
div.column-span {
width: 400px;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<div class="container">
<div class="block">block1</div>
</div>
</article>
<div class="column-span">column-span1</div>
<article>
<div class="container" style="height: 150px;">
<div class="block">block2</div>
</div>
</article>
<div class="column-span">column-span2</div>
<article>
<div class="container" style="height: 0;">
<div class="block">block3</div>
</div>
</article>
</html>

View file

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the block-size distribution across column-span split in a balancing multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
<link rel="match" href="multicol-span-all-children-height-004b-ref.html">
<meta name="assert" content="This test verifies that a block container with a fixed block-size, split by column-span, distributes just enough block-size to hold its children.">
<style>
article {
column-count: 2;
width: 400px;
background-color: lightgreen;
}
div.container {
height: 350px;
background-color: pink;
}
div.block {
width: 100px;
height: 200px;
background-color: yellow;
}
div.column-span {
column-span: all;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<!-- The container is split by the column-spans.
a) Before column-span1, it distributes 200px height into two columns,
and each column takes 100px height.
b) In between column-span1 and column-span2, it has 150px left. The first
column takes 100px, and the second column takes 50px.
-->
<div class="container">
<!-- Each block spreads its height evenly into two columns, and
each column contains 100px height. -->
<div class="block">block1</div>
<div class="column-span">column-span1</div>
<div class="block">block2</div>
<div class="column-span">column-span2</div>
<div class="block">block3</div>
</div>
</article>
</html>

View file

@ -0,0 +1,46 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test Reference: Test the block-size distribution across column-span split in a column-fill:auto multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
article {
column-count: 1;
width: 200px;
background-color: lightgreen;
}
div.container {
background-color: pink;
}
div.block {
width: 100px;
height: 100px;
background-color: yellow;
}
div.column-span {
width: 200px;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<div class="container">
<div class="block">block1</div>
</div>
</article>
<div class="column-span">column-span1</div>
<article>
<div class="container">
<div class="block">block2</div>
</div>
</article>
<div class="column-span">column-span2</div>
<article>
<div class="container" style="height: 50px;">
<div class="block">block3</div>
</div>
</article>
</html>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the block-size distribution across column-span split in a column-fill:auto multicol container</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
<link rel="match" href="multicol-span-all-children-height-005-ref.html">
<meta name="assert" content="This test verifies that a block container with a fixed block-size, split by column-span, distributes just enough block-size to hold its children.">
<style>
article {
column-count: 1;
column-fill: auto;
width: 200px;
background-color: lightgreen;
}
div.container {
height: 250px;
background-color: pink;
}
div.block {
width: 100px;
height: 100px;
background-color: yellow;
}
div.column-span {
column-span: all;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<!-- The container is split by the column-spans.
a) Before column-span1, it distributes 100px height into the sole column.
b) In between column-span1 and column-span2, same distribution as a).
c) After column-span2, it has 50px height left.
-->
<div class="container">
<div class="block">block1</div>
<div class="column-span">column-span1</div>
<div class="block">block2</div>
<div class="column-span">column-span2</div>
<div class="block">block3</div>
</div>
</article>
</html>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test Reference: Test the borders drawing for a block split by column-span</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
article {
column-count: 2;
width: 400px;
background-color: lightgreen;
}
div.container {
background-color: pink;
border: 20px solid purple;
}
div.block {
/* This block spreads evenly into two columns, each has 100px height. */
width: 100px;
height: 200px;
background-color: yellow;
}
div.column-span {
width: 400px;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<div class="container" style="border-bottom: none; height: 200px;">
<div class="block">block1</div>
</div>
</article>
<div class="column-span">column-span1</div>
<article>
<div class="container" style="border-top: none; height: 50px;">
<div class="block">block2</div>
</div>
</article>
</html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the borders drawing for a block split by column-span</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
<link rel="match" href="multicol-span-all-children-height-006-ref.html">
<meta name="assert" content="This test verifies that the borders of block container with a fixed block-size, split by column-span, are skipped on the sides adjacent to column-span.">
<style>
article {
column-count: 2;
width: 400px;
background-color: lightgreen;
}
div.container {
height: 250px;
background-color: pink;
border: 20px solid purple;
}
div.block {
width: 100px;
height: 200px;
background-color: yellow;
}
div.column-span {
column-span: all;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<div class="container">
<div class="block">block1</div>
<div class="column-span">column-span1</div>
<div class="block">block2</div>
</div>
</article>
</html>

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the column-rule's block-size</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
article {
column-count: 2;
column-rule: 6px solid;
width: 400px;
height: 500px;
background-color: lightgreen;
border: 2em solid purple;
padding: 2em;
}
div.block {
width: 100px;
height: 200px;
}
div.column-span {
column-span: all;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<div class="block">block1</div>
<div class="column-span">column-span1</div>
<div class="block">block2</div>
<div class="column-span">column-span2</div>
<div class="block" style="height: 400px;">block3</div>
</article>
</html>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>CSS Multi-column Layout Test: Test the column rule's block-size</title>
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-gaps-and-rules">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
<link rel="match" href="multicol-span-all-rule-001-ref.html">
<meta name="assert" content="This test verifies that the column-rule after the last column-span is extended to the content block-end edge of the multicol container.">
<style>
article {
column-count: 2;
column-rule: 6px solid;
width: 400px;
height: 500px;
background-color: lightgreen;
border: 2em solid purple;
padding: 2em;
}
div.block {
width: 100px;
height: 200px;
}
div.column-span {
column-span: all;
height: 50px;
background-color: lightblue;
}
</style>
<article>
<!-- Each block spreads its height evenly into two columns, and
each column contains 100px height. -->
<div class="block">block1</div>
<div class="column-span">column-span1</div>
<div class="block">block2</div>
<div class="column-span">column-span2</div>
<!-- The column rule after column-span2 should extend to the content edge
of the multicol container as if block3 has "height: 400px;" -->
<div class="block">block3</div>
</article>
</html>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=919415">
<div id="target" style="position:absolute; overflow:auto; height:100px; top:100px;"></div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
test(()=> {
document.body.offsetTop;
target.style.top = "50px";
}, "no crash");
</script>

View file

@ -15,6 +15,8 @@
<div id="target"></div>
</div>
<script>
assert_not_inherited('overscroll-behavior-block', 'auto', 'contain');
assert_not_inherited('overscroll-behavior-inline', 'auto', 'contain');
assert_not_inherited('overscroll-behavior-x', 'auto', 'contain');
assert_not_inherited('overscroll-behavior-y', 'auto', 'contain');
</script>

View file

@ -0,0 +1,22 @@
<!doctype html>
<title>CSS Test: ::before box removed when display set to 'none'.</title>
<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#generated-content">
<link rel="match" href="../reference/pass_if_pass_below.html">
<style>
#id::before {
content: "FAIL";
position: absolute;
width: 100px;
height: 100px;
background-color: red;
}
#id.none::before {
display: none;
}
</style>
<p>Test passes if there is the word "PASS" below.</p>
<div id="id" class="open">PASS</div>
<script>
id.offsetTop;
id.className = "none";
</script>

View file

@ -16,7 +16,7 @@
background: green;
font-family: monospace;
width: 1ch;
height: 20em;
height: 19em;
}
#test {
width: 1ch;
@ -25,9 +25,12 @@
font-family: monospace;
line-break: anywhere;
}
span {
background: red;
}
</style>
<p>Test passes if there is a green rectangle below and no red.</p>
<div id=green></div>
<!-- with line breaks everywhere, none of the following characters should stick out from under the green div -->
<div id=test>aa-a.a)a,aa&nbsp;a&#xfeff;a&#x2060;a&#x200d;a・a</div>
<div id=test>aa-a.a)a,aa<span>&nbsp;</span>a&#xfeff;a&#x2060;a&#x200d;a・a</div>

View file

@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang=en>
<meta charset="utf-8">
<title>CSS Text Test Reference</title>
@ -9,7 +9,7 @@
background: green;
font-family: monospace;
width: 1ch;
height: 20em;
height: 19em;
}
</style>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<title>CSS Text Test: Chrome pre-line crash test</title>
<link rel="help" href="https://crbug.com/989827">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
br { white-space: pre-line }
</style>
<script>
test(() => {
document.documentElement.remove();
const br = document.createElement("br");
br.appendChild(document.createTextNode(""));
document.appendChild(br);
br.offsetTop;
br.firstChild.data = " ";
}, "Modifying data of a text child of a root br element with pre-line should not crash.");
</script>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSSOM View: getComputedStyle().scrollBehavior</title>
<link rel="help" href="https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior">
<meta name="assert" content="scroll-behavior computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value("scroll-behavior", 'auto');
test_computed_value("scroll-behavior", 'smooth');
</script>
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSSOM View: parsing scroll-behavior with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior">
<meta name="assert" content="scroll-behavior supports only the grammar 'auto | smooth'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("scroll-behavior", 'normal');
test_invalid_value("scroll-behavior", 'auto smooth');
test_invalid_value("scroll-behavior", 'auto, smooth');
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSSOM View: parsing scroll-behavior with valid values</title>
<link rel="help" href="https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior">
<meta name="assert" content="scroll-behavior supports the full grammar 'auto | smooth'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("scroll-behavior", 'auto');
test_valid_value("scroll-behavior", 'smooth');
</script>
</body>
</html>

View file

@ -42,7 +42,7 @@
to: 'right -140% bottom -60%',
}, [
{at: -1, expect: 'calc(960px - 240%) calc(800px - 160%)'},
{at: 0, expect: 'left 480px top 400px'},
{at: 0, expect: 'left calc(0% + 480px) top calc(0% + 400px)'},
{at: 0.125, expect: 'calc(420px + 30%) calc(350px + 20%)'},
{at: 0.875, expect: 'calc(210% + 60px) calc(140% + 50px)'},
{at: 1, expect: 'right -140% bottom -60%'},
@ -54,12 +54,12 @@
from: 'left top',
to: 'left 8px bottom 20%',
}, [
{at: -1, expect: '-8px -80%'},
{at: -1, expect: 'calc(0% - 8px) -80%'},
{at: 0, expect: 'left top'},
{at: 0.125, expect: '1px 10%'},
{at: 0.875, expect: '7px 70%'},
{at: 1, expect: 'left 8px bottom 20%'},
{at: 2, expect: '16px 160%'}
{at: 0.125, expect: 'calc(0% + 1px) 10%'},
{at: 0.875, expect: 'calc(0% + 7px) 70%'},
{at: 1, expect: 'left calc(0% + 8px) bottom 20%'},
{at: 2, expect: 'calc(0% + 16px) 160%'}
]);
test_no_interpolation({

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<title>CSS Motion Path: Combined transformation matrix interpolation</title>
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#ctm">
<link rel="match" href="offset-path-with-transforms-ref.html">
<meta name="assert" content="This tests animating combined transformation matrix.">
<style>
@keyframes anim {
to {
translate: 0px 100px;
offset-distance: 100%;
transform: translateX(-100px);
}
}
#target {
position: absolute;
width: 100px;
height: 50px;
background-color: lime;
offset-path: path("M25 0v100");
animation: anim 10s -5s paused linear;
}
</style>
</head>
<body onload="load()">
<div id="target"></div>
<div style='width: 50px; height: 100px; background-color: red;'></div>
</body>
<script>
requestAnimationFrame(() => {
document.documentElement.classList.remove('reftest-wait');
});
</script>
</html>

View file

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS Motion Path: Combined transformation matrix interpolation reference</title>
<style>
#target {
width: 50px;
height: 100px;
background-color: lime;
}
</style>
</head>
<body>
<div id="target"></div>
</body>
</html>

View file

@ -22,7 +22,7 @@
test(function(){
target.style = 'offset-position: calc(30px + 20%) calc(-200px + 8em + 100%);';
assert_equals(getComputedStyle(target).offsetPosition, 'calc(20% + 30px) calc(100% + -40px)');
assert_equals(getComputedStyle(target).offsetPosition, 'calc(20% + 30px) calc(100% - 40px)');
}, 'offset-position supports calc');
test(function(){
@ -32,7 +32,7 @@ test(function(){
test(function(){
target.style = 'offset-distance: calc(-100px + 50%);';
assert_equals(getComputedStyle(target).offsetDistance, 'calc(50% + -100px)');
assert_equals(getComputedStyle(target).offsetDistance, 'calc(50% - 100px)');
}, 'offset-distance supports calc');
test(function(){
@ -42,7 +42,7 @@ test(function(){
test(function(){
target.style = 'offset-anchor: calc(30px + 20%) calc(-200px + 8em + 100%);';
assert_equals(getComputedStyle(target).offsetAnchor, 'calc(20% + 30px) calc(100% + -40px)');
assert_equals(getComputedStyle(target).offsetAnchor, 'calc(20% + 30px) calc(100% - 40px)');
}, 'offset-anchor supports calc');
</script>

View file

@ -19,7 +19,7 @@ test_valid_value("offset-anchor", "center center");
test_valid_value("offset-anchor", "right center");
test_valid_value("offset-anchor", "center top");
test_valid_value("offset-anchor", "center bottom");
test_valid_value("offset-anchor", "calc(10px + 20%) center");
test_valid_value("offset-anchor", "calc(20% + 10px) center");
test_valid_value("offset-anchor", "right 30em");
test_valid_value("offset-anchor", "10px 20%");
test_valid_value("offset-anchor", "left -10px top -20%");

View file

@ -20,7 +20,7 @@ if ('capture' in HTMLInputElement.prototype) {
instance['capture'] = 'user';
const logEntries = element.takeLog();
assert_array_equals(logEntries.types(), ['attributeChanged']);
assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: '', newValue: 'user', namespace: null});
assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: null, newValue: 'user', namespace: null});
}, 'capture on HTMLInputElement must enqueue an attributeChanged reaction when adding new attribute');
test(() => {
@ -43,7 +43,7 @@ if ('capture' in HTMLInputElement.prototype) {
instance['capture'] = 'asdf';
const logEntries = element.takeLog();
assert_array_equals(logEntries.types(), ['attributeChanged']);
assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: '', newValue: 'asdf', namespace: null});
assert_attribute_log_entry(logEntries.last(), {name: 'capture', oldValue: null, newValue: 'asdf', namespace: null});
}, 'capture on HTMLInputElement must enqueue an attributeChanged reaction when adding invalid value default');
test(() => {

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -3,12 +3,16 @@
When running Chrome, there are some useful command line arguments.
You can inform `wpt` of the release channel of Chrome using `--channel`.
However, `wpt` currently does not support installing Chrome or finding the
Chrome binary of a specific channel, so you would also need to specify the path
to the Chrome binary with `--binary`. For example, to run Chrome Dev on Linux:
`wpt` is able to find the correct binary in the following cases:
* On Linux for stable, beta and dev channels if
`google-chrome-{stable,beta,unstable}` are in `PATH`;
* On Mac for stable and canary channels if the official DMGs are installed.
```
./wpt run --channel dev --binary `which google-chrome-unstable` chrome
In other cases, you will need to specify the path to the Chrome binary with
`--binary`. For example:
```bash
./wpt run --channel dev --binary /path/to/non-default/google-chrome chrome
```
Note: when the channel is "dev", `wpt` will *automatically* enable all
@ -19,7 +23,7 @@ Note: when the channel is "dev", `wpt` will *automatically* enable all
If you want to enable a specific [runtime enabled feature][1], use
`--binary-arg` to specify the flag(s) that you want to pass to Chrome:
```
```bash
./wpt run --binary-arg=--enable-blink-features=AsyncClipboard chrome clipboard-apis/
```

Some files were not shown because too many files have changed in this diff Show more