Update web-platform-tests to revision b'536297144c737f84096d1f448e790de0fb654956' (#32232)

This commit is contained in:
Servo WPT Sync 2024-05-06 01:30:47 -04:00 committed by GitHub
parent ff3cd1494e
commit 45f2433d76
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
189 changed files with 4264 additions and 621 deletions

View file

@ -1,4 +1,4 @@
[linear-timing-functions-output.tentative.html] [linear-timing-functions-output.html]
[linear function easing with output greater than 1] [linear function easing with output greater than 1]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,2 @@
[position-sticky-margins-003.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[webkit-appearance-auto-non-html-namespace-001.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[backdrop-filter-isolation.html]
expected: FAIL

View file

@ -10,6 +10,3 @@
[load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank'] [load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank']
expected: FAIL expected: FAIL
[load & pageshow events do not fire on contentWindow of <iframe> element created with src='']
expected: FAIL

View file

@ -10,3 +10,6 @@
[load event does not fire on window.open('about:blank?foo')] [load event does not fire on window.open('about:blank?foo')]
expected: FAIL expected: FAIL
[load event does not fire on window.open('about:blank')]
expected: FAIL

View file

@ -0,0 +1,3 @@
[navigation-unload-cross-origin.sub.window.html]
[Cross-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -1,5 +1,4 @@
[embedded-opener-remove-frame.html] [embedded-opener-remove-frame.html]
expected: CRASH
[opener and "removed" embedded documents] [opener and "removed" embedded documents]
expected: FAIL expected: FAIL

View file

@ -1,9 +1,8 @@
[Document.currentScript.html] [Document.currentScript.html]
type: testharness type: testharness
expected: TIMEOUT expected: CRASH
[Script script-exec] [Script script-exec]
expected: NOTRUN expected: NOTRUN
[Script script-svg] [Script script-svg]
expected: NOTRUN expected: NOTRUN

View file

@ -2,4 +2,4 @@
type: testharness type: testharness
expected: TIMEOUT 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: FAIL

View file

@ -1,4 +1,3 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[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: FAIL

View file

@ -2,4 +2,4 @@
type: testharness type: testharness
expected: TIMEOUT expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: NOTRUN

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-2.html] [iframe_sandbox_popups_nonescaping-2.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: FAIL

View file

@ -1,3 +1,3 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL expected: NOTRUN

View file

@ -0,0 +1,2 @@
[select-appearance-writing-mode-vertical-lr.tentative.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[select-appearance-writing-mode-vertical-rl.tentative.html]
expected: TIMEOUT

View file

@ -1,4 +1,3 @@
[performance-navigation-timing-same-origin-replace.tentative.window.html] [performance-navigation-timing-same-origin-replace.tentative.window.html]
expected: TIMEOUT
[RemoteContextHelper navigation using BFCache] [RemoteContextHelper navigation using BFCache]
expected: TIMEOUT expected: FAIL

View file

@ -68,3 +68,6 @@
[PerformanceEntry has correct name, initiatorType, startTime, and duration (link)] [PerformanceEntry has correct name, initiatorType, startTime, and duration (link)]
expected: NOTRUN expected: NOTRUN
[PerformanceEntry has correct name, initiatorType, startTime, and duration (img)]
expected: FAIL

View file

@ -3917,6 +3917,9 @@
[WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)] [WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)]
expected: FAIL expected: FAIL
[WebGLObject interface: attribute label]
expected: FAIL
[idlharness.any.worker.html] [idlharness.any.worker.html]
[WebGL2RenderingContext interface: constant ONE_MINUS_SRC_COLOR on interface object] [WebGL2RenderingContext interface: constant ONE_MINUS_SRC_COLOR on interface object]
@ -10221,3 +10224,6 @@
[WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)] [WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)]
expected: FAIL expected: FAIL
[WebGLObject interface: attribute label]
expected: FAIL

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
[linear-timing-functions-output.tentative.html] [linear-timing-functions-output.html]
[linear function easing with output greater than 1] [linear function easing with output greater than 1]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,2 @@
[webkit-appearance-auto-non-html-namespace-001.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[MediaQueryList-extends-EventTarget-interop.html]
[listener added with addListener and addEventListener is called once]
expected: FAIL

View file

@ -1,2 +0,0 @@
[backdrop-filter-isolation.html]
expected: FAIL

View file

@ -185,6 +185,3 @@
[border-image sec-fetch-site - HTTPS downgrade (header not sent)] [border-image sec-fetch-site - HTTPS downgrade (header not sent)]
expected: FAIL expected: FAIL
[background-image sec-fetch-site - HTTPS downgrade (header not sent)]
expected: TIMEOUT

View file

@ -13,3 +13,6 @@
[load & pageshow events do not fire on contentWindow of <iframe> element created with src=''] [load & pageshow events do not fire on contentWindow of <iframe> element created with src='']
expected: FAIL expected: FAIL
[load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank']
expected: FAIL

View file

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

View file

@ -1,4 +1,4 @@
[Document.currentScript.html] [Document.currentScript.html]
expected: TIMEOUT expected: CRASH
[Script script-svg] [Script script-svg]
expected: NOTRUN expected: NOTRUN

View file

@ -0,0 +1,4 @@
[reparent-form-during-planned-navigation-task.html]
expected: TIMEOUT
[reparent-form-during-planned-navigation-task]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[select-appearance-writing-mode-vertical-lr.tentative.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[select-appearance-writing-mode-vertical-rl.tentative.html]
expected: TIMEOUT

View file

@ -1,3 +1,4 @@
[performance-navigation-timing-iframes-without-attributes.tentative.window.html] [performance-navigation-timing-iframes-without-attributes.tentative.window.html]
expected: TIMEOUT
[RemoteContextHelper navigation using BFCache] [RemoteContextHelper navigation using BFCache]
expected: FAIL expected: TIMEOUT

View file

@ -3905,6 +3905,9 @@
[WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)] [WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)]
expected: FAIL expected: FAIL
[WebGLObject interface: attribute label]
expected: FAIL
[idlharness.any.worker.html] [idlharness.any.worker.html]
[WebGLRenderingContext includes WebGLRenderingContextOverloads: member names are unique] [WebGLRenderingContext includes WebGLRenderingContextOverloads: member names are unique]
@ -10191,3 +10194,6 @@
[WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)] [WebGL2RenderingContext interface: operation drawingBufferStorage(GLenum, unsigned long, unsigned long)]
expected: FAIL expected: FAIL
[WebGLObject interface: attribute label]
expected: FAIL

View file

@ -0,0 +1,4 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -39,7 +39,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/affected_tests.yml - template: tools/ci/azure/affected_tests.yml
parameters: parameters:
artifactName: 'safari-preview-affected-tests' artifactName: 'safari-preview-affected-tests'
@ -56,7 +56,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/affected_tests.yml - template: tools/ci/azure/affected_tests.yml
parameters: parameters:
checkoutCommit: 'HEAD^1' checkoutCommit: 'HEAD^1'
@ -77,7 +77,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- script: | - script: |
set -eux -o pipefail set -eux -o pipefail
@ -98,7 +98,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_fonts.yml - template: tools/ci/azure/install_fonts.yml
- template: tools/ci/azure/install_certs.yml - template: tools/ci/azure/install_certs.yml
@ -149,7 +149,7 @@ jobs:
toxenv: py38 toxenv: py38
- job: tools_unittest_mac_py311 - job: tools_unittest_mac_py311
displayName: 'tools/ unittests: macOS + Python 3.11' displayName: 'tools/ unittests: macOS + Python 3.12'
dependsOn: decision dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest'] condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool: pool:
@ -157,7 +157,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/tox_pytest.yml - template: tools/ci/azure/tox_pytest.yml
parameters: parameters:
@ -181,7 +181,7 @@ jobs:
toxenv: py38 toxenv: py38
- job: wptrunner_unittest_mac_py311 - job: wptrunner_unittest_mac_py311
displayName: 'tools/wptrunner/ unittests: macOS + Python 3.11' displayName: 'tools/wptrunner/ unittests: macOS + Python 3.12'
dependsOn: decision dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest'] condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool: pool:
@ -189,7 +189,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/tox_pytest.yml - template: tools/ci/azure/tox_pytest.yml
parameters: parameters:
@ -217,7 +217,7 @@ jobs:
toxenv: py38 toxenv: py38
- job: wpt_integration_mac_py311 - job: wpt_integration_mac_py311
displayName: 'tools/wpt/ tests: macOS + Python 3.11' displayName: 'tools/wpt/ tests: macOS + Python 3.12'
dependsOn: decision dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration'] condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool: pool:
@ -226,7 +226,7 @@ jobs:
# full checkout required # full checkout required
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/install_chrome.yml - template: tools/ci/azure/install_chrome.yml
- template: tools/ci/azure/install_firefox.yml - template: tools/ci/azure/install_firefox.yml
- template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_hosts.yml
@ -256,7 +256,7 @@ jobs:
toxenv: py38 toxenv: py38
- job: tools_unittest_win_py311 - job: tools_unittest_win_py311
displayName: 'tools/ unittests: Windows + Python 3.11' displayName: 'tools/ unittests: Windows + Python 3.12'
dependsOn: decision dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest'] condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool: pool:
@ -264,7 +264,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
addToPath: false addToPath: false
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/tox_pytest.yml - template: tools/ci/azure/tox_pytest.yml
@ -290,7 +290,7 @@ jobs:
toxenv: py38 toxenv: py38
- job: wptrunner_unittest_win_py311 - job: wptrunner_unittest_win_py311
displayName: 'tools/wptrunner/ unittests: Windows + Python 3.11' displayName: 'tools/wptrunner/ unittests: Windows + Python 3.12'
dependsOn: decision dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest'] condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool: pool:
@ -298,7 +298,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
addToPath: false addToPath: false
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/tox_pytest.yml - template: tools/ci/azure/tox_pytest.yml
@ -329,7 +329,7 @@ jobs:
toxenv: py38 toxenv: py38
- job: wpt_integration_win_py311 - job: wpt_integration_win_py311
displayName: 'tools/wpt/ tests: Windows + Python 3.11' displayName: 'tools/wpt/ tests: Windows + Python 3.12'
dependsOn: decision dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration'] condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool: pool:
@ -338,7 +338,7 @@ jobs:
# full checkout required # full checkout required
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
# currently just using the outdated Chrome/Firefox on the VM rather than # currently just using the outdated Chrome/Firefox on the VM rather than
# figuring out how to install Chrome Dev channel on Windows # figuring out how to install Chrome Dev channel on Windows
# - template: tools/ci/azure/install_chrome.yml # - template: tools/ci/azure/install_chrome.yml
@ -364,7 +364,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/system_info.yml - template: tools/ci/azure/system_info.yml
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_certs.yml - template: tools/ci/azure/install_certs.yml
@ -373,7 +373,7 @@ jobs:
channel: stable channel: stable
- template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.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 - 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 edge
displayName: 'Run tests (Edge Stable)' displayName: 'Run tests (Edge Stable)'
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
displayName: 'Publish results' displayName: 'Publish results'
@ -400,7 +400,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/system_info.yml - template: tools/ci/azure/system_info.yml
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_certs.yml - template: tools/ci/azure/install_certs.yml
@ -409,7 +409,7 @@ jobs:
channel: dev channel: dev
- template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.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 dev edgechromium - 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 dev edge
displayName: 'Run tests (Edge Dev)' displayName: 'Run tests (Edge Dev)'
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
displayName: 'Publish results' displayName: 'Publish results'
@ -436,7 +436,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_certs.yml - template: tools/ci/azure/install_certs.yml
- template: tools/ci/azure/install_edge.yml - template: tools/ci/azure/install_edge.yml
@ -444,7 +444,7 @@ jobs:
channel: canary channel: canary
- template: tools/ci/azure/update_hosts.yml - template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.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 canary edgechromium - 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 canary edge
displayName: 'Run tests (Edge Canary)' displayName: 'Run tests (Edge Canary)'
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
displayName: 'Publish results' displayName: 'Publish results'
@ -471,7 +471,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_certs.yml - template: tools/ci/azure/install_certs.yml
- template: tools/ci/azure/color_profile.yml - template: tools/ci/azure/color_profile.yml
@ -511,7 +511,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_certs.yml - template: tools/ci/azure/install_certs.yml
- template: tools/ci/azure/color_profile.yml - template: tools/ci/azure/color_profile.yml
@ -548,7 +548,7 @@ jobs:
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
inputs: inputs:
versionSpec: '3.11' versionSpec: '3.12'
- template: tools/ci/azure/checkout.yml - template: tools/ci/azure/checkout.yml
- template: tools/ci/azure/install_certs.yml - template: tools/ci/azure/install_certs.yml
- template: tools/ci/azure/color_profile.yml - template: tools/ci/azure/color_profile.yml

View file

@ -19,7 +19,7 @@ jobs:
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: '3.11' python-version: '3.12'
- name: Set up Node - name: Set up Node
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:

View file

@ -13,7 +13,7 @@ jobs:
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: '3.11' python-version: '3.12'
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:

View file

@ -12,7 +12,7 @@ jobs:
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v5 uses: actions/setup-python@v5
with: with:
python-version: '3.11' python-version: '3.12'
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Regenerate certs - name: Regenerate certs

View file

@ -4,33 +4,74 @@
'use strict'; 'use strict';
pressure_test(async (t, mockPressureService) => {
const [change, timeOrigin] = await new Promise(resolve => {
const observer = new PressureObserver(change => {
resolve([change, performance.timeOrigin]);
});
t.add_cleanup(() => observer.disconnect());
observer.observe('cpu');
mockPressureService.setPressureUpdate('cpu', 'critical');
mockPressureService.startPlatformCollector(/*sampleInterval=*/ 200);
});
assert_greater_than(change[0].time, timeOrigin);
}, 'Timestamp from update should be greater than timeOrigin');
pressure_test(async (t, mockPressureService) => { pressure_test(async (t, mockPressureService) => {
const readings = ['nominal', 'fair', 'serious', 'critical']; const readings = ['nominal', 'fair', 'serious', 'critical'];
const sampleInterval = 250; const sampleInterval = 250;
const pressureChanges = await new Promise(async resolve => { const pressureChanges = [];
const observerChanges = []; const observer = new PressureObserver(changes => {
const observer = new PressureObserver(changes => { pressureChanges.push(changes);
observerChanges.push(changes);
});
observer.observe('cpu', {sampleInterval});
mockPressureService.startPlatformCollector(sampleInterval / 2);
let i = 0;
// mockPressureService.updatesDelivered() does not necessarily match
// pressureChanges.length, as system load and browser optimizations can
// cause the actual timer used by mockPressureService to deliver readings
// to be a bit slower or faster than requested.
while (observerChanges.length < 4) {
mockPressureService.setPressureUpdate(
'cpu', readings[i++ % readings.length]);
await t.step_wait(
() => mockPressureService.updatesDelivered() >= i,
`At least ${i} readings have been delivered`);
}
observer.disconnect();
resolve(observerChanges);
}); });
observer.observe('cpu', {sampleInterval});
mockPressureService.startPlatformCollector(sampleInterval / 2);
let i = 0;
// mockPressureService.updatesDelivered() does not necessarily match
// pressureChanges.length, as system load and browser optimizations can
// cause the actual timer used by mockPressureService to deliver readings
// to be a bit slower or faster than requested.
while (pressureChanges.length < 4) {
mockPressureService.setPressureUpdate(
'cpu', readings[i++ % readings.length]);
await t.step_wait(
() => mockPressureService.updatesDelivered() >= i,
`At least ${i} readings have been delivered`);
}
observer.disconnect();
assert_equals(pressureChanges.length, 4);
assert_greater_than(pressureChanges[1][0].time, pressureChanges[0][0].time);
assert_greater_than(pressureChanges[2][0].time, pressureChanges[1][0].time);
assert_greater_than(pressureChanges[3][0].time, pressureChanges[2][0].time);
}, 'Timestamp difference between two changes should be continuously increasing');
pressure_test(async (t, mockPressureService) => {
const readings = ['nominal', 'fair', 'serious', 'critical'];
const sampleInterval = 250;
const pressureChanges = [];
const observer = new PressureObserver(change => {
pressureChanges.push(change);
});
observer.observe('cpu', {sampleInterval});
mockPressureService.startPlatformCollector(sampleInterval / 2);
let i = 0;
// mockPressureService.updatesDelivered() does not necessarily match
// pressureChanges.length, as system load and browser optimizations can
// cause the actual timer used by mockPressureService to deliver readings
// to be a bit slower or faster than requested.
while (pressureChanges.length < 4) {
mockPressureService.setPressureUpdate(
'cpu', readings[i++ % readings.length]);
await t.step_wait(
() => mockPressureService.updatesDelivered() >= i,
`At least ${i} readings have been delivered`);
}
observer.disconnect();
assert_equals(pressureChanges.length, 4); assert_equals(pressureChanges.length, 4);
assert_greater_than_equal( assert_greater_than_equal(
@ -71,5 +112,6 @@ pressure_test(async (t, mockPressureService) => {
// should be deleted. So the second PressureRecord is not discarded even // should be deleted. So the second PressureRecord is not discarded even
// though the time interval does not meet the requirement. // though the time interval does not meet the requirement.
assert_less_than( assert_less_than(
pressureChanges[1][0].time - pressureChanges[0][0].time, sampleInterval); (pressureChanges[1][0].time - pressureChanges[0][0].time),
sampleInterval);
}, 'disconnect() should update [[LastRecordMap]]'); }, 'disconnect() should update [[LastRecordMap]]');

View file

@ -17,31 +17,6 @@ const host = get_host_info();
const basePath = window.location.pathname.replace(/\/[^\/]*$/, '/'); const basePath = window.location.pathname.replace(/\/[^\/]*$/, '/');
const remoteBaseURL = host.HTTPS_REMOTE_ORIGIN + basePath; const remoteBaseURL = host.HTTPS_REMOTE_ORIGIN + basePath;
// Builds valid digital identity request for navigator.credentials.get() API.
function buildValidNavigatorCredentialsRequest() {
return {
identity: {
providers: [{
holder: {
selector: {
format: ['mdoc'],
doctype: 'org.iso.18013.5.1.mDL',
fields: [
'org.iso.18013.5.1.family_name',
'org.iso.18013.5.1.portrait',
]
},
params: {
nonce: '1234',
readerPublicKey: 'test_reader_public_key',
extraParamAsNeededByDigitalCredentials: true,
},
},
}],
},
};
}
async function createIframeAndWaitForMessage(test, iframeUrl) { async function createIframeAndWaitForMessage(test, iframeUrl) {
const messageWatcher = new EventWatcher(test, window, "message"); const messageWatcher = new EventWatcher(test, window, "message");
var iframe = document.createElement("iframe"); var iframe = document.createElement("iframe");
@ -53,39 +28,6 @@ async function createIframeAndWaitForMessage(test, iframeUrl) {
// Requires browser to have mode where OS-presented digital-identity-prompt is // Requires browser to have mode where OS-presented digital-identity-prompt is
// bypassed in favour of returning "fake_test_token" directly. // bypassed in favour of returning "fake_test_token" directly.
promise_test(async t => {
const {token} = await navigator.credentials.get(buildValidNavigatorCredentialsRequest());
assert_equals("fake_test_token", token);
}, "navigator.credentials.get() API works in toplevel frame.");
promise_test(async t => {
let request = buildValidNavigatorCredentialsRequest();
request.identity.providers = undefined;
await promise_rejects_js(t, TypeError, navigator.credentials.get(request));
}, "navigator.credentials.get() API fails if IdentityCredentialRequestOptions::providers is not specified.");
promise_test(async t => {
let request = buildValidNavigatorCredentialsRequest();
request.identity.providers = [];
await promise_rejects_js(t, TypeError, navigator.credentials.get(request));
}, "navigator.credentials.get() API fails if there are no providers.");
promise_test(async t => {
let request = buildValidNavigatorCredentialsRequest();
let providerCopy = structuredClone(request.identity.providers[0]);
request.identity.providers.push(providerCopy);
await promise_rejects_js(t, TypeError, navigator.credentials.get(request));
}, "navigator.credentials.get() API fails if there is more than one provider.");
promise_test(async t => {
let request = buildValidNavigatorCredentialsRequest();
request.identity.providers[0].holder = undefined;
await promise_rejects_js(t, TypeError, navigator.credentials.get(request));
}, "navigator.credentials.get() API fails if IdentityProviderConfig::holder is not specified.");
promise_test(async t => { promise_test(async t => {
let request = buildValidNavigatorIdentityRequest(); let request = buildValidNavigatorIdentityRequest();
let credential = await navigator.identity.get(request); let credential = await navigator.identity.get(request);

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body {
font: 20px/1 Ahem;
margin: 0;
}
#placefiller-above-anchor {
height: 200px;
}
#placefiller-before-anchor {
display: inline-block;
width: 50px;
}
#inner-anchored {
color: green;
position: fixed;
left: 70px;
top: 180px;
}
#outer-anchored {
color: yellow;
position: fixed;
left: 70px;
top: 220px;
}
</style>
<div id="placefiller-above-anchor"></div>
<div id="placefiller-before-anchor"></div>
<span id="anchor">anchor</span>
<div id="inner-anchored">inner-anchored</div>
<div id="outer-anchored">outer-anchored</div>

View file

@ -0,0 +1,67 @@
<!DOCTYPE html>
<title>Basic of anchor positioned scrolling: anchored elements should be "pinned" to the anchor when anchor is scrolled in overflow:hidden</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-1/">
<link rel="match" href="anchor-scroll-overflow-hidden-ref.html">
<link rel="stylesheet" href="/fonts/ahem.css">
<style>
body {
font: 20px/1 Ahem;
margin: 0;
}
#scroll-container {
width: 400px;
height: 400px;
overflow: hidden;
}
#scroll-contents {
width: 1000px;
height: 1000px;
}
#placefiller-above-anchor {
height: 500px;
}
#placefiller-before-anchor {
display: inline-block;
width: 500px;
}
#anchor {
anchor-name: --anchor;
}
#inner-anchored {
color: green;
position: absolute;
left: anchor(--anchor left);
bottom: anchor(--anchor top);
position-anchor: --anchor;
}
#outer-anchored {
color: yellow;
position: absolute;
left: anchor(--anchor left);
top: anchor(--anchor bottom);
position-anchor: --anchor;
}
</style>
<div id="scroll-container">
<div id="scroll-contents">
<div id="placefiller-above-anchor"></div>
<div id="placefiller-before-anchor"></div>
<span id="anchor">anchor</span>
<div id="inner-anchored">inner-anchored</div>
</div>
</div>
<div id="outer-anchored">outer-anchored</div>
<script>
const scroller = document.getElementById('scroll-container');
scroller.scrollTop = 300;
scroller.scrollLeft = 450;
</script>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: block;
border: 0.25in solid black;
}
.flexbox > div > div {
display: inline-block;
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>
<div>1</div><div>2</div>
</div>
<div style="break-before: page">
<div>3</div><div>4</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-before values on flex items are propagated to the flex line</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-081-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>1</div><div>2</div>
<div style="break-before: page">3</div><div>4</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-before values on flex items are propagated to the flex line</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-081-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>1</div><div>2</div>
<div>3</div><div style="break-before: page">4</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-after values on flex items are propagated to the flex line</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-081-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div style="break-after: page">1</div><div>2</div>
<div>3</div><div>4</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-after values on flex items are propagated to the flex line</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-081-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>1</div><div style="break-after: page">2</div>
<div>3</div><div>4</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: block;
border: 0.25in solid black;
}
.flexbox > div > div {
display: inline-block;
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
.flexbox > .nested {
box-sizing: border-box;
width: 100%;
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div><div>2</div>
<div>3</div><div>4</div>
</div>
<div class="flexbox nested" style="break-before: page">
<div>5</div><div>6</div>
<div>7</div><div>8</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-before values on the flex item in the flex line are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-082-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
.flexbox > .nested {
box-sizing: border-box;
width: 100%;
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div><div>2</div>
<div>3</div><div>4</div>
</div>
<div class="flexbox nested">
<div style="break-before: page">5</div><div>6</div>
<div>7</div><div>8</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-before values on the flex item in the flex line are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-082-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
.flexbox > .nested {
box-sizing: border-box;
width: 100%;
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div><div>2</div>
<div>3</div><div>4</div>
</div>
<div class="flexbox nested">
<div>5</div><div style="break-before: page">6</div>
<div>7</div><div>8</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-after values on the flex item in the flex line are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-082-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
.flexbox > .nested {
box-sizing: border-box;
width: 100%;
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div><div>2</div>
<div style="break-after: page">3</div><div>4</div>
</div>
<div class="flexbox nested">
<div>5</div><div>6</div>
<div>7</div><div>8</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-after values on the flex item in the flex line are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="multi-line-row-flex-fragmentation-082-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-wrap: wrap;
border: 0.25in solid black;
}
.flexbox > div {
box-sizing: border-box;
width: 50%;
border: 4px solid purple;
}
.flexbox > .nested {
box-sizing: border-box;
width: 100%;
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div><div>2</div>
<div>3</div><div style="break-after: page">4</div>
</div>
<div class="flexbox nested">
<div>5</div><div>6</div>
<div>7</div><div>8</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-before values on flex items are propagated to the flex line</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-wrap: wrap;
}
.item {
background: green;
width: 25px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
<div class="flexbox" style="break-before: always; break-before: column">
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-before values on the flex item in the flex line are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-wrap: wrap;
}
.item {
background: green;
width: 25px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
<div class="flexbox">
<div class="item" style="break-before: always; break-before: column"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-after values on flex items are propagated to the flex line</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-wrap: wrap;
}
.item {
background: green;
width: 25px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox" style="break-after: always; break-after: column">
<div class="item"></div>
<div class="item"></div>
</div>
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a row flex container, the break-after values on the flex item in the flex line are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-wrap: wrap;
}
.item {
background: green;
width: 25px;
height: 100px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox">
<div class="item"></div>
<div class="item" style="break-after: always; break-after: column"></div>
</div>
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: block;
border: 0.25in solid black;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>1</div>
<div>2</div>
<div style="break-before: page">3</div>
<div>4</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-before values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-068-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column;
border: 0.25in solid black;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>1</div>
<div>2</div>
<div style="break-before: page">3</div>
<div>4</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-after values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-068-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column;
border: 0.25in solid black;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>1</div>
<div style="break-after: page">2</div>
<div>3</div>
<div>4</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column-reverse flex container, the break-before values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-068-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column-reverse;
border: 0.25in solid black;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>4</div>
<div style="break-before: page">3</div>
<div>2</div>
<div>1</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column-reverse flex container, the break-after values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-068-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column-reverse;
border: 0.25in solid black;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div>4</div>
<div>3</div>
<div style="break-after: page">2</div>
<div>1</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,35 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: block;
border: 0.25in solid black;
}
.flexbox > div {
border: 4px solid purple;
}
.flexbox > .nested {
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div>
<div>2</div>
</div>
<div class="flexbox nested" style="break-before: page">
<div>3</div>
<div>4</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-before values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-069-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column;
border: 0.25in solid black;
}
.flexbox > div {
border: 4px solid purple;
}
.flexbox > .nested {
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div>
<div>2</div>
</div>
<div class="flexbox nested" style="break-before: page">
<div>3</div>
<div>4</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-before values on the first item are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-069-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column;
border: 0.25in solid black;
}
.flexbox > div {
border: 4px solid purple;
}
.flexbox > .nested {
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div>
<div>2</div>
</div>
<div class="flexbox nested">
<div style="break-before: page">3</div>
<div>4</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-after values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-069-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column;
border: 0.25in solid black;
}
.flexbox > div {
border: 4px solid purple;
}
.flexbox > .nested {
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested" style="break-after: page">
<div>1</div>
<div>2</div>
</div>
<div class="flexbox nested">
<div>3</div>
<div>4</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-after values on the first item are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="single-line-column-flex-fragmentation-069-print-ref.html">
<style>
@page { size: 5in 3in; margin: 0.5in; }
body {
margin: 0;
font-size: 0.25in;
}
.flexbox {
display: flex;
flex-direction: column;
border: 0.25in solid black;
}
.flexbox > div {
border: 4px solid purple;
}
.flexbox > .nested {
border: 4px solid gold;
}
</style>
<div>Before Flexbox</div>
<div class="flexbox">
<div class="flexbox nested">
<div>1</div>
<div style="break-after: page">2</div>
</div>
<div class="flexbox nested">
<div>3</div>
<div>4</div>
</div>
</div>
<div>After Flexbox</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-before values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-direction: column;
}
.item {
background: green;
height: 50px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
<div class="flexbox" style="break-before: always; break-before: column">
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-before values on the first item are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-direction: column;
}
.item {
background: green;
height: 50px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
<div class="flexbox">
<div class="item" style="break-before: always; break-before: column"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-after values on flex items are honored</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-direction: column;
}
.item {
background: green;
height: 50px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox" style="break-after: always; break-after: column">
<div class="item"></div>
<div class="item"></div>
</div>
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test that in a column flex container, the break-after values on the first item are propagated to the flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#pagination">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1890238">
<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html">
<style>
.multicol {
columns: 2;
column-fill: auto;
column-gap: 0;
width: 100px;
height: 300px;
}
.flexbox {
display: flex;
flex-direction: column;
}
.item {
background: green;
height: 50px;
}
</style>
<p>Test passes if there is a filled green square.</p>
<div class="multicol">
<div class="flexbox">
<div class="flexbox">
<div class="item"></div>
<div class="item" style="break-after: always; break-after: column"></div>
</div>
<div class="flexbox">
<div class="item"></div>
<div class="item"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,3 @@
features:
- name: counter-style
files: "**"

View file

@ -0,0 +1,26 @@
# All of the tests in this directory are for CSSCounterStyleRule, but tests for
# other parts of CSS Counter Styles could potentially be added here, so list of
# the (current) tests to avoid matching tests from unrelated features added
# later.
features:
- name: counter-style
files:
- cssom-additive-symbols-setter-invalid.html
- cssom-additive-symbols-setter.html
- cssom-fallback-setter-invalid.html
- cssom-fallback-setter.html
- cssom-name-setter-invalid.html
- cssom-name-setter.html
- cssom-negative-setter-invalid.html
- cssom-negative-setter.html
- cssom-pad-setter-invalid.html
- cssom-pad-setter.html
- cssom-prefix-suffix-setter-invalid.html
- cssom-prefix-suffix-setter.html
- cssom-range-setter-invalid.html
- cssom-range-setter.html
- cssom-symbols-setter-invalid.html
- cssom-symbols-setter.html
- cssom-system-setter-1.html
- cssom-system-setter-2.html
- cssom-system-setter-invalid.html

View file

@ -0,0 +1,4 @@
features:
- name: linear-easing
files:
- linear-timing-*

View file

@ -2,7 +2,7 @@
<meta charset=utf-8> <meta charset=utf-8>
<meta name="assert" content="This test checks the output of linear timing functions" /> <meta name="assert" content="This test checks the output of linear timing functions" />
<title>Tests for the output of linear timing functions</title> <title>Tests for the output of linear timing functions</title>
<link rel="help" href="https://github.com/w3c/csswg-drafts/pull/6533"> <link rel="help" href="https://drafts.csswg.org/css-easing-2/#the-linear-easing-function">
<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="support/util.js"></script> <script src="support/util.js"></script>

View file

@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>CSS Easing: getComputedStyle().animationTimingFunction with linear(...)</title> <title>CSS Easing: getComputedStyle().animationTimingFunction with linear(...)</title>
<link rel="help" href="https://github.com/w3c/csswg-drafts/pull/6533"> <link rel="help" href="https://drafts.csswg.org/css-easing-2/#the-linear-easing-function">
<meta name="assert" content="animation-timing-function: linear(...) parsing tests"> <meta name="assert" content="animation-timing-function: linear(...) parsing tests">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>

View file

@ -0,0 +1,4 @@
features:
- name: counter-set
files:
- counter-set-*

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
@page {
size: 600px 400px;
margin: 0;
}
body { margin: 0; }
</style>
<div style="margin-left:auto; margin-right:50px; writing-mode:vertical-rl; height:400px; background:yellow;">
50px to the left of page box right edge.<br>
Page widths larger than heights.<br>
</div>
<div style="break-before:page;"></div>
<div style="margin-left:auto; margin-top:50px; writing-mode:vertical-rl; height:350px; background:yellow;">
50px below the page box top edge.<br>
</div>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<title>Test vertical writing mode with specified page size and logical margins.</title>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-page-3/#at-page-rule">
<link rel="help" href="https://www.w3.org/TR/css-page-3/#typedef-page-size-page-size">
<link rel="match" href="page-size-012-print-ref.html">
<style>
@page {
size: 600px 400px;
margin: 0;
margin-inline-start: 50px;
}
@page :first {
margin-inline-start: 0;
margin-block-start: 50px;
}
html {
writing-mode: vertical-rl;
}
body { margin: 0; }
</style>
<div style="background:yellow;">
50px to the left of page box right edge.<br>
Page widths larger than heights.<br>
</div>
<div style="break-before:page; background:yellow;">
50px below the page box top edge.<br>
</div>

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Position Test: Test position:sticky element with auto margin in flex container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-position/#staticpos-rect">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1488080">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="This test verifies that a position:sticky element aligning with 'auto' margin still honors the sticky positioning.">
<style>
#container{
width: 100px;
height: 100px;
overflow: hidden;
background: red;
}
.flex {
display: flex;
flex-direction: column;
height: 500px;
}
.child {
width: 100px;
height: 100px;
background: green;
position: sticky;
margin-top: auto;
bottom: 0;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="container">
<div class="flex">
<div class="child"></div>
</div>
</div>

View file

@ -0,0 +1,36 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Position Test: Test position:sticky element with auto margin in block container</title>
<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
<link rel="help" href="https://drafts.csswg.org/css-position/#staticpos-rect">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1488080">
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
<meta name="assert" content="This test verifies that a position:sticky element aligning with 'auto' margin still honors the sticky positioning.">
<style>
#container{
width: 100px;
height: 100px;
overflow: hidden;
background: red;
}
.block {
width: 500px;
}
.child {
width: 100px;
height: 100px;
background: green;
position: sticky;
margin-left: auto;
right: 0;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="container">
<div class="block">
<div class="child">
</div>
</div>

View file

@ -0,0 +1,3 @@
features:
- name: contain-intrinsic-size
files: "**"

View file

@ -47,7 +47,7 @@
assert_equals(rules[0].selectorText, 'div'); assert_equals(rules[0].selectorText, 'div');
let div = rules[0]; let div = rules[0];
let x = div.style.getPropertyValue('--x'); let x = div.style.getPropertyValue('--x');
assert_equals(x, 'hover { }\n .b { }'); assert_equals(x.trim(), 'hover { }\n .b { }');
let childRules = div.cssRules; let childRules = div.cssRules;
assert_equals(childRules.length, 1); assert_equals(childRules.length, 1);
assert_equals(childRules[0].selectorText, '& .a'); assert_equals(childRules[0].selectorText, '& .a');

View file

@ -0,0 +1,3 @@
features:
- name: hyphens
files: "**"

View file

@ -0,0 +1,19 @@
<!-- DO NOT EDIT THIS FILE.
Edit the appearance-* file instead and then run:
./tools/appearance-build-webkit-reftests.py
-->
<!DOCTYPE html>
<title>CSS Basic User Interface Test: -webkit-appearance: auto on elements in non-HTML namespace</title>
<link rel="match" href="nothing-below-ref.html">
<link rel="help" href="https://drafts.csswg.org/css-ui-4/#appearance-switching">
<meta name="assert" content="-webkit-appearance: auto should have no effect on non-HTML elements.">
<style>
div * { -webkit-appearance: auto; display: inline-block; width: 1em; height: 1em; }
</style>
<p>There should be nothing below:</p>
<div id=div></div>
<script>
for (var tagName of ['button', 'input', 'meter', 'progress', 'select', 'textarea']) {
div.appendChild(document.createElementNS('not-html', tagName));
}
</script>

View file

@ -5,6 +5,10 @@ features:
- name: cap - name: cap
files: files:
- cap-* - cap-*
- name: exp-functions
files:
- exp-log-*
- hypot-pow-sqrt-*
- name: ic - name: ic
files: files:
- ic-* - ic-*

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<title>View transitions: iframe and main frame transition at the same time (ref)</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
body {
background: lightgreen;
}
</style>
<iframe srcdoc="
<style>
body {
background: lightblue;
}
</style>
"></iframe>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html class=reftest-wait>
<title>View transitions: iframe and main frame transition at the same time</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<link rel="match" href="iframe-and-main-frame-transition-new-main-new-iframe-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
/* Keep showing the live state for the main frame so we can assert the state of
screenshots in the iframe */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-old(root) {
animation: unset;
opacity: 0;
}
::view-transition-new(root) {
animation: unset;
opacity: 1;
}
</style>
<iframe srcdoc="
<style>
/* The iframe is showing new live DOM */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-new(root) {
animation: unset;
opacity: 1;
}
::view-transition-old(root) {
animation: unset;
opacity: 0;
}
</style>
<body></body>
"></iframe>
<script>
onload = runTest;
async function startTransition(document, oldColor, newColor) {
document.documentElement.style.background = oldColor;
await document.startViewTransition(() => {
document.documentElement.style.background = newColor;
}).ready;
}
async function runTest() {
await startTransition(document, "green", "lightgreen");
const iframeDocument = document.querySelector("iframe").contentDocument;
await startTransition(iframeDocument, "blue", "lightblue");
takeScreenshot();
}
</script>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<title>View transitions: iframe and main frame transition at the same time (ref)</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
body {
background: lightgreen;
}
</style>
<iframe srcdoc="
<style>
body {
background: blue;
}
</style>
"></iframe>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html class=reftest-wait>
<title>View transitions: iframe and main frame transition at the same time</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<link rel="match" href="iframe-and-main-frame-transition-new-main-old-iframe-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
/* Keep showing the live state for the main frame so we can assert the state of
screenshots in the iframe */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-old(root) {
animation: unset;
opacity: 0;
}
::view-transition-new(root) {
animation: unset;
opacity: 1;
}
</style>
<iframe srcdoc="
<style>
/* The iframe is showing old screenshots */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-old(root) {
animation: unset;
opacity: 1;
}
::view-transition-new(root) {
animation: unset;
opacity: 0;
}
</style>
<body></body>
"></iframe>
<script>
onload = runTest;
async function startTransition(document, oldColor, newColor) {
document.documentElement.style.background = oldColor;
await document.startViewTransition(() => {
document.documentElement.style.background = newColor;
}).ready;
}
async function runTest() {
await startTransition(document, "green", "lightgreen");
const iframeDocument = document.querySelector("iframe").contentDocument;
await startTransition(iframeDocument, "blue", "lightblue");
takeScreenshot();
}
</script>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<title>View transitions: iframe and main frame transition at the same time (ref)</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
body {
background: green;
}
</style>
<iframe srcdoc="
<style>
body {
background: lightblue;
}
</style>
"></iframe>

View file

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html class=reftest-wait>
<title>View transitions: iframe and main frame transition at the same time</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<link rel="match" href="iframe-and-main-frame-transition-old-main-new-iframe-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
/* Keep showing the screenshot for the main frame */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-old(root) {
animation: unset;
opacity: 1;
}
::view-transition-new(root) {
animation: unset;
opacity: 0;
}
</style>
<iframe srcdoc="
<style>
/* The iframe is showing live DOM */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-new(root) {
animation: unset;
opacity: 1;
}
::view-transition-old(root) {
animation: unset;
opacity: 0;
}
</style>
<body></body>
"></iframe>
<script>
onload = runTest;
async function startTransition(document, oldColor, newColor) {
document.documentElement.style.background = oldColor;
await document.startViewTransition(() => {
document.documentElement.style.background = newColor;
}).ready;
}
async function runTest() {
const iframeDocument = document.querySelector("iframe").contentDocument;
await startTransition(iframeDocument, "blue", "lightblue");
await startTransition(document, "green", "lightgreen");
takeScreenshot();
}
</script>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<title>View transitions: iframe and main frame transition at the same time (ref)</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
body {
background: green;
}
</style>
<iframe srcdoc="
<style>
body {
background: blue;
}
</style>
"></iframe>

View file

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html class=reftest-wait>
<title>View transitions: iframe and main frame transition at the same time</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<link rel="match" href="iframe-and-main-frame-transition-old-main-old-iframe-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
/* Keep showing the screenshot for the main frame */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-old(root) {
animation: unset;
opacity: 1;
}
::view-transition-new(root) {
animation: unset;
opacity: 0;
}
</style>
<iframe srcdoc="
<style>
/* The iframe is showing an old screenshot */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-old(root) {
animation: unset;
opacity: 1;
}
::view-transition-new(root) {
animation: unset;
opacity: 0;
}
</style>
<body></body>
"></iframe>
<script>
onload = runTest;
async function startTransition(document, oldColor, newColor) {
document.documentElement.style.background = oldColor;
await document.startViewTransition(() => {
document.documentElement.style.background = newColor;
}).ready;
}
async function runTest() {
const iframeDocument = document.querySelector("iframe").contentDocument;
await startTransition(iframeDocument, "blue", "lightblue");
await startTransition(document, "green", "lightgreen");
takeScreenshot();
}
</script>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<title>View transitions: iframe and main frame transition at the same time (ref)</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
body {
background: green;
}
</style>
<iframe srcdoc="
<style>
body {
background: orange;
}
</style>
"></iframe>

View file

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html class=reftest-wait>
<title>View transitions: iframe and main frame transition at the same time</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<link rel="match" href="iframe-and-main-frame-transition-old-main-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
}
/* The main frame is showing the old screenshot */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-new(root) {
animation: unset;
opacity: 0;
}
::view-transition-old(root) {
animation: unset;
opacity: 1;
}
</style>
<iframe srcdoc="
<style>
body {
background: orange;
}
</style>
<body></body>"></iframe>
<script>
onload = runTest;
async function startTransition(document, oldColor, newColor) {
document.documentElement.style.background = oldColor;
await document.startViewTransition(() => {
document.documentElement.style.background = newColor;
}).ready;
}
async function runTest() {
await startTransition(document, "green", "lightgreen");
// Start an iframe transition while the main frame transition is showing the
// old screenshot. This change shouldn't show up visually because the old
// screenshot on the main frame still has the iframe's old content.
const iframeDocument = document.querySelector("iframe").contentDocument;
await startTransition(iframeDocument, "blue", "lightblue");
takeScreenshot();
}
</script>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<title>View transitions: iframe and main frame transition at the same time with name on iframe (ref)</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
border: 1px solid orange;
}
body {
background: green;
}
</style>
<iframe srcdoc="
<style>
body {
background: blue;
}
</style>
"></iframe>

View file

@ -0,0 +1,93 @@
<!DOCTYPE html>
<html class=reftest-wait>
<title>View transitions: iframe and main frame transition at the same time with name on iframe</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
<link rel="match" href="iframe-and-main-frame-transition-with-name-on-iframe-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
iframe {
position: fixed;
top: 0;
left: 0;
width: 50vw;
height: 50vh;
view-transition-name: inner;
}
.old {
border: 1px solid black;
}
.new {
border: 1px solid orange;
}
/* The main frame is showing the old screenshot for the root */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-new(root) {
animation: unset;
opacity: 0;
}
::view-transition-old(root) {
animation: unset;
opacity: 1;
}
/* The iframe is showing the live screenshot */
::view-transition-new(inner) {
animation: unset;
opacity: 1;
}
::view-transition-old(inner) {
animation: unset;
opacity: 0;
}
</style>
<iframe id="inner" srcdoc="
<style>
/* The iframe document itself is showing an old screenshot */
::view-transition-group(root) {
animation-duration: 300s;
}
::view-transition-new(root) {
animation: unset;
opacity: 0;
}
::view-transition-old(root) {
animation: unset;
opacity: 1;
}
</style>
<body></body>"></iframe>
<script>
onload = runTest;
async function startTransition(document, oldColor, newColor, nestedFrame) {
document.documentElement.style.background = oldColor;
if (nestedFrame != null)
nestedFrame.classList.add("old");
await document.startViewTransition(() => {
document.documentElement.style.background = newColor;
if (nestedFrame != null) {
nestedFrame.classList.remove("old");
nestedFrame.classList.add("new");
}
}).ready;
}
async function runTest() {
await startTransition(document, "green", "lightgreen", document.getElementById("inner"));
const iframeDocument = document.querySelector("iframe").contentDocument;
await startTransition(iframeDocument, "blue", "lightblue", null);
takeScreenshot();
}
</script>

View file

@ -10,4 +10,4 @@ body {
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
</style>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>backdrop-filter: The backdrop root concept</title>
<link rel="author" href="mailto:masonf@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropRoot">
<link rel=stylesheet href="resources/backdrop-filter-backdrop-root.css">
<link rel="match" href="backdrop-filter-backdrop-root-ref.html">
<!-- A Backdrop Root is formed, anywhere in the document, by:
- An element with a backdrop-filter value other than "none".
- An element with a will-change value specifying any property that would create a Backdrop Root on non-initial value. -->
<div class=container>
<div class=testcase>
<div style="backdrop-filter: invert(0);"><div></div></div>
</div>
<div class=testcase>
<div style="will-change:backdrop-filter;"><div></div></div>
</div>
</div>

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