Auto merge of #26664 - servo-wpt-sync:wpt_update_26-05-2020, r=servo-wpt-sync

Sync WPT with upstream (26-05-2020)

Automated downstream sync of changes from upstream as of 26-05-2020.
[no-wpt-sync]
r? @servo-wpt-sync
This commit is contained in:
bors-servo 2020-05-27 05:38:27 -04:00 committed by GitHub
commit 9f0ec12863
57 changed files with 356 additions and 162 deletions

View file

@ -4,7 +4,7 @@
expected: TIMEOUT
[Opening a blob URL in a new window immediately before revoking it works.]
expected: TIMEOUT
expected: FAIL
[Fetching a blob URL immediately before revoking it works in an iframe.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-003.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,2 @@
[mix-blend-mode-animation.html]
expected: TIMEOUT

View file

@ -2,6 +2,3 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -2,6 +2,3 @@
[listeners are called when <iframe> is resized]
expected: FAIL
[listeners are called correct number of times]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,32 @@
[webkit-transition-end-event.html]
expected: TIMEOUT
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
expected: FAIL
[onwebkittransitionend event handler should trigger for an animation]
expected: FAIL
[onwebkittransitionend event handler should not trigger if an unprefixed listener also exists]
expected: FAIL
[event types for prefixed and unprefixed transitionend event handlers should be named appropriately]
expected: FAIL
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
expected: TIMEOUT
[ontransitionend and onwebkittransitionend are not aliases]
expected: FAIL
[webkitTransitionEnd event listener is case sensitive]
expected: NOTRUN
[webkitTransitionEnd event listener should trigger for an animation]
expected: FAIL
[dispatchEvent of a webkitTransitionEnd event does trigger a prefixed event handler or listener]
expected: FAIL
[onwebkittransitionend event handler should not trigger if an unprefixed event handler also exists]
expected: FAIL

View file

@ -312,15 +312,6 @@
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
@ -330,12 +321,15 @@
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

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

View file

@ -11,9 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
expected: FAIL
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -1,20 +1,16 @@
[supported-elements.html]
expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: TIMEOUT
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
expected: NOTRUN
expected: FAIL
[Element with tabindex should support autofocus]
expected: NOTRUN
expected: FAIL
[Area element should support autofocus]
expected: NOTRUN
expected: FAIL
[Host element with delegatesFocus should support autofocus]
expected: NOTRUN
[Non-HTMLElement should not support autofocus]
expected: NOTRUN
expected: FAIL

View file

@ -1,4 +1,5 @@
[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: FAIL
expected: TIMEOUT

View file

@ -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

View file

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

View file

@ -3,6 +3,3 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
expected: TIMEOUT
expected: FAIL
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: TIMEOUT

View file

@ -161978,6 +161978,19 @@
{}
]
],
"scroll-target-margin-004.html": [
"ac87c8684d6a13cf400baea0fb918e4c59db368e",
[
null,
[
[
"/css/css-scroll-snap/scroll-target-001-ref.html",
"=="
]
],
{}
]
],
"scroll-target-padding-001.html": [
"5cd4fddcc53637b6f7e005574398d88c48bed8b1",
[
@ -243032,7 +243045,7 @@
},
"support": {
".azure-pipelines.yml": [
"8c39de66f4890b8507aaba8325a7fb7da176bc17",
"215f3d8ffd8e2e3ef2d2abdde4e2a6e7b5058fe2",
[]
],
".codecov.yml": [
@ -343669,7 +343682,7 @@
[]
],
"affected_tests.yml": [
"7811ba95917bb3cc6b5d32ecbe9e89529761adc3",
"494ff1efa19cc02133370948383e5fb22144d4ff",
[]
],
"checkout.yml": [
@ -378648,7 +378661,7 @@
]
],
"cookieStore_subscribe_arguments.tentative.https.any.js": [
"e3401ca46a4d0cc463ea732bf4ae00308447c792",
"c86ea871645e1d9a289a4f8acb0f300d104c8418",
[
"cookie-store/cookieStore_subscribe_arguments.tentative.https.any.html",
{
@ -404553,7 +404566,7 @@
]
],
"semantics.html": [
"51e5c5162841a582d3a7a17b776517c5b0731e41",
"262e601b5ddbe62015c883c68396d519167ee4a9",
[
null,
{}
@ -405090,7 +405103,7 @@
]
],
"selectors-case-sensitive-001.html": [
"d0214078bddff61f6d72fb6e600615d5882c1d21",
"68915545430fa9fb5fa65327e38693497cc66ad2",
[
null,
{}
@ -410189,7 +410202,7 @@
]
],
"idlharness.window.js": [
"f0e5d06658e773fd5f9ebf85511636e74c92dc80",
"a3189c3679e97ccd1c1d9672cc7d9f81bcc686f5",
[
"element-timing/idlharness.window.html",
{
@ -410201,8 +410214,13 @@
[
"script",
"/resources/idlharness.js"
],
[
"timeout",
"long"
]
]
],
"timeout": "long"
}
]
],
@ -423094,10 +423112,12 @@
]
],
"feature-policy-nested-header-policy-allowed-for-all.https.sub.html": [
"289fd508444d2716f0889d349e9de331ba596860",
"fb62660519032dff1222a69923292f924233be62",
[
null,
{}
{
"timeout": "long"
}
]
],
"feature-policy-nested-header-policy-allowed-for-self.https.sub.html": [
@ -436460,7 +436480,7 @@
]
],
"canvas-createImageBitmap-e_srgb.html": [
"a5b2ffa6c966bbaab4783b5a897aef095319b472",
"9cad95a87ba552bba2b055e97f048b3589f993a5",
[
null,
{}
@ -457908,7 +457928,7 @@
]
],
"dialog-showModal.html": [
"16b55b16270b23744529eb70c125e997e6c62c89",
"32f308235eb973feb78d682fe21bc33e4279da3e",
[
null,
{}
@ -476832,7 +476852,7 @@
]
],
"pointerevent_pointermove_in_pointerlock.html": [
"5ad3de354574d4bde5668dfc3dec479fe252a385",
"3d8d47af239a052a79845dbdb23ac560a819e2ec",
[
null,
{
@ -550575,7 +550595,7 @@
},
"print": {
"printcmd.py": [
"88a6e4732d1e05a32c97ef91043397a9b9cbeccb",
"8f3d99af8088ded2db2026b132d7c09ebd654874",
[
null,
{}

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-003.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,2 @@
[mix-blend-mode-animation.html]
expected: TIMEOUT

View file

@ -2,6 +2,3 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -2,6 +2,3 @@
[listeners are called when <iframe> is resized]
expected: FAIL
[listeners are called correct number of times]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -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

View file

@ -1,4 +1,5 @@
[webkit-transition-end-event.html]
expected: TIMEOUT
[dispatchEvent of an transitionend event does not trigger a prefixed event handler or listener]
expected: FAIL
@ -12,7 +13,7 @@
expected: FAIL
[event types for prefixed and unprefixed transitionend event listeners should be named appropriately]
expected: FAIL
expected: TIMEOUT
[ontransitionend and onwebkittransitionend are not aliases]
expected: FAIL
@ -26,3 +27,6 @@
[onwebkittransitionend event handler should not trigger if an unprefixed event handler also exists]
expected: FAIL
[webkitTransitionEnd event listener is case sensitive]
expected: NOTRUN

View file

@ -312,15 +312,6 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
@ -330,12 +321,15 @@
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

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

View file

@ -11,9 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
expected: FAIL
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
[X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -1,20 +1,16 @@
[supported-elements.html]
expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: TIMEOUT
expected: FAIL
[Element with tabindex should support autofocus]
expected: NOTRUN
expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
expected: NOTRUN
expected: FAIL
[Area element should support autofocus]
expected: NOTRUN
expected: FAIL
[Host element with delegatesFocus should support autofocus]
expected: NOTRUN
[Non-HTMLElement should not support autofocus]
expected: NOTRUN
expected: FAIL

View file

@ -1,5 +1,6 @@
[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: FAIL
expected: TIMEOUT

View file

@ -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

View file

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

View file

@ -4,6 +4,3 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -107,11 +107,11 @@ jobs:
- template: tools/ci/azure/install_safari.yml
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel dev chrome infrastructure/
- script: ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel dev chrome infrastructure/
displayName: 'Run tests (Chrome Dev)'
- script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel nightly firefox infrastructure/
- script: ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel nightly firefox infrastructure/
displayName: 'Run tests (Firefox Nightly)'
- script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel preview safari infrastructure/
- script: ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel preview safari infrastructure/
displayName: 'Run tests (Safari Technology Preview)'
- template: tools/ci/azure/publish_logs.yml
@ -611,7 +611,7 @@ jobs:
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
# --exclude is a workaround for https://github.com/web-platform-tests/wpt/issues/18995 + https://github.com/web-platform-tests/wpt/issues/20887 + https://github.com/web-platform-tests/wpt/issues/22175 + https://github.com/web-platform-tests/wpt/issues/23630
- script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --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 safari --exclude /pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html --exclude /pointerevents/pointerevent_pointercapture_in_frame.html --exclude /web-share/share-sharePromise-internal-slot.https.html --exclude /webdriver/tests/perform_actions/pointer_tripleclick.py
- script: ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --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 safari --exclude /pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html --exclude /pointerevents/pointerevent_pointercapture_in_frame.html --exclude /web-share/share-sharePromise-internal-slot.https.html --exclude /webdriver/tests/perform_actions/pointer_tripleclick.py
displayName: 'Run tests'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
@ -647,7 +647,7 @@ jobs:
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
# --exclude is a workaround for https://github.com/web-platform-tests/wpt/issues/18995 + https://github.com/web-platform-tests/wpt/issues/20887 + https://github.com/web-platform-tests/wpt/issues/23630
- script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --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 preview safari --exclude /pointerevents/pointerevent_pointercapture_in_frame.html --exclude /web-share/share-sharePromise-internal-slot.https.html --exclude /webdriver/tests/perform_actions/pointer_tripleclick.py
- script: ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --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 preview safari --exclude /pointerevents/pointerevent_pointercapture_in_frame.html --exclude /web-share/share-sharePromise-internal-slot.https.html --exclude /webdriver/tests/perform_actions/pointer_tripleclick.py
displayName: 'Run tests'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'

View file

@ -64,3 +64,86 @@ promise_test(async testCase => {
registration.cookies.subscribe(
{ name: 'cookie-name', matchType: 'equals', url: '/wrong/path' }));
}, 'cookieStore.subscribe with invalid url path in option');
promise_test(async testCase => {
if (self.GLOBAL.isWindow()) {
const registration = await service_worker_unregister_and_register(
testCase, 'resources/empty_sw.js',
'/cookie-store/resources/does/not/exist');
testCase.add_cleanup(() => registration.unregister());
// Must wait for the service worker to enter the 'activated' state before
// subscribing to cookiechange events.
await wait_for_state(testCase, registration.installing, 'activated');
self.registration = registration;
} else if (!self.registration.active) {
// Must wait for the service worker to enter the 'activated' state before
// subscribing to cookiechange events.
await new Promise(resolve => {
self.addEventListener('activate', event => { resolve(); });
});
}
{
const subscriptions = [
{ name: 'cookie-name', matchType: 'equals' }
];
// Call subscribe for same subscription multiple times to verify that it is
// idempotent.
await self.registration.cookies.subscribe(subscriptions);
await self.registration.cookies.subscribe(subscriptions);
await self.registration.cookies.subscribe(subscriptions);
testCase.add_cleanup(() => registration.cookies.unsubscribe(subscriptions));
}
const subscriptions = await registration.cookies.getSubscriptions();
assert_equals(subscriptions.length, 1);
assert_equals(subscriptions[0].name, 'cookie-name');
assert_equals(subscriptions[0].matchType, 'equals');
assert_equals(subscriptions[0].url, registration.scope);
}, 'cookieStore.subscribe is idempotent');
promise_test(async testCase => {
if (self.GLOBAL.isWindow()) {
const registration = await service_worker_unregister_and_register(
testCase, 'resources/empty_sw.js',
'/cookie-store/resources/does/not/exist');
testCase.add_cleanup(() => registration.unregister());
// Must wait for the service worker to enter the 'activated' state before
// subscribing to cookiechange events.
await wait_for_state(testCase, registration.installing, 'activated');
self.registration = registration;
} else if (!self.registration.active) {
// Must wait for the service worker to enter the 'activated' state before
// subscribing to cookiechange events.
await new Promise(resolve => {
self.addEventListener('activate', event => { resolve(); });
});
}
{
const subscriptions = [
{ name: 'cookie-name1', matchType: 'equals' },
{ name: 'cookie-name2', matchType: 'equals' }
];
await self.registration.cookies.subscribe(subscriptions);
testCase.add_cleanup(() => registration.cookies.unsubscribe(subscriptions));
// Call unsubscribe for same subscription multiple times to verify that it
// is idempotent.
await registration.cookies.unsubscribe([subscriptions[0]]);
await registration.cookies.unsubscribe([subscriptions[0]]);
await registration.cookies.unsubscribe([subscriptions[0]]);
}
const subscriptions = await registration.cookies.getSubscriptions();
assert_equals(subscriptions.length, 1);
assert_equals(subscriptions[0].name, 'cookie-name2');
assert_equals(subscriptions[0].matchType, 'equals');
assert_equals(subscriptions[0].url, registration.scope);
}, 'CookieStore.unsubscribe is idempotent');

View file

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html>
<title>scroll-margin on elements with 'display: table;'</title>
<link rel='author' title='Jan Grosser' href='mailto:jan_firefoxdev@t-online.de'>
<link rel='help' href='https://bugzilla.mozilla.org/show_bug.cgi?id=1633192'>
<link rel='help' href='https://www.w3.org/TR/css-scroll-snap-1/#scroll-margin'>
<link rel='match' href='scroll-target-001-ref.html'>
<meta name="flags" content="should">
<meta name='assert' content="Test passes if scroll-margin is honored on elements with 'display: table'.">
<style type='text/css'>
.container {
border: solid blue 4px;
height: 4em;
overflow: auto;
/* to make failing more obvious */
background: 0 1em / 100% 1em linear-gradient(red, red) repeat-x;
/* avoid anti-aliasing issues */
font: 20px/1 sans-serif;
scrollbar-width: none;
}
.container > div {
height: 1em;
}
#target { scroll-margin: 2em 0 1em; display: table; } /* snap area is exact fit for snapport */
#stripe { background: green; } /* color part of the snap area */
.fail { color: red; } /* make failing more obvious */
/* emulate `scrollbar-width: none` for browsers that don't support it yet */
::-webkit-scrollbar { display: none; }
</style>
<div id='instructions'>Test passes if there is a green stripe across the second quarter of the box below and no red.</div>
<div class="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div class="fail">FAIL</div>
<div></div>
<div id="stripe"></div>
<div id="target"></div>
<div></div>
<div class="fail">FAIL</div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<script>
document.getElementById('target').scrollIntoView();
</script>

View file

@ -1,4 +1,5 @@
<!doctype html>
<meta charset=utf-8>
<title>Selectors: semantics of case-sensitivity attribute selector</title>
<link rel="help" href="https://drafts.csswg.org/selectors/#attribute-case">
<script src="/resources/testharness.js"></script>
@ -122,6 +123,14 @@ var nomatch = [
["@namespace x 'A'; [x|foo='' i]", ["a", "foo", ""]],
["[foo='bar' i][foo='bar']", ["", "foo", "BAR"]],
["[foo='bar' i]", ["", "baz", "BAR"]],
["[foo^='é' i]", ["", "foo", "É"]],
["[foo$='é' i]", ["", "foo", "É"]],
["[foo*='é' i]", ["", "foo", "É"]],
["[foo|='é' i]", ["", "foo", "É"]],
["[foo^='É' i]", ["", "foo", "é"]],
["[foo$='É' i]", ["", "foo", "é"]],
["[foo*='É' i]", ["", "foo", "é"]],
["[foo|='É' i]", ["", "foo", "é"]],
// Case-sensitive matching
["[foo='' s]", ["", "foo", "BAR"]],
["[foo='\u0000' s] /* \\0 in selector */", ["", "foo", ""]],

View file

@ -35,6 +35,6 @@ test(() => {
test(() => {
let e = document.querySelector('k');
assert_equals(e, null);
}, '`querySelector` should not use Unicode case-foldering');
}, '`querySelector` should not use Unicode case-folding');
</script>
</body>

View file

@ -1,5 +1,6 @@
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
// META: timeout=long
// https://wicg.github.io/element-timing/

View file

@ -1,4 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta name="timeout" content="long">
</head>
<body>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
@ -59,3 +63,4 @@
'Test nested header policy with remote iframe on policy "fullscreen \'none\'"');
</script>
</body>
</html>

View file

@ -185,25 +185,17 @@ function compareBitmaps(bitmap1, bitmap2)
function testImageBitmap(source, colorInfo, sourceType)
{
return Promise.all([
createImageBitmap(source, {colorSpaceConversion: "srgb",
resizeWidth: 40, resizeHeight: 40, resizeQuality: "high"}),
createImageBitmap(source, {colorSpaceConversion: "srgb",
resizeWidth: 40, resizeHeight: 40, resizeQuality: "medium"}),
createImageBitmap(source, {colorSpaceConversion: "srgb",
resizeWidth: 40, resizeHeight: 40, resizeQuality: "low"}),
createImageBitmap(source, {colorSpaceConversion: "srgb",
resizeWidth: 40, resizeHeight: 40, resizeQuality: "pixelated"}),
createImageBitmap(source, {resizeWidth: 40, resizeHeight: 40, resizeQuality: "high"}),
createImageBitmap(source, {resizeWidth: 40, resizeHeight: 40, resizeQuality: "medium"}),
createImageBitmap(source, {resizeWidth: 40, resizeHeight: 40, resizeQuality: "low"}),
createImageBitmap(source, {resizeWidth: 40, resizeHeight: 40, resizeQuality: "pixelated"}),
createImageBitmap(source, 5, 5, 10, 10, {
colorSpaceConversion: "srgb",
resizeWidth: 20, resizeHeight: 20, resizeQuality: "high"}),
createImageBitmap(source, 5, 5, 10, 10, {
colorSpaceConversion: "srgb",
resizeWidth: 20, resizeHeight: 20, resizeQuality: "medium"}),
createImageBitmap(source, 5, 5, 10, 10, {
colorSpaceConversion: "srgb",
resizeWidth: 20, resizeHeight: 20, resizeQuality: "low"}),
createImageBitmap(source, 5, 5, 10, 10, {
colorSpaceConversion: "srgb",
resizeWidth: 20, resizeHeight: 20, resizeQuality: "pixelated"}),
]).then(([noCropHigh, noCropMedium, noCropLow, noCropPixelated, cropHigh,
cropMedium, cropLow, cropPixelated]) => {
@ -490,8 +482,7 @@ promise_test(function() {
// ImageBitmap - Opaque e-sRGB
promise_test(function() {
var testCanvas = initializeTestCanvas('srgb', 'float16');
return createImageBitmap(testCanvas, {colorSpaceConversion: "srgb"}
).then(testImageBitmapOpaque);
return createImageBitmap(testCanvas).then(testImageBitmapOpaque);
}, 'createImageBitmap in e-sRGB from an opaque e-sRGB ImageBitmap with resize.');
////////////////////////////////////////////////////////////////////////////////
@ -505,8 +496,7 @@ promise_test(function() {
// ImageBitmap - Transparent e-sRGB
promise_test(function() {
var testCanvas = initializeTestCanvasTransparent('srgb', 'float16');
return createImageBitmap(testCanvas, {colorSpaceConversion: "srgb"}
).then(testImageBitmapTransparent);
return createImageBitmap(testCanvas).then(testImageBitmapTransparent);
}, 'createImageBitmap in e-sRGB from a transparent e-sRGB ImageBitmap with resize.');
////////////////////////////////////////////////////////////////////////////////

View file

@ -114,7 +114,7 @@
d6.showModal();
this.add_cleanup(function() { d6.close(); });
assert_true(d6.open);
assert_equals(document.activeElement, d6);
assert_equals(document.activeElement, document.body);
}, "opening dialog without focusable children");
test(function(){

View file

@ -27,6 +27,10 @@
<script>
window.name="outerframe";
var test_pointermove = async_test("pointermove event received");
var actions_promise1;
var actions_promise2;
var actions_promise3;
var actions_promise4;
PhaseEnum = {
Start: 0,
Lock1: 1,
@ -56,8 +60,10 @@
assert_equals(event.view.name, "outerframe", "View attribute of pointermove should be the target frame.");
}, "View attribute of pointermove should be the target frame.");
document.exitPointerLock();
actions_promise3 = actions_promise2.then( () => {
// Click the inner frame target to lock.
clickInTarget("mouse", target1);
return clickInTarget("mouse", target1);
});
}
});
@ -68,7 +74,9 @@
assert_equals(event.view.name, "innerframe", "View attribute of pointermove should be the target frame.");
}, "View attribute of pointermove should be the target frame.");
innerframe.contentDocument.exitPointerLock();
actions_promise4.then( () => {
test_pointermove.done();
});
}
});
@ -76,10 +84,12 @@
if (phase == PhaseEnum.Start) {
assert_equals(document.pointerLockElement, target0);
phase++;
actions_promise2 = actions_promise1.then( () => {
// Send moves in main frame target
new test_driver.Actions()
return new test_driver.Actions()
.pointerMove(10, 30, {origin: target0})
.send();
});
}
});
@ -87,15 +97,17 @@
if (phase == PhaseEnum.Lock1) {
assert_equals(innerframe.contentDocument.pointerLockElement, target1);
phase++;
actions_promise4 = actions_promise3.then( () => {
// Send moves in inner frame target
new test_driver.Actions()
return new test_driver.Actions()
.pointerMove(10, 30, {origin: target0})
.send();
});
}
});
// Click the outer frame target to lock.
clickInTarget("mouse", target0);
actions_promise1 = clickInTarget("mouse", target0);
}
</script>
<div id="complete-notice">

View file

@ -15,7 +15,7 @@ steps:
- template: install_safari.yml
- template: update_hosts.yml
- template: update_manifest.yml
- script: no_proxy='*' ./wpt run --yes --no-pause --no-fail-on-unexpected --no-restart-on-unexpected --affected ${{ parameters.affectedRange }} --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report.json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot.txt --channel preview safari
- script: ./wpt run --yes --no-pause --no-fail-on-unexpected --no-restart-on-unexpected --affected ${{ parameters.affectedRange }} --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report.json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot.txt --channel preview safari
displayName: 'Run tests'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'

View file

@ -25,7 +25,11 @@ def test_no_browsing_context(session, closed_window):
def test_html_document(session):
session.url = inline("Test")
response = do_print(session, {})
response = do_print(session, {
"page": {"width": 10,
"height": 20},
"shrinkToFit": False
})
value = assert_success(response)
pdf = base64.decodestring(value)
# TODO: Test that the output is reasonable