mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Auto merge of #25573 - servo-wpt-sync:wpt_update_22-01-2020, r=jdm
Sync WPT with upstream (22-01-2020) Automated downstream sync of changes from upstream as of 22-01-2020. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
24674687ac
189 changed files with 2594 additions and 668 deletions
|
@ -2,9 +2,6 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[url-with-fetch.any.html]
|
||||
[Revoke blob URL after creating Request, will fetch]
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -318,18 +318,18 @@
|
|||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,6 +56,3 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20'NosniFF']
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[embedded-credentials.tentative.sub.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Embedded credentials are treated as network errors.]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Embedded credentials are treated as network errors in new windows.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
[location-protocol-setter-non-broken.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Set data URL frame location.protocol to gopher]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
[skip-document-with-fragment.html]
|
||||
expected: TIMEOUT
|
||||
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
||||
expected: FAIL
|
||||
|
||||
[Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +1,5 @@
|
|||
[ignore-opens-during-unload.window.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[ignore-opens-during-unload]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[iframe-inheritance-document-write.html]
|
||||
[Referrer Policy: iframes with document.write()]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[iframe-inheritance-javascript-child.html]
|
||||
[Referrer Policy: iframes with javascript url reuse referrer policy]
|
||||
expected: FAIL
|
||||
|
||||
[Referrer Policy: iframes with javascript url reuse referrer policy 2]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[iframe-inheritance-javascript.html]
|
||||
[Referrer Policy: iframes with javascript url reuse referrer policy]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[iframe-inheritance-srcdoc.html]
|
||||
expected: TIMEOUT
|
||||
[iframes srcdoc correctly inherit the ancestor's referrer policy]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[crossorigin-sandwich-TAO.sub.html]
|
||||
expected: ERROR
|
||||
[There should be one entry.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[xrSession_input_events_end.https.html]
|
||||
expected: TIMEOUT
|
||||
[Calling end during an input callback stops processing at the right time]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ trigger:
|
|||
# These are all the branches referenced in the jobs that follow.
|
||||
- epochs/daily
|
||||
- epochs/three_hourly
|
||||
- triggers/edge_stable
|
||||
- triggers/edge_dev
|
||||
- triggers/edge_canary
|
||||
- triggers/safari_stable
|
||||
|
@ -239,6 +240,42 @@ jobs:
|
|||
condition: always()
|
||||
- template: tools/ci/azure/cleanup_win10.yml
|
||||
|
||||
- job: results_edge_stable
|
||||
displayName: 'all tests: Edge Stable'
|
||||
condition: |
|
||||
or(eq(variables['Build.SourceBranch'], 'refs/heads/epochs/daily'),
|
||||
eq(variables['Build.SourceBranch'], 'refs/heads/triggers/edge_stable'),
|
||||
and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_stable']))
|
||||
strategy:
|
||||
parallel: 10 # chosen to make runtime ~2h
|
||||
timeoutInMinutes: 180
|
||||
pool:
|
||||
name: 'Hosted Windows Client'
|
||||
steps:
|
||||
- template: tools/ci/azure/system_info.yml
|
||||
- template: tools/ci/azure/checkout.yml
|
||||
- template: tools/ci/azure/install_python.yml
|
||||
- template: tools/ci/azure/pip_install.yml
|
||||
parameters:
|
||||
packages: virtualenv
|
||||
- template: tools/ci/azure/install_certs.yml
|
||||
- template: tools/ci/azure/install_edge.yml
|
||||
parameters:
|
||||
channel: stable
|
||||
- template: tools/ci/azure/update_hosts.yml
|
||||
- template: tools/ci/azure/update_manifest.yml
|
||||
- script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel stable edgechromium
|
||||
displayName: 'Run tests (Edge Stable)'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish results'
|
||||
inputs:
|
||||
artifactName: 'edge-stable-results'
|
||||
- template: tools/ci/azure/cleanup_win10.yml
|
||||
- template: tools/ci/azure/fyi_hook.yml
|
||||
parameters:
|
||||
dependsOn: results_edge_stable
|
||||
artifactName: edge-stable-results
|
||||
|
||||
- job: results_edge_dev
|
||||
displayName: 'all tests: Edge Dev'
|
||||
condition: |
|
||||
|
|
|
@ -35,14 +35,15 @@ document.fonts.ready.then(() => {
|
|||
ctx.direction = 'ltr';
|
||||
ctx.align = 'left'
|
||||
ctx.baseline = 'alphabetic'
|
||||
// Some platforms may return '-0'.
|
||||
_assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft)", "0");
|
||||
// Different platforms may render text slightly different.
|
||||
// Values that are nominally expected to be zero might actually vary by a pixel or so
|
||||
// if the UA accounts for antialiasing at glyph edges, so we allow a slight deviation.
|
||||
_assert(Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1");
|
||||
_assert(ctx.measureText('A').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50");
|
||||
_assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35");
|
||||
_assertSame(Math.abs(ctx.measureText('A').actualBoundingBoxDescent), 0, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent)", "0");
|
||||
_assert(Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1, "Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1");
|
||||
|
||||
_assertSame(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft), 0, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft)", "0");
|
||||
_assert(Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1, "Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1");
|
||||
_assert(ctx.measureText('ABCD').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200");
|
||||
_assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85");
|
||||
_assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37");
|
||||
|
|
|
@ -1088,14 +1088,15 @@
|
|||
ctx.direction = 'ltr';
|
||||
ctx.align = 'left'
|
||||
ctx.baseline = 'alphabetic'
|
||||
// Some platforms may return '-0'.
|
||||
@assert Math.abs(ctx.measureText('A').actualBoundingBoxLeft) === 0;
|
||||
// Different platforms may render text slightly different.
|
||||
// Values that are nominally expected to be zero might actually vary by a pixel or so
|
||||
// if the UA accounts for antialiasing at glyph edges, so we allow a slight deviation.
|
||||
@assert Math.abs(ctx.measureText('A').actualBoundingBoxLeft) <= 1;
|
||||
@assert ctx.measureText('A').actualBoundingBoxRight >= 50;
|
||||
@assert ctx.measureText('A').actualBoundingBoxAscent >= 35;
|
||||
@assert Math.abs(ctx.measureText('A').actualBoundingBoxDescent) === 0;
|
||||
@assert Math.abs(ctx.measureText('A').actualBoundingBoxDescent) <= 1;
|
||||
|
||||
@assert Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) === 0;
|
||||
@assert Math.abs(ctx.measureText('ABCD').actualBoundingBoxLeft) <= 1;
|
||||
@assert ctx.measureText('ABCD').actualBoundingBoxRight >= 200;
|
||||
@assert ctx.measureText('ABCD').actualBoundingBoxAscent >= 85;
|
||||
@assert ctx.measureText('ABCD').actualBoundingBoxDescent >= 37;
|
||||
|
|
|
@ -3,16 +3,15 @@ The web-platform-tests Project
|
|||
|
||||
[](https://community-tc.services.mozilla.com/api/github/v1/repository/web-platform-tests/wpt/master/latest)
|
||||
|
||||
The web-platform-tests Project is a W3C-coordinated attempt to build a
|
||||
cross-browser test suite for the Web-platform stack. Writing tests in a way
|
||||
that allows them to be run in all browsers gives browser projects
|
||||
confidence that they are shipping software that is compatible with other
|
||||
implementations, and that later implementations will be compatible with
|
||||
their implementations. This in turn gives Web authors/developers
|
||||
confidence that they can actually rely on the Web 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.
|
||||
The web-platform-tests Project is a cross-browser test suite for the
|
||||
Web-platform stack. Writing tests in a way that allows them to be run in all
|
||||
browsers gives browser projects confidence that they are shipping software that
|
||||
is compatible with other implementations, and that later implementations will
|
||||
be compatible with their implementations. This in turn gives Web
|
||||
authors/developers confidence that they can actually rely on the Web 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.
|
||||
|
||||
The most important sources of information and activity are:
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
<!doctype HTML>
|
||||
<title>Backround color transparency on the root element blends with a white backdrop</title>
|
||||
<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
|
||||
<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
|
||||
<html style="background: rgb(150, 150, 150)">
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
<!doctype HTML>
|
||||
<title>Backround color transparency on the root element blends with a white backdrop</title>
|
||||
<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
|
||||
<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
|
||||
<link rel="match" href="root-element-background-transparency-ref.html">
|
||||
<html style="background: rgba(45, 45, 45, 0.5)">
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,6 @@
|
|||
<!doctype HTML>
|
||||
<title>Blend-mode on the root stacking context blends with the root element's background.</title>
|
||||
<html style="background: #000">
|
||||
<div style="width: 50px; height: 50px; background: #000"></div>
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,9 @@
|
|||
<!doctype HTML>
|
||||
<title>Blend-mode on the root stacking context blends with the root element's background.</title>
|
||||
<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
|
||||
<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
|
||||
<link rel="match" href="root-element-blend-mode-ref.html">
|
||||
<html style="background: #000;">
|
||||
<div style="width: 50px; height: 50px; background: #E33; mix-blend-mode: multiply"></div>
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
<!doctype HTML>
|
||||
<title>A filter on the root element applies to its background</title>
|
||||
<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
|
||||
<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
|
||||
<html style="background: #FFF">
|
||||
<div style="width: 50px; height: 50px; background: #1CC"></div>
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,9 @@
|
|||
<!doctype HTML>
|
||||
<title>A filter on the root element applies to its background</title>
|
||||
<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
|
||||
<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
|
||||
<link rel="match" href="root-element-filter-ref.html">
|
||||
<html style="filter: invert(1); background: #000">
|
||||
<div style="width: 50px; height: 50px; background: #E33"></div>
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,7 @@
|
|||
<!doctype HTML>
|
||||
<title>Opacity on the root element blends with a white backdrop</title>
|
||||
<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
|
||||
<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
|
||||
<html style="background: #DDD">
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,8 @@
|
|||
<!doctype HTML>
|
||||
<title>Opacity on the root element blends with a white background</title>
|
||||
<link rel="author" title="Chris Harrelson" href="mailto:chrishtr@chromium.org">
|
||||
<link rel="help" href="https://drafts.fxtf.org/compositing/#pagebackdrop">
|
||||
<link rel="match" href="root-element-opacity-ref.html">
|
||||
<html style="background: #BBB; opacity: 0.5">
|
||||
<div id=spacer style="width: 100px; height: 3000px"></div>
|
||||
</html>
|
|
@ -0,0 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/">
|
||||
<meta name="assert" content="This test passes if the renderer does not crash."/>
|
||||
<div style="display: flex;">
|
||||
<div style="max-width: 0px; overflow: scroll;"></div>
|
||||
</div>
|
|
@ -0,0 +1,83 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>text-underline-position reference file</title>
|
||||
<style>
|
||||
.outer {
|
||||
margin: 1em;
|
||||
clear: left;
|
||||
}
|
||||
.outer > div {
|
||||
margin: .25em;
|
||||
padding: .25em;
|
||||
float: left;
|
||||
border: 1px dotted gray;
|
||||
}
|
||||
u {
|
||||
text-decoration: 2px green underline;
|
||||
text-underline-offset: .25em;
|
||||
}
|
||||
.test1 > div {
|
||||
writing-mode: initial;
|
||||
}
|
||||
.test2 > div {
|
||||
writing-mode: sideways-rl;
|
||||
}
|
||||
.test3 > div {
|
||||
writing-mode: sideways-lr;
|
||||
}
|
||||
.test4 > div {
|
||||
writing-mode: vertical-rl;
|
||||
text-orientation: sideways;
|
||||
}
|
||||
.test5 > div {
|
||||
writing-mode: vertical-lr;
|
||||
text-orientation: sideways;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions">Test passes if the left and right boxes match in each case:</p>
|
||||
<div class="outer test1">
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test2">
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test3">
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test4">
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test5">
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>text-underline-position test case</title>
|
||||
<meta name="assert" content="text-underline-position:left has no effect in horizontal typographic mode">
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-left">
|
||||
<link rel="match" href="reference/text-underline-position-001-ref.html">
|
||||
<style>
|
||||
.outer {
|
||||
margin: 1em;
|
||||
clear: left;
|
||||
}
|
||||
.outer > div {
|
||||
margin: .25em;
|
||||
padding: .25em;
|
||||
float: left;
|
||||
border: 1px dotted gray;
|
||||
}
|
||||
u {
|
||||
text-decoration: 2px green underline;
|
||||
text-underline-offset: .25em;
|
||||
}
|
||||
.test1 > div {
|
||||
writing-mode: initial;
|
||||
}
|
||||
.test2 > div {
|
||||
writing-mode: sideways-rl;
|
||||
}
|
||||
.test3 > div {
|
||||
writing-mode: sideways-lr;
|
||||
}
|
||||
.test4 > div {
|
||||
writing-mode: vertical-rl;
|
||||
text-orientation: sideways;
|
||||
}
|
||||
.test5 > div {
|
||||
writing-mode: vertical-lr;
|
||||
text-orientation: sideways;
|
||||
}
|
||||
.test {
|
||||
text-underline-position: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions">Test passes if the left and right boxes match in each case:</p>
|
||||
<div class="outer test1">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test2">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test3">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test4">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test5">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,90 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>text-underline-position test case</title>
|
||||
<meta name="assert" content="text-underline-position:right has no effect in horizontal typographic mode">
|
||||
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-right">
|
||||
<link rel="match" href="reference/text-underline-position-001-ref.html">
|
||||
<style>
|
||||
.outer {
|
||||
margin: 1em;
|
||||
clear: left;
|
||||
}
|
||||
.outer > div {
|
||||
margin: .25em;
|
||||
padding: .25em;
|
||||
float: left;
|
||||
border: 1px dotted gray;
|
||||
}
|
||||
u {
|
||||
text-decoration: 2px green underline;
|
||||
text-underline-offset: .25em;
|
||||
}
|
||||
.test1 > div {
|
||||
writing-mode: initial;
|
||||
}
|
||||
.test2 > div {
|
||||
writing-mode: sideways-rl;
|
||||
}
|
||||
.test3 > div {
|
||||
writing-mode: sideways-lr;
|
||||
}
|
||||
.test4 > div {
|
||||
writing-mode: vertical-rl;
|
||||
text-orientation: sideways;
|
||||
}
|
||||
.test5 > div {
|
||||
writing-mode: vertical-lr;
|
||||
text-orientation: sideways;
|
||||
}
|
||||
.test {
|
||||
text-underline-position: right;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p class="instructions">Test passes if the left and right boxes match in each case:</p>
|
||||
<div class="outer test1">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test2">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test3">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test4">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="outer test5">
|
||||
<div>
|
||||
<p><u class="test">underlined</u></p>
|
||||
</div>
|
||||
<div>
|
||||
<p><u>underlined</u></p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Transforms: Reference Translate gradient background on root element</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<style>
|
||||
html {
|
||||
background: green;
|
||||
}
|
||||
</style>
|
||||
<div style="height: 400vh;"></div>
|
||||
</html>
|
|
@ -0,0 +1,17 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Transforms: Translate gradient background on root element</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-rendering">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=988446">
|
||||
<link rel="match" href="transform-translate-background-001-ref.html">
|
||||
<meta name="assert" content="Checks that the linear gradient is modified when you vertically translate the root element. The test passes if you see only green.">
|
||||
<style>
|
||||
html {
|
||||
background: linear-gradient(to bottom, red 0%, red 50%, green 50%, green 100%);
|
||||
transform: translate(0, -250vh);
|
||||
}
|
||||
</style>
|
||||
<div style="height: 400vh;"></div>
|
||||
</html>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Transforms: Dynamically translate gradient background on root element</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-rendering">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=988446">
|
||||
<link rel="match" href="transform-translate-background-001-ref.html">
|
||||
<meta name="assert" content="Checks that the linear gradient is modified when you dynamically translate the root element. The test passes if you see only green.">
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<style>
|
||||
html {
|
||||
background: linear-gradient(to bottom, red 0%, red 50%, green 50%, green 100%);
|
||||
}
|
||||
</style>
|
||||
<div style="height: 400vh;"></div>
|
||||
<script>
|
||||
requestAnimationFrame(() => requestAnimationFrame(() => {
|
||||
document.documentElement.style.transform = "translate(0, -250vh)";
|
||||
takeScreenshot();
|
||||
}));
|
||||
</script>
|
||||
</html>
|
|
@ -1,15 +1,14 @@
|
|||
# web-platform-tests documentation
|
||||
|
||||
The web-platform-tests project is a W3C-coordinated attempt to build a
|
||||
cross-browser test suite for [the Web-platform
|
||||
stack](https://platform.html5.org). Writing tests in a way that allows them to
|
||||
be run in all browsers gives browser projects confidence that they are shipping
|
||||
software which is compatible with other implementations, and that later
|
||||
implementations will be compatible with their implementations. This in turn
|
||||
gives Web authors/developers confidence that they can actually rely on the Web
|
||||
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.
|
||||
The web-platform-tests project is a cross-browser test suite for [the
|
||||
Web-platform stack](https://platform.html5.org). Writing tests in a way that
|
||||
allows them to be run in all browsers gives browser projects confidence that
|
||||
they are shipping software which is compatible with other implementations, and
|
||||
that later implementations will be compatible with their implementations. This
|
||||
in turn gives Web authors/developers confidence that they can actually rely on
|
||||
the Web 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.
|
||||
|
||||
|
||||
The most important sources of information and activity are:
|
||||
|
|
|
@ -180,8 +180,12 @@ In the example above, `foo()` returns a Promise that resolves with the string
|
|||
"foo". The `test_function` passed into `promise_test` invokes `foo` and attaches
|
||||
a resolve reaction that verifies the returned value.
|
||||
|
||||
Note that in the promise chain constructed in `test_function` assertions don't
|
||||
need to be wrapped in `step` or `step_func` calls.
|
||||
Note that in the promise chain constructed in `test_function`
|
||||
assertions don't need to be wrapped in `step` or `step_func`
|
||||
calls. However when mixing event handlers and `promise_test`, the
|
||||
event handler callback functions *do* need to be wrapped since an
|
||||
exception in these functions does not cause the promise chain to
|
||||
reject.
|
||||
|
||||
Unlike Asynchronous Tests, Promise Tests don't start running until after the
|
||||
previous Promise Test finishes. [Under rare
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
<meta name="help" href="https://fetch.spec.whatwg.org/#http-network-or-cache-fetch">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script src="../resources/utils.js"></script>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
if (this.document === undefined) {
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("../resources/utils.js");
|
||||
importScripts("/common/get-host-info.sub.js");
|
||||
|
||||
// A nested importScripts() with a referrer-policy should have no effect
|
||||
// on overall worker policy.
|
||||
|
@ -8,7 +9,7 @@ if (this.document === undefined) {
|
|||
}
|
||||
|
||||
var referrerOrigin = location.origin + '/';
|
||||
var fetchedUrl = "https://{{domains[www]}}:{{ports[https][0]}}" + dirname(location.pathname) + RESOURCES_DIR + "inspect-headers.py?cors&headers=referer";
|
||||
var fetchedUrl = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "inspect-headers.py?cors&headers=referer";
|
||||
|
||||
promise_test(function(test) {
|
||||
return fetch(fetchedUrl).then(function(resp) {
|
||||
|
|
|
@ -20,15 +20,17 @@ async_test(t => {
|
|||
const blobContents = `<script>
|
||||
const w = window.open("${get_host_info().HTTPS_REMOTE_ORIGIN}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=x&coep=x&channel=${bc.name}", "${bc.name}");
|
||||
window.opener.furtherPopup = w;
|
||||
|
||||
// w will be closed by its postback iframe. When out of process,
|
||||
// window.close() does not work.
|
||||
window.opener.test.add_cleanup(() => w.close());
|
||||
<\/script>`;
|
||||
const blob = new Blob([blobContents], { type: "text/html" });
|
||||
const blobURL = URL.createObjectURL(blob);
|
||||
const popup = window.open(blobURL);
|
||||
t.add_cleanup(() => popup.close());
|
||||
t.add_cleanup(() => {
|
||||
// Close the popups once the test is complete.
|
||||
// The browsing context of the second popup is closed hence use the
|
||||
// broadcast channel to trigger the closure.
|
||||
bc.postMessage("close");
|
||||
popup.close();
|
||||
});
|
||||
popup.onload = t.step_func(() => {
|
||||
assert_equals(popup.opener, window);
|
||||
assert_equals(popup.location.href, blobURL);
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
<!doctype html>
|
||||
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<meta name=variant content=?0-1>
|
||||
<meta name=variant content=?2-3>
|
||||
<meta name=variant content=?4-last>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/subset-tests.js"></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="resources/common.js"></script>
|
||||
<script>
|
||||
|
@ -35,7 +39,7 @@
|
|||
"title": "coop unsafe-none/coep",
|
||||
"coop": "unsafe-none",
|
||||
"coep": "require-corp",
|
||||
"opener": true
|
||||
"opener": false
|
||||
},
|
||||
{
|
||||
"title": "coop unsafe-none/no coep",
|
||||
|
@ -43,7 +47,12 @@
|
|||
"coep": "",
|
||||
"opener": false
|
||||
}
|
||||
].forEach(variant => {
|
||||
].forEach((variant, i) => {
|
||||
// Only run specified variants
|
||||
if (!shouldRunSubTest(i)) {
|
||||
return;
|
||||
}
|
||||
|
||||
["same-origin", "same-site"].forEach(site => {
|
||||
const title = `Popup navigating to ${site} with ${variant.title}`;
|
||||
const channel = title.replace(/ /g,"-");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: redirects</title>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
@ -47,7 +47,7 @@ const coopCOEPPath = new URL("resources/coop-coep.py", window.location).pathname
|
|||
"redirectCOEP": "require-corp",
|
||||
"coop": "same-origin",
|
||||
"coep": "require-corp",
|
||||
"opener": true
|
||||
"opener": false
|
||||
},
|
||||
{
|
||||
"title": "coop unsafe-none/coep to coop unsafe-inherit/coep",
|
||||
|
@ -55,7 +55,7 @@ const coopCOEPPath = new URL("resources/coop-coep.py", window.location).pathname
|
|||
"redirectCOEP": "require-corp",
|
||||
"coop": "unsafe-none",
|
||||
"coep": "require-corp",
|
||||
"opener": true
|
||||
"opener": false
|
||||
}
|
||||
].forEach(variant => {
|
||||
const title = `Redirect from ${variant.title}`;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy</title>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
@ -17,7 +17,7 @@
|
|||
"title": "popup with coop unsafe-none/coep",
|
||||
"coop": "unsafe-none",
|
||||
"coep": "require-corp",
|
||||
"opener": true
|
||||
"opener": false
|
||||
},
|
||||
{
|
||||
"title": "popup with coop unsafe-none without coep",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<title>Cross-Origin-Opener-Policy: a navigating popup that then goes back in history</title>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -12,7 +12,12 @@ async_test(t => {
|
|||
const noCOOP = "/common/blank.html";
|
||||
const popupName = token();
|
||||
const popup = window.open(noCOOP, popupName);
|
||||
t.add_cleanup(() => popup.close());
|
||||
// Close the popup once the test is complete.
|
||||
// The browsing context is closed after the navigation hence use the broadcast channel
|
||||
// to trigger the closure.
|
||||
t.add_cleanup(() => {
|
||||
bc.postMessage("close");
|
||||
});
|
||||
popup.onload = t.step_func(() => {
|
||||
assert_equals(popup.name, popupName);
|
||||
assert_equals(new URL(popup.document.URL).pathname, noCOOP);
|
||||
|
@ -23,6 +28,7 @@ async_test(t => {
|
|||
// string comparison to "" to keep the random token out of error messages.
|
||||
assert_equals(payload.name.length, 0);
|
||||
assert_false(payload.opener);
|
||||
assert_true(popup.closed);
|
||||
});
|
||||
const coop = `resources/coop-coep.py?coop=same-origin&coep=&channel=${channel.name}`;
|
||||
popup.location = coop;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<title>Historical: Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
@ -8,15 +9,6 @@
|
|||
<div id=log></div>
|
||||
<script>
|
||||
[
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
|
||||
[SAME_SITE, SAME_ORIGIN, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
|
||||
[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
|
||||
[SAME_SITE, SAME_SITE, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, SAME_SITE, "same-origin", false, false],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "same-origin-allow-popups", true, true],
|
||||
[SAME_SITE, SAME_ORIGIN, "same-origin-allow-popups", false, false],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "same-origin-allow-popups", false, false],
|
||||
|
@ -26,15 +18,6 @@
|
|||
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin-allow-popups", false, false],
|
||||
[SAME_SITE, CROSS_ORIGIN, "same-origin-allow-popups", false, false],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin-allow-popups", false, false],
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_SITE, SAME_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_SITE, SAME_SITE, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
[SAME_SITE, CROSS_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
].forEach( value => {
|
||||
run_coop_test_iframe("same-origin-allow-popups", value[0], value[1], value[2], value[3], value[4]);
|
||||
});
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="resources/common.js"></script>
|
||||
|
||||
<div id=log></div>
|
||||
<script>
|
||||
[
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
|
||||
[SAME_SITE, SAME_ORIGIN, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
|
||||
[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
|
||||
[SAME_SITE, SAME_SITE, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, SAME_SITE, "same-origin", false, false],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
].forEach( value => {
|
||||
run_coop_test_iframe("same-origin-allow-popups", value[0], value[1], value[2], value[3], value[4]);
|
||||
});
|
||||
|
||||
|
||||
</script>
|
|
@ -0,0 +1 @@
|
|||
Cross-Origin-Opener-Policy: same-origin-allow-popups
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="resources/common.js"></script>
|
||||
|
||||
<div id=log></div>
|
||||
<script>
|
||||
[
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_SITE, SAME_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_SITE, SAME_SITE, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
[SAME_SITE, CROSS_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
].forEach( value => {
|
||||
run_coop_test_iframe("same-origin-allow-popups", value[0], value[1], value[2], value[3], value[4]);
|
||||
});
|
||||
|
||||
|
||||
</script>
|
|
@ -0,0 +1 @@
|
|||
Cross-Origin-Opener-Policy: same-origin-allow-popups
|
|
@ -0,0 +1,25 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="resources/common.js"></script>
|
||||
|
||||
<div id=log></div>
|
||||
<script>
|
||||
[
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "same-origin", true, true],
|
||||
[SAME_SITE, SAME_ORIGIN, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, false],
|
||||
[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
|
||||
[SAME_SITE, SAME_SITE, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, SAME_SITE, "same-origin", false, false],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
].forEach( value => {
|
||||
run_coop_test_iframe("same-origin", value[0], value[1], value[2], value[3], value[4]);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -1,5 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
@ -8,15 +9,6 @@
|
|||
<div id=log></div>
|
||||
<script>
|
||||
[
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "same-origin", true, true],
|
||||
[SAME_SITE, SAME_ORIGIN, "same-origin", false, true],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "same-origin", false, true],
|
||||
[SAME_ORIGIN, SAME_SITE, "same-origin", false, false],
|
||||
[SAME_SITE, SAME_SITE, "same-origin", false, true],
|
||||
[CROSS_ORIGIN, SAME_SITE, "same-origin", false, true],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, true],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, true],
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "", false, false],
|
||||
[SAME_SITE, SAME_ORIGIN, "", false, true],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "", false, true],
|
|
@ -1,5 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
@ -17,15 +18,6 @@
|
|||
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_SITE, SAME_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_SITE, SAME_SITE, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
[SAME_SITE, CROSS_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
].forEach( value => {
|
||||
run_coop_test_iframe("unsafe-none", value[0], value[1], value[2], value[3], value[4]);
|
||||
});
|
|
@ -0,0 +1,25 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="resources/common.js"></script>
|
||||
|
||||
<div id=log></div>
|
||||
<script>
|
||||
[
|
||||
[SAME_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_SITE, SAME_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_ORIGIN, "", true, true],
|
||||
[SAME_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_SITE, SAME_SITE, "", true, true],
|
||||
[CROSS_ORIGIN, SAME_SITE, "", true, true],
|
||||
[SAME_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
[SAME_SITE, CROSS_ORIGIN, "", true, true],
|
||||
[CROSS_ORIGIN, CROSS_ORIGIN, "", true, true],
|
||||
].forEach( value => {
|
||||
run_coop_test_iframe("unsafe-none", value[0], value[1], value[2], value[3], value[4]);
|
||||
});
|
||||
|
||||
</script>
|
|
@ -0,0 +1 @@
|
|||
Cross-Origin-Opener-Policy: unsafe-none
|
|
@ -1,5 +1,5 @@
|
|||
<!doctype html>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name=timeout content=long>
|
||||
<title>Cross-Origin-Opener-Policy requires secure contexts</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
@ -15,6 +15,7 @@ function url_test_cache(t, url, channelName, hasOpener) {
|
|||
const payload = event.data;
|
||||
assert_equals(payload.name, hasOpener ? channelName : "");
|
||||
assert_equals(payload.opener, hasOpener);
|
||||
assert_equals(w.closed, !hasOpener);
|
||||
bc.close()
|
||||
|
||||
// test the same url for cache
|
||||
|
@ -23,9 +24,7 @@ function url_test_cache(t, url, channelName, hasOpener) {
|
|||
|
||||
const w = window.open(url, channelName);
|
||||
|
||||
// w will be closed by its postback iframe. When out of process,
|
||||
// window.close() does not work.
|
||||
t.add_cleanup(() => w.close());
|
||||
// The popup is closed by url_test.
|
||||
}
|
||||
|
||||
// Redirect from hostA to hostB with same coop and coep.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<meta content=timeout value=long>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
|
|
|
@ -12,13 +12,17 @@ function url_test(t, url, channelName, hasOpener, openerDOMAccess) {
|
|||
if (openerDOMAccess !== undefined) {
|
||||
assert_equals(payload.openerDOMAccess, openerDOMAccess, 'openerDOMAccess');
|
||||
}
|
||||
assert_equals(w.closed, !hasOpener, 'Openee browsing context closed');
|
||||
});
|
||||
|
||||
const w = window.open(url, channelName);
|
||||
|
||||
// w will be closed by its postback iframe. When out of process,
|
||||
// window.close() does not work.
|
||||
t.add_cleanup(() => w.close());
|
||||
// Close the popup once the test is complete.
|
||||
// The browsing context might be closed hence use the broadcast channel
|
||||
// to trigger the closure.
|
||||
t.add_cleanup(() => {
|
||||
bc.postMessage("close");
|
||||
});
|
||||
}
|
||||
|
||||
function coop_coep_test(t, host, coop, coep, channelName, hasOpener, openerDOMAccess) {
|
||||
|
@ -43,7 +47,14 @@ function run_coop_test_iframe (documentTitle, iframe_origin, popup_origin, popup
|
|||
const name = iframe_origin.name + "_iframe_opening_" + popup_origin.name + "_popup_with_coop_" + popup_coop;
|
||||
async_test(t => {
|
||||
const frame = document.createElement("iframe");
|
||||
t.add_cleanup(() => { frame.remove(); });
|
||||
|
||||
// Close the popup and remove the frame once the test is
|
||||
// complete. The browsing context might be closed hence use the
|
||||
// broadcast channel to trigger the closure.
|
||||
t.add_cleanup(() => {
|
||||
frame.remove();
|
||||
bc.postMessage("close");
|
||||
});
|
||||
|
||||
const origin = CROSS_ORIGIN.origin;
|
||||
const path = new URL("resources/iframe-popup.sub.html", window.location).pathname;
|
||||
|
|
|
@ -50,6 +50,13 @@ def main(request, response):
|
|||
openerDOMAccessAllowed = !!self.opener.document.URL;
|
||||
} catch(ex) {
|
||||
}
|
||||
// Handle the response from the frame, closing the popup once the
|
||||
// test completes.
|
||||
addEventListener("message", event => {
|
||||
if (event.data == "close") {
|
||||
close();
|
||||
}
|
||||
});
|
||||
const iframe = document.querySelector("iframe");
|
||||
iframe.onload = () => {
|
||||
const payload = { name: self.name, opener: !!self.opener, openerDOMAccess: openerDOMAccessAllowed };
|
||||
|
|
|
@ -3,8 +3,17 @@
|
|||
<script>
|
||||
const channelName = new URL(location).searchParams.get("channel");
|
||||
const bc = new BroadcastChannel(channelName);
|
||||
|
||||
// Handle the close message from the test-cleanup, forwarding it to the
|
||||
// top level document, as this iframe and the opening document might not
|
||||
// be able to close the popup.
|
||||
bc.onmessage = event => {
|
||||
if (event.data == "close") {
|
||||
top.postMessage("close", "*");
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener("message", event => {
|
||||
bc.postMessage(event.data);
|
||||
window.parent.close();
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/1039241">
|
||||
<div style="width: min-content;">
|
||||
<div style="writing-mode:vertical-lr;">
|
||||
<fieldset>
|
||||
<div style="width:10%;"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,3 @@
|
|||
<!doctype html>
|
||||
<title>Test reference</title>
|
||||
<span style="text-decoration:underline">This text should be underlined.</span>
|
|
@ -0,0 +1,9 @@
|
|||
<!doctype html>
|
||||
<title>Rendering of object element fallback with text-decoration</title>
|
||||
<link rel="match" href="object-fallback-text-decoration-ref.html">
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#embedded-content-rendering-rules">
|
||||
<meta name="assert" content="Checks that text-decoration applies to rendered object fallback.">
|
||||
<style>
|
||||
object { text-decoration: underline; }
|
||||
</style>
|
||||
<object>This text should be underlined.</object>
|
|
@ -0,0 +1,5 @@
|
|||
<!doctype html>
|
||||
<title>Test reference</title>
|
||||
<details>
|
||||
<summary><span style="text-decoration:underline">This text should be underlined.</span></summary>
|
||||
</details>
|
|
@ -0,0 +1,11 @@
|
|||
<!doctype html>
|
||||
<title>Rendering of summary element with text-decoration</title>
|
||||
<link rel="match" href="summary-text-decoration-ref.html">
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements">
|
||||
<meta name="assert" content="Checks that text-decoration applies to rendered summary element.">
|
||||
<style>
|
||||
summary { text-decoration: underline; }
|
||||
</style>
|
||||
<details>
|
||||
<summary>This text should be underlined.</summary>
|
||||
</details>
|
|
@ -3,6 +3,7 @@
|
|||
<title>Canvas test: security.pattern.canvas.fillStyle.cross</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="/common/media.js"></script>
|
||||
<script src="/2dcontext/resources/canvas-tests.js"></script>
|
||||
|
||||
|
@ -11,8 +12,8 @@
|
|||
|
||||
<script>
|
||||
|
||||
forEachCanvasSource("http://{{domains[www1]}}:{{ports[http][0]}}",
|
||||
"http://{{domains[]}}:{{ports[http][0]}}",
|
||||
forEachCanvasSource(get_host_info().HTTP_REMOTE_ORIGIN,
|
||||
get_host_info().HTTP_ORIGIN,
|
||||
(name, factory) => {
|
||||
promise_test(_ => {
|
||||
return factory().then(source => {
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
[fuzzy-ref-2.html]
|
||||
fuzzy: maxDifference=255;100-100
|
||||
fuzzy:
|
||||
if os == "mac" and product == "chrome": maxDifference=254-255;100-100
|
||||
maxDifference=255;100-100
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
[reftest_fuzzy_chain_ini.html]
|
||||
fuzzy: maxDifference=255;100-100
|
||||
fuzzy:
|
||||
if os == "mac" and product == "chrome": maxDifference=254-255;100-100
|
||||
maxDifference=255;100-100
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
[reftest_fuzzy_1.html]
|
||||
fuzzy:
|
||||
if os == "mac" and product == "chrome": fuzzy-ref-1.html:254-255;100
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue