mirror of
https://github.com/servo/servo.git
synced 2025-06-29 11:33:39 +01:00
Auto merge of #28139 - servo-wpt-sync:wpt_update_03-02-2021, r=servo-wpt-sync
Sync WPT with upstream (03-02-2021) Automated downstream sync of changes from upstream as of 03-02-2021. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
00b98796bd
230 changed files with 1832 additions and 1867 deletions
|
@ -0,0 +1,5 @@
|
|||
[url-charset.window.html]
|
||||
expected: TIMEOUT
|
||||
[Blob charset should override any auto-detected charset.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -309,30 +309,24 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<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>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +1,4 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener of discarded nested browsing context]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[2d.transformation.translate3d.html]
|
||||
[translate3d() function modifies the underlying matrix appropriately]
|
||||
expected: FAIL
|
||||
|
|
@ -1,16 +1,17 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit.html]
|
||||
[default submit action should supersede onclick submit()]
|
||||
expected: FAIL
|
||||
|
|
@ -1,16 +1,4 @@
|
|||
[select-event.html]
|
||||
[input type text: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -20,54 +8,63 @@
|
|||
[textarea: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionStart a second time (must not fire select)]
|
||||
[input type password: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +0,0 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[iframe-inheritance-srcdoc.html]
|
||||
expected: TIMEOUT
|
||||
[iframes srcdoc correctly inherit the ancestor's referrer policy]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[audiocontext-not-fully-active.html]
|
||||
expected: TIMEOUT
|
||||
[frame in navigated remote-site frame]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
5
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
5
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[url-charset.window.html]
|
||||
expected: TIMEOUT
|
||||
[Blob charset should override any auto-detected charset.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,67 +0,0 @@
|
|||
[domain-tests.html]
|
||||
[domain0036 - domain0036]
|
||||
expected: FAIL
|
||||
|
||||
[domain0035 - domain0035]
|
||||
expected: FAIL
|
||||
|
||||
[domain0029 - domain0029]
|
||||
expected: FAIL
|
||||
|
||||
[domain0022 - domain0022]
|
||||
expected: FAIL
|
||||
|
||||
[domain0005 - domain0005]
|
||||
expected: FAIL
|
||||
|
||||
[optional-domain0041 - optional-domain0041]
|
||||
expected: FAIL
|
||||
|
||||
[domain0003 - domain0003]
|
||||
expected: FAIL
|
||||
|
||||
[domain0019 - domain0019]
|
||||
expected: FAIL
|
||||
|
||||
[domain0040 - domain0040]
|
||||
expected: FAIL
|
||||
|
||||
[domain0025 - domain0025]
|
||||
expected: FAIL
|
||||
|
||||
[domain0020 - domain0020]
|
||||
expected: FAIL
|
||||
|
||||
[domain0001 - domain0001]
|
||||
expected: FAIL
|
||||
|
||||
[domain0038 - domain0038]
|
||||
expected: FAIL
|
||||
|
||||
[domain0039 - domain0039]
|
||||
expected: FAIL
|
||||
|
||||
[domain0033 - domain0033]
|
||||
expected: FAIL
|
||||
|
||||
[domain0031 - domain0031]
|
||||
expected: FAIL
|
||||
|
||||
[domain0023 - domain0023]
|
||||
expected: FAIL
|
||||
|
||||
[domain0012 - domain0012]
|
||||
expected: FAIL
|
||||
|
||||
[domain0008 - domain0008]
|
||||
expected: FAIL
|
||||
|
||||
[domain0009 - domain0009]
|
||||
expected: FAIL
|
||||
|
||||
[domain0026 - domain0026]
|
||||
expected: FAIL
|
||||
|
||||
[domain0004 - domain0004]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -309,30 +309,24 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<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>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +1,4 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener and "removed" embedded documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[2d.transformation.translate3d.html]
|
||||
[translate3d() function modifies the underlying matrix appropriately]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -6,11 +7,11 @@
|
|||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit.html]
|
||||
[default submit action should supersede onclick submit()]
|
||||
expected: FAIL
|
||||
|
|
@ -1,16 +1,4 @@
|
|||
[select-event.html]
|
||||
[input type text: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -20,54 +8,63 @@
|
|||
[textarea: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionStart a second time (must not fire select)]
|
||||
[input type password: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +0,0 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[iframe-inheritance-srcdoc.html]
|
||||
expected: TIMEOUT
|
||||
[iframes srcdoc correctly inherit the ancestor's referrer policy]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[audiocontext-not-fully-active.html]
|
||||
expected: TIMEOUT
|
||||
[frame in navigated remote-site frame]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -77,6 +77,9 @@ jobs:
|
|||
pool:
|
||||
vmImage: 'ubuntu-18.04'
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: '3.8.x'
|
||||
- template: tools/ci/azure/checkout.yml
|
||||
- script: |
|
||||
set -euo pipefail
|
||||
|
|
|
@ -10,6 +10,10 @@ jobs:
|
|||
build-and-tag:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v1
|
||||
with:
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
function describe(value) {
|
||||
let type, str;
|
||||
if (typeof value === 'object' && value) {
|
||||
type = value.__proto__.constructor.name;
|
||||
type = Object.getPrototypeOf(value).constructor.name;
|
||||
// Handle Number(-0), etc.
|
||||
str = Object.is(value.valueOf(), -0) ? '-0' : String(value);
|
||||
} else {
|
||||
|
@ -54,7 +54,7 @@ function cloneObjectTest(value, verifyFunc) {
|
|||
cloneTest(value, async (orig, clone) => {
|
||||
assert_not_equals(orig, clone);
|
||||
assert_equals(typeof clone, 'object');
|
||||
assert_equals(orig.__proto__, clone.__proto__);
|
||||
assert_equals(Object.getPrototypeOf(orig), Object.getPrototypeOf(clone));
|
||||
await verifyFunc(orig, clone);
|
||||
});
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ const strings = [
|
|||
].forEach(value => cloneTest(value, (orig, clone) => {
|
||||
assert_not_equals(orig, clone);
|
||||
assert_equals(typeof clone, 'object');
|
||||
assert_equals(orig.__proto__, clone.__proto__);
|
||||
assert_equals(Object.getPrototypeOf(orig), Object.getPrototypeOf(clone));
|
||||
assert_equals(orig.valueOf(), clone.valueOf());
|
||||
}));
|
||||
|
||||
|
@ -261,7 +261,7 @@ cloneObjectTest({foo: true, bar: false}, (orig, clone) => {
|
|||
new DOMRect,
|
||||
new DOMRectReadOnly(),
|
||||
].forEach(value => cloneObjectTest(value, (orig, clone) => {
|
||||
Object.keys(orig.__proto__).forEach(key => {
|
||||
Object.keys(Object.getPrototypeOf(orig)).forEach(key => {
|
||||
assert_equals(orig[key], clone[key], `Property ${key}`);
|
||||
});
|
||||
}));
|
||||
|
|
|
@ -9,14 +9,7 @@
|
|||
//
|
||||
// --enable-blink-features=MojoJS,MojoJSTest
|
||||
async function loadChromiumResources() {
|
||||
|
||||
const chromiumResources = [
|
||||
'/gen/third_party/blink/public/mojom/contacts/contacts_manager.mojom.js',
|
||||
'/gen/components/payments/mojom/payment_request_data.mojom.js',
|
||||
];
|
||||
|
||||
await loadMojoResources(chromiumResources);
|
||||
await loadScript('/resources/chromium/contacts_manager_mock.js');
|
||||
await import('/resources/chromium/contacts_manager_mock.js');
|
||||
}
|
||||
|
||||
// User Agents must provide their own implementation of `WebContacts`,
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>Test cookie domain attribute parsing</title>
|
||||
<meta name=help href="https://tools.ietf.org/html/rfc6265#section-5.2.3">
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/cookies/resources/cookie-test.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
const port = "{{ports[http][0]}}";
|
||||
const wwwHost = "{{domains[www]}}";
|
||||
|
||||
test(t => {
|
||||
const win = window.open(`http://${wwwHost}:${port}/cookies/attributes/resources/domain-child.sub.html`);
|
||||
fetch_tests_from_window(win);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -154,6 +154,11 @@
|
|||
expected: "test25",
|
||||
name: "Ignore name- and value-less `Set-Cookie: \\t`",
|
||||
},
|
||||
{
|
||||
cookie: "test=26; domain=.parser.test; ;; ;=; ,,, ===,abc,=; abracadabra! max-age=20;=;;",
|
||||
expected: "",
|
||||
name: "Ignore cookie with domain that won't domain match (along with other invalid noise)",
|
||||
},
|
||||
];
|
||||
|
||||
for (const test of invalidAttributeTests) {
|
||||
|
|
|
@ -0,0 +1,351 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>Test cookie domain attribute parsing</title>
|
||||
<meta name=help href="https://tools.ietf.org/html/rfc6265#section-5.2.3">
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/cookies/resources/cookie-test.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
const path = "path=/cookies/attributes"
|
||||
const port = "{{ports[http][0]}}";
|
||||
const host = "{{host}}"; // example.org
|
||||
const wwwHost = "{{domains[www]}}"; // home.example.org
|
||||
const www1Host = "{{domains[www1]}}"; // sibling.example.org
|
||||
const www2wwwHost = "{{domains[www2.www]}}"; // subdomain.home.example.org
|
||||
|
||||
// naive helper method to return the TLD for a given domain
|
||||
const getTLD = domain => {
|
||||
let match = /\.[a-z]+$/.exec(domain);
|
||||
if (match) {
|
||||
return match[0];
|
||||
} else {
|
||||
throw 'Domain is malformed!';
|
||||
}
|
||||
}
|
||||
|
||||
// helper to take a domain like "www.example.org"
|
||||
// and return a string like "www.eXaMpLe.org"
|
||||
const makeBizarre = domain => {
|
||||
let bizarre = "";
|
||||
let domainArray = domain.split(".");
|
||||
let secondLevel = domainArray[domainArray.length - 2];
|
||||
for (let i in secondLevel) {
|
||||
if (i % 2 == 1) {
|
||||
bizarre += secondLevel[i].toUpperCase();
|
||||
} else {
|
||||
bizarre += secondLevel[i];
|
||||
}
|
||||
}
|
||||
domainArray[domainArray.length - 2] = bizarre;
|
||||
return domainArray.join(".");
|
||||
}
|
||||
|
||||
// helper to change the current TLD to a TLD that doesn't exist, and is
|
||||
// unlikely to exist in the future. (the main point is that the TLD
|
||||
// *changes*, so there is no domain match, but we cant' predict how WPT
|
||||
// servers may be set up in the wild so picking any valid TLD has the risk
|
||||
// of future (unintentional) domain matching.
|
||||
const changeTLD = domain => {
|
||||
let domainArray = domain.split(".");
|
||||
domainArray[domainArray.length - 1] += "zzz";
|
||||
return domainArray.join(".");
|
||||
}
|
||||
|
||||
const domainTests = [
|
||||
{
|
||||
cookie: `test=1; domain=${wwwHost}`,
|
||||
expected: "test=1",
|
||||
name: "Return cookie for a domain match",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=2; domain=${wwwHost}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain mismatch (subdomains differ post-redirect)",
|
||||
location: `http://${www1Host}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=3; domain=.${wwwHost}`,
|
||||
expected: "test=3",
|
||||
name: "Return cookie for a domain match with leading '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=4; domain=${wwwHost}`,
|
||||
expected: "test=4",
|
||||
name: "Return cookie for domain match (domain attribute is suffix of the host name and first level subdomain)",
|
||||
location: `http://${www2wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=5; domain=.${wwwHost}`,
|
||||
expected: "test=5",
|
||||
name: "Return cookie for domain match (domain attribute is suffix of the host name and first level subdomain, with leading '.')",
|
||||
location: `http://${www2wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=6; domain=.${wwwHost}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain mismatch (subdomains differ, with leading '.')",
|
||||
location: `http://${www1Host}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=7; domain=${www1Host}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain mismatch when cookie was created (which would match after the redirect, with one subdomain level)",
|
||||
location: `http://${www1Host}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=8; domain=.${host}`,
|
||||
expected: "test=8",
|
||||
name: "Return cookie for domain match (domain attribute is suffix of the host name, with leading '.')",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=9; domain=${host}`,
|
||||
expected: "test=9",
|
||||
name: "Return cookie for domain match (domain attribute is suffix of the host name)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=10; domain=..${wwwHost}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with double leading '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=11; domain=www..${host}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with subdomain followed by ..",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=12; domain= .${wwwHost}`,
|
||||
expected: "test=12",
|
||||
name: "Return cookie for a domain match with leading whitespace and '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=13; domain= . ${wwwHost}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with whitespace that surrounds a leading '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=14; domain=${wwwHost}.`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with trailing '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=15; domain=${wwwHost}..`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with trailing '..'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=16; domain=${wwwHost} .`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with trailing whitespace and '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=17; domain=${getTLD(host)}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with TLD as value",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=18; domain=.${getTLD(host)}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with TLD as value, with leading '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=18b; domain=.${getTLD(host)}.`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute with TLD as value, with leading and trailing '.'",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: [`testA=19; domain=${wwwHost}`, `testB=19; domain=.${wwwHost}`],
|
||||
expected: "testA=19; testB=19",
|
||||
name: "Return multiple cookies that match on domain (without and with leading '.')",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: [`testB=20; domain=.${wwwHost}`, `testA=20; domain=${wwwHost}`],
|
||||
expected: "testB=20; testA=20",
|
||||
name: "Return multiple cookies that match on domain (with and without leading '.')",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=21; domain="${wwwHost}"`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute value between quotes",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: [`testA=22; domain=${wwwHost}`, `testB=22; domain=.${host}`],
|
||||
expected: "testA=22; testB=22",
|
||||
name: "Return multiple cookies that match on subdomain and domain (without and with leading '.')",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: [`testB=23; domain=.${host}`, `testA=23; domain=${wwwHost}`],
|
||||
expected: "testB=23; testA=23",
|
||||
name: "Return multiple cookies that match on domain and subdomain (with and without leading '.')",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=24; domain=.${host}; domain=${wwwHost}`,
|
||||
expected: "",
|
||||
name: "No cookie returned when domain attribute does not domain-match (and first does)",
|
||||
location: `http://${www1Host}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=25; domain=${wwwHost}; domain=.${host}`,
|
||||
expected: "test=25",
|
||||
name: "Return cookie for domain attribute match (first does not, but second does)",
|
||||
location: `http://${www1Host}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=26; domain=${makeBizarre(wwwHost)}`,
|
||||
expected: "test=26",
|
||||
name: "Return cookie for domain match (with bizarre capitalization for domain attribute value)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=27; domain="${wwwHost}:${port}"`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute value with port",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=28; domain=${www2wwwHost}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain mismatch when cookie was created (which would match after the redirect, with two subdomain levels)",
|
||||
location: `http://${www2wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=29`,
|
||||
expected: "",
|
||||
name: "No cookie returned for cookie set on different domain (with no domain attribute)",
|
||||
location: `http://${www2wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: "test=30; domain=",
|
||||
expected: "test=30",
|
||||
name: "Return cookie set with bare domain= attribute",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=31; domain=${wwwHost}`,
|
||||
expected: "test=31",
|
||||
name: "Return cookie that domain-matches with bizarre-cased URL",
|
||||
location: `http://${makeBizarre(wwwHost)}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=32; domain=${wwwHost}; domain=${changeTLD(wwwHost)}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute mismatch (first attribute matches, but second does not)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=33; domain=${changeTLD(wwwHost)}; domain=${wwwHost}`,
|
||||
expected: "test=33",
|
||||
name: "Return cookie for domain match (first attribute doesn't, but second does)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=34; domain=${wwwHost}; domain=${changeTLD(wwwHost)}; domain=${wwwHost}`,
|
||||
expected: "test=34",
|
||||
name: "Return cookie for domain match (first attribute matches, second doesn't, third does)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=35; domain=${changeTLD(wwwHost)}; domain=${wwwHost}; domain=${changeTLD(wwwHost)}`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain attribute mismatch (first attribute doesn't, second does, third doesn't)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=36; domain=${wwwHost}; domain=${wwwHost}`,
|
||||
expected: "test=36",
|
||||
name: "Return cookie for domain match (with two identical domain attributes)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=37; domain=${wwwHost}; domain=${host}`,
|
||||
expected: "test=37",
|
||||
name: "Return cookie for domain match (with first domain attribute a match for host name and second as suffix of host name)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=38; domain=${host}; domain=${wwwHost}`,
|
||||
expected: "test=38",
|
||||
name: "Return cookie for domain match (with first domain attribute as suffix of host name and second a match for host name)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=39; domain=.${www1Host}`,
|
||||
expected: "",
|
||||
name: "No cookie set on domain mismatch before a (domain matching) redirect",
|
||||
location: `http://${www1Host}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=40; domain=.${www2wwwHost}`,
|
||||
expected: "",
|
||||
name: "No cookie set on domain mismatch before a (domain matching) redirect (for second level subdomain)",
|
||||
location: `http://${www2wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=41; domain=${host}; domain=`,
|
||||
expected: "test=41",
|
||||
name: "Return cookie for domain match (with first domain attribute as suffix of host name and second a bare attribute)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=42; domain=${www1Host}; domain=`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain mismatch (with domain mismatch as first domain attribute and second a bare attribute)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: `test=43 domain=${www1Host}; domain=`,
|
||||
expected: "",
|
||||
name: "No cookie returned for domain mismatch (first attribute is a different subdomain and second is bare)",
|
||||
location: `http://${www2wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: [`test=not44; domain=${wwwHost}`, `test=44; domain=.${wwwHost}`],
|
||||
expected: "test=44",
|
||||
name: "Cookies with same name, path, and domain (differing only in leading '.') overwrite each other ('.' second)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
{
|
||||
cookie: [`test=not45; domain=.${wwwHost}`, `test=45; domain=${wwwHost}`],
|
||||
expected: "test=45",
|
||||
name: "Cookies with same name, path, and domain (differing only in leading '.') overwrite each other ('.' first)",
|
||||
location: `http://${wwwHost}:${port}/cookies/attributes/resources/path.html`,
|
||||
},
|
||||
];
|
||||
|
||||
for (const test of domainTests) {
|
||||
if (Array.isArray(test.cookie)) {
|
||||
for (let i in test.cookie) {
|
||||
test.cookie[i] += `; ${path}`;
|
||||
}
|
||||
} else {
|
||||
test.cookie += `; ${path}`;
|
||||
}
|
||||
|
||||
httpRedirectCookieTest(test.cookie, test.expected, test.name,
|
||||
test.location);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,22 @@
|
|||
window.expireCookie = (cookie) => {
|
||||
function expireCookie(cookie) {
|
||||
const cookies = Array.isArray(cookie) ? cookie : [cookie];
|
||||
for (let c of cookies) {
|
||||
document.cookie = c += "; max-age=0";
|
||||
}
|
||||
}
|
||||
window.getCookies = () => document.cookie;
|
||||
|
||||
function getCookies() {
|
||||
return document.cookie;
|
||||
}
|
||||
|
||||
window.addEventListener("message", (e) => {
|
||||
if (e.data == "getCookies") {
|
||||
const cookies = getCookies();
|
||||
e.source.postMessage({"cookies": cookies}, '*');
|
||||
}
|
||||
|
||||
if (typeof e.data == "object" && 'expireCookie' in e.data) {
|
||||
expireCookie(e.data.expireCookie);
|
||||
e.source.postMessage("expired", '*');
|
||||
}
|
||||
});
|
|
@ -0,0 +1 @@
|
|||
Access-Control-Allow-Origin: *
|
|
@ -1,74 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset=utf-8>
|
||||
<title>Tests cookie setting domain functionality</title>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/cookie-http-state-template.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<div id="iframes"></div>
|
||||
<script>
|
||||
setup({ explicit_timeout: true });
|
||||
|
||||
const TEST_CASES = [
|
||||
{file: "domain0001", name: "domain0001"},
|
||||
{file: "domain0002", name: "domain0002"},
|
||||
{file: "domain0003", name: "domain0003"},
|
||||
{file: "domain0004", name: "domain0004"},
|
||||
{file: "domain0005", name: "domain0005"},
|
||||
{file: "domain0006", name: "domain0006"},
|
||||
{file: "domain0007", name: "domain0007"},
|
||||
{file: "domain0008", name: "domain0008"},
|
||||
{file: "domain0009", name: "domain0009"},
|
||||
{file: "domain0010", name: "domain0010"},
|
||||
{file: "domain0011", name: "domain0011"},
|
||||
{file: "domain0012", name: "domain0012"},
|
||||
{file: "domain0013", name: "domain0013"},
|
||||
{file: "domain0014", name: "domain0014"},
|
||||
{file: "domain0015", name: "domain0015"},
|
||||
{file: "domain0016", name: "domain0016"},
|
||||
{file: "domain0017", name: "domain0017"},
|
||||
{file: "domain0018", name: "domain0018"},
|
||||
{file: "domain0019", name: "domain0019"},
|
||||
{file: "domain0020", name: "domain0020"},
|
||||
{file: "domain0021", name: "domain0021"},
|
||||
{file: "domain0022", name: "domain0022"},
|
||||
{file: "domain0023", name: "domain0023"},
|
||||
{file: "domain0024", name: "domain0024"},
|
||||
{file: "domain0025", name: "domain0025"},
|
||||
{file: "domain0026", name: "domain0026"},
|
||||
{file: "domain0027", name: "domain0027"},
|
||||
{file: "domain0028", name: "domain0028"},
|
||||
{file: "domain0029", name: "domain0029"},
|
||||
{file: "optional-domain0030", name: "optional-domain0030"},
|
||||
{file: "domain0031", name: "domain0031"},
|
||||
{file: "domain0033", name: "domain0033"},
|
||||
{file: "domain0034", name: "domain0034"},
|
||||
{file: "domain0035", name: "domain0035"},
|
||||
{file: "domain0036", name: "domain0036"},
|
||||
{file: "domain0037", name: "domain0037"},
|
||||
{file: "domain0038", name: "domain0038"},
|
||||
{file: "domain0039", name: "domain0039"},
|
||||
{file: "domain0040", name: "domain0040"},
|
||||
{file: "domain0041", name: "domain0041"},
|
||||
{file: "domain0042", name: "domain0042"},
|
||||
{file: "optional-domain0041", name: "optional-domain0041"},
|
||||
{file: "optional-domain0042", name: "optional-domain0042"},
|
||||
{file: "optional-domain0043", name: "optional-domain0043"},
|
||||
];
|
||||
|
||||
for (const i in TEST_CASES) {
|
||||
const t = TEST_CASES[i];
|
||||
promise_test(createCookieTest(t.file),
|
||||
t.file + " - " + t.name);
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0001
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org
|
||||
Location: http://sibling.example.org:8888/cookie-parser-result?domain0002
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=.home.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0003
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org
|
||||
Location: http://subdomain.home.example.org:8888/cookie-parser-result?domain0004
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=.home.example.org
|
||||
Location: http://subdomain.home.example.org:8888/cookie-parser-result?domain0005
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=.home.example.org
|
||||
Location: http://sibling.example.org:8888/cookie-parser-result?domain0006
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=sibling.example.org
|
||||
Location: http://sibling.example.org:8888/cookie-parser-result?domain0007
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0008
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0009
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=..home.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0010
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home..example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0011
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain= .home.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0012
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain= . home.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0013
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org.
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0014
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org..
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0015
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org .
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0016
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0017
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=.org.
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0018
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar; foo2=bar2
|
|
@ -1,3 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org
|
||||
Set-Cookie: foo2=bar2; domain=.home.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0019
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo2=bar2; foo=bar
|
|
@ -1,3 +0,0 @@
|
|||
Set-Cookie: foo2=bar2; domain=.home.example.org
|
||||
Set-Cookie: foo=bar; domain=home.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0020
|
|
@ -1,2 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain="home.example.org"
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0021
|
|
@ -1 +0,0 @@
|
|||
Cookie: foo=bar; foo2=bar2
|
|
@ -1,3 +0,0 @@
|
|||
Set-Cookie: foo=bar; domain=home.example.org
|
||||
Set-Cookie: foo2=bar2; domain=.example.org
|
||||
Location: http://home.example.org:8888/cookie-parser-result?domain0022
|
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