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.]
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]
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]
expected: TIMEOUT
expected: CRASH
[cross-origin <frame name=>]
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]
expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,3 +1,3 @@
spec: https://drafts.csswg.org/css-position/
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>', '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)');

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -5,5 +5,4 @@ suggested_reviewers:
- frivoal
- r12a
- nox
- hakatashi
- 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;
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>

View file

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

View file

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

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
- plinss
- dirkschulze
- hober
- grorg

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,3 @@
spec: https://w3c.github.io/html-media-capture/
suggested_reviewers:
- haoxli
- 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>
</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");

View file

@ -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");

View file

@ -3,5 +3,4 @@ suggested_reviewers:
- AmeliaBR
- annevk
- kenrussell
- jdashg
- 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: *.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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,5 @@
spec: https://w3c.github.io/resource-timing/
suggested_reviewers:
- haoxli
- plehegar
- zqzhang
- 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;
};
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;
})();
})();

View file

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

View file

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