Files
sousa-gecko/testing/web-platform/tests/html/semantics/permission-element/negative-offset.tentative.html
T
Thomas Nguyen 2caa1d3168 Bug 2016836 [wpt PR 57793] - [PEPC] Refactor HTMLPermissionElement to HTMLCapabilityElementBase, a=testonly
Automatic update from web-platform-tests
[PEPC] Refactor HTMLPermissionElement to HTMLCapabilityElementBase

This CL refactors the Page Embedded Permission Control (PEPC)
implementation in Blink.
1. Renames HTMLPermissionElement logic to HTMLCapabilityElementBase to
serve as an abstract base class.
2. Decouples HTMLGeolocationElement, HTMLUserMediaElement, and
HTMLInstallElement from generic type parsing.
3. Updates HTMLPermissionElement to inherit from
HTMLCapabilityElementBase, preserving the existing behavior for the
<permission> element as a temporary measure before deprecation.

NO_IFTTT=False positive.

Bug: 448593977
Change-Id: Ica85ccc4745e4765a3457e1a62551de5864e00d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7368050
Reviewed-by: Joey Arhar <jarhar@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1584921}

--

wpt-commits: 8783150e0968d4d7616ad8d75e444d078b8d43ff
wpt-pr: 57793
2026-02-18 09:33:29 +00:00

79 lines
2.8 KiB
HTML

<!DOCTYPE html>
<meta charset=utf-8>
<link rel="help" href="https://github.com/WICG/PEPC/blob/main/explainer.md#locking-the-pepc-style">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<!--The usermedia element should not allow setting negative outline-offset.
-->
<style>
#id1 {
outline-offset: -50px;
}
#id2 {
outline-offset: 50px;
}
/* These various expressions all result in a negative value when calculated */
#id3 {
outline-offset: min(-50px, 50px);
}
#id4 {
outline-offset: min(10%, -50px);
}
#id5 {
outline-offset: clamp(-100px, 1vw, -50px);
}
#id6 {
outline-offset: 1% - 10000px;
}
#id7 {
outline-offset: max(min(-1em, 10em), -5%);
}
</style>
<usermedia id="id1" type="camera"></usermedia>
<usermedia id="id2" type="camera"></usermedia>
<usermedia id="id3" type="microphone"></usermedia>
<usermedia id="id4" type="camera"></usermedia>
<usermedia id="id5" type="microphone"></usermedia>
<usermedia id="id6" type="microphone"></usermedia>
<usermedia id="id7" type="camera microphone"></usermedia>
<script>
test(function(){
var el_with_negatives = document.getElementById("id1");
assert_equals(getComputedStyle(el_with_negatives).outlineOffset, "0px", "outline-offset");
}, "Negative offset should be changed to 0px");
test(function(){
var el_with_positives = document.getElementById("id2");
assert_equals(getComputedStyle(el_with_positives).outlineOffset, "50px", "outline-offset");
}, "Positive offset are unaffected");
test(function(){
var el_with_negative_expr = document.getElementById("id3");
assert_equals(getComputedStyle(el_with_negative_expr).outlineOffset, "0px", "outline-offset");
}, "Expressions offset min(-50px, 50px) should return at least 0px");
test(function(){
var el_with_negative_expr = document.getElementById("id4");
assert_equals(getComputedStyle(el_with_negative_expr).outlineOffset, "0px", "outline-offset");
}, "Expressions offset outline-offset: min(10%, -50px) should return at least 0px");
test(function(){
var el_with_negative_expr = document.getElementById("id5");
assert_equals(getComputedStyle(el_with_negative_expr).outlineOffset, "0px", "outline-offset");
}, "Expressions offset clamp(-100px, 1vw, -50px) should return at least 0px");
test(function(){
var el_with_negative_expr = document.getElementById("id6");
assert_equals(getComputedStyle(el_with_negative_expr).outlineOffset, "0px", "outline-offset");
}, "Expressions offset 1% - 10000px should return at least 0px");
test(function(){
var el_with_negative_expr = document.getElementById("id7");
assert_equals(getComputedStyle(el_with_negative_expr).outlineOffset, "0px", "outline-offset");
}, "Expressions offset max(min(-1em, 10em), -5%) should return at least 0px");
</script>
</body>