Update web-platform-tests to revision 2d68590d46a990bf28a08d6384a59962d2e56bf6

This commit is contained in:
WPT Sync Bot 2019-03-14 21:30:32 -04:00
parent bc03d32142
commit ad4cc3691e
135 changed files with 1613 additions and 341 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,2 @@
[overflow-wrap-break-word-007.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[pre-wrap-008.html]
expected: FAIL

View file

@ -1,2 +0,0 @@
[word-break-break-all-011.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[word-break-break-all-015.html]
expected: FAIL

View file

@ -6,3 +6,6 @@
[Instant scrolling while doing history navigation.] [Instant scrolling while doing history navigation.]
expected: FAIL expected: FAIL
[Smooth scrolling while doing history navigation.]
expected: FAIL

View file

@ -312,9 +312,3 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk] [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[self-et-al.window.html]
expected: CRASH

View file

@ -1,5 +1,5 @@
[name-attribute.window.html] [name-attribute.window.html]
expected: TIMEOUT expected: CRASH
[cross-origin <frame name=>] [cross-origin <frame name=>]
expected: TIMEOUT expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -0,0 +1,56 @@
[nested-context-navigations.html]
expected: TIMEOUT
[Test that crossorigin embed navigations are not observable by the parent, even after history navigations by the parent]
expected: NOTRUN
[Test that embed navigations are not observable by the parent, even after history navigations by the parent]
expected: TIMEOUT
[Test that crossorigin iframe refreshes are not observable by the parent]
expected: NOTRUN
[Test that crossorigin object refreshes are not observable by the parent]
expected: NOTRUN
[Test that crossorigin object navigations are not observable by the parent]
expected: NOTRUN
[Test that crossorigin embed refreshes are not observable by the parent]
expected: NOTRUN
[Test that iframe navigations are not observable by the parent, even after history navigations by the parent]
expected: NOTRUN
[Test that object refreshes are not observable by the parent]
expected: NOTRUN
[Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent]
expected: NOTRUN
[Test that object navigations are not observable by the parent, even after history navigations by the parent]
expected: NOTRUN
[Test that iframe navigations are not observable by the parent]
expected: NOTRUN
[Test that embed navigations are not observable by the parent]
expected: NOTRUN
[Test that iframe refreshes are not observable by the parent]
expected: NOTRUN
[Test that crossorigin iframe navigations are not observable by the parent]
expected: NOTRUN
[Test that crossorigin embed navigations are not observable by the parent]
expected: NOTRUN
[Test that object navigations are not observable by the parent]
expected: NOTRUN
[Test that crossorigin object navigations are not observable by the parent, even after history navigations by the parent]
expected: NOTRUN
[Test that embed refreshes are not observable by the parent]
expected: NOTRUN

View file

@ -1,4 +1,5 @@
[005.html] [005.html]
expected: ERROR
[dedicated worker in shared worker in dedicated worker] [dedicated worker in shared worker in dedicated worker]
expected: FAIL expected: FAIL

View file

@ -57,11 +57,25 @@ matrix:
packages: packages:
- libnss3-tools - libnss3-tools
env: JOB=wpt_integration TOXENV=py27 SCRIPT=tools/ci/ci_wpt.sh env: JOB=wpt_integration TOXENV=py27 SCRIPT=tools/ci/ci_wpt.sh
addons:
apt:
packages:
- fonts-liberation
- libappindicator1
- libnss3-tools
- pulseaudio
- name: "resources/ tests" - name: "resources/ tests"
if: type = pull_request if: type = pull_request
os: linux os: linux
python: "2.7" python: "2.7"
env: JOB=resources_unittest TOXENV=py27 SCRIPT=tools/ci/ci_resources_unittest.sh env: JOB=resources_unittest TOXENV=py27 SCRIPT=tools/ci/ci_resources_unittest.sh
addons:
apt:
packages:
- fonts-liberation
- libappindicator1
- libnss3-tools
- pulseaudio
- name: "infrastructure/ tests" - name: "infrastructure/ tests"
if: type = pull_request if: type = pull_request
os: linux os: linux
@ -70,9 +84,10 @@ matrix:
addons: addons:
apt: apt:
packages: packages:
- libnss3-tools
- libappindicator1
- fonts-liberation - fonts-liberation
- libappindicator1
- libnss3-tools
- pulseaudio
exclude: exclude:
- env: # exclude empty env from the top-level above - env: # exclude empty env from the top-level above
allow_failures: allow_failures:

View file

@ -3,5 +3,4 @@ suggested_reviewers:
- AmeliaBR - AmeliaBR
- annevk - annevk
- kenrussell - kenrussell
- jdashg
- fserb - fserb

View file

@ -1,6 +1,5 @@
spec: https://heycam.github.io/webidl/ spec: https://heycam.github.io/webidl/
suggested_reviewers: suggested_reviewers:
- domenic - domenic
- jensl
- tobie - tobie
- yuki3 - yuki3

View file

@ -1,7 +1,6 @@
spec: https://w3c.github.io/accelerometer/ spec: https://w3c.github.io/accelerometer/
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- riju - riju
- Honry - Honry
- rakuco - rakuco

View file

@ -1,7 +1,6 @@
spec: https://w3c.github.io/ambient-light/ spec: https://w3c.github.io/ambient-light/
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- riju - riju
- rakuco - rakuco
- Honry - Honry

View file

@ -1,5 +1,4 @@
spec: https://w3c.github.io/battery/ spec: https://w3c.github.io/battery/
suggested_reviewers: suggested_reviewers:
- anssiko - anssiko
- dontcallmedom
- zqzhang - zqzhang

View file

@ -1,6 +1,5 @@
spec: https://webbluetoothcg.github.io/web-bluetooth/ spec: https://webbluetoothcg.github.io/web-bluetooth/
suggested_reviewers: suggested_reviewers:
- dougt - dougt
- g-ortuno
- odejesush - odejesush
- reillyeon - reillyeon

View file

@ -1,5 +1,4 @@
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- deniak - deniak
- gsnedders - gsnedders

View file

@ -1,3 +1,2 @@
suggested_reviewers: suggested_reviewers:
- inikulin
- mikewest - mikewest

View file

@ -5,4 +5,3 @@ suggested_reviewers:
- svgeesus - svgeesus
- kojiishi - kojiishi
- frivoal - frivoal
- bert-github

View file

@ -1,4 +1,3 @@
spec: https://w3c.github.io/woff/woff2/ spec: https://w3c.github.io/woff/woff2/
suggested_reviewers: suggested_reviewers:
- svgeesus - svgeesus
- rsheeter

View file

@ -1,6 +1,4 @@
spec: https://drafts.csswg.org/css-backgrounds/ spec: https://drafts.csswg.org/css-backgrounds/
suggested_reviewers: suggested_reviewers:
- dbaron - dbaron
- bert-github
- fantasai - fantasai
- bradkemper

View file

@ -1,6 +1,5 @@
spec: https://drafts.csswg.org/css-color/ spec: https://drafts.csswg.org/css-color/
suggested_reviewers: suggested_reviewers:
- dbaron - dbaron
- tantek
- svgeesus - svgeesus
- tabatkins - tabatkins

View file

@ -1,2 +0,0 @@
suggested_reviewers:
- bert-github

View file

@ -1,4 +1,3 @@
spec: https://drafts.csswg.org/css-exclusions/ spec: https://drafts.csswg.org/css-exclusions/
suggested_reviewers: suggested_reviewers:
- atanassov
- astearns - astearns

View file

@ -4,7 +4,6 @@ suggested_reviewers:
- plinss - plinss
- mrego - mrego
- cbiesinger - cbiesinger
- atanassov
- fantasai - fantasai
- rachelandrew - rachelandrew
- tabatkins - tabatkins

View file

@ -2,10 +2,8 @@ spec: https://drafts.csswg.org/css-grid/
suggested_reviewers: suggested_reviewers:
- mrego - mrego
- plinss - plinss
- jxs
- tabatkins - tabatkins
- fantasai - fantasai
- atanassov
- javifernandez - javifernandez
- rachelandrew - rachelandrew
- svillar - svillar

View file

@ -1,4 +1,3 @@
spec: https://drafts.csswg.org/css-logical/ spec: https://drafts.csswg.org/css-logical/
suggested_reviewers: suggested_reviewers:
- atanassov
- fantasai - fantasai

View file

@ -1,3 +1,3 @@
spec: https://drafts.csswg.org/css-position/ spec: https://drafts.csswg.org/css-position/
suggested_reviewers: suggested_reviewers:
- atanassov - astearns

View file

@ -101,6 +101,12 @@ test_computed_value('<length>', '14em', '140px');
test_computed_value('<length>', '15vmin', length_ref('15vmin')); test_computed_value('<length>', '15vmin', length_ref('15vmin'));
test_computed_value('<length>', 'calc(16px - 7em + 10vh)', length_ref('calc(10vh - 54px)')); test_computed_value('<length>', 'calc(16px - 7em + 10vh)', length_ref('calc(10vh - 54px)'));
test_computed_value('<length>', '1in', '96px');
test_computed_value('<length>', '2.54cm', '96px');
test_computed_value('<length>', '25.4mm', '96px');
test_computed_value('<length>', '6pc', '96px');
test_computed_value('<length>', '72pt', '96px');
test_computed_value('<length-percentage>', '17em', '170px'); test_computed_value('<length-percentage>', '17em', '170px');
test_computed_value('<length-percentage>', '18%', '18%'); test_computed_value('<length-percentage>', '18%', '18%');
test_computed_value('<length-percentage>', 'calc(19em - 2%)', 'calc(-2% + 190px)'); test_computed_value('<length-percentage>', 'calc(19em - 2%)', 'calc(-2% + 190px)');

View file

@ -1,6 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api/#dom-propertydescriptor-initialvalue" /> <link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#dom-propertydescriptor-initialvalue" />
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api/#register-a-custom-property" /> <link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#register-a-custom-property" />
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#substitution" />
<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="./resources/utils.js"></script> <script src="./resources/utils.js"></script>
@ -17,6 +18,12 @@ function test_initial_value(reg, expected) {
} }
test_initial_value({ syntax: '<length>', initialValue: 'calc(10px + 15px)' }, '25px'); test_initial_value({ syntax: '<length>', initialValue: 'calc(10px + 15px)' }, '25px');
test_initial_value({ syntax: '<length>', initialValue: '1in' }, '96px');
test_initial_value({ syntax: '<length>', initialValue: '2.54cm' }, '96px');
test_initial_value({ syntax: '<length>', initialValue: '25.4mm' }, '96px');
test_initial_value({ syntax: '<length>', initialValue: '6pc' }, '96px');
test_initial_value({ syntax: '<length>', initialValue: '72pt' }, '96px');
test_initial_value({ syntax: '<percentage>', initialValue: 'calc(10% + 20%)' }, '30%');
test_initial_value({ syntax: '<length-percentage>', initialValue: 'calc(1in + 10% + 4px)' }, 'calc(10% + 100px)'); test_initial_value({ syntax: '<length-percentage>', initialValue: 'calc(1in + 10% + 4px)' }, 'calc(10% + 100px)');
test_initial_value({ syntax: '<color>', initialValue: 'pink', inherits: true }, 'rgb(255, 192, 203)'); test_initial_value({ syntax: '<color>', initialValue: 'pink', inherits: true }, 'rgb(255, 192, 203)');
test_initial_value({ syntax: '<color>', initialValue: 'purple' }, 'rgb(128, 0, 128)'); test_initial_value({ syntax: '<color>', initialValue: 'purple' }, 'rgb(128, 0, 128)');
@ -42,4 +49,19 @@ function test_substituted_value(reg, property, expected) {
test_substituted_value({ syntax: '<color>', initialValue: 'purple', inherits: true }, 'color', 'rgb(128, 0, 128)'); test_substituted_value({ syntax: '<color>', initialValue: 'purple', inherits: true }, 'color', 'rgb(128, 0, 128)');
test_substituted_value({ syntax: '<color>', initialValue: 'pink' }, 'background-color', 'rgb(255, 192, 203)'); test_substituted_value({ syntax: '<color>', initialValue: 'pink' }, 'background-color', 'rgb(255, 192, 203)');
// Registered properties shall substitute as a token sequence equivalent to
// their computed value.
test_substituted_value({ syntax: 'foo', initialValue: '\tfoo\t' }, '--x', 'foo');
test_substituted_value({ syntax: '<angle>', initialValue: '\t1turn' }, '--x', '360deg');
test_substituted_value({ syntax: '<color>', initialValue: ' pink ' }, '--x', 'rgb(255, 192, 203)');
test_substituted_value({ syntax: '<custom-ident>', initialValue: '\ttest' }, '--x', 'test');
test_substituted_value({ syntax: '<integer>', initialValue: 'calc(20 + 20 + 10)' }, '--x', '50');
test_substituted_value({ syntax: '<length-percentage>', initialValue: '\tcalc(13% + 37px)' }, '--x', 'calc(13% + 37px)');
test_substituted_value({ syntax: '<length>', initialValue: 'calc(10px + 15px)' }, '--x', '25px');
test_substituted_value({ syntax: '<number>', initialValue: 'calc(13 + 37)' }, '--x', '50');
test_substituted_value({ syntax: '<percentage>', initialValue: 'calc(13% + 37%)' }, '--x', '50%');
test_substituted_value({ syntax: '<time>', initialValue: '2000ms' }, '--x', '2s');
test_substituted_value({ syntax: '<transform-function>', initialValue: 'scale(calc(2 + 2))' }, '--x', 'scale(4)');
test_substituted_value({ syntax: '<transform-list>', initialValue: 'scale(calc(2 + 2)) translateX(calc(3px + 1px))' }, '--x', 'scale(4) translateX(4px)');
</script> </script>

View file

@ -1,5 +1,4 @@
spec: https://drafts.csswg.org/css-regions/ spec: https://drafts.csswg.org/css-regions/
suggested_reviewers: suggested_reviewers:
- atanassov
- astearns - astearns
- rachelandrew - rachelandrew

View file

@ -1,3 +1,3 @@
spec: https://drafts.csswg.org/css-scrollbars/ spec: https://drafts.csswg.org/css-scrollbars/
suggested_reviewers: suggested_reviewers:
- tantek - upsuper

View file

@ -1,7 +1,5 @@
spec: https://drafts.csswg.org/css-shapes/ spec: https://drafts.csswg.org/css-shapes/
suggested_reviewers: suggested_reviewers:
- bemjb
- kojiishi - kojiishi
- plinss - plinss
- atanassov
- astearns - astearns

View file

@ -1,4 +1,3 @@
spec: https://drafts.csswg.org/css-style-attr/ spec: https://drafts.csswg.org/css-style-attr/
suggested_reviewers: suggested_reviewers:
- tantek
- fantasai - fantasai

View file

@ -2,4 +2,3 @@ spec: https://drafts.csswg.org/css-syntax/
suggested_reviewers: suggested_reviewers:
- gregwhitworth - gregwhitworth
- tabatkins - tabatkins
- simonsapin

View file

@ -5,5 +5,4 @@ suggested_reviewers:
- frivoal - frivoal
- r12a - r12a
- nox - nox
- hakatashi
- fantasai - fantasai

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Text Test: overflow-wrap: break-word</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-overflow-wrap-break-word">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-break-spaces">
<meta name="flags" content="ahem">
<link rel="match" href="reference/overflow-wrap-break-word-001-ref.html">
<meta name="assert" content="A Single leading white-space constitutes a soft breaking opportunity, honoring the 'white-space: break-spaces' property, that must prevent the word to be broken.">
<style>
div {
position: relative;
font-size: 20px;
font-family: Ahem;
}
.red {
position: absolute;
background: green;
color: red;
width: 100px;
height: 100px;
z-index: -1;
white-space: pre;
}
.test {
color: green;
line-height: 1em;
width: 5ch;
white-space: pre-wrap;
overflow-wrap: break-word;
}
</style>
<body>
<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
<div class="red"> XX <br>XXX</div>
<div class="test"> XX XXX </div>
</body>

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Text Test: white-space: pre-wrap</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-pre-wrap">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-word-break-break-word">
<meta name="flags" content="ahem">
<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
<meta name="assert" content="The word is not broken despite the 'word-break: break-word' if there are previous breaking opportunities, honoring the white-space: pre-wrap value.">
<style>
div {
position: relative;
font-size: 20px;
font-family: Ahem;
}
.red {
position: absolute;
background: green;
color: red;
width: 100px;
height: 100px;
z-index: -1;
white-space: pre;
}
.test {
color: green;
line-height: 1em;
width: 5ch;
white-space: pre-wrap;
word-break: break-word;
}
</style>
<body>
<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
<div class="red"> XX <br>XXX</div>
<div class="test"> XX XXX </div>
</body>

View file

@ -21,10 +21,11 @@ div {
width: 100px; width: 100px;
height: 100px; height: 100px;
z-index: -1; z-index: -1;
white-space: pre;
} }
span { color: green; }
.test { .test {
color: green; color: green;
background: green;
width: 1ch; width: 1ch;
white-space: pre-wrap; white-space: pre-wrap;
word-break: break-all; word-break: break-all;
@ -32,6 +33,6 @@ div {
</style> </style>
<body> <body>
<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p> <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
<div class="red">X<br>X<br>X</div> <div class="red"> <br>X<br>X</div>
<div class="test"> XX</div> <div class="test"> XX</div>
</body> </body>

View file

@ -1,6 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<meta charset="utf-8"> <meta charset="utf-8">
<title>CSS Text Test: overflow-wrap: break-word</title> <title>CSS Text Test: word-break: break-all</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> <link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-word-break-break-all"> <link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-word-break-break-all">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-break-spaces"> <link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-break-spaces">
@ -15,12 +15,12 @@ div {
} }
.red { .red {
position: absolute; position: absolute;
white-space: pre;
background: green; background: green;
color: red; color: red;
width: 100px; width: 100px;
height: 100px; height: 100px;
z-index: -1; z-index: -1;
white-space: pre;
} }
.test { .test {
color: green; color: green;

View file

@ -20,10 +20,10 @@ div {
width: 100px; width: 100px;
height: 100px; height: 100px;
z-index: -1; z-index: -1;
white-space: pre;
} }
.test { .test {
color: green; color: green;
background: green;
line-height: 1em; line-height: 1em;
width: 1ch; width: 1ch;
white-space: break-spaces; white-space: break-spaces;
@ -32,6 +32,6 @@ div {
</style> </style>
<body> <body>
<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p> <p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
<div class="red">X<br>X<br>X</div> <div class="red"> <br>X<br>X</div>
<div class="test"> XX</div> <div class="test"> XX</div>
</body> </body>

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Text Test: word-break: break-all</title>
<link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-word-break-break-all">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-pre-wrap">
<meta name="flags" content="ahem">
<link rel="match" href="reference/word-break-break-all-010-ref.html">
<meta name="assert" content="The word is broken even if white-space: pre-wrap provides a former breaking opportunity in leading white-space.">
<style>
div {
position: relative;
font-size: 20px;
font-family: Ahem;
}
.red {
position: absolute;
background: green;
color: red;
width: 100px;
height: 100px;
z-index: -1;
white-space: pre;
}
.test {
color: green;
line-height: 1em;
width: 5ch;
white-space: pre-wrap;
word-break: break-all;
}
</style>
<body>
<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
<div class="red"> XX X<br>XX</div>
<div class="test"> XX XXX </div>
</body>

View file

@ -3,5 +3,4 @@ suggested_reviewers:
- dbaron - dbaron
- plinss - plinss
- dirkschulze - dirkschulze
- hober
- grorg - grorg

View file

@ -4,4 +4,3 @@ suggested_reviewers:
- mrego - mrego
- plinss - plinss
- svgeesus - svgeesus
- tantek

View file

@ -2,7 +2,6 @@ spec: https://drafts.csswg.org/css-writing-modes/
suggested_reviewers: suggested_reviewers:
- kojiishi - kojiishi
- fantasai - fantasai
- myakura
- r12a - r12a
- plinss - plinss
- upsuper - upsuper

View file

@ -1,6 +1,5 @@
spec: https://drafts.csswg.org/selectors/ spec: https://drafts.csswg.org/selectors/
suggested_reviewers: suggested_reviewers:
- tantek
- fantasai - fantasai
- frivoal - frivoal
- plinss - plinss

View file

@ -1,4 +1,3 @@
spec: https://w3c.github.io/device-memory/ spec: https://w3c.github.io/device-memory/
suggested_reviewers: suggested_reviewers:
- tdresser
- npm1 - npm1

View file

@ -1,4 +1,3 @@
suggested_reviewers: suggested_reviewers:
- sideshowbarker - sideshowbarker
- dontcallmedom
- gsnedders - gsnedders

View file

@ -1,3 +1,6 @@
spec: https://w3c.github.io/encrypted-media/ spec: https://w3c.github.io/encrypted-media/
suggested_reviewers: suggested_reviewers:
- ddorwin - cpearce
- joeyparrish
- jrummell-chromium
- jyavenard

View file

@ -1,4 +1,3 @@
spec: https://github.com/WICG/event-timing spec: https://github.com/WICG/event-timing
suggested_reviewers: suggested_reviewers:
- npm1 - npm1
- tdresser

View file

@ -1,3 +1,3 @@
spec: https://wicg.github.io/feature-policy/ spec: https://wicg.github.io/feature-policy/
suggested_reviewers: suggested_reviewers:
- clelland - bakulf

View file

@ -1,3 +1,3 @@
spec: https://w3c.github.io/gamepad/ spec: https://w3c.github.io/gamepad/
suggested_reviewers: suggested_reviewers:
- luser - marcoscaceres

View file

@ -1,7 +1,6 @@
spec: https://w3c.github.io/sensors/ spec: https://w3c.github.io/sensors/
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- riju - riju
- rakuco - rakuco
- Honry - Honry

View file

@ -1,7 +1,6 @@
spec: https://w3c.github.io/gyroscope/ spec: https://w3c.github.io/gyroscope/
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- riju - riju
- Honry - Honry
- rakuco - rakuco

View file

@ -1,4 +1,3 @@
spec: https://w3c.github.io/html-media-capture/ spec: https://w3c.github.io/html-media-capture/
suggested_reviewers: suggested_reviewers:
- haoxli
- zqzhang - zqzhang

View file

@ -0,0 +1,15 @@
async_test(t => {
const frame = document.createElement("iframe");
frame.onload = t.step_func(() => {
const frameW = frame.contentWindow,
frameD = frame.contentDocument;
assert_equals(frameW.document, frameD);
frame.remove();
assert_equals(frameW.document, frameD);
t.step_timeout(() => {
assert_equals(frameW.document, frameD);
t.done();
}, 100);
});
document.body.append(frame);
}, "Window object's document IDL attribute and discarding the browsing context");

View file

@ -0,0 +1,43 @@
function delayed_assert_done(t, w, windowProxySelfReference) {
// Let's make sure nobody is being sneaky
t.step_timeout(() => {
t.step_timeout(() => {
assert_equals(w[windowProxySelfReference], w, `${windowProxySelfReference} got cleared after some time`);
t.done();
}, 0);
}, 0);
}
[
"frames",
"globalThis",
"self",
"window"
].forEach(windowProxySelfReference => {
async_test(t => {
const frame = document.body.appendChild(document.createElement("iframe")),
otherW = frame.contentWindow;
assert_equals(otherW[windowProxySelfReference], otherW, `${windowProxySelfReference} is broken`);
frame.remove();
assert_equals(otherW[windowProxySelfReference], otherW, `${windowProxySelfReference} got cleared after browsing context removal`);
assert_true(otherW.closed);
delayed_assert_done(t, otherW, windowProxySelfReference);
}, `iframeWindow.${windowProxySelfReference} before and after removal`);
async_test(t => {
const otherW = window.open();
assert_equals(otherW[windowProxySelfReference], otherW, `${windowProxySelfReference} is broken`);
otherW.onunload = t.step_func(() => {
assert_equals(otherW[windowProxySelfReference], otherW, `${windowProxySelfReference} got cleared after browsing context unload`);
t.step_timeout(() => {
assert_equals(otherW.opener, null); // Ensure browsing context is discarded
assert_equals(otherW[windowProxySelfReference], otherW, `${windowProxySelfReference} got cleared after browsing context removal`);
delayed_assert_done(t, otherW, windowProxySelfReference);
}, 0);
});
otherW.close();
assert_equals(otherW[windowProxySelfReference], otherW, `${windowProxySelfReference} got cleared after browsing context closure`);
assert_true(otherW.closed);
}, `popupWindow.${windowProxySelfReference} before, after closing, and after discarding`)
});

View file

@ -12,7 +12,8 @@
<script src="/resources/testdriver-vendor.js"></script> <script src="/resources/testdriver-vendor.js"></script>
</head> </head>
<body> <body>
<h1>User activation can be transferred to a cross-origin child frame via a postMessage option.</h1> <h1>User activation can be transferred to a cross-origin child frame
via a postMessage option.</h1>
<ol id="instructions"> <ol id="instructions">
<li>Click this instruction text. <li>Click this instruction text.
</ol> </ol>
@ -35,6 +36,8 @@
} else if (msg.type == 'child-four-report') { } else if (msg.type == 'child-four-report') {
assert_true(msg.isActive); assert_true(msg.isActive);
assert_true(msg.hasBeenActive); assert_true(msg.hasBeenActive);
// check sender's activation state again
assert_false(navigator.userActivation.isActive); assert_false(navigator.userActivation.isActive);
assert_false(navigator.userActivation.hasBeenActive); assert_false(navigator.userActivation.hasBeenActive);
t.done(); t.done();
@ -45,7 +48,12 @@
assert_true(navigator.userActivation.hasBeenActive); assert_true(navigator.userActivation.hasBeenActive);
// transfer user activation to the child frame // transfer user activation to the child frame
child.contentWindow.postMessage("transfer_user_activation", {targetOrigin: "*", transferUserActivation: true}); child.contentWindow.postMessage("transfer_user_activation",
{targetOrigin: "*", transferUserActivation: true});
// sender's activation state is updated synchronously
assert_false(navigator.userActivation.isActive);
assert_false(navigator.userActivation.hasBeenActive);
})); }));
child.src = "http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-four.html"; child.src = "http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-four.html";
}, "Cross-origin user activation transfer through postMessages"); }, "Cross-origin user activation transfer through postMessages");

View file

@ -12,7 +12,8 @@
<script src="/resources/testdriver-vendor.js"></script> <script src="/resources/testdriver-vendor.js"></script>
</head> </head>
<body> <body>
<h1>User activation can be transferred to a child frame via a postMessage option.</h1> <h1>User activation can be transferred to a child frame
via a postMessage option.</h1>
<ol id="instructions"> <ol id="instructions">
<li>Click this instruction text. <li>Click this instruction text.
</ol> </ol>
@ -35,6 +36,8 @@
} else if (msg.type == 'child-four-report') { } else if (msg.type == 'child-four-report') {
assert_true(msg.isActive); assert_true(msg.isActive);
assert_true(msg.hasBeenActive); assert_true(msg.hasBeenActive);
// check sender's activation state again
assert_false(navigator.userActivation.isActive); assert_false(navigator.userActivation.isActive);
assert_false(navigator.userActivation.hasBeenActive); assert_false(navigator.userActivation.hasBeenActive);
t.done(); t.done();
@ -45,7 +48,12 @@
assert_true(navigator.userActivation.hasBeenActive); assert_true(navigator.userActivation.hasBeenActive);
// transfer user activation to the child frame // transfer user activation to the child frame
child.contentWindow.postMessage("transfer_user_activation", {transferUserActivation: true}); child.contentWindow.postMessage("transfer_user_activation",
{transferUserActivation: true});
// sender's activation state is updated synchronously
assert_false(navigator.userActivation.isActive);
assert_false(navigator.userActivation.hasBeenActive);
})); }));
child.src = "resources/child-four.html"; child.src = "resources/child-four.html";
}, "User activation transfer through postMessages"); }, "User activation transfer through postMessages");

View file

@ -3,5 +3,4 @@ suggested_reviewers:
- AmeliaBR - AmeliaBR
- annevk - annevk
- kenrussell - kenrussell
- jdashg
- fserb - fserb

View file

@ -58,6 +58,7 @@ TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.cur
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.ico TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.ico
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.wasm TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.wasm
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.bmp TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.bmp
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.sxg
## Whitespace needed for testing ## Whitespace needed for testing
@ -187,6 +188,7 @@ SET TIMEOUT: payment-request/allowpaymentrequest/setting-allowpaymentrequest-tim
SET TIMEOUT: preload/single-download-preload.html SET TIMEOUT: preload/single-download-preload.html
SET TIMEOUT: resize-observer/resources/iframe.html SET TIMEOUT: resize-observer/resources/iframe.html
SET TIMEOUT: resource-timing/resources/iframe-TAO* SET TIMEOUT: resource-timing/resources/iframe-TAO*
SET TIMEOUT: resource-timing/resources/nested-contexts.js
SET TIMEOUT: screen-orientation/onchange-event.html SET TIMEOUT: screen-orientation/onchange-event.html
SET TIMEOUT: secure-contexts/basic-popup-and-iframe-tests.https.js SET TIMEOUT: secure-contexts/basic-popup-and-iframe-tests.https.js
SET TIMEOUT: service-workers/cache-storage/script-tests/cache-abort.js SET TIMEOUT: service-workers/cache-storage/script-tests/cache-abort.js

View file

@ -1,7 +1,6 @@
spec: https://w3c.github.io/magnetometer/ spec: https://w3c.github.io/magnetometer/
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- riju - riju
- Honry - Honry
- rakuco - rakuco

View file

@ -16,23 +16,26 @@
</style> </style>
</head> </head>
<body> <body>
<p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p> <p>This test passes if you see the same fraction four times.</p>
<math> <math>
<mfrac linethickness="5px"> <mfrac>
<mspace width="20px" height="5px" style="background: blue"></mspace>
<mspace width="20px" height="5px" style="background: cyan"></mspace>
</mfrac>
<mfrac linethickness="10px">
<mspace width="20px" height="10px" style="background: blue"></mspace> <mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="10px" style="background: cyan"></mspace> <mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac> </mfrac>
<mfrac linethickness="20px"> <mspace width="20px"/>
<mspace width="20px" height="20px" style="background: blue"></mspace> <mfrac>
<mspace width="20px" height="20px" style="background: cyan"></mspace> <mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac> </mfrac>
<mfrac linethickness="50px"> <mspace width="20px"/>
<mspace width="20px" height="50px" style="background: blue"></mspace> <mfrac>
<mspace width="20px" height="50px" style="background: cyan"></mspace> <mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac>
<mspace width="20px"/>
<mfrac>
<mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac> </mfrac>
</math> </math>
</body> </body>

View file

@ -4,7 +4,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<title>fractions linethickness</title> <title>fractions linethickness</title>
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac"> <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#mfrac">
<meta name="assert" content="Verifies 'thin', 'medium', 'thick' and unitless values for the linethickness attribute of the mfrac element"> <meta name="assert" content="Verifies deprecated 'thin', 'medium', 'thick' and unitless values have no effect on the linethickness of the mfrac element">
<link rel="match" href="frac-linethickness-001-ref.html"> <link rel="match" href="frac-linethickness-001-ref.html">
<style type="text/css"> <style type="text/css">
@font-face { @font-face {
@ -19,23 +19,26 @@
</style> </style>
</head> </head>
<body> <body>
<p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p> <p>This test passes if you see the same fraction four times.</p>
<math> <math>
<mfrac linethickness="thin"> <mfrac linethickness="thin">
<mspace width="20px" height="5px" style="background: blue"></mspace> <mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="5px" style="background: cyan"></mspace> <mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac> </mfrac>
<mspace width="20px"/>
<mfrac linethickness="medium"> <mfrac linethickness="medium">
<mspace width="20px" height="10px" style="background: blue"></mspace> <mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="10px" style="background: cyan"></mspace> <mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac> </mfrac>
<mspace width="20px"/>
<mfrac linethickness="thick"> <mfrac linethickness="thick">
<mspace width="20px" height="20px" style="background: blue"></mspace> <mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="20px" style="background: cyan"></mspace> <mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac> </mfrac>
<mspace width="20px"/>
<mfrac linethickness="5"> <mfrac linethickness="5">
<mspace width="20px" height="50px" style="background: blue"></mspace> <mspace width="20px" height="10px" style="background: blue"></mspace>
<mspace width="20px" height="50px" style="background: cyan"></mspace> <mspace width="20px" height="10px" style="background: cyan"></mspace>
</mfrac> </mfrac>
</math> </math>
</body> </body>

View file

@ -3,4 +3,3 @@ suggested_reviewers:
- anssiko - anssiko
- Honry - Honry
- robman - robman
- astojilj

View file

@ -2,7 +2,5 @@ spec: https://w3c.github.io/mediacapture-main/
suggested_reviewers: suggested_reviewers:
- agouaillard - agouaillard
- alvestrand - alvestrand
- dontcallmedom
- eric-carlson
- youennf - youennf
- jan-ivar - jan-ivar

View file

@ -1,4 +1,3 @@
spec: https://notifications.spec.whatwg.org/ spec: https://notifications.spec.whatwg.org/
suggested_reviewers: suggested_reviewers:
- sideshowbarker - sideshowbarker
- ibelem

View file

@ -3,5 +3,4 @@ suggested_reviewers:
- AmeliaBR - AmeliaBR
- annevk - annevk
- kenrussell - kenrussell
- jdashg
- fserb - fserb

View file

@ -1,7 +1,6 @@
spec: https://w3c.github.io/orientation-sensor/ spec: https://w3c.github.io/orientation-sensor/
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- riju - riju
- Honry - Honry
- rakuco - rakuco

View file

@ -1,4 +1,3 @@
spec: https://w3c.github.io/paint-timing/ spec: https://w3c.github.io/paint-timing/
suggested_reviewers: suggested_reviewers:
- spanicker - spanicker
- tdresser

View file

@ -1,4 +1,3 @@
spec: https://w3c.github.io/payment-method-id/ spec: https://w3c.github.io/payment-method-id/
suggested_reviewers: suggested_reviewers:
- alphan102
- marcoscaceres - marcoscaceres

View file

@ -72,6 +72,7 @@ function runManualTest(button, expected = {}) {
city: 'Chapel Hill', city: 'Chapel Hill',
dependentLocality: '', dependentLocality: '',
postalCode: '6095', postalCode: '6095',
region: 'QLD',
sortingCode: '', sortingCode: '',
organization: 'w3c', organization: 'w3c',
recipient: 'web platform test', recipient: 'web platform test',

View file

@ -16,7 +16,14 @@ function runTest(button, options, expected){
await response.retry({ error }); await response.retry({ error });
const event = await eventPromise; const event = await eventPromise;
assert_true(event instanceof PaymentRequestUpdateEvent); assert_true(event instanceof PaymentRequestUpdateEvent);
for(const [prop, value] of Object.entries(expected)){ for([prop, value] of Object.entries(expected)){
if (prop === 'payerPhone') {
// |payerPhone| may optionally adhere to E164 structure, which does not
// contain formatting, e.g. +180000000 instead of +1-800-000-0000.
// Strip out the formatting in case the user agent implements E164.
// https://w3c.github.io/payment-request/#addressinit-dictionary
value = value.replace(/[-\(\) ]/g, '');
}
assert_equals(response[prop], value); assert_equals(response[prop], value);
} }
await response.complete("success"); await response.complete("success");
@ -52,7 +59,7 @@ function runTest(button, options, expected){
<p> <p>
Change payer's phone to "+1-800-000-0000". Change payer's phone to "+1-800-000-0000".
</p> </p>
<button onclick="runTest(this, {requestPayerPhone: true}, { payerPhone: '+1-800-000-0000' })"> <button onclick="runTest(this, {requestPayerPhone: true}, { payerPhone: '+18000000000' })">
PaymentRequestUpdateEvent is dispatched when payer phone changes. PaymentRequestUpdateEvent is dispatched when payer phone changes.
</button> </button>
</li> </li>

View file

@ -1,8 +1,6 @@
spec: https://w3c.github.io/pointerevents/ spec: https://w3c.github.io/pointerevents/
suggested_reviewers: suggested_reviewers:
- Steditor - Steditor
- jacobrossi
- plehegar - plehegar
- scottgonzalez
- RByers - RByers
- NavidZ - NavidZ

View file

@ -1,6 +1,5 @@
spec: https://w3c.github.io/proximity/ spec: https://w3c.github.io/proximity/
suggested_reviewers: suggested_reviewers:
- zqzhang - zqzhang
- dontcallmedom
- Honry - Honry
- rakuco - rakuco

View file

@ -1,5 +1,3 @@
spec: https://w3c.github.io/webappsec-referrer-policy/ spec: https://w3c.github.io/webappsec-referrer-policy/
suggested_reviewers: suggested_reviewers:
- estark37
- jeisinger
- domfarolino - domfarolino

View file

@ -1,6 +1,5 @@
spec: https://w3c.github.io/resource-timing/ spec: https://w3c.github.io/resource-timing/
suggested_reviewers: suggested_reviewers:
- haoxli
- plehegar - plehegar
- zqzhang - zqzhang
- igrigorik - igrigorik

View file

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name=timeout content=long>
<title>Resource Timing embed navigate - back button navigation</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="resources/nested-contexts.js"></script>
<script>
open_test_window("resources/embed-navigate-back.html", "Test that embed navigations are not observable by the parent, even after history navigations by the parent");
open_test_window("resources/embed-navigate-back.html?crossorigin", "Test that crossorigin embed navigations are not observable by the parent, even after history navigations by the parent");
open_test_window("resources/embed-navigate.html", "Test that embed navigations are not observable by the parent");
open_test_window("resources/embed-navigate.html?crossorigin", "Test that crossorigin embed navigations are not observable by the parent");
open_test_window("resources/embed-refresh.html", "Test that embed refreshes are not observable by the parent");
open_test_window("resources/embed-refresh.html?crossorigin", "Test that crossorigin embed refreshes are not observable by the parent");
open_test_window("resources/iframe-navigate-back.html", "Test that iframe navigations are not observable by the parent, even after history navigations by the parent");
open_test_window("resources/iframe-navigate-back.html?crossorigin", "Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent");
open_test_window("resources/iframe-navigate.html", "Test that iframe navigations are not observable by the parent");
open_test_window("resources/iframe-navigate.html?crossorigin", "Test that crossorigin iframe navigations are not observable by the parent");
open_test_window("resources/iframe-refresh.html", "Test that iframe refreshes are not observable by the parent");
open_test_window("resources/iframe-refresh.html?crossorigin", "Test that crossorigin iframe refreshes are not observable by the parent");
open_test_window("resources/object-navigate-back.html", "Test that object navigations are not observable by the parent, even after history navigations by the parent");
open_test_window("resources/object-navigate-back.html?crossorigin", "Test that crossorigin object navigations are not observable by the parent, even after history navigations by the parent");
open_test_window("resources/object-navigate.html", "Test that object navigations are not observable by the parent");
open_test_window("resources/object-navigate.html?crossorigin", "Test that crossorigin object navigations are not observable by the parent");
open_test_window("resources/object-refresh.html", "Test that object refreshes are not observable by the parent");
open_test_window("resources/object-refresh.html?crossorigin", "Test that crossorigin object refreshes are not observable by the parent");
</script>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
navigated document!
<script>
top.postMessage("navigated", "*");
</script>
</body>
</html>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
Refreshed document!
<script>
top.postMessage("refreshed", "*");
</script>
</body>
</html>

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<script>
location.href="document-navigated.html";
</script>
</body>
</html>

View file

@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="refresh" content="0;document-refreshed.html">
</head>
<body></body>
</html>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing embed navigate - back button navigation</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_back_navigation("embed-navigate-back.html");
</script>
<embed type="text/html">
<script>
document.getElementsByTagName("embed")[0].src = pre_navigate_url;
</script>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing embed navigate</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_navigate_test();
</script>
<div id=log></div>
<embed type="text/html">
<script>
document.getElementsByTagName("embed")[0].src = pre_navigate_url;
</script>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing embed refresh</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_refresh_test();
</script>
<div id=log></div>
<embed type="text/html">
<script>
document.getElementsByTagName("embed")[0].src = pre_refresh_url;
</script>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing iframe navigate - back button navigation</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_back_navigation("iframe-navigate-back.html");
</script>
<iframe></iframe>
<script>
document.getElementsByTagName("iframe")[0].src = pre_navigate_url;
</script>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing iframe navigate</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_navigate_test();
</script>
<div id=log></div>
<iframe></iframe>
<script>
document.getElementsByTagName("iframe")[0].src = pre_navigate_url;
</script>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing iframe refresh</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_refresh_test();
</script>
<div id=log></div>
<iframe></iframe>
<script>
document.getElementsByTagName("iframe")[0].src = pre_refresh_url;
</script>

View file

@ -0,0 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script>
window.onload = function() {history.back();}
</script>

View file

@ -0,0 +1,95 @@
let destination = location;
if (location.search == "?crossorigin") {
const host_info = get_host_info()
destination = location.protocol + "//" + host_info["REMOTE_HOST"] + ":" + location.port;
}
const pre_navigate_url = new URL("/resource-timing/resources/document-that-navigates.html", destination).href;
const post_navigate_url = new URL("/resource-timing/resources/document-navigated.html", destination).href;
const pre_refresh_url = new URL("/resource-timing/resources/document-that-refreshes.html", destination).href;
const post_refresh_url = new URL("/resource-timing/resources/document-refreshed.html", destination).href;
function setup_navigate_or_refresh(type, pre, post) {
function verify_document_navigate_not_observable() {
let entries = performance.getEntriesByType("resource");
let found_first_document = false;
for (entry of entries) {
if (entry.name == pre) {
found_first_document = true;
}
if (entry.name == post) {
opener.postMessage("FAIL - " + type + " document should not be observable", "*");
return;
}
}
if (!found_first_document) {
opener.postMessage("FAIL - initial document should be observable", "*");
return;
}
opener.postMessage("PASS", "*");
}
window.addEventListener("message", e=>{
if (e.data == type) {
verify_document_navigate_not_observable();
}
});
}
function setup_navigate_test() {
setup_navigate_or_refresh("navigated", pre_navigate_url, post_navigate_url);
}
function setup_refresh_test() {
setup_navigate_or_refresh("refreshed", pre_refresh_url, post_refresh_url);
}
function setup_back_navigation(pushed_url) {
function verify_document_navigate_not_observable() {
let entries = performance.getEntriesByType("resource");
let found_first_document = false;
for (entry of entries) {
if (entry.name == pre_navigate_url) {
found_first_document = true;
}
if (entry.name == post_navigate_url) {
opener.postMessage("FAIL - navigated document exposed", "*");
return;
}
}
if (!found_first_document) {
opener.postMessage("FAIL - first document not exposed", "*");
return;
}
opener.postMessage("PASS", "*");
}
window.addEventListener("message", e=>{
if (e.data == "navigated") {
if (sessionStorage.navigated) {
delete sessionStorage.navigated;
verify_document_navigate_not_observable();
} else {
sessionStorage.navigated = true;
setTimeout(() => {
history.pushState({}, "", pushed_url);
location.href="navigate_back.html";
}, 0);
}
}
});
}
function open_test_window(url, message) {
promise_test(() => {
return new Promise((resolve, reject) => {
let openee = window.open(url);
addEventListener("message", e => {
openee.close();
if (e.data == "PASS") {
resolve();
} else {
reject(e.data);
}
});
});
}, message);
}

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing object navigate - back button navigation</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_back_navigation("object-navigate-back.html");
</script>
<object></object>
<script>
document.getElementsByTagName("object")[0].data = pre_navigate_url;
</script>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing object navigate</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_navigate_test();
</script>
<div id=log></div>
<object></object>
<script>
document.getElementsByTagName("object")[0].data = pre_navigate_url;
</script>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing object refresh</title>
<script src="/common/get-host-info.sub.js"></script>
<script src="nested-contexts.js"></script>
<script>
setup_refresh_test();
</script>
<div id=log></div>
<object></object>
<script>
document.getElementsByTagName("object")[0].data = pre_refresh_url;
</script>

View file

@ -155,6 +155,62 @@
return validator.validationError.UNKNOWN_ENUM_VALUE; return validator.validationError.UNKNOWN_ENUM_VALUE;
}; };
var UsbSynchronizationType = {};
UsbSynchronizationType.NONE = 0;
UsbSynchronizationType.ASYNCHRONOUS = UsbSynchronizationType.NONE + 1;
UsbSynchronizationType.ADAPTIVE = UsbSynchronizationType.ASYNCHRONOUS + 1;
UsbSynchronizationType.SYNCHRONOUS = UsbSynchronizationType.ADAPTIVE + 1;
UsbSynchronizationType.MIN_VALUE = 0,
UsbSynchronizationType.MAX_VALUE = 3,
UsbSynchronizationType.isKnownEnumValue = function(value) {
switch (value) {
case 0:
case 1:
case 2:
case 3:
return true;
}
return false;
};
UsbSynchronizationType.validate = function(enumValue) {
var isExtensible = false;
if (isExtensible || this.isKnownEnumValue(enumValue))
return validator.validationError.NONE;
return validator.validationError.UNKNOWN_ENUM_VALUE;
};
var UsbUsageType = {};
UsbUsageType.DATA = 0;
UsbUsageType.FEEDBACK = UsbUsageType.DATA + 1;
UsbUsageType.EXPLICIT_FEEDBACK = UsbUsageType.FEEDBACK + 1;
UsbUsageType.PERIODIC = UsbUsageType.EXPLICIT_FEEDBACK + 1;
UsbUsageType.NOTIFICATION = UsbUsageType.PERIODIC + 1;
UsbUsageType.RESERVED = UsbUsageType.NOTIFICATION + 1;
UsbUsageType.MIN_VALUE = 0,
UsbUsageType.MAX_VALUE = 5,
UsbUsageType.isKnownEnumValue = function(value) {
switch (value) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
return true;
}
return false;
};
UsbUsageType.validate = function(enumValue) {
var isExtensible = false;
if (isExtensible || this.isKnownEnumValue(enumValue))
return validator.validationError.NONE;
return validator.validationError.UNKNOWN_ENUM_VALUE;
};
var UsbTransferStatus = {}; var UsbTransferStatus = {};
UsbTransferStatus.COMPLETED = 0; UsbTransferStatus.COMPLETED = 0;
UsbTransferStatus.TRANSFER_ERROR = UsbTransferStatus.COMPLETED + 1; UsbTransferStatus.TRANSFER_ERROR = UsbTransferStatus.COMPLETED + 1;
@ -200,9 +256,13 @@
UsbEndpointInfo.prototype.initDefaults_ = function() { UsbEndpointInfo.prototype.initDefaults_ = function() {
this.endpointNumber = 0; this.endpointNumber = 0;
this.pollingInterval = 0;
this.direction = 0; this.direction = 0;
this.type = 0; this.type = 0;
this.packetSize = 0; this.packetSize = 0;
this.synchronizationType = 0;
this.usageType = 0;
this.extraData = null;
}; };
UsbEndpointInfo.prototype.initFields_ = function(fields) { UsbEndpointInfo.prototype.initFields_ = function(fields) {
for(var field in fields) { for(var field in fields) {
@ -218,7 +278,7 @@
return err; return err;
var kVersionSizes = [ var kVersionSizes = [
{version: 0, numBytes: 24} {version: 0, numBytes: 40}
]; ];
err = messageValidator.validateStructVersion(offset, kVersionSizes); err = messageValidator.validateStructVersion(offset, kVersionSizes);
if (err !== validator.validationError.NONE) if (err !== validator.validationError.NONE)
@ -238,10 +298,29 @@
return err; return err;
// validate UsbEndpointInfo.synchronizationType
err = messageValidator.validateEnum(offset + codec.kStructHeaderSize + 16, UsbSynchronizationType);
if (err !== validator.validationError.NONE)
return err;
// validate UsbEndpointInfo.usageType
err = messageValidator.validateEnum(offset + codec.kStructHeaderSize + 20, UsbUsageType);
if (err !== validator.validationError.NONE)
return err;
// validate UsbEndpointInfo.extraData
err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 24, 1, codec.Uint8, false, [0], 0);
if (err !== validator.validationError.NONE)
return err;
return validator.validationError.NONE; return validator.validationError.NONE;
}; };
UsbEndpointInfo.encodedSize = codec.kStructHeaderSize + 16; UsbEndpointInfo.encodedSize = codec.kStructHeaderSize + 32;
UsbEndpointInfo.decode = function(decoder) { UsbEndpointInfo.decode = function(decoder) {
var packed; var packed;
@ -249,12 +328,15 @@
var numberOfBytes = decoder.readUint32(); var numberOfBytes = decoder.readUint32();
var version = decoder.readUint32(); var version = decoder.readUint32();
val.endpointNumber = decoder.decodeStruct(codec.Uint8); val.endpointNumber = decoder.decodeStruct(codec.Uint8);
decoder.skip(1); val.pollingInterval = decoder.decodeStruct(codec.Uint8);
decoder.skip(1); decoder.skip(1);
decoder.skip(1); decoder.skip(1);
val.direction = decoder.decodeStruct(codec.Int32); val.direction = decoder.decodeStruct(codec.Int32);
val.type = decoder.decodeStruct(codec.Int32); val.type = decoder.decodeStruct(codec.Int32);
val.packetSize = decoder.decodeStruct(codec.Uint32); val.packetSize = decoder.decodeStruct(codec.Uint32);
val.synchronizationType = decoder.decodeStruct(codec.Int32);
val.usageType = decoder.decodeStruct(codec.Int32);
val.extraData = decoder.decodeArrayPointer(codec.Uint8);
return val; return val;
}; };
@ -263,12 +345,15 @@
encoder.writeUint32(UsbEndpointInfo.encodedSize); encoder.writeUint32(UsbEndpointInfo.encodedSize);
encoder.writeUint32(0); encoder.writeUint32(0);
encoder.encodeStruct(codec.Uint8, val.endpointNumber); encoder.encodeStruct(codec.Uint8, val.endpointNumber);
encoder.skip(1); encoder.encodeStruct(codec.Uint8, val.pollingInterval);
encoder.skip(1); encoder.skip(1);
encoder.skip(1); encoder.skip(1);
encoder.encodeStruct(codec.Int32, val.direction); encoder.encodeStruct(codec.Int32, val.direction);
encoder.encodeStruct(codec.Int32, val.type); encoder.encodeStruct(codec.Int32, val.type);
encoder.encodeStruct(codec.Uint32, val.packetSize); encoder.encodeStruct(codec.Uint32, val.packetSize);
encoder.encodeStruct(codec.Int32, val.synchronizationType);
encoder.encodeStruct(codec.Int32, val.usageType);
encoder.encodeArrayPointer(codec.Uint8, val.extraData);
}; };
function UsbAlternateInterfaceInfo(values) { function UsbAlternateInterfaceInfo(values) {
this.initDefaults_(); this.initDefaults_();
@ -283,6 +368,7 @@
this.protocolCode = 0; this.protocolCode = 0;
this.interfaceName = null; this.interfaceName = null;
this.endpoints = null; this.endpoints = null;
this.extraData = null;
}; };
UsbAlternateInterfaceInfo.prototype.initFields_ = function(fields) { UsbAlternateInterfaceInfo.prototype.initFields_ = function(fields) {
for(var field in fields) { for(var field in fields) {
@ -298,7 +384,7 @@
return err; return err;
var kVersionSizes = [ var kVersionSizes = [
{version: 0, numBytes: 32} {version: 0, numBytes: 40}
]; ];
err = messageValidator.validateStructVersion(offset, kVersionSizes); err = messageValidator.validateStructVersion(offset, kVersionSizes);
if (err !== validator.validationError.NONE) if (err !== validator.validationError.NONE)
@ -320,10 +406,16 @@
if (err !== validator.validationError.NONE) if (err !== validator.validationError.NONE)
return err; return err;
// validate UsbAlternateInterfaceInfo.extraData
err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 24, 1, codec.Uint8, false, [0], 0);
if (err !== validator.validationError.NONE)
return err;
return validator.validationError.NONE; return validator.validationError.NONE;
}; };
UsbAlternateInterfaceInfo.encodedSize = codec.kStructHeaderSize + 24; UsbAlternateInterfaceInfo.encodedSize = codec.kStructHeaderSize + 32;
UsbAlternateInterfaceInfo.decode = function(decoder) { UsbAlternateInterfaceInfo.decode = function(decoder) {
var packed; var packed;
@ -340,6 +432,7 @@
decoder.skip(1); decoder.skip(1);
val.interfaceName = decoder.decodeStructPointer(string16$.String16); val.interfaceName = decoder.decodeStructPointer(string16$.String16);
val.endpoints = decoder.decodeArrayPointer(new codec.PointerTo(UsbEndpointInfo)); val.endpoints = decoder.decodeArrayPointer(new codec.PointerTo(UsbEndpointInfo));
val.extraData = decoder.decodeArrayPointer(codec.Uint8);
return val; return val;
}; };
@ -357,6 +450,7 @@
encoder.skip(1); encoder.skip(1);
encoder.encodeStructPointer(string16$.String16, val.interfaceName); encoder.encodeStructPointer(string16$.String16, val.interfaceName);
encoder.encodeArrayPointer(new codec.PointerTo(UsbEndpointInfo), val.endpoints); encoder.encodeArrayPointer(new codec.PointerTo(UsbEndpointInfo), val.endpoints);
encoder.encodeArrayPointer(codec.Uint8, val.extraData);
}; };
function UsbInterfaceInfo(values) { function UsbInterfaceInfo(values) {
this.initDefaults_(); this.initDefaults_();
@ -439,8 +533,12 @@
UsbConfigurationInfo.prototype.initDefaults_ = function() { UsbConfigurationInfo.prototype.initDefaults_ = function() {
this.configurationValue = 0; this.configurationValue = 0;
this.selfPowered = false;
this.remoteWakeup = false;
this.maximumPower = 0;
this.configurationName = null; this.configurationName = null;
this.interfaces = null; this.interfaces = null;
this.extraData = null;
}; };
UsbConfigurationInfo.prototype.initFields_ = function(fields) { UsbConfigurationInfo.prototype.initFields_ = function(fields) {
for(var field in fields) { for(var field in fields) {
@ -456,7 +554,7 @@
return err; return err;
var kVersionSizes = [ var kVersionSizes = [
{version: 0, numBytes: 32} {version: 0, numBytes: 40}
]; ];
err = messageValidator.validateStructVersion(offset, kVersionSizes); err = messageValidator.validateStructVersion(offset, kVersionSizes);
if (err !== validator.validationError.NONE) if (err !== validator.validationError.NONE)
@ -470,15 +568,24 @@
return err; return err;
// validate UsbConfigurationInfo.interfaces // validate UsbConfigurationInfo.interfaces
err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 16, 8, new codec.PointerTo(UsbInterfaceInfo), false, [0], 0); err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 16, 8, new codec.PointerTo(UsbInterfaceInfo), false, [0], 0);
if (err !== validator.validationError.NONE) if (err !== validator.validationError.NONE)
return err; return err;
// validate UsbConfigurationInfo.extraData
err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 24, 1, codec.Uint8, false, [0], 0);
if (err !== validator.validationError.NONE)
return err;
return validator.validationError.NONE; return validator.validationError.NONE;
}; };
UsbConfigurationInfo.encodedSize = codec.kStructHeaderSize + 24; UsbConfigurationInfo.encodedSize = codec.kStructHeaderSize + 32;
UsbConfigurationInfo.decode = function(decoder) { UsbConfigurationInfo.decode = function(decoder) {
var packed; var packed;
@ -486,8 +593,10 @@
var numberOfBytes = decoder.readUint32(); var numberOfBytes = decoder.readUint32();
var version = decoder.readUint32(); var version = decoder.readUint32();
val.configurationValue = decoder.decodeStruct(codec.Uint8); val.configurationValue = decoder.decodeStruct(codec.Uint8);
decoder.skip(1); packed = decoder.readUint8();
decoder.skip(1); val.selfPowered = (packed >> 0) & 1 ? true : false;
val.remoteWakeup = (packed >> 1) & 1 ? true : false;
val.maximumPower = decoder.decodeStruct(codec.Uint8);
decoder.skip(1); decoder.skip(1);
decoder.skip(1); decoder.skip(1);
decoder.skip(1); decoder.skip(1);
@ -495,6 +604,7 @@
decoder.skip(1); decoder.skip(1);
val.configurationName = decoder.decodeStructPointer(string16$.String16); val.configurationName = decoder.decodeStructPointer(string16$.String16);
val.interfaces = decoder.decodeArrayPointer(new codec.PointerTo(UsbInterfaceInfo)); val.interfaces = decoder.decodeArrayPointer(new codec.PointerTo(UsbInterfaceInfo));
val.extraData = decoder.decodeArrayPointer(codec.Uint8);
return val; return val;
}; };
@ -503,8 +613,11 @@
encoder.writeUint32(UsbConfigurationInfo.encodedSize); encoder.writeUint32(UsbConfigurationInfo.encodedSize);
encoder.writeUint32(0); encoder.writeUint32(0);
encoder.encodeStruct(codec.Uint8, val.configurationValue); encoder.encodeStruct(codec.Uint8, val.configurationValue);
encoder.skip(1); packed = 0;
encoder.skip(1); packed |= (val.selfPowered & 1) << 0
packed |= (val.remoteWakeup & 1) << 1
encoder.writeUint8(packed);
encoder.encodeStruct(codec.Uint8, val.maximumPower);
encoder.skip(1); encoder.skip(1);
encoder.skip(1); encoder.skip(1);
encoder.skip(1); encoder.skip(1);
@ -512,6 +625,7 @@
encoder.skip(1); encoder.skip(1);
encoder.encodeStructPointer(string16$.String16, val.configurationName); encoder.encodeStructPointer(string16$.String16, val.configurationName);
encoder.encodeArrayPointer(new codec.PointerTo(UsbInterfaceInfo), val.interfaces); encoder.encodeArrayPointer(new codec.PointerTo(UsbInterfaceInfo), val.interfaces);
encoder.encodeArrayPointer(codec.Uint8, val.extraData);
}; };
function UsbDeviceInfo(values) { function UsbDeviceInfo(values) {
this.initDefaults_(); this.initDefaults_();
@ -3655,6 +3769,8 @@
exports.UsbControlTransferType = UsbControlTransferType; exports.UsbControlTransferType = UsbControlTransferType;
exports.UsbControlTransferRecipient = UsbControlTransferRecipient; exports.UsbControlTransferRecipient = UsbControlTransferRecipient;
exports.UsbTransferType = UsbTransferType; exports.UsbTransferType = UsbTransferType;
exports.UsbSynchronizationType = UsbSynchronizationType;
exports.UsbUsageType = UsbUsageType;
exports.UsbTransferStatus = UsbTransferStatus; exports.UsbTransferStatus = UsbTransferStatus;
exports.UsbEndpointInfo = UsbEndpointInfo; exports.UsbEndpointInfo = UsbEndpointInfo;
exports.UsbAlternateInterfaceInfo = UsbAlternateInterfaceInfo; exports.UsbAlternateInterfaceInfo = UsbAlternateInterfaceInfo;

View file

@ -68,7 +68,11 @@ function fakeDeviceInitToDeviceInfo(guid, init) {
var configInfo = { var configInfo = {
configurationValue: config.configurationValue, configurationValue: config.configurationValue,
configurationName: stringToMojoString16(config.configurationName), configurationName: stringToMojoString16(config.configurationName),
interfaces: [] selfPowered: false,
remoteWakeup: false,
maximumPower: 0,
interfaces: [],
extraData: new Uint8Array()
}; };
config.interfaces.forEach(iface => { config.interfaces.forEach(iface => {
var interfaceInfo = { var interfaceInfo = {
@ -82,12 +86,17 @@ function fakeDeviceInitToDeviceInfo(guid, init) {
subclassCode: alternate.interfaceSubclass, subclassCode: alternate.interfaceSubclass,
protocolCode: alternate.interfaceProtocol, protocolCode: alternate.interfaceProtocol,
interfaceName: stringToMojoString16(alternate.interfaceName), interfaceName: stringToMojoString16(alternate.interfaceName),
endpoints: [] endpoints: [],
extraData: new Uint8Array()
}; };
alternate.endpoints.forEach(endpoint => { alternate.endpoints.forEach(endpoint => {
var endpointInfo = { var endpointInfo = {
endpointNumber: endpoint.endpointNumber, endpointNumber: endpoint.endpointNumber,
packetSize: endpoint.packetSize, packetSize: endpoint.packetSize,
synchronizationType: device.mojom.UsbSynchronizationType.NONE,
usageType: device.mojom.UsbUsageType.DATA,
pollingInterval: 0,
extraData: new Uint8Array()
}; };
switch (endpoint.direction) { switch (endpoint.direction) {
case "in": case "in":

View file

@ -1,4 +1,3 @@
spec: https://w3c.github.io/screen-orientation/ spec: https://w3c.github.io/screen-orientation/
suggested_reviewers: suggested_reviewers:
- haoxli
- marcoscaceres - marcoscaceres

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