Update web-platform-tests to revision 756a676d640e9a772f565964285b2f20f6164fce

This commit is contained in:
WPT Sync Bot 2019-09-07 10:23:51 +00:00
parent a38f28f811
commit 3d5ad91231
3066 changed files with 23973 additions and 26209 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

@ -1,4 +0,0 @@
[inline-negative-margin-001.html]
[#container 1]
expected: FAIL

View file

@ -0,0 +1,2 @@
[minmax-length-percentage-interpolate.html]
expected: FAIL

View file

@ -1,5 +1,5 @@
[elementsFromPoint-iframes.html]
expected: CRASH
expected: TIMEOUT
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL

View file

@ -1,2 +0,0 @@
[contenttype_txt.html]
expected: CRASH

View file

@ -312,3 +312,15 @@
[<iframe>: separate response Content-Type: */* text/html]
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/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

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

View file

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

View file

@ -18,3 +18,18 @@
[Https downgrade-upgrade object => No headers]
expected: NOTRUN
[Https downgrade-upgrade object]
expected: NOTRUN
[Https downgrade-upgrade iframe]
expected: FAIL
[Https downgrade-upgrade fetch() api]
expected: NOTRUN
[Https downgrade-upgrade top level navigation]
expected: FAIL
[Https downgrade-upgrade embed]
expected: TIMEOUT

View file

@ -18,3 +18,18 @@
[Http upgrade fetch() api => No headers]
expected: NOTRUN
[Http upgrade embed]
expected: TIMEOUT
[Http upgrade top level navigation]
expected: FAIL
[Http upgrade iframe]
expected: FAIL
[Http upgrade object]
expected: NOTRUN
[Http upgrade fetch() api]
expected: NOTRUN

View file

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

View file

@ -1,24 +1,5 @@
[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,24 +1,5 @@
[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,48 +1,32 @@
[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: TIMEOUT
expected: FAIL
[features "height=405.32" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405e1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405/5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405^4" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405.5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405e-1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405 " should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405LLl" should set "height=405"]
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
expected: FAIL

View file

@ -1,42 +1,32 @@
[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: TIMEOUT
expected: FAIL
[features "innerheight=405LLl" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405^4" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405e1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405 " should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405/5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405.32" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405.5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405*3" should set "height=405"]
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
expected: FAIL

View file

@ -1,42 +1,32 @@
[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: TIMEOUT
expected: FAIL
[features "left=105 " should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105/5" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105e-1" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105^4" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105LLl" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105.32" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105*3" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105.5" should set "left=105"]
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
expected: FAIL

View file

@ -1,42 +1,32 @@
[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: TIMEOUT
expected: FAIL
[features "screenx=105e1" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105 " should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105*3" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105e-1" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105^4" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105LLl" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105/5" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105.32" should set "left=105"]
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
expected: FAIL

View file

@ -1,42 +1,32 @@
[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: TIMEOUT
expected: FAIL
[features "screeny=405e-1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405LLl" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405e1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405 " should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405/5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405*3" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405.32" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405.5" should set "height=405"]
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
expected: FAIL

View file

@ -1,11 +1,7 @@
[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

@ -0,0 +1,7 @@
[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

@ -1,5 +1,4 @@
[promise-rejection-events.html]
expected: TIMEOUT
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
expected: FAIL
@ -9,6 +8,3 @@
[no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from createImageBitmap]
expected: FAIL
[rejectionhandled is dispatched from a queued task, and not immediately]
expected: TIMEOUT

View file

@ -56,3 +56,9 @@
[X SNR (-608.3912160578785 dB) is not greater than or equal to 65.737. Got -608.3912160578785.]
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\]\t1.9724091887474060e-1\t9.5236867666244507e-1\t7.5512775778770447e-1\t7.9289436569253091e-1\t3.8985999999999999e-3\n\t[60\]\t-2.2450675070285797e-1\t-5.8084785938262939e-1\t3.5634110867977142e-1\t6.1348441407448528e-1\t3.8985999999999999e-3\n\t[90\]\t-3.7808802723884583e-1\t-5.9811043739318848e-1\t2.2002241015434265e-1\t3.6786251568070089e-1\t3.8985999999999999e-3\n\t[120\]\t7.6881676912307739e-1\t9.4563448429107666e-1\t1.7681771516799927e-1\t1.8698315057805445e-1\t3.8985999999999999e-3\n\t[151\]\t5.4644601186737418e-4\t-4.1306272149085999e-2\t4.1852718160953373e-2\t1.0132291292202573e+0\t3.8985999999999999e-3\n\t...and 1419 more errors.\n\tMax AbsError of 9.1201954329126364e+35 at index of 20238.\n\t[20238\]\t9.1201954329126364e+35\t-4.7574958205223083e-1\t9.1201954329126364e+35\t1.9170159632239809e+36\t3.8985999999999999e-3\n\tMax RelError of 1.9170159632239809e+36 at index of 20238.\n\t[20238\]\t9.1201954329126364e+35\t-4.7574958205223083e-1\t9.1201954329126364e+35\t1.9170159632239809e+36\t3.8985999999999999e-3\n]
expected: FAIL
[X SNR (-675.9249049743026 dB) is not greater than or equal to 65.737. Got -675.9249049743026.]
expected: FAIL

View file

@ -1,4 +0,0 @@
[WorkerGlobalScope-close.html]
[Test sending a message after closing.]
expected: FAIL

View file

@ -1,4 +1,4 @@
The web-platform-tests Project [![IRC chat](https://goo.gl/6nCIks)](http://irc.w3.org/?channels=testing)
The web-platform-tests Project
==============================
The web-platform-tests Project is a W3C-coordinated attempt to build a
@ -12,6 +12,30 @@ the promise of working across browsers and devices without needing extra
layers of abstraction to paper over the gaps left by specification
editors and implementors.
The most important sources of information and activity are:
- [github.com/web-platform-tests/wpt](https://github.com/web-platform-tests/wpt):
the canonical location of the project's source code revision history and the
discussion forum for changes to the code
- [web-platform-tests.org](https://web-platform-tests.org): the documentation
website; details how to set up the project, how to write tests, how to give
and receive peer review, how to serve as an administrator, and more
- [web-platform-tests.live](http://web-platform-tests.live): a public
deployment of the test suite, allowing anyone to run the tests by visiting
from an Internet-enabled browser of their choice
- [wpt.fyi](https://wpt.fyi): an archive of test results collected from an
array of web browsers on a regular basis
- [Real-time chat room](http://irc.w3.org/?channels=testing): the
[IRC](http://www.irchelp.org/) chat room named `#testing` on
[irc.w3.org](https://www.w3.org/wiki/IRC); includes participants located
around the world, but busiest during the European working day; [all
discussion is archived here](https://w3.logbot.info/testing)
- [Mailing list](https://lists.w3.org/Archives/Public/public-test-infra/): a
public and low-traffic discussion list
**If you'd like clarification about anything**, don't hesitate to ask in the
chat room or on the mailing list.
Setting Up the Repo
===================
@ -251,25 +275,3 @@ web-platform-tests root directory to suppress the error reports.
For more details, see the [lint-tool documentation][lint-tool].
[lint-tool]: https://web-platform-tests.org/writing-tests/lint-tool.html
Getting Involved
================
If you wish to contribute actively, you're very welcome to join the
public-test-infra@w3.org mailing list (low traffic) by
[signing up to our mailing list](mailto:public-test-infra-request@w3.org?subject=subscribe).
The mailing list is [archived][mailarchive].
Join us on irc #testing ([irc.w3.org][ircw3org], port 6665). The channel
is [archived][ircarchive].
[contributing]: https://github.com/web-platform-tests/wpt/blob/master/CONTRIBUTING.md
[ircw3org]: https://www.w3.org/wiki/IRC
[ircarchive]: https://w3.logbot.info/testing
[mailarchive]: https://lists.w3.org/Archives/Public/public-test-infra/
Documentation
=============
* [How to write and review tests](https://web-platform-tests.org/)
* [Documentation for the wptserve server](http://wptserve.readthedocs.org/en/latest/)

View file

@ -15,7 +15,7 @@
// in a strict sense) to be passed between JavaScript/Python code.
// Note: So far this document covers:
// - resources/common.js : client-side test infra code
// - resources/common.sub.js : client-side test infra code
// - scope/ - server-side scripts that serves nested source contexts
// but doesn't cover:
// - tools/ - generator scripts that generates top-level HTML documents.
@ -1081,7 +1081,7 @@ function invokeRequest(subresource, sourceContextList) {
subresource, sourceContextList);
}
// Quick hack to expose invokeRequest when common.js is loaded either
// Quick hack to expose invokeRequest when common.sub.js is loaded either
// as a classic or module script.
self.invokeRequest = invokeRequest;

View file

@ -2,7 +2,7 @@
<html>
<head>
%(meta)s
<script src="/common/security-features/resources/common.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script>
// Receive a message from the parent and start the test.
function onMessageFromParent(event) {

View file

@ -7,7 +7,7 @@ import util
def main(request, response):
policyDeliveries = json.loads(request.GET.first('policyDeliveries', '[]'))
worker_type = request.GET.first('type', 'classic')
commonjs_url = '%s://%s:%s/common/security-features/resources/common.js' % (
commonjs_url = '%s://%s:%s/common/security-features/resources/common.sub.js' % (
request.url_parts.scheme, request.url_parts.hostname,
request.url_parts.port)
if worker_type == 'classic':

View file

@ -10,7 +10,7 @@
<meta name="assert" content="%(test_description)s">%(meta_delivery_method)s
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<!-- The original specification JSON for validating the scenario. -->
<script src="%(spec_json_js)s"></script>
<!-- Internal checking of the tests -->

View file

@ -10,7 +10,7 @@
<meta name="assert" content="%(test_description)s">%(meta_delivery_method)s
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="%(helper_js)s"></script>
</head>
<body>

View file

@ -58,7 +58,8 @@ class ShouldSkip(Exception):
class PolicyDelivery(object):
'''
See `@typedef PolicyDelivery` comments in `resources/common.js`.
See `@typedef PolicyDelivery` comments in
`common/security-features/resources/common.sub.js`.
'''
def __init__(self, delivery_type, key, value):

View file

@ -6,6 +6,7 @@
<link rel="help" href="https://crbug.com/979894">
<link rel="help" href="https://drafts.csswg.org/css2/visudet.html#inline-width">
<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
html, body { margin: 0; }
div {

View file

@ -14,7 +14,7 @@
<meta content="ahem" name="flags" />
<meta content="'max-width' specifies a fixed maximum used width. If the used width is greater than max-width, then the computed value of max-width is used as the computed value for width." name="assert" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[
div
{
@ -43,4 +43,4 @@
<div id="control-green-overlapping">X</div>
</body>
</html>
</html>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<title>CSS Flexbox: min-height: auto with flex items containing percentage-sized children</title>
<link rel="author" title="Google LLC" href="https://www.google.com/" />
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=998080" />
<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
<style>
.flexbox {
display: flex;
width: 100px;
height: 0;
flex-direction: column;
}
.item {
/* Because flex-basis is 0, we rely on min-height to size this item.
* We give it an explicit height so that percentages have a chance of
* resolving. We can't use 0 for the height because the min-height is
* basically min(height, min-content). */
flex: 0 1 0px;
height: 100px;
background: green;
}
.percentage {
height: 100%;
}
.fixed {
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="item">
<div class="percentage">
<div class="fixed"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<title>CSS Flexbox: min-height: auto with flex items containing percentage-sized children</title>
<link rel="author" title="Google LLC" href="https://www.google.com/" />
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=998080" />
<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
<style>
.flexbox {
display: flex;
width: 100px;
height: 0;
flex-direction: column;
}
.item {
/* Because the flexbox has height:0, this would flex-shrink to 0. So we rely
* on min-height: auto to get a nonzero height. */
height: 100px;
background: green;
}
.percentage {
height: 100%;
}
.fixed {
height: 100px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div class="flexbox">
<div class="item">
<div class="percentage">
<div class="fixed"></div>
</div>
</div>
</div>

View file

@ -3,6 +3,7 @@
<link rel="help" href="http://www.w3.org/TR/CSS21/fonts.html#propdef-font-family" />
<link rel="help" href="http://www.w3.org/TR/CSS21/fonts.html#font-family-prop" />
<meta name="assert" content="The 'font-family' property set to and installed font renders the appropriate font." />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css">
body { font-size: 36px; }
span#verify { font-family: CSSTest Verify; }

View file

@ -5,6 +5,7 @@
<link rel="help" href="http://www.w3.org/TR/css-fonts-3/#font-family-prop" />
<link rel="match" href="font-family-name-025-ref.html" />
<meta name="assert" content="The 'font-family' property set to and installed font renders the appropriate font. Postscript name should not match." />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
body { font-size: 36px; }
span#verify { font-family: CSSTest Verify; }

View file

@ -8,6 +8,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#target {
font-family: Ahem;

View file

@ -4,6 +4,7 @@
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" title="10.2 Aligning with auto margins" href="https://drafts.csswg.org/css-grid/#auto-margins">
<meta name="assert" content="The 'top' and 'bottom' margins must be recomputed whenever the grid item's height changes.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;

View file

@ -4,6 +4,7 @@
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" title="10.2 Aligning with auto margins" href="https://drafts.csswg.org/css-grid/#auto-margins">
<meta name="assert" content="The 'top' and 'bottom' margins must be recomputed whenever the grid item's height changes.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;

View file

@ -5,6 +5,7 @@
<link rel="help" title="10.2 Aligning with auto margins" href="https://drafts.csswg.org/css-grid/#auto-margins">
<link rel="match" href="../reference/grid-block-axis-alignment-auto-margins-008-ref.html">
<meta name="assert" content="The 'top' and 'bottom' margins must be recomputed after the grid's intrinsic size is determined.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;

View file

@ -4,6 +4,7 @@
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" title="10.2 Aligning with auto margins" href="https://drafts.csswg.org/css-grid/#auto-margins">
<meta name="assert" content="The 'left' and 'right' margins must be recomputed whenever the grid items's width changes.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;
@ -35,6 +36,7 @@
<div id="item2">XXXXX</div>
</div>
<script>
document.fonts.ready.then(() => {
item1.setAttribute("data-offset-x", "50");
item2.setAttribute("data-offset-x", "325");
checkLayout('#grid');
@ -44,4 +46,5 @@
item1.setAttribute("data-offset-x", "50");
item2.setAttribute("data-offset-x", "275");
checkLayout('#grid');
});
</script>

View file

@ -4,6 +4,7 @@
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" title="10.2 Aligning with auto margins" href="https://drafts.csswg.org/css-grid/#auto-margins">
<meta name="assert" content="The 'left' and 'right' margins must be recomputed whenever the grid items's width changes.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;
@ -34,6 +35,7 @@
<div id="item2">XX</div>
</div>
<script>
document.fonts.ready.then(() => {
item1.setAttribute("data-offset-x", "80");
item2.setAttribute("data-offset-x", "340");
checkLayout('#grid');
@ -43,4 +45,5 @@
item1.setAttribute("data-offset-x", "50");
item2.setAttribute("data-offset-x", "325");
checkLayout('#grid');
});
</script>

View file

@ -5,6 +5,7 @@
<link rel="help" title="10.2 Aligning with auto margins" href="https://drafts.csswg.org/css-grid/#auto-margins">
<link rel="match" href="../reference/grid-inline-axis-alignment-auto-margins-008-ref.html">
<meta name="assert" content="The 'left' and 'right' margins must be recomputed after the grid's intrinsic size is determined.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;

View file

@ -2,6 +2,7 @@
<meta charset="utf-8">
<title>CSS Grid Layout Reference: Aligning grid items using 'auto' margins</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;

View file

@ -2,6 +2,7 @@
<meta charset="utf-8">
<title>CSS Grid Layout Reference: Aligning grid items using 'auto' margins</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#grid {
display: grid;

View file

@ -4,6 +4,7 @@
<link rel="help" href="https://www.w3.org/TR/css-masking-1/#the-clip-path" title="5.1 Clipping Shape: the clip-path property">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta content="ahem" name="flags">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
body {
overflow: hidden;

View file

@ -4,6 +4,7 @@
<link rel="help" href="https://www.w3.org/TR/css-masking-1/#the-clip-path" title="5.1 Clipping Shape: the clip-path property">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta content="ahem" name="flags">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
body {
overflow: hidden;

View file

@ -4,6 +4,7 @@
<link rel="help" href="https://www.w3.org/TR/css-masking-1/#the-clip-path" title="5.1 Clipping Shape: the clip-path property">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta content="ahem" name="flags">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
body {
overflow: hidden;

View file

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>Non-reference case for text-underline-offset</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#main {
margin: 2em;

View file

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>Reference case for text-underline-offset</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#main{
border-bottom: 1px solid cyan;

View file

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>Non-reference case for text-underline-offset</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#text{
border: black dashed;

View file

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>Reference case for text-underline-offset</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#text{
border: black dashed;

View file

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>Reference case for text-underline-offset</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
span{
font: 20px/1 Ahem;

View file

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<title>Reference case for text-underline-offset</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div{
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
<link rel="mismatch" href="reference/text-underline-offset-001-notref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#main {
margin: 2em;

View file

@ -7,6 +7,7 @@
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
<link rel="match" href="reference/text-underline-offset-002-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
#main{
border-bottom: 1px solid cyan;

View file

@ -9,6 +9,7 @@
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
<link rel="match" href="reference/text-underline-offset-scroll-001-ref.html">
<link rel="mismatch" href="reference/text-underline-offset-scroll-001-notref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
/*
* Testing to make sure that positioning the underline

View file

@ -8,6 +8,7 @@
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
<link rel="match" href="reference/text-underline-offset-vertical-001-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
span{
margin-left: 5em;

View file

@ -8,6 +8,7 @@
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
<link rel="match" href="reference/text-underline-offset-vertical-002-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div{
font: 20px/1 Ahem;

View file

@ -3,6 +3,7 @@
<link rel="match" href="reference/hyphens-overflow-001-ref.html">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#hyphens-property">
<link rel="author" href="mailto:kojii@chromium.org">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font-size: 10px;

View file

@ -1,4 +1,5 @@
<!DOCTYPE html>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font-size: 10px;

View file

@ -2,6 +2,7 @@
<meta charset="utf-8">
<title>Test: CSS value type of the CSS property 'tab-size'</title>
<link rel="help" href="https://drafts.csswg.org/css-text-3/#tab-size-property">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
body {
font-family: Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space at the beginning of the line are breaking opportunities when white-space is pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 50px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should be breaking opportunities when white-space is pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 25px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should be breaking opportunities when white-space is pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 25px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should not be collapsed, honoring white-space: pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should be breaking opportunities when white-space is pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 25px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should be breaking opportunities when white-space is pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 25px/1 Ahem;

View file

@ -8,6 +8,7 @@
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="Preserved white space after forced breaks become leading white-spaces and should be breaking opportunities when white-space is pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 20px/1 Ahem;

View file

@ -3,6 +3,7 @@
<title>CSS test Reference</title>
<link rel="author" title="Javier Fernandez" href="mailto:jfernandez@igalia.com" />
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 25px/1 Ahem;

View file

@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
<link rel="match" href="reference/white-space-pre-wrap-trailing-spaces-004-ref.html">
<meta name="assert" content="Preserved white space at the end of the line is hanged when white-space is pre-wrap.">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 10px/1 Ahem;

View file

@ -6,6 +6,7 @@
<link rel="match" href="reference/text-overflow-016-ref.html">
<meta name="flags" content="ahem">
<meta name="assert" content="If there is insufficient space for the ellipsis, then clip the rendering of the ellipsis itself">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.test, .test2 {
overflow: hidden;

View file

@ -0,0 +1,33 @@
<!doctype html>
<link rel="help" href="https://drafts.csswg.org/css-values-4/#comp-func">
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
<title>Tests interpolation between CSS comparison functions</title>
<style>
@keyframes anim {
from {
width: min(50px, 30%);
height: min(75%, 160px);
}
to {
width: max(75%, 100px);
height: max(50px, 20%);
}
}
.test {
background-color: green;
animation: anim 2000000s linear;
animation-delay: -1000000s;
}
.container {
position: absolute;
width: 200px;
height: 200px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="container">
<div class="test"></div>
</div>

View file

@ -3,6 +3,7 @@
<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
font: 10px/1 Ahem;
@ -18,6 +19,7 @@ div {
<span class="inline-block"></span>
</div>
<script>
document.fonts.ready.then(() => {
run(document.getElementById('empty'));
function run(element) {
test(() => {
@ -28,5 +30,6 @@ function run(element) {
assert_equals(rect.height, 10, "height");
});
}
});
</script>
</body>

View file

@ -11,14 +11,29 @@ platform to deliver on the promise of working across browsers and devices
without needing extra layers of abstraction to paper over the gaps left by
specification editors and implementors.
## Help!
The most important sources of information and activity are:
If you get stuck or want clarification about anything, feel free to
ask on either the [mailing list][public-test-infra] or [IRC][]
([webclient][web irc], join channel `#testing`); IRC is generally
busiest during the European working day but frequently has people on
it at all times and should probably be the general first port of call
for any help.
- [github.com/web-platform-tests/wpt](https://github.com/web-platform-tests/wpt):
the canonical location of the project's source code revision history and the
discussion forum for changes to the code
- [web-platform-tests.org](https://web-platform-tests.org): the documentation
website; details how to set up the project, how to write tests, how to give
and receive peer review, how to serve as an administrator, and more
- [web-platform-tests.live](http://web-platform-tests.live): a public
deployment of the test suite, allowing anyone to run the tests by visiting
from an Internet-enabled browser of their choice
- [wpt.fyi](https://wpt.fyi): an archive of test results collected from an
array of web browsers on a regular basis
- [Real-time chat room](http://irc.w3.org/?channels=testing): the
[IRC](http://www.irchelp.org/) chat room named `#testing` on
[irc.w3.org](https://www.w3.org/wiki/IRC); includes participants located
around the world, but busiest during the European working day; [all
discussion is archived here](https://w3.logbot.info/testing)
- [Mailing list](https://lists.w3.org/Archives/Public/public-test-infra/): a
public and low-traffic discussion list
**If you'd like clarification about anything**, don't hesitate to ask in the
chat room or on the mailing list.
## Watch a Talk
@ -55,7 +70,4 @@ free to add yourself to the META.yml file!
admin/index
```
[public-test-infra]: https://lists.w3.org/Archives/Public/public-test-infra/
[IRC]: irc://irc.w3.org:6667/testing
[web irc]: http://irc.w3.org
[github-intro]: writing-tests/github-intro

View file

@ -1,9 +1,8 @@
// META: global=window,worker
// META: title=EventSource: constructor (invalid URL)
// META: script=/resources/idlharness.js
test(() => {
assert_throws('SyntaxError', () => { new EventSource("http://this is invalid/"); });
});
done();
done();

View file

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html manifest="/fetch/sec-metadata/resources/record-header.py?file=appcache-manifest">
<html manifest="/fetch/sec-metadata/resources/record-header.py?file=appcache-manifest{{$id:uuid()}}">
<meta name="timeout" content="long">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
@ -9,7 +9,7 @@
<script>
async_test(t => {
window.applicationCache.oncached = window.applicationCache.onnoupdate = window.applicationCache.onerror = t.step_func(e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=appcache-manifest")
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=appcache-manifest{{$id}}")
.then(t.step_func(response => response.text()))
.then(t.step_func_done(text => assert_header_equals(text, {
"dest": "",

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/common/security-features/resources/common.js></script>
<script src=/common/security-features/resources/common.sub.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
<body>
<script>

View file

@ -1,4 +1,5 @@
<!DOCTYPE html>
<meta name="timeout" content="long">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
@ -11,7 +12,7 @@
function create_test(host, as, expected) {
async_test(t => {
let nonce = token();
let nonce = "{{uuid()}}";
let key = as + nonce;
let e = document.createElement('link');

View file

@ -4,12 +4,12 @@
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
<script src=/fetch/sec-metadata/resources/redirectTestHelper.sub.js></script>
<script src=/common/security-features/resources/common.js></script>
<script src=/common/security-features/resources/common.sub.js></script>
<script src=/common/utils.js></script>
<style>
@font-face {
font-family: myDowngradeUpgradeFont;
src: url(https://{{host}}:{{ports[https][0]}}/fetch/api/resources/redirect.py?location=http%3A%2F%2F{{host}}%3A{{ports[http][0]}}%2Ffetch%2Fapi%2Fresources%2Fredirect.py%3Flocation%3Dhttps%253A%252F%252F{{host}}%253A{{ports[https][0]}}%252Ffetch%252Fsec-metadata%252Fresources%252Frecord-header.py%253Ffile%253Dfont-https-downgrade-upgrade);
src: url(https://{{host}}:{{ports[https][0]}}/fetch/api/resources/redirect.py?location=http%3A%2F%2F{{host}}%3A{{ports[http][0]}}%2Ffetch%2Fapi%2Fresources%2Fredirect.py%3Flocation%3Dhttps%253A%252F%252F{{host}}%253A{{ports[https][0]}}%252Ffetch%252Fsec-metadata%252Fresources%252Frecord-header.py%253Ffile%253Dfont-https-downgrade-upgrade{{$id:uuid()}});
}
#fontTest {
font-family: myDowngradeUpgradeFont;
@ -18,8 +18,8 @@
<body>
<div id="fontTest">Downgraded then upgraded font</div>
<script>
let nonce = token();
let expected = { "dest": "", "site": "cross-site", "user": "", "mode": "" };
let nonce = "{{$id}}";
let expected = { "dest": "", "site": "cross-site", "user": "", "mode": "cors" };
// Validate various scenarios handle a request that redirects from https => http
// correctly and avoids disclosure of any Sec- headers.
@ -28,8 +28,8 @@
document.fonts.ready.then(function () {
promise_test(t => {
return new Promise((resolve, reject) => {
let key = "font-https-downgrade-upgrade";
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
let key = "font-https-downgrade-upgrade{{$id}}";
return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(text => assert_header_equals(text, expected))
.then(_ => resolve())
@ -54,7 +54,7 @@
"dest": undefined,
"site": "cross-site",
"user": undefined,
"mode": undefined,
"mode": "cors",
});
});
}, "Https downgrade-upgrade image => No headers");
@ -63,7 +63,7 @@
<script>
test(t => {
t.add_cleanup(_ => { header = null; });
assert_header_equals(header, expected);
assert_header_equals(header, { "dest": "", "site": "cross-site", "user": "", "mode": "no-cors" });
}, "Https downgrade-upgrade script => No headers");
</script>
</body>

View file

@ -4,12 +4,12 @@
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
<script src=/fetch/sec-metadata/resources/redirectTestHelper.sub.js></script>
<script src=/common/security-features/resources/common.js></script>
<script src=/common/security-features/resources/common.sub.js></script>
<script src=/common/utils.js></script>
<style>
@font-face {
font-family: myUpgradedFont;
src: url(http://{{host}}:{{ports[http][0]}}/fetch/api/resources/redirect.py?location=https%3A%2F%2F{{host}}%3A{{ports[https][0]}}%2Ffetch%2Fsec-metadata%2Fresources%2Frecord-header.py%3Ffile%3Dfont-https-upgrade);
src: url(http://{{host}}:{{ports[http][0]}}/fetch/api/resources/redirect.py?location=https%3A%2F%2F{{host}}%3A{{ports[https][0]}}%2Ffetch%2Fsec-metadata%2Fresources%2Frecord-header.py%3Ffile%3Dfont-https-upgrade{{$id:uuid()}});
}
#fontTest {
font-family: myUpgradedFont;
@ -18,8 +18,8 @@
<body>
<div id="fontTest">Upgraded font</div>
<script>
let nonce = token();
let expected = { "dest": "", "site": "cross-site", "user": "", "mode": "" };
let nonce = "{{$id}}";
let expected = { "dest": "", "site": "cross-site", "user": "", "mode": "cors" };
// Validate various scenarios handle a request that redirects from http => https correctly and add the proper Sec- headers.
RunCommonRedirectTests("Http upgrade", upgradeRedirectTo, expected);
@ -27,7 +27,7 @@
document.fonts.ready.then(function () {
promise_test(t => {
return new Promise((resolve, reject) => {
let key = "font-https-upgrade";
let key = "font-https-upgrade{{$id}}";
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(text => assert_header_equals(text, expected))
@ -53,16 +53,17 @@
"dest": undefined,
"site": "cross-site",
"user": undefined,
"mode": undefined,
"mode": "cors",
});
});
}, "Http upgrade image => No headers");
</script>
<script src="http://{{host}}:{{ports[http][0]}}/fetch/api/resources/redirect.py?location=https%3A%2F%2F{{host}}%3A{{ports[https][0]}}%2Ffetch%2Fsec-metadata%2Fresources%2Fecho-as-script.py"></script>
<script>
test(t => {
t.add_cleanup(_ => { header = null; });
assert_header_equals(header, expected);
assert_header_equals(header, { "dest": "", "site": "cross-site", "user": "", "mode": "no-cors" });
}, "Http upgrade script => No headers");
</script>
</body>

View file

@ -4,7 +4,7 @@
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
<script src=/fetch/sec-metadata/resources/redirectTestHelper.sub.js></script>
<script src=/common/security-features/resources/common.js></script>
<script src=/common/security-features/resources/common.sub.js></script>
<script src=/common/utils.js></script>
<style>
@font-face {
@ -62,7 +62,7 @@
<script>
test(t => {
t.add_cleanup(_ => { header = null; });
assert_header_equals(header, expected);
assert_header_equals(header, { "dest": "", "site": "cross-site", "user": "", "mode": "no-cors" });
}, "Https downgrade script => No headers");
</script>
</body>

View file

@ -1,23 +1,23 @@
function createVideoElement() {
let el = document.createElement('video');
el.src = "/media/movie_5.mp4";
el.setAttribute("controls", "");
el.setAttribute("crossorigin", "");
el.src = '/media/movie_5.mp4';
el.setAttribute('controls', '');
el.setAttribute('crossorigin', '');
return el;
}
function createTrack() {
let el = document.createElement("track");
el.setAttribute("default", "");
el.setAttribute("kind", "captions");
el.setAttribute("srclang", "en");
let el = document.createElement('track');
el.setAttribute('default', '');
el.setAttribute('kind', 'captions');
el.setAttribute('srclang', 'en');
return el;
}
let secureRedirectURL = "https://{{host}}:{{ports[https][0]}}/fetch/api/resources/redirect.py?location=";
let insecureRedirectURL = "http://{{host}}:{{ports[http][0]}}/fetch/api/resources/redirect.py?location=";
let secureTestURL = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/";
let insecureTestURL = "http://{{host}}:{{ports[http][0]}}/fetch/sec-metadata/";
let secureRedirectURL = 'https://{{host}}:{{ports[https][0]}}/fetch/api/resources/redirect.py?location=';
let insecureRedirectURL = 'http://{{host}}:{{ports[http][0]}}/fetch/api/resources/redirect.py?location=';
let secureTestURL = 'https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/';
let insecureTestURL = 'http://{{host}}:{{ports[http][0]}}/fetch/sec-metadata/';
// Helper to craft an URL that will go from HTTPS => HTTP => HTTPS to
// simulate us downgrading then upgrading again during the same redirect chain.
@ -43,139 +43,163 @@ function downgradeRedirectTo(partialPath) {
function RunCommonRedirectTests(testNamePrefix, urlHelperMethod, expectedResults) {
async_test(t => {
let i = document.createElement('iframe');
i.src = urlHelperMethod("resources/post-to-owner.py");
i.src = urlHelperMethod('resources/post-to-owner.py?iframe-navigation' + nonce);
window.addEventListener('message', t.step_func(e => {
if (e.source != i.contentWindow) {
return;
}
assert_header_equals(e.data, expectedResults);
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'nested-navigate';
assert_header_equals(e.data, expectation);
t.done();
}));
document.body.appendChild(i);
}, testNamePrefix + " iframe => No headers");
}, testNamePrefix + ' iframe');
async_test(t => {
let testWindow = window.open(urlHelperMethod("resources/post-to-owner.py"));
let testWindow = window.open(urlHelperMethod('resources/post-to-owner.py?top-level-navigation' + nonce));
t.add_cleanup(_ => testWindow.close());
window.addEventListener('message', t.step_func(e => {
if (e.source != testWindow) {
return;
}
assert_header_equals(e.data, expectedResults);
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'navigate';
assert_header_equals(e.data, expectation);
t.done();
}));
}, testNamePrefix + " top level navigation => No headers");
}, testNamePrefix + ' top level navigation');
promise_test(t => {
return new Promise((resolve, reject) => {
let key = "embed-redirect-redirect" + nonce;
let key = 'embed-https-redirect' + nonce;
let e = document.createElement('embed');
e.src = urlHelperMethod("resources/record-header.py?file=" + key);
e.src = urlHelperMethod('resources/record-header.py?file=' + key);
e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'no-cors';
fetch('/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=' + key)
.then(response => response.text())
.then(t.step_func(text => assert_header_equals(text, expectedResults)))
.then(_ => resolve())
.then(t.step_func(text => assert_header_equals(text, expectation)))
.then(resolve)
.catch(e => reject(e));
};
document.body.appendChild(e);
});
}, testNamePrefix + " embed => No headers");
promise_test(t => {
let key = "fetch-redirect" + nonce;
return fetch(urlHelperMethod("resources/echo-as-json.py?" + key))
.then(r => r.json())
.then(j => {assert_header_equals(j, expectedResults);});
}, testNamePrefix + " fetch() api => No headers");
promise_test(t => {
return new Promise((resolve, reject) => {
let key = "object-https-redirect" + nonce;
let e = document.createElement('object');
e.data = urlHelperMethod("resources/record-header.py?file=" + key);
e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(t.step_func(text => assert_header_equals(text, expectedResults)))
.then(_ => resolve())
.catch(e => reject(e));
};
document.body.appendChild(e);
});
}, testNamePrefix + " object => No headers");
}, testNamePrefix + ' embed');
promise_test(t => {
let key = 'fetch-redirect' + nonce;
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'cors';
return fetch(urlHelperMethod('resources/echo-as-json.py?' + key))
.then(r => r.json())
.then(j => {assert_header_equals(j, expectation);});
}, testNamePrefix + ' fetch() api');
promise_test(t => {
return new Promise((resolve, reject) => {
let key = 'object-https-redirect' + nonce;
let e = document.createElement('object');
e.data = urlHelperMethod('resources/record-header.py?file=' + key);
e.onload = e => {
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'no-cors';
fetch('/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=' + key)
.then(response => response.text())
.then(t.step_func(text => assert_header_equals(text, expectation)))
.then(resolve)
.catch(e => reject(e));
};
document.body.appendChild(e);
});
}, testNamePrefix + ' object');
if (document.createElement('link').relList.supports('prefetch')) {
async_test(t => {
let key = "prefetch" + nonce;
let key = 'prefetch' + nonce;
let e = document.createElement('link');
e.rel = "prefetch";
e.href = urlHelperMethod("resources/record-header.py?file=" + key) + "&simple=true";
e.rel = 'prefetch';
e.crossOrigin = 'anonymous';
e.href = urlHelperMethod('resources/record-header.py?file=' + key) + '&simple=true';
e.onload = t.step_func(e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'cors';
fetch('/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=' + key)
.then(t.step_func(response => response.text()))
.then(t.step_func_done(text => assert_header_equals(text, expectedResults)))
.catch(t.unreached_func("Fetching and verifying the results should succeed."));
.then(t.step_func_done(text => assert_header_equals(text, expectation)))
.catch(t.unreached_func('Fetching and verifying the results should succeed.'));
});
e.onerror = t.unreached_func();
document.head.appendChild(e);
}, testNamePrefix + " prefetch => No headers");
}, testNamePrefix + ' prefetch => No headers');
}
if (document.createElement('link').relList.supports('preload')) {
async_test(t => {
let key = "preload" + nonce;
let key = 'preload' + nonce;
let e = document.createElement('link');
e.rel = "preload";
e.href = urlHelperMethod("resources/record-header.py?file=" + key);
e.setAttribute("as", "track");
e.rel = 'preload';
e.href = urlHelperMethod('resources/record-header.py?file=' + key);
e.setAttribute('as', 'track');
e.onload = e.onerror = t.step_func_done(e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'cors';
fetch('/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=' + key)
.then(t.step_func(response => response.text()))
.then(t.step_func(text => assert_header_equals(text, expectedResults)))
.then(t.step_func_done(_ => resolve()))
.then(t.step_func_done(text => assert_header_equals(text, expectation)))
.catch(t.unreached_func());
});
document.head.appendChild(e);
}, testNamePrefix + " preload => No headers");
}, testNamePrefix + ' preload');
}
promise_test(t => {
return new Promise((resolve, reject) => {
let key = "style-https-redirect" + nonce;
let key = 'style-https-redirect' + nonce;
let e = document.createElement('link');
e.rel = "stylesheet";
e.href = urlHelperMethod("resources/record-header.py?file=" + key);
e.rel = 'stylesheet';
e.href = urlHelperMethod('resources/record-header.py?file=' + key);
e.onload = e => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'no-cors';
fetch('/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=' + key)
.then(response => response.text())
.then(t.step_func(text => assert_header_equals(text, expectedResults)))
.then(_ => resolve())
.then(t.step_func(text => assert_header_equals(text, expectation)))
.then(resolve)
.catch(e => reject(e));
};
document.body.appendChild(e);
});
}, testNamePrefix + " stylesheet => No headers");
}, testNamePrefix + ' stylesheet');
promise_test(t => {
return new Promise((resolve, reject) => {
let key = "track-https-redirect" + nonce;
let key = 'track-https-redirect' + nonce;
let video = createVideoElement();
let el = createTrack();
el.src = urlHelperMethod("resources/record-header.py?file=" + key);
el.src = urlHelperMethod('resources/record-header.py?file=' + key);
el.onload = t.step_func(_ => {
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
let expectation = { ...expectedResults };
if (expectation['mode'] != '')
expectation['mode'] = 'cors';
fetch('/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=' + key)
.then(response => response.text())
.then(t.step_func(text => assert_header_equals(text, expectedResults)))
.then(_ => resolve());
.then(resolve);
});
video.appendChild(el);
document.body.appendChild(video);
});
}, testNamePrefix + " track => No headers");
}, testNamePrefix + ' track');
}

View file

@ -0,0 +1,82 @@
<!DOCTYPE html>
<meta charset="utf-8" />
<title>Geolocation Test: non-secure contexts</title>
<link rel="help" href="https://github.com/w3c/geolocation-api/pull/34" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
promise_test(() => {
return new Promise(resolve => {
let isAsync = true;
const successCallback = () => {
assert_unreached(
"successCallback must never be invoked in non-secure contexts."
);
};
const errorCallBack = () => {
isAsync = false;
resolve();
};
navigator.geolocation.getCurrentPosition(successCallback, errorCallBack);
assert_true(
isAsync,
"Expected the errorCallback to be called asynchronously."
);
});
}, "When in a non-secure context, getCurrentPosition()'s errorCallback is asynchronously called.");
promise_test(async () => {
return new Promise(resolve => {
let isAsync = true;
const successCallback = () => {
assert_unreached(
"successCallback must never be invoked in non-secure contexts."
);
};
const errorCallBack = () => {
isAsync = false;
resolve();
};
navigator.geolocation.watchPosition(successCallback, errorCallBack);
assert_true(isAsync, "errorCallback must be called asynchronously.");
});
}, "When in a non-secure context, watchPosition()'s errorCallback is asynchronously called.");
promise_test(async () => {
const positionErrorPromise = new Promise(errorCallBack => {
const successCallback = () => {
assert_unreached(
"successCallback must never be invoked in non-secure contexts."
);
};
navigator.geolocation.getCurrentPosition(successCallback, errorCallBack);
});
const positionError = await positionErrorPromise;
assert_equals(
positionError.code,
1,
"Expected the value for PERMISSION_DENIED, which is 1."
);
}, "When in a non-secure context, the getCurrentPosition() errorCallBack gets a PositionError with the correct error code.");
promise_test(async () => {
const positionErrorPromise = new Promise(errorCallBack => {
const successCallback = () => {
assert_unreached(
"successCallback must never be invoked in non-secure contexts."
);
};
const id = navigator.geolocation.watchPosition(
successCallback,
errorCallBack
);
assert_true(Number.isInteger(id), "Must return an identifier.");
});
const positionError = await positionErrorPromise;
assert_equals(
positionError.code,
1,
"Expected the value for PERMISSION_DENIED, which is 1."
);
}, "When in a non-secure context, the watchPosition() errorCallBack gets a PositionError with the correct error code.");
</script>

View file

@ -22,26 +22,16 @@
<p><label>Age: <button id='button_id2'>button2</button></label></p>
</form>
<script>
test(function() {
var button1 = document.getElementById("button_id1");
var button2 = document.getElementById("button_id2");
var button1 = document.getElementById("button_id1");
var button2 = document.getElementById("button_id2");
if (typeof(button1.labels) == "object") {
if (button1.labels.length == 2 && button2.labels.length == 1) {
test(function() {
assert_true(true, "labels attribute is correct.");
});
} else {
test(function() {
assert_unreached("labels attribute is not correct.");
});
}
} else {
test(function() {
assert_unreached("labels attribute is not exist.");
});
}
assert_true(button1.labels instanceof NodeList, "button1.labels is NodeList");
assert_equals(button1.labels.length, 2, "button1.labels.length");
assert_true(button2.labels instanceof NodeList, "button2.labels is NodeList");
assert_equals(button2.labels.length, 1, "button2.labels.length");
});
</script>
</body>

View file

@ -3,8 +3,10 @@
// (https://github.com/tidoust/reffy-reports)
// Source: Web Speech API (https://w3c.github.io/speech-api/)
[Exposed=Window, Constructor]
[Exposed=Window]
interface SpeechRecognition : EventTarget {
constructor();
// recognition parameters
attribute SpeechGrammarList grammars;
attribute DOMString lang;
@ -42,9 +44,9 @@ enum SpeechRecognitionErrorCode {
"language-not-supported"
};
[Exposed=Window,
Constructor(DOMString type, SpeechRecognitionErrorEventInit eventInitDict)]
[Exposed=Window]
interface SpeechRecognitionErrorEvent : Event {
constructor(DOMString type, SpeechRecognitionErrorEventInit eventInitDict);
readonly attribute SpeechRecognitionErrorCode error;
readonly attribute DOMString message;
};
@ -77,9 +79,9 @@ interface SpeechRecognitionResultList {
};
// A full response, which could be interim or final, part of a continuous response or not
[Exposed=Window,
Constructor(DOMString type, SpeechRecognitionEventInit eventInitDict)]
[Exposed=Window]
interface SpeechRecognitionEvent : Event {
constructor(DOMString type, SpeechRecognitionEventInit eventInitDict);
readonly attribute unsigned long resultIndex;
readonly attribute SpeechRecognitionResultList results;
};
@ -97,8 +99,9 @@ interface SpeechGrammar {
};
// The object representing a speech grammar collection
[Exposed=Window, Constructor]
[Exposed=Window]
interface SpeechGrammarList {
constructor();
readonly attribute unsigned long length;
getter SpeechGrammar item(unsigned long index);
void addFromURI(DOMString src,
@ -126,9 +129,10 @@ partial interface Window {
[SameObject] readonly attribute SpeechSynthesis speechSynthesis;
};
[Exposed=Window,
Constructor(optional DOMString text)]
[Exposed=Window]
interface SpeechSynthesisUtterance : EventTarget {
constructor(optional DOMString text);
attribute DOMString text;
attribute DOMString lang;
attribute SpeechSynthesisVoice? voice;
@ -145,9 +149,9 @@ interface SpeechSynthesisUtterance : EventTarget {
attribute EventHandler onboundary;
};
[Exposed=Window,
Constructor(DOMString type, SpeechSynthesisEventInit eventInitDict)]
[Exposed=Window]
interface SpeechSynthesisEvent : Event {
constructor(DOMString type, SpeechSynthesisEventInit eventInitDict);
readonly attribute SpeechSynthesisUtterance utterance;
readonly attribute unsigned long charIndex;
readonly attribute unsigned long charLength;
@ -178,9 +182,9 @@ enum SpeechSynthesisErrorCode {
"not-allowed",
};
[Exposed=Window,
Constructor(DOMString type, SpeechSynthesisErrorEventInit eventInitDict)]
[Exposed=Window]
interface SpeechSynthesisErrorEvent : SpeechSynthesisEvent {
constructor(DOMString type, SpeechSynthesisErrorEventInit eventInitDict);
readonly attribute SpeechSynthesisErrorCode error;
};

View file

@ -827,3 +827,19 @@ MISSING DEPENDENCY: web-nfc/resources/nfc-helpers.js
MISSING DEPENDENCY: shape-detection/resources/shapedetection-helpers.js
MISSING DEPENDENCY: webxr/resources/webxr_util.js
MISSING DEPENDENCY: contacts/resources/helpers.js
# Tests that are false positives for using Ahem as a system font
AHEM SYSTEM FONT: acid/acid3/test.html
AHEM SYSTEM FONT: resource-timing/resources/all_resource_types.htm
AHEM SYSTEM FONT: resource-timing/resources/iframe-reload-TAO.sub.html
# These tests are imported from mozilla-central and can't be modified in WPT.
# They do load Ahem as a web font, but they use their own copy which trips the
# lint rule. Basically false positives.
AHEM SYSTEM FONT: css/vendor-imports/mozilla/mozilla-central-reftests/*
# TODO: The following should be deleted along with the Ahem web font cleanup
# PR (https://github.com/web-platform-tests/wpt/pull/18702)
AHEM SYSTEM FONT: infrastructure/assumptions/ahem-ref.html
AHEM SYSTEM FONT: infrastructure/assumptions/ahem.html

View file

@ -3,6 +3,7 @@
<head>
<meta charset="utf-8"/>
<title>RTL ms lquote="X" rquote="p"</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
math {
font: 25px/1 Ahem;

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. -->
<html>
<head>
<title>Mixed-Content: Optionally-blockable content</title>
<meta charset='utf-8'>
<meta name="description" content="Test behavior of optionally-blockable content">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="http://www.w3.org/TR/mixed-content/#category-optionally-blockable">
<meta name="assert" content="opt_in_method: http-csp
origin: cross-origin-http
source_scheme: https
context_nesting: top-level
redirection: keep-scheme-redirect
subresource: audio-tag
expectation: blocked">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.js"></script>
<script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
</head>
<body>
<script>
MixedContentTestCase(
{
"opt_in_method": "http-csp",
"origin": "cross-origin-http",
"source_scheme": "https",
"context_nesting": "top-level",
"redirection": "keep-scheme-redirect",
"subresource": "audio-tag",
"expectation": "blocked"
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. -->
<html>
<head>
<title>Mixed-Content: Optionally-blockable content</title>
<meta charset='utf-8'>
<meta name="description" content="Test behavior of optionally-blockable content">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="http://www.w3.org/TR/mixed-content/#category-optionally-blockable">
<meta name="assert" content="opt_in_method: http-csp
origin: cross-origin-http
source_scheme: https
context_nesting: top-level
redirection: swap-scheme-redirect
subresource: audio-tag
expectation: blocked">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.js"></script>
<script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
</head>
<body>
<script>
MixedContentTestCase(
{
"opt_in_method": "http-csp",
"origin": "cross-origin-http",
"source_scheme": "https",
"context_nesting": "top-level",
"redirection": "swap-scheme-redirect",
"subresource": "audio-tag",
"expectation": "blocked"
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -1,40 +0,0 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. -->
<html>
<head>
<title>Mixed-Content: Optionally-blockable content</title>
<meta charset='utf-8'>
<meta name="description" content="Test behavior of optionally-blockable content">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="http://www.w3.org/TR/mixed-content/#category-optionally-blockable">
<meta name="assert" content="opt_in_method: http-csp
origin: same-host-http
source_scheme: https
context_nesting: top-level
redirection: keep-scheme-redirect
subresource: audio-tag
expectation: blocked">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.js"></script>
<script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script>
</head>
<body>
<script>
MixedContentTestCase(
{
"opt_in_method": "http-csp",
"origin": "same-host-http",
"source_scheme": "https",
"context_nesting": "top-level",
"redirection": "keep-scheme-redirect",
"subresource": "audio-tag",
"expectation": "blocked"
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

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