mirror of
https://github.com/servo/servo.git
synced 2025-08-02 20:20:14 +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]
|
[Revoke blob URL after creating Request, will fetch]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
||||||
[url-with-fetch.any.html]
|
[url-with-fetch.any.html]
|
||||||
[Revoke blob URL after creating Request, will fetch]
|
[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]
|
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
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]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: combined response Content-Type: */* text/html]
|
||||||
expected: FAIL
|
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
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,3 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,6 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%0C]
|
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[X-Content-Type-Options%3A%20'NosniFF']
|
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[embedded-credentials.tentative.sub.html]
|
[embedded-credentials.tentative.sub.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Embedded credentials are treated as network errors.]
|
[Embedded credentials are treated as network errors.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Embedded credentials are treated as network errors in new windows.]
|
[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.]
|
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
|
||||||
expected: TIMEOUT
|
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]
|
[location-protocol-setter-non-broken.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: CRASH
|
||||||
[Set data URL frame location.protocol to gopher]
|
[Set data URL frame location.protocol to gopher]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
[skip-document-with-fragment.html]
|
[skip-document-with-fragment.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
||||||
expected: FAIL
|
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]
|
[iframe_sandbox_popups_escaping-3.html]
|
||||||
type: testharness
|
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]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[script-onerror-insertion-point-2.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -1,5 +1,5 @@
|
||||||
[ignore-opens-during-unload.window.html]
|
[ignore-opens-during-unload.window.html]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[ignore-opens-during-unload]
|
[ignore-opens-during-unload]
|
||||||
expected: FAIL
|
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]
|
[iframe-inheritance-srcdoc.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[iframes srcdoc correctly inherit the ancestor's referrer policy]
|
[iframes srcdoc correctly inherit the ancestor's referrer policy]
|
||||||
expected: NOTRUN
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[crossorigin-sandwich-TAO.sub.html]
|
[crossorigin-sandwich-TAO.sub.html]
|
||||||
expected: ERROR
|
|
||||||
[There should be one entry.]
|
[There should be one entry.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[xrSession_input_events_end.https.html]
|
[xrSession_input_events_end.https.html]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
[Calling end during an input callback stops processing at the right time]
|
[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.
|
# These are all the branches referenced in the jobs that follow.
|
||||||
- epochs/daily
|
- epochs/daily
|
||||||
- epochs/three_hourly
|
- epochs/three_hourly
|
||||||
|
- triggers/edge_stable
|
||||||
- triggers/edge_dev
|
- triggers/edge_dev
|
||||||
- triggers/edge_canary
|
- triggers/edge_canary
|
||||||
- triggers/safari_stable
|
- triggers/safari_stable
|
||||||
|
@ -239,6 +240,42 @@ jobs:
|
||||||
condition: always()
|
condition: always()
|
||||||
- template: tools/ci/azure/cleanup_win10.yml
|
- 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
|
- job: results_edge_dev
|
||||||
displayName: 'all tests: Edge Dev'
|
displayName: 'all tests: Edge Dev'
|
||||||
condition: |
|
condition: |
|
||||||
|
|
|
@ -35,14 +35,15 @@ document.fonts.ready.then(() => {
|
||||||
ctx.direction = 'ltr';
|
ctx.direction = 'ltr';
|
||||||
ctx.align = 'left'
|
ctx.align = 'left'
|
||||||
ctx.baseline = 'alphabetic'
|
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.
|
// 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').actualBoundingBoxRight >= 50, "ctx.measureText('A').actualBoundingBoxRight >= 50");
|
||||||
_assert(ctx.measureText('A').actualBoundingBoxAscent >= 35, "ctx.measureText('A').actualBoundingBoxAscent >= 35");
|
_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').actualBoundingBoxRight >= 200, "ctx.measureText('ABCD').actualBoundingBoxRight >= 200");
|
||||||
_assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85");
|
_assert(ctx.measureText('ABCD').actualBoundingBoxAscent >= 85, "ctx.measureText('ABCD').actualBoundingBoxAscent >= 85");
|
||||||
_assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37");
|
_assert(ctx.measureText('ABCD').actualBoundingBoxDescent >= 37, "ctx.measureText('ABCD').actualBoundingBoxDescent >= 37");
|
||||||
|
|
|
@ -1088,14 +1088,15 @@
|
||||||
ctx.direction = 'ltr';
|
ctx.direction = 'ltr';
|
||||||
ctx.align = 'left'
|
ctx.align = 'left'
|
||||||
ctx.baseline = 'alphabetic'
|
ctx.baseline = 'alphabetic'
|
||||||
// Some platforms may return '-0'.
|
|
||||||
@assert Math.abs(ctx.measureText('A').actualBoundingBoxLeft) === 0;
|
|
||||||
// Different platforms may render text slightly different.
|
// 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').actualBoundingBoxRight >= 50;
|
||||||
@assert ctx.measureText('A').actualBoundingBoxAscent >= 35;
|
@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').actualBoundingBoxRight >= 200;
|
||||||
@assert ctx.measureText('ABCD').actualBoundingBoxAscent >= 85;
|
@assert ctx.measureText('ABCD').actualBoundingBoxAscent >= 85;
|
||||||
@assert ctx.measureText('ABCD').actualBoundingBoxDescent >= 37;
|
@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)
|
[](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
|
The web-platform-tests Project is a cross-browser test suite for the
|
||||||
cross-browser test suite for the Web-platform stack. Writing tests in a way
|
Web-platform stack. Writing tests in a way that allows them to be run in all
|
||||||
that allows them to be run in all browsers gives browser projects
|
browsers gives browser projects confidence that they are shipping software that
|
||||||
confidence that they are shipping software that is compatible with other
|
is compatible with other implementations, and that later implementations will
|
||||||
implementations, and that later implementations will be compatible with
|
be compatible with their implementations. This in turn gives Web
|
||||||
their implementations. This in turn gives Web authors/developers
|
authors/developers confidence that they can actually rely on the Web platform
|
||||||
confidence that they can actually rely on the Web platform to deliver on
|
to deliver on the promise of working across browsers and devices without
|
||||||
the promise of working across browsers and devices without needing extra
|
needing extra layers of abstraction to paper over the gaps left by
|
||||||
layers of abstraction to paper over the gaps left by specification
|
specification editors and implementors.
|
||||||
editors and implementors.
|
|
||||||
|
|
||||||
The most important sources of information and activity are:
|
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
|
# web-platform-tests documentation
|
||||||
|
|
||||||
The web-platform-tests project is a W3C-coordinated attempt to build a
|
The web-platform-tests project is a cross-browser test suite for [the
|
||||||
cross-browser test suite for [the Web-platform
|
Web-platform stack](https://platform.html5.org). Writing tests in a way that
|
||||||
stack](https://platform.html5.org). Writing tests in a way that allows them to
|
allows them to be run in all browsers gives browser projects confidence that
|
||||||
be run in all browsers gives browser projects confidence that they are shipping
|
they are shipping software which is compatible with other implementations, and
|
||||||
software which is compatible with other implementations, and that later
|
that later implementations will be compatible with their implementations. This
|
||||||
implementations will be compatible with their implementations. This in turn
|
in turn gives Web authors/developers confidence that they can actually rely on
|
||||||
gives Web authors/developers confidence that they can actually rely on the Web
|
the Web platform to deliver on the promise of working across browsers and
|
||||||
platform to deliver on the promise of working across browsers and devices
|
devices without needing extra layers of abstraction to paper over the gaps left
|
||||||
without needing extra layers of abstraction to paper over the gaps left by
|
by specification editors and implementors.
|
||||||
specification editors and implementors.
|
|
||||||
|
|
||||||
|
|
||||||
The most important sources of information and activity are:
|
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
|
"foo". The `test_function` passed into `promise_test` invokes `foo` and attaches
|
||||||
a resolve reaction that verifies the returned value.
|
a resolve reaction that verifies the returned value.
|
||||||
|
|
||||||
Note that in the promise chain constructed in `test_function` assertions don't
|
Note that in the promise chain constructed in `test_function`
|
||||||
need to be wrapped in `step` or `step_func` calls.
|
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
|
Unlike Asynchronous Tests, Promise Tests don't start running until after the
|
||||||
previous Promise Test finishes. [Under rare
|
previous Promise Test finishes. [Under rare
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
<meta name="help" href="https://fetch.spec.whatwg.org/#http-network-or-cache-fetch">
|
<meta name="help" href="https://fetch.spec.whatwg.org/#http-network-or-cache-fetch">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<script src="../resources/utils.js"></script>
|
<script src="../resources/utils.js"></script>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
if (this.document === undefined) {
|
if (this.document === undefined) {
|
||||||
importScripts("/resources/testharness.js");
|
importScripts("/resources/testharness.js");
|
||||||
importScripts("../resources/utils.js");
|
importScripts("../resources/utils.js");
|
||||||
|
importScripts("/common/get-host-info.sub.js");
|
||||||
|
|
||||||
// A nested importScripts() with a referrer-policy should have no effect
|
// A nested importScripts() with a referrer-policy should have no effect
|
||||||
// on overall worker policy.
|
// on overall worker policy.
|
||||||
|
@ -8,7 +9,7 @@ if (this.document === undefined) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var referrerOrigin = location.origin + '/';
|
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) {
|
promise_test(function(test) {
|
||||||
return fetch(fetchedUrl).then(function(resp) {
|
return fetch(fetchedUrl).then(function(resp) {
|
||||||
|
|
|
@ -20,15 +20,17 @@ async_test(t => {
|
||||||
const blobContents = `<script>
|
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}");
|
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;
|
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>`;
|
<\/script>`;
|
||||||
const blob = new Blob([blobContents], { type: "text/html" });
|
const blob = new Blob([blobContents], { type: "text/html" });
|
||||||
const blobURL = URL.createObjectURL(blob);
|
const blobURL = URL.createObjectURL(blob);
|
||||||
const popup = window.open(blobURL);
|
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(() => {
|
popup.onload = t.step_func(() => {
|
||||||
assert_equals(popup.opener, window);
|
assert_equals(popup.opener, window);
|
||||||
assert_equals(popup.location.href, blobURL);
|
assert_equals(popup.location.href, blobURL);
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title>
|
<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/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.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="/common/get-host-info.sub.js"></script>
|
||||||
<script src="resources/common.js"></script>
|
<script src="resources/common.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
@ -35,7 +39,7 @@
|
||||||
"title": "coop unsafe-none/coep",
|
"title": "coop unsafe-none/coep",
|
||||||
"coop": "unsafe-none",
|
"coop": "unsafe-none",
|
||||||
"coep": "require-corp",
|
"coep": "require-corp",
|
||||||
"opener": true
|
"opener": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "coop unsafe-none/no coep",
|
"title": "coop unsafe-none/no coep",
|
||||||
|
@ -43,7 +47,12 @@
|
||||||
"coep": "",
|
"coep": "",
|
||||||
"opener": false
|
"opener": false
|
||||||
}
|
}
|
||||||
].forEach(variant => {
|
].forEach((variant, i) => {
|
||||||
|
// Only run specified variants
|
||||||
|
if (!shouldRunSubTest(i)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
["same-origin", "same-site"].forEach(site => {
|
["same-origin", "same-site"].forEach(site => {
|
||||||
const title = `Popup navigating to ${site} with ${variant.title}`;
|
const title = `Popup navigating to ${site} with ${variant.title}`;
|
||||||
const channel = title.replace(/ /g,"-");
|
const channel = title.replace(/ /g,"-");
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: redirects</title>
|
<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/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.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",
|
"redirectCOEP": "require-corp",
|
||||||
"coop": "same-origin",
|
"coop": "same-origin",
|
||||||
"coep": "require-corp",
|
"coep": "require-corp",
|
||||||
"opener": true
|
"opener": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "coop unsafe-none/coep to coop unsafe-inherit/coep",
|
"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",
|
"redirectCOEP": "require-corp",
|
||||||
"coop": "unsafe-none",
|
"coop": "unsafe-none",
|
||||||
"coep": "require-corp",
|
"coep": "require-corp",
|
||||||
"opener": true
|
"opener": false
|
||||||
}
|
}
|
||||||
].forEach(variant => {
|
].forEach(variant => {
|
||||||
const title = `Redirect from ${variant.title}`;
|
const title = `Redirect from ${variant.title}`;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy</title>
|
<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/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
"title": "popup with coop unsafe-none/coep",
|
"title": "popup with coop unsafe-none/coep",
|
||||||
"coop": "unsafe-none",
|
"coop": "unsafe-none",
|
||||||
"coep": "require-corp",
|
"coep": "require-corp",
|
||||||
"opener": true
|
"opener": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "popup with coop unsafe-none without coep",
|
"title": "popup with coop unsafe-none without coep",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<title>Cross-Origin-Opener-Policy: a navigating popup that then goes back in history</title>
|
<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/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -12,7 +12,12 @@ async_test(t => {
|
||||||
const noCOOP = "/common/blank.html";
|
const noCOOP = "/common/blank.html";
|
||||||
const popupName = token();
|
const popupName = token();
|
||||||
const popup = window.open(noCOOP, popupName);
|
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(() => {
|
popup.onload = t.step_func(() => {
|
||||||
assert_equals(popup.name, popupName);
|
assert_equals(popup.name, popupName);
|
||||||
assert_equals(new URL(popup.document.URL).pathname, noCOOP);
|
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.
|
// string comparison to "" to keep the random token out of error messages.
|
||||||
assert_equals(payload.name.length, 0);
|
assert_equals(payload.name.length, 0);
|
||||||
assert_false(payload.opener);
|
assert_false(payload.opener);
|
||||||
|
assert_true(popup.closed);
|
||||||
});
|
});
|
||||||
const coop = `resources/coop-coep.py?coop=same-origin&coep=&channel=${channel.name}`;
|
const coop = `resources/coop-coep.py?coop=same-origin&coep=&channel=${channel.name}`;
|
||||||
popup.location = coop;
|
popup.location = coop;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<title>Historical: Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title>
|
<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/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
@ -8,15 +9,6 @@
|
||||||
<div id=log></div>
|
<div id=log></div>
|
||||||
<script>
|
<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_ORIGIN, SAME_ORIGIN, "same-origin-allow-popups", true, true],
|
||||||
[SAME_SITE, SAME_ORIGIN, "same-origin-allow-popups", false, false],
|
[SAME_SITE, SAME_ORIGIN, "same-origin-allow-popups", false, false],
|
||||||
[CROSS_ORIGIN, 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_ORIGIN, CROSS_ORIGIN, "same-origin-allow-popups", false, false],
|
||||||
[SAME_SITE, 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],
|
[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 => {
|
].forEach( value => {
|
||||||
run_coop_test_iframe("same-origin-allow-popups", value[0], value[1], value[2], value[3], value[4]);
|
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>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
@ -8,15 +9,6 @@
|
||||||
<div id=log></div>
|
<div id=log></div>
|
||||||
<script>
|
<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_ORIGIN, SAME_ORIGIN, "", false, false],
|
||||||
[SAME_SITE, SAME_ORIGIN, "", false, true],
|
[SAME_SITE, SAME_ORIGIN, "", false, true],
|
||||||
[CROSS_ORIGIN, SAME_ORIGIN, "", false, true],
|
[CROSS_ORIGIN, SAME_ORIGIN, "", false, true],
|
|
@ -1,5 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
@ -17,15 +18,6 @@
|
||||||
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
[SAME_ORIGIN, CROSS_ORIGIN, "same-origin", false, false],
|
||||||
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
|
[SAME_SITE, CROSS_ORIGIN, "same-origin", false, false],
|
||||||
[CROSS_ORIGIN, 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 => {
|
].forEach( value => {
|
||||||
run_coop_test_iframe("unsafe-none", value[0], value[1], value[2], value[3], value[4]);
|
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>
|
<!doctype html>
|
||||||
<meta name="timeout" content="long">
|
<meta name=timeout content=long>
|
||||||
<title>Cross-Origin-Opener-Policy requires secure contexts</title>
|
<title>Cross-Origin-Opener-Policy requires secure contexts</title>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta name="timeout" content="long">
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.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;
|
const payload = event.data;
|
||||||
assert_equals(payload.name, hasOpener ? channelName : "");
|
assert_equals(payload.name, hasOpener ? channelName : "");
|
||||||
assert_equals(payload.opener, hasOpener);
|
assert_equals(payload.opener, hasOpener);
|
||||||
|
assert_equals(w.closed, !hasOpener);
|
||||||
bc.close()
|
bc.close()
|
||||||
|
|
||||||
// test the same url for cache
|
// test the same url for cache
|
||||||
|
@ -23,9 +24,7 @@ function url_test_cache(t, url, channelName, hasOpener) {
|
||||||
|
|
||||||
const w = window.open(url, channelName);
|
const w = window.open(url, channelName);
|
||||||
|
|
||||||
// w will be closed by its postback iframe. When out of process,
|
// The popup is closed by url_test.
|
||||||
// window.close() does not work.
|
|
||||||
t.add_cleanup(() => w.close());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Redirect from hostA to hostB with same coop and coep.
|
// Redirect from hostA to hostB with same coop and coep.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.js"></script>
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<meta charset=utf-8>
|
<meta charset=utf-8>
|
||||||
<meta content=timeout value=long>
|
<meta name=timeout content=long>
|
||||||
<script src=/resources/testharness.js></script>
|
<script src=/resources/testharness.js></script>
|
||||||
<script src=/resources/testharnessreport.js></script>
|
<script src=/resources/testharnessreport.js></script>
|
||||||
<script src="/common/get-host-info.sub.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) {
|
if (openerDOMAccess !== undefined) {
|
||||||
assert_equals(payload.openerDOMAccess, openerDOMAccess, 'openerDOMAccess');
|
assert_equals(payload.openerDOMAccess, openerDOMAccess, 'openerDOMAccess');
|
||||||
}
|
}
|
||||||
|
assert_equals(w.closed, !hasOpener, 'Openee browsing context closed');
|
||||||
});
|
});
|
||||||
|
|
||||||
const w = window.open(url, channelName);
|
const w = window.open(url, channelName);
|
||||||
|
|
||||||
// w will be closed by its postback iframe. When out of process,
|
// Close the popup once the test is complete.
|
||||||
// window.close() does not work.
|
// The browsing context might be closed hence use the broadcast channel
|
||||||
t.add_cleanup(() => w.close());
|
// to trigger the closure.
|
||||||
|
t.add_cleanup(() => {
|
||||||
|
bc.postMessage("close");
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function coop_coep_test(t, host, coop, coep, channelName, hasOpener, openerDOMAccess) {
|
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;
|
const name = iframe_origin.name + "_iframe_opening_" + popup_origin.name + "_popup_with_coop_" + popup_coop;
|
||||||
async_test(t => {
|
async_test(t => {
|
||||||
const frame = document.createElement("iframe");
|
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 origin = CROSS_ORIGIN.origin;
|
||||||
const path = new URL("resources/iframe-popup.sub.html", window.location).pathname;
|
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;
|
openerDOMAccessAllowed = !!self.opener.document.URL;
|
||||||
} catch(ex) {
|
} 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");
|
const iframe = document.querySelector("iframe");
|
||||||
iframe.onload = () => {
|
iframe.onload = () => {
|
||||||
const payload = { name: self.name, opener: !!self.opener, openerDOMAccess: openerDOMAccessAllowed };
|
const payload = { name: self.name, opener: !!self.opener, openerDOMAccess: openerDOMAccessAllowed };
|
||||||
|
|
|
@ -3,8 +3,17 @@
|
||||||
<script>
|
<script>
|
||||||
const channelName = new URL(location).searchParams.get("channel");
|
const channelName = new URL(location).searchParams.get("channel");
|
||||||
const bc = new BroadcastChannel(channelName);
|
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 => {
|
window.addEventListener("message", event => {
|
||||||
bc.postMessage(event.data);
|
bc.postMessage(event.data);
|
||||||
window.parent.close();
|
|
||||||
});
|
});
|
||||||
</script>
|
</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>
|
<title>Canvas test: security.pattern.canvas.fillStyle.cross</title>
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.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="/common/media.js"></script>
|
||||||
<script src="/2dcontext/resources/canvas-tests.js"></script>
|
<script src="/2dcontext/resources/canvas-tests.js"></script>
|
||||||
|
|
||||||
|
@ -11,8 +12,8 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
forEachCanvasSource("http://{{domains[www1]}}:{{ports[http][0]}}",
|
forEachCanvasSource(get_host_info().HTTP_REMOTE_ORIGIN,
|
||||||
"http://{{domains[]}}:{{ports[http][0]}}",
|
get_host_info().HTTP_ORIGIN,
|
||||||
(name, factory) => {
|
(name, factory) => {
|
||||||
promise_test(_ => {
|
promise_test(_ => {
|
||||||
return factory().then(source => {
|
return factory().then(source => {
|
||||||
|
|
|
@ -1,2 +1,4 @@
|
||||||
[fuzzy-ref-2.html]
|
[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]
|
[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