Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions css/CSS2/floats-clear/WEB_FEATURES.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
features:
- name: float-clear
files:
- 'clear-0*'
- 'clear-applies-to-*'
- 'clear-default-inheritance-001.xht'
- 'clear-initial-001.xht'
- 'float-applies-to-*'
5 changes: 5 additions & 0 deletions css/CSS2/floats/WEB_FEATURES.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
features:
- name: float-clear
files:
- 'float-root.html'
- 'inheritance.html'
9 changes: 9 additions & 0 deletions css/css-box/parsing/WEB_FEATURES.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
features:
- name: float-clear
files:
- 'clear-computed.html'
- 'clear-invalid.html'
- 'clear-valid.html'
- 'float-computed.html'
- 'float-invalid.html'
- 'float-valid.html'
23 changes: 23 additions & 0 deletions css/css-highlight-api/Highlight-invalid-static-range-crash.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!DOCTYPE html>

<body onload="boom()">
<p id="A"></p>
<p id="B"></p>
</body>

<script>
function boom() {
let highlight0 = new Highlight();

let range = new StaticRange({
endContainer: document.getElementById("A"),
startOffset: 1,
startContainer: document.getElementById("B"),
endOffset: 1,
});
CSS.highlights.set("highlight0", highlight0);

document.getElementById("A").remove();
highlight0.add(range);
}
</script>
11 changes: 11 additions & 0 deletions css/css-overflow/WEB_FEATURES.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
features:
- name: scroll-markers
files:
- column-scroll-marker*
- html-scroll-marker*
- inline-with-scroll-marker*
- nested-scroll-markers*
- root-scroll-marker*
- scroll-marker*
- target-current-scroll-marker-update.html
- targeted-column-scroll-marker*
- targeted-scroll-marker*
- name: scrollbar-buttons
files:
- root-scroll-button*
Expand Down
3 changes: 3 additions & 0 deletions css/css-overflow/parsing/WEB_FEATURES.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
features:
- name: scroll-markers
files:
- scroll-markers*
- name: scrollbar-buttons
files:
- scroll-button*
Expand Down
2 changes: 1 addition & 1 deletion tools/ci/requirements_build.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cairocffi==1.7.0
fonttools==4.51.0
genshi==0.7.7
genshi==0.7.10
jinja2==3.1.6
pyyaml==6.0.1
types-pyyaml==6.0.12.20241230
19 changes: 19 additions & 0 deletions trusted-types/script-enforcement-012.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/passthroughpolicy.js"></script>
<script src="support/script-messages.js"></script>
<link rel="help" href="https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts">
<!-- This is similar to script-enforcement-001.html, but the CSP policy to
enforce TrustedTypes is only set *after* the script source is modified. -->
<div id="container"></div>
<script>
promise_test(async t => {
await no_script_message_for(_ => {
let script = create_html_script_with_trusted_source_text(";");
script.appendChild(document.createTextNode(LOG_RUN_MESSAGE));
document.head.insertAdjacentHTML("beforeend", `<meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">`)
container.appendChild(script);
});
}, "HTML script is untrusted even if its source was set before TrustedTypes got enabled.");
</script>
22 changes: 22 additions & 0 deletions trusted-types/script-enforcement-013.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/namespaces.js"></script>
<script src="support/passthroughpolicy.js"></script>
<script src="support/script-messages.js"></script>
<link rel="help" href="https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts">
<!-- This is similar to script-enforcement-012.html, but for SVG script. -->
<svg>
<script type="unknown">;</script>
</svg>
<svg id="container"></svg>
<script>
promise_test(async t => {
await no_script_message_for(_ => {
let script = create_svg_script_with_trusted_source_text(";");
script.appendChild(document.createTextNode(LOG_RUN_MESSAGE));
document.head.insertAdjacentHTML("beforeend", `<meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">`)
container.appendChild(script);
});
}, "SVG script is untrusted even if source was set before TrustedTypes got enabled.");
</script>
22 changes: 22 additions & 0 deletions trusted-types/script-enforcement-014.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/passthroughpolicy.js"></script>
<script src="support/script-messages.js"></script>
<meta id="requireTrustedTypesForScriptMetaTag" http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script';">
<link rel="help" href="https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts">
<link rel="help" href="https://www.w3.org/TR/CSP3/#meta-element">
<!-- This is similar to script-enforcement-001.html, but the meta tag for
require-trusted-types-for is removed at the beginning of the test. Per
the CSP specification, TrustedTypes should still be enforced. -->
<div id="container"></div>
<script>
promise_test(async t => {
requireTrustedTypesForScriptMetaTag.remove();
await no_script_message_for(_ => {
let script = create_html_script_with_trusted_source_text(";");
script.appendChild(document.createTextNode(LOG_RUN_MESSAGE));
container.appendChild(script);
});
}, "HTML script is untrusted even if meta tag for require-trusted-types-for is removed.");
</script>
24 changes: 24 additions & 0 deletions trusted-types/script-enforcement-015.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/namespaces.js"></script>
<script src="support/passthroughpolicy.js"></script>
<script src="support/script-messages.js"></script>
<meta id="requireTrustedTypesForScriptMetaTag" http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script';">
<link rel="help" href="https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts">
<link rel="help" href="https://www.w3.org/TR/CSP3/#meta-element">
<!-- This is similar to script-enforcement-014.html, but for SVG script. -->
<svg>
<script type="unknown">;</script>
</svg>
<svg id="container"></svg>
<script>
promise_test(async t => {
requireTrustedTypesForScriptMetaTag.remove();
await no_script_message_for(_ => {
let script = create_svg_script_with_trusted_source_text(";");
script.appendChild(document.createTextNode(LOG_RUN_MESSAGE));
container.appendChild(script);
});
}, "SVG script is untrusted even if meta tag for require-trusted-types-for is removed.");
</script>
19 changes: 19 additions & 0 deletions trusted-types/script-enforcement-016.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/passthroughpolicy.js"></script>
<script src="support/script-messages.js"></script>
<link rel="help" href="https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts">
<!-- This is the same as script-enforcement-012.html but for modules. -->
<div id="container"></div>
<script>
promise_test(async t => {
await no_script_message_for(_ => {
let script = create_html_script_with_trusted_source_text(";");
script.setAttribute("type", "module");
script.appendChild(document.createTextNode(LOG_RUN_MESSAGE));
document.head.insertAdjacentHTML("beforeend", `<meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">`)
container.appendChild(script);
});
}, "HTML script with type=module is untrusted even if its source was set before TrustedTypes got enabled.");
</script>
23 changes: 23 additions & 0 deletions trusted-types/script-enforcement-017.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/namespaces.js"></script>
<script src="support/passthroughpolicy.js"></script>
<script src="support/script-messages.js"></script>
<link rel="help" href="https://w3c.github.io/trusted-types/dist/spec/#enforcement-in-scripts">
<!-- This is similar to script-enforcement-016.html, but for SVG script. -->
<svg>
<script type="unknown">;</script>
</svg>
<svg id="container"></svg>
<script>
promise_test(async t => {
await no_script_message_for(_ => {
let script = create_svg_script_with_trusted_source_text(";");
script.setAttribute("type", "module");
script.appendChild(document.createTextNode(LOG_RUN_MESSAGE));
document.head.insertAdjacentHTML("beforeend", `<meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">`)
container.appendChild(script);
});
}, "SVG script with type=module is untrusted even if source was set before TrustedTypes got enabled.");
</script>
38 changes: 37 additions & 1 deletion webrtc/RTCRtpTransceiver.https.html
Original file line number Diff line number Diff line change
Expand Up @@ -2267,7 +2267,43 @@
await exchangeOfferAnswer(pc1, pc2);
await waitUntilTrackEventWithTimeout(pc2.getReceivers()[0].track, 'unmute', t);
assert_false(pc2.getReceivers()[0].track.muted, `track is unmuted`);
}, `track with ${kind} gets unmuted when setting the transceiver direction to 'sendrecv ' after 'inactive'`);
}, `track with ${kind} gets unmuted when setting the transceiver direction to 'sendrecv' after 'inactive'`);

promise_test(async t => {
const pc1 = new RTCPeerConnection();
const pc2 = new RTCPeerConnection();
t.add_cleanup(() => pc1.close());
t.add_cleanup(() => pc2.close());

let stream;
if (kind === 'audio') {
stream = await navigator.mediaDevices.getUserMedia({[kind]: true});
} else {
stream = await getNoiseStream({[kind]: true});
}
t.add_cleanup(() => stream.getTracks().forEach(t => t.stop()));

pc1.addTrack(stream.getTracks()[0], stream);
pc2.ontrack = t.step_func(async e => {
assert_true(e.track.muted, `track is muted in ontrack`);
});

await exchangeIceCandidates(pc1, pc2);
await exchangeOfferAnswer(pc1, pc2);
await waitUntilTrackEventWithTimeout(pc2.getReceivers()[0].track, 'unmute', t);
assert_false(pc2.getReceivers()[0].track.muted, `track is unmuted`);
pc1.getSenders()[0].replaceTrack(null);

pc1.getTransceivers()[0].direction = 'inactive';
await exchangeOfferAnswer(pc1, pc2);
await waitUntilTrackEventWithTimeout(pc2.getReceivers()[0].track, 'mute', t);
assert_true(pc2.getReceivers()[0].track.muted, `track is muted`);

pc1.getTransceivers()[0].direction = 'sendrecv';
await exchangeOfferAnswer(pc1, pc2);
await waitUntilTrackEventWithTimeout(pc2.getReceivers()[0].track, 'unmute', t);
assert_true(pc2.getReceivers()[0].track.muted, `track remains muted`);
}, `track with ${kind} stays muted when setting the transceiver direction to 'sendrecv' after 'inactive' but no packets flow`);
});

</script>
Loading