mirror of
https://github.com/servo/servo.git
synced 2025-07-12 09:53:40 +01:00
Update web-platform-tests to revision 2d68590d46a990bf28a08d6384a59962d2e56bf6
This commit is contained in:
parent
bc03d32142
commit
ad4cc3691e
135 changed files with 1613 additions and 341 deletions
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,2 @@
|
|||
[overflow-wrap-break-word-007.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[pre-wrap-008.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[word-break-break-all-011.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[word-break-break-all-015.html]
|
||||
expected: FAIL
|
|
@ -6,3 +6,6 @@
|
|||
[Instant scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
[Smooth scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,9 +312,3 @@
|
|||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
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
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[self-et-al.window.html]
|
||||
expected: CRASH
|
|
@ -1,5 +1,5 @@
|
|||
[name-attribute.window.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[cross-origin <frame name=>]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[iframe_005.html]
|
||||
[document.write external script into iframe write back into parent]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[005.html]
|
||||
expected: ERROR
|
||||
[dedicated worker in shared worker in dedicated worker]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -57,11 +57,25 @@ matrix:
|
|||
packages:
|
||||
- libnss3-tools
|
||||
env: JOB=wpt_integration TOXENV=py27 SCRIPT=tools/ci/ci_wpt.sh
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- fonts-liberation
|
||||
- libappindicator1
|
||||
- libnss3-tools
|
||||
- pulseaudio
|
||||
- name: "resources/ tests"
|
||||
if: type = pull_request
|
||||
os: linux
|
||||
python: "2.7"
|
||||
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"
|
||||
if: type = pull_request
|
||||
os: linux
|
||||
|
@ -70,9 +84,10 @@ matrix:
|
|||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libnss3-tools
|
||||
- libappindicator1
|
||||
- fonts-liberation
|
||||
- libappindicator1
|
||||
- libnss3-tools
|
||||
- pulseaudio
|
||||
exclude:
|
||||
- env: # exclude empty env from the top-level above
|
||||
allow_failures:
|
||||
|
|
|
@ -3,5 +3,4 @@ suggested_reviewers:
|
|||
- AmeliaBR
|
||||
- annevk
|
||||
- kenrussell
|
||||
- jdashg
|
||||
- fserb
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
spec: https://heycam.github.io/webidl/
|
||||
suggested_reviewers:
|
||||
- domenic
|
||||
- jensl
|
||||
- tobie
|
||||
- yuki3
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
spec: https://w3c.github.io/accelerometer/
|
||||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- riju
|
||||
- Honry
|
||||
- rakuco
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
spec: https://w3c.github.io/ambient-light/
|
||||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- riju
|
||||
- rakuco
|
||||
- Honry
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
spec: https://w3c.github.io/battery/
|
||||
suggested_reviewers:
|
||||
- anssiko
|
||||
- dontcallmedom
|
||||
- zqzhang
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
spec: https://webbluetoothcg.github.io/web-bluetooth/
|
||||
suggested_reviewers:
|
||||
- dougt
|
||||
- g-ortuno
|
||||
- odejesush
|
||||
- reillyeon
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- deniak
|
||||
- gsnedders
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
suggested_reviewers:
|
||||
- inikulin
|
||||
- mikewest
|
||||
|
|
|
@ -5,4 +5,3 @@ suggested_reviewers:
|
|||
- svgeesus
|
||||
- kojiishi
|
||||
- frivoal
|
||||
- bert-github
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://w3c.github.io/woff/woff2/
|
||||
suggested_reviewers:
|
||||
- svgeesus
|
||||
- rsheeter
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
spec: https://drafts.csswg.org/css-backgrounds/
|
||||
suggested_reviewers:
|
||||
- dbaron
|
||||
- bert-github
|
||||
- fantasai
|
||||
- bradkemper
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
spec: https://drafts.csswg.org/css-color/
|
||||
suggested_reviewers:
|
||||
- dbaron
|
||||
- tantek
|
||||
- svgeesus
|
||||
- tabatkins
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
suggested_reviewers:
|
||||
- bert-github
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://drafts.csswg.org/css-exclusions/
|
||||
suggested_reviewers:
|
||||
- atanassov
|
||||
- astearns
|
||||
|
|
|
@ -4,7 +4,6 @@ suggested_reviewers:
|
|||
- plinss
|
||||
- mrego
|
||||
- cbiesinger
|
||||
- atanassov
|
||||
- fantasai
|
||||
- rachelandrew
|
||||
- tabatkins
|
||||
|
|
|
@ -2,10 +2,8 @@ spec: https://drafts.csswg.org/css-grid/
|
|||
suggested_reviewers:
|
||||
- mrego
|
||||
- plinss
|
||||
- jxs
|
||||
- tabatkins
|
||||
- fantasai
|
||||
- atanassov
|
||||
- javifernandez
|
||||
- rachelandrew
|
||||
- svillar
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://drafts.csswg.org/css-logical/
|
||||
suggested_reviewers:
|
||||
- atanassov
|
||||
- fantasai
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
spec: https://drafts.csswg.org/css-position/
|
||||
suggested_reviewers:
|
||||
- atanassov
|
||||
- astearns
|
||||
|
|
|
@ -101,6 +101,12 @@ test_computed_value('<length>', '14em', '140px');
|
|||
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>', '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>', '18%', '18%');
|
||||
test_computed_value('<length-percentage>', 'calc(19em - 2%)', 'calc(-2% + 190px)');
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<!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/#register-a-custom-property" />
|
||||
<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-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/testharnessreport.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: '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: '<color>', initialValue: 'pink', inherits: true }, 'rgb(255, 192, 203)');
|
||||
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: '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>
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
spec: https://drafts.csswg.org/css-regions/
|
||||
suggested_reviewers:
|
||||
- atanassov
|
||||
- astearns
|
||||
- rachelandrew
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
spec: https://drafts.csswg.org/css-scrollbars/
|
||||
suggested_reviewers:
|
||||
- tantek
|
||||
- upsuper
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
spec: https://drafts.csswg.org/css-shapes/
|
||||
suggested_reviewers:
|
||||
- bemjb
|
||||
- kojiishi
|
||||
- plinss
|
||||
- atanassov
|
||||
- astearns
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://drafts.csswg.org/css-style-attr/
|
||||
suggested_reviewers:
|
||||
- tantek
|
||||
- fantasai
|
||||
|
|
|
@ -2,4 +2,3 @@ spec: https://drafts.csswg.org/css-syntax/
|
|||
suggested_reviewers:
|
||||
- gregwhitworth
|
||||
- tabatkins
|
||||
- simonsapin
|
||||
|
|
|
@ -5,5 +5,4 @@ suggested_reviewers:
|
|||
- frivoal
|
||||
- r12a
|
||||
- nox
|
||||
- hakatashi
|
||||
- fantasai
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -21,10 +21,11 @@ div {
|
|||
width: 100px;
|
||||
height: 100px;
|
||||
z-index: -1;
|
||||
white-space: pre;
|
||||
}
|
||||
span { color: green; }
|
||||
.test {
|
||||
color: green;
|
||||
background: green;
|
||||
width: 1ch;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
|
@ -32,6 +33,6 @@ div {
|
|||
</style>
|
||||
<body>
|
||||
<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>
|
||||
</body>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<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="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">
|
||||
|
@ -15,12 +15,12 @@ div {
|
|||
}
|
||||
.red {
|
||||
position: absolute;
|
||||
white-space: pre;
|
||||
background: green;
|
||||
color: red;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
z-index: -1;
|
||||
white-space: pre;
|
||||
}
|
||||
.test {
|
||||
color: green;
|
||||
|
|
|
@ -20,10 +20,10 @@ div {
|
|||
width: 100px;
|
||||
height: 100px;
|
||||
z-index: -1;
|
||||
white-space: pre;
|
||||
}
|
||||
.test {
|
||||
color: green;
|
||||
background: green;
|
||||
line-height: 1em;
|
||||
width: 1ch;
|
||||
white-space: break-spaces;
|
||||
|
@ -32,6 +32,6 @@ div {
|
|||
</style>
|
||||
<body>
|
||||
<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>
|
||||
</body>
|
||||
|
|
|
@ -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>
|
|
@ -3,5 +3,4 @@ suggested_reviewers:
|
|||
- dbaron
|
||||
- plinss
|
||||
- dirkschulze
|
||||
- hober
|
||||
- grorg
|
||||
|
|
|
@ -4,4 +4,3 @@ suggested_reviewers:
|
|||
- mrego
|
||||
- plinss
|
||||
- svgeesus
|
||||
- tantek
|
||||
|
|
|
@ -2,7 +2,6 @@ spec: https://drafts.csswg.org/css-writing-modes/
|
|||
suggested_reviewers:
|
||||
- kojiishi
|
||||
- fantasai
|
||||
- myakura
|
||||
- r12a
|
||||
- plinss
|
||||
- upsuper
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
spec: https://drafts.csswg.org/selectors/
|
||||
suggested_reviewers:
|
||||
- tantek
|
||||
- fantasai
|
||||
- frivoal
|
||||
- plinss
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://w3c.github.io/device-memory/
|
||||
suggested_reviewers:
|
||||
- tdresser
|
||||
- npm1
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
suggested_reviewers:
|
||||
- sideshowbarker
|
||||
- dontcallmedom
|
||||
- gsnedders
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
spec: https://w3c.github.io/encrypted-media/
|
||||
suggested_reviewers:
|
||||
- ddorwin
|
||||
- cpearce
|
||||
- joeyparrish
|
||||
- jrummell-chromium
|
||||
- jyavenard
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://github.com/WICG/event-timing
|
||||
suggested_reviewers:
|
||||
- npm1
|
||||
- tdresser
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
spec: https://wicg.github.io/feature-policy/
|
||||
suggested_reviewers:
|
||||
- clelland
|
||||
- bakulf
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
spec: https://w3c.github.io/gamepad/
|
||||
suggested_reviewers:
|
||||
- luser
|
||||
- marcoscaceres
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
spec: https://w3c.github.io/sensors/
|
||||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- riju
|
||||
- rakuco
|
||||
- Honry
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
spec: https://w3c.github.io/gyroscope/
|
||||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- riju
|
||||
- Honry
|
||||
- rakuco
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://w3c.github.io/html-media-capture/
|
||||
suggested_reviewers:
|
||||
- haoxli
|
||||
- zqzhang
|
||||
|
|
|
@ -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");
|
|
@ -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`)
|
||||
});
|
|
@ -12,7 +12,8 @@
|
|||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
</head>
|
||||
<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">
|
||||
<li>Click this instruction text.
|
||||
</ol>
|
||||
|
@ -35,6 +36,8 @@
|
|||
} else if (msg.type == 'child-four-report') {
|
||||
assert_true(msg.isActive);
|
||||
assert_true(msg.hasBeenActive);
|
||||
|
||||
// check sender's activation state again
|
||||
assert_false(navigator.userActivation.isActive);
|
||||
assert_false(navigator.userActivation.hasBeenActive);
|
||||
t.done();
|
||||
|
@ -45,7 +48,12 @@
|
|||
assert_true(navigator.userActivation.hasBeenActive);
|
||||
|
||||
// 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";
|
||||
}, "Cross-origin user activation transfer through postMessages");
|
||||
|
|
|
@ -12,7 +12,8 @@
|
|||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
</head>
|
||||
<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">
|
||||
<li>Click this instruction text.
|
||||
</ol>
|
||||
|
@ -35,6 +36,8 @@
|
|||
} else if (msg.type == 'child-four-report') {
|
||||
assert_true(msg.isActive);
|
||||
assert_true(msg.hasBeenActive);
|
||||
|
||||
// check sender's activation state again
|
||||
assert_false(navigator.userActivation.isActive);
|
||||
assert_false(navigator.userActivation.hasBeenActive);
|
||||
t.done();
|
||||
|
@ -45,7 +48,12 @@
|
|||
assert_true(navigator.userActivation.hasBeenActive);
|
||||
|
||||
// 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";
|
||||
}, "User activation transfer through postMessages");
|
||||
|
|
|
@ -3,5 +3,4 @@ suggested_reviewers:
|
|||
- AmeliaBR
|
||||
- annevk
|
||||
- kenrussell
|
||||
- jdashg
|
||||
- fserb
|
||||
|
|
|
@ -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: *.wasm
|
||||
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.bmp
|
||||
TRAILING WHITESPACE, INDENT TABS, CR AT EOL: *.sxg
|
||||
|
||||
## 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: resize-observer/resources/iframe.html
|
||||
SET TIMEOUT: resource-timing/resources/iframe-TAO*
|
||||
SET TIMEOUT: resource-timing/resources/nested-contexts.js
|
||||
SET TIMEOUT: screen-orientation/onchange-event.html
|
||||
SET TIMEOUT: secure-contexts/basic-popup-and-iframe-tests.https.js
|
||||
SET TIMEOUT: service-workers/cache-storage/script-tests/cache-abort.js
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
spec: https://w3c.github.io/magnetometer/
|
||||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- riju
|
||||
- Honry
|
||||
- rakuco
|
||||
|
|
|
@ -16,23 +16,26 @@
|
|||
</style>
|
||||
</head>
|
||||
<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>
|
||||
<mfrac linethickness="5px">
|
||||
<mspace width="20px" height="5px" style="background: blue"></mspace>
|
||||
<mspace width="20px" height="5px" style="background: cyan"></mspace>
|
||||
</mfrac>
|
||||
<mfrac linethickness="10px">
|
||||
<mfrac>
|
||||
<mspace width="20px" height="10px" style="background: blue"></mspace>
|
||||
<mspace width="20px" height="10px" style="background: cyan"></mspace>
|
||||
</mfrac>
|
||||
<mfrac linethickness="20px">
|
||||
<mspace width="20px" height="20px" style="background: blue"></mspace>
|
||||
<mspace width="20px" height="20px" style="background: cyan"></mspace>
|
||||
<mspace width="20px"/>
|
||||
<mfrac>
|
||||
<mspace width="20px" height="10px" style="background: blue"></mspace>
|
||||
<mspace width="20px" height="10px" style="background: cyan"></mspace>
|
||||
</mfrac>
|
||||
<mfrac linethickness="50px">
|
||||
<mspace width="20px" height="50px" style="background: blue"></mspace>
|
||||
<mspace width="20px" height="50px" style="background: cyan"></mspace>
|
||||
<mspace width="20px"/>
|
||||
<mfrac>
|
||||
<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>
|
||||
</math>
|
||||
</body>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<meta charset="utf-8">
|
||||
<title>fractions linethickness</title>
|
||||
<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">
|
||||
<style type="text/css">
|
||||
@font-face {
|
||||
|
@ -19,23 +19,26 @@
|
|||
</style>
|
||||
</head>
|
||||
<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>
|
||||
<mfrac linethickness="thin">
|
||||
<mspace width="20px" height="5px" style="background: blue"></mspace>
|
||||
<mspace width="20px" height="5px" 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 linethickness="medium">
|
||||
<mspace width="20px" height="10px" style="background: blue"></mspace>
|
||||
<mspace width="20px" height="10px" style="background: cyan"></mspace>
|
||||
</mfrac>
|
||||
<mspace width="20px"/>
|
||||
<mfrac linethickness="thick">
|
||||
<mspace width="20px" height="20px" style="background: blue"></mspace>
|
||||
<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>
|
||||
<mspace width="20px"/>
|
||||
<mfrac linethickness="5">
|
||||
<mspace width="20px" height="50px" style="background: blue"></mspace>
|
||||
<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>
|
||||
</math>
|
||||
</body>
|
||||
|
|
|
@ -3,4 +3,3 @@ suggested_reviewers:
|
|||
- anssiko
|
||||
- Honry
|
||||
- robman
|
||||
- astojilj
|
||||
|
|
|
@ -2,7 +2,5 @@ spec: https://w3c.github.io/mediacapture-main/
|
|||
suggested_reviewers:
|
||||
- agouaillard
|
||||
- alvestrand
|
||||
- dontcallmedom
|
||||
- eric-carlson
|
||||
- youennf
|
||||
- jan-ivar
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://notifications.spec.whatwg.org/
|
||||
suggested_reviewers:
|
||||
- sideshowbarker
|
||||
- ibelem
|
||||
|
|
|
@ -3,5 +3,4 @@ suggested_reviewers:
|
|||
- AmeliaBR
|
||||
- annevk
|
||||
- kenrussell
|
||||
- jdashg
|
||||
- fserb
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
spec: https://w3c.github.io/orientation-sensor/
|
||||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- riju
|
||||
- Honry
|
||||
- rakuco
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://w3c.github.io/paint-timing/
|
||||
suggested_reviewers:
|
||||
- spanicker
|
||||
- tdresser
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://w3c.github.io/payment-method-id/
|
||||
suggested_reviewers:
|
||||
- alphan102
|
||||
- marcoscaceres
|
||||
|
|
|
@ -72,6 +72,7 @@ function runManualTest(button, expected = {}) {
|
|||
city: 'Chapel Hill',
|
||||
dependentLocality: '',
|
||||
postalCode: '6095',
|
||||
region: 'QLD',
|
||||
sortingCode: '',
|
||||
organization: 'w3c',
|
||||
recipient: 'web platform test',
|
||||
|
|
|
@ -16,7 +16,14 @@ function runTest(button, options, expected){
|
|||
await response.retry({ error });
|
||||
const event = await eventPromise;
|
||||
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);
|
||||
}
|
||||
await response.complete("success");
|
||||
|
@ -52,7 +59,7 @@ function runTest(button, options, expected){
|
|||
<p>
|
||||
Change payer's phone to "+1-800-000-0000".
|
||||
</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.
|
||||
</button>
|
||||
</li>
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
spec: https://w3c.github.io/pointerevents/
|
||||
suggested_reviewers:
|
||||
- Steditor
|
||||
- jacobrossi
|
||||
- plehegar
|
||||
- scottgonzalez
|
||||
- RByers
|
||||
- NavidZ
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
spec: https://w3c.github.io/proximity/
|
||||
suggested_reviewers:
|
||||
- zqzhang
|
||||
- dontcallmedom
|
||||
- Honry
|
||||
- rakuco
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
spec: https://w3c.github.io/webappsec-referrer-policy/
|
||||
suggested_reviewers:
|
||||
- estark37
|
||||
- jeisinger
|
||||
- domfarolino
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
spec: https://w3c.github.io/resource-timing/
|
||||
suggested_reviewers:
|
||||
- haoxli
|
||||
- plehegar
|
||||
- zqzhang
|
||||
- igrigorik
|
||||
|
|
|
@ -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>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
navigated document!
|
||||
<script>
|
||||
top.postMessage("navigated", "*");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
Refreshed document!
|
||||
<script>
|
||||
top.postMessage("refreshed", "*");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
location.href="document-navigated.html";
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -0,0 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<script>
|
||||
window.onload = function() {history.back();}
|
||||
</script>
|
|
@ -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);
|
||||
}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -155,6 +155,62 @@
|
|||
|
||||
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 = {};
|
||||
UsbTransferStatus.COMPLETED = 0;
|
||||
UsbTransferStatus.TRANSFER_ERROR = UsbTransferStatus.COMPLETED + 1;
|
||||
|
@ -200,9 +256,13 @@
|
|||
|
||||
UsbEndpointInfo.prototype.initDefaults_ = function() {
|
||||
this.endpointNumber = 0;
|
||||
this.pollingInterval = 0;
|
||||
this.direction = 0;
|
||||
this.type = 0;
|
||||
this.packetSize = 0;
|
||||
this.synchronizationType = 0;
|
||||
this.usageType = 0;
|
||||
this.extraData = null;
|
||||
};
|
||||
UsbEndpointInfo.prototype.initFields_ = function(fields) {
|
||||
for(var field in fields) {
|
||||
|
@ -218,7 +278,7 @@
|
|||
return err;
|
||||
|
||||
var kVersionSizes = [
|
||||
{version: 0, numBytes: 24}
|
||||
{version: 0, numBytes: 40}
|
||||
];
|
||||
err = messageValidator.validateStructVersion(offset, kVersionSizes);
|
||||
if (err !== validator.validationError.NONE)
|
||||
|
@ -238,10 +298,29 @@
|
|||
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;
|
||||
};
|
||||
|
||||
UsbEndpointInfo.encodedSize = codec.kStructHeaderSize + 16;
|
||||
UsbEndpointInfo.encodedSize = codec.kStructHeaderSize + 32;
|
||||
|
||||
UsbEndpointInfo.decode = function(decoder) {
|
||||
var packed;
|
||||
|
@ -249,12 +328,15 @@
|
|||
var numberOfBytes = decoder.readUint32();
|
||||
var version = decoder.readUint32();
|
||||
val.endpointNumber = decoder.decodeStruct(codec.Uint8);
|
||||
decoder.skip(1);
|
||||
val.pollingInterval = decoder.decodeStruct(codec.Uint8);
|
||||
decoder.skip(1);
|
||||
decoder.skip(1);
|
||||
val.direction = decoder.decodeStruct(codec.Int32);
|
||||
val.type = decoder.decodeStruct(codec.Int32);
|
||||
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;
|
||||
};
|
||||
|
||||
|
@ -263,12 +345,15 @@
|
|||
encoder.writeUint32(UsbEndpointInfo.encodedSize);
|
||||
encoder.writeUint32(0);
|
||||
encoder.encodeStruct(codec.Uint8, val.endpointNumber);
|
||||
encoder.skip(1);
|
||||
encoder.encodeStruct(codec.Uint8, val.pollingInterval);
|
||||
encoder.skip(1);
|
||||
encoder.skip(1);
|
||||
encoder.encodeStruct(codec.Int32, val.direction);
|
||||
encoder.encodeStruct(codec.Int32, val.type);
|
||||
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) {
|
||||
this.initDefaults_();
|
||||
|
@ -283,6 +368,7 @@
|
|||
this.protocolCode = 0;
|
||||
this.interfaceName = null;
|
||||
this.endpoints = null;
|
||||
this.extraData = null;
|
||||
};
|
||||
UsbAlternateInterfaceInfo.prototype.initFields_ = function(fields) {
|
||||
for(var field in fields) {
|
||||
|
@ -298,7 +384,7 @@
|
|||
return err;
|
||||
|
||||
var kVersionSizes = [
|
||||
{version: 0, numBytes: 32}
|
||||
{version: 0, numBytes: 40}
|
||||
];
|
||||
err = messageValidator.validateStructVersion(offset, kVersionSizes);
|
||||
if (err !== validator.validationError.NONE)
|
||||
|
@ -320,10 +406,16 @@
|
|||
if (err !== validator.validationError.NONE)
|
||||
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;
|
||||
};
|
||||
|
||||
UsbAlternateInterfaceInfo.encodedSize = codec.kStructHeaderSize + 24;
|
||||
UsbAlternateInterfaceInfo.encodedSize = codec.kStructHeaderSize + 32;
|
||||
|
||||
UsbAlternateInterfaceInfo.decode = function(decoder) {
|
||||
var packed;
|
||||
|
@ -340,6 +432,7 @@
|
|||
decoder.skip(1);
|
||||
val.interfaceName = decoder.decodeStructPointer(string16$.String16);
|
||||
val.endpoints = decoder.decodeArrayPointer(new codec.PointerTo(UsbEndpointInfo));
|
||||
val.extraData = decoder.decodeArrayPointer(codec.Uint8);
|
||||
return val;
|
||||
};
|
||||
|
||||
|
@ -357,6 +450,7 @@
|
|||
encoder.skip(1);
|
||||
encoder.encodeStructPointer(string16$.String16, val.interfaceName);
|
||||
encoder.encodeArrayPointer(new codec.PointerTo(UsbEndpointInfo), val.endpoints);
|
||||
encoder.encodeArrayPointer(codec.Uint8, val.extraData);
|
||||
};
|
||||
function UsbInterfaceInfo(values) {
|
||||
this.initDefaults_();
|
||||
|
@ -439,8 +533,12 @@
|
|||
|
||||
UsbConfigurationInfo.prototype.initDefaults_ = function() {
|
||||
this.configurationValue = 0;
|
||||
this.selfPowered = false;
|
||||
this.remoteWakeup = false;
|
||||
this.maximumPower = 0;
|
||||
this.configurationName = null;
|
||||
this.interfaces = null;
|
||||
this.extraData = null;
|
||||
};
|
||||
UsbConfigurationInfo.prototype.initFields_ = function(fields) {
|
||||
for(var field in fields) {
|
||||
|
@ -456,7 +554,7 @@
|
|||
return err;
|
||||
|
||||
var kVersionSizes = [
|
||||
{version: 0, numBytes: 32}
|
||||
{version: 0, numBytes: 40}
|
||||
];
|
||||
err = messageValidator.validateStructVersion(offset, kVersionSizes);
|
||||
if (err !== validator.validationError.NONE)
|
||||
|
@ -470,15 +568,24 @@
|
|||
return err;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// validate UsbConfigurationInfo.interfaces
|
||||
err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 16, 8, new codec.PointerTo(UsbInterfaceInfo), false, [0], 0);
|
||||
if (err !== validator.validationError.NONE)
|
||||
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;
|
||||
};
|
||||
|
||||
UsbConfigurationInfo.encodedSize = codec.kStructHeaderSize + 24;
|
||||
UsbConfigurationInfo.encodedSize = codec.kStructHeaderSize + 32;
|
||||
|
||||
UsbConfigurationInfo.decode = function(decoder) {
|
||||
var packed;
|
||||
|
@ -486,8 +593,10 @@
|
|||
var numberOfBytes = decoder.readUint32();
|
||||
var version = decoder.readUint32();
|
||||
val.configurationValue = decoder.decodeStruct(codec.Uint8);
|
||||
decoder.skip(1);
|
||||
decoder.skip(1);
|
||||
packed = decoder.readUint8();
|
||||
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);
|
||||
|
@ -495,6 +604,7 @@
|
|||
decoder.skip(1);
|
||||
val.configurationName = decoder.decodeStructPointer(string16$.String16);
|
||||
val.interfaces = decoder.decodeArrayPointer(new codec.PointerTo(UsbInterfaceInfo));
|
||||
val.extraData = decoder.decodeArrayPointer(codec.Uint8);
|
||||
return val;
|
||||
};
|
||||
|
||||
|
@ -503,8 +613,11 @@
|
|||
encoder.writeUint32(UsbConfigurationInfo.encodedSize);
|
||||
encoder.writeUint32(0);
|
||||
encoder.encodeStruct(codec.Uint8, val.configurationValue);
|
||||
encoder.skip(1);
|
||||
encoder.skip(1);
|
||||
packed = 0;
|
||||
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);
|
||||
|
@ -512,6 +625,7 @@
|
|||
encoder.skip(1);
|
||||
encoder.encodeStructPointer(string16$.String16, val.configurationName);
|
||||
encoder.encodeArrayPointer(new codec.PointerTo(UsbInterfaceInfo), val.interfaces);
|
||||
encoder.encodeArrayPointer(codec.Uint8, val.extraData);
|
||||
};
|
||||
function UsbDeviceInfo(values) {
|
||||
this.initDefaults_();
|
||||
|
@ -3655,6 +3769,8 @@
|
|||
exports.UsbControlTransferType = UsbControlTransferType;
|
||||
exports.UsbControlTransferRecipient = UsbControlTransferRecipient;
|
||||
exports.UsbTransferType = UsbTransferType;
|
||||
exports.UsbSynchronizationType = UsbSynchronizationType;
|
||||
exports.UsbUsageType = UsbUsageType;
|
||||
exports.UsbTransferStatus = UsbTransferStatus;
|
||||
exports.UsbEndpointInfo = UsbEndpointInfo;
|
||||
exports.UsbAlternateInterfaceInfo = UsbAlternateInterfaceInfo;
|
||||
|
@ -3669,4 +3785,4 @@
|
|||
exports.UsbDeviceClient = UsbDeviceClient;
|
||||
exports.UsbDeviceClientPtr = UsbDeviceClientPtr;
|
||||
exports.UsbDeviceClientAssociatedPtr = UsbDeviceClientAssociatedPtr;
|
||||
})();
|
||||
})();
|
||||
|
|
|
@ -68,7 +68,11 @@ function fakeDeviceInitToDeviceInfo(guid, init) {
|
|||
var configInfo = {
|
||||
configurationValue: config.configurationValue,
|
||||
configurationName: stringToMojoString16(config.configurationName),
|
||||
interfaces: []
|
||||
selfPowered: false,
|
||||
remoteWakeup: false,
|
||||
maximumPower: 0,
|
||||
interfaces: [],
|
||||
extraData: new Uint8Array()
|
||||
};
|
||||
config.interfaces.forEach(iface => {
|
||||
var interfaceInfo = {
|
||||
|
@ -82,12 +86,17 @@ function fakeDeviceInitToDeviceInfo(guid, init) {
|
|||
subclassCode: alternate.interfaceSubclass,
|
||||
protocolCode: alternate.interfaceProtocol,
|
||||
interfaceName: stringToMojoString16(alternate.interfaceName),
|
||||
endpoints: []
|
||||
endpoints: [],
|
||||
extraData: new Uint8Array()
|
||||
};
|
||||
alternate.endpoints.forEach(endpoint => {
|
||||
var endpointInfo = {
|
||||
endpointNumber: endpoint.endpointNumber,
|
||||
packetSize: endpoint.packetSize,
|
||||
synchronizationType: device.mojom.UsbSynchronizationType.NONE,
|
||||
usageType: device.mojom.UsbUsageType.DATA,
|
||||
pollingInterval: 0,
|
||||
extraData: new Uint8Array()
|
||||
};
|
||||
switch (endpoint.direction) {
|
||||
case "in":
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
spec: https://w3c.github.io/screen-orientation/
|
||||
suggested_reviewers:
|
||||
- haoxli
|
||||
- marcoscaceres
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue