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
79 lines
2.8 KiB
HTML
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> |