Add test for universal ::selection in shadow DOM
We are doing some optimizations for universal ::selection with
HighlightInheritance enabled. Universal ::selection styles cannot
easily be shared between elements in different shadow trees. Add a test
to make sure we do not regress for those cases.
Change-Id: I4d6c82d0ed52e7955b9cc7fb597df1999f9bec6a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3613343
Reviewed-by: Delan Azabani <dazabani@igalia.com>
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#997239}
diff --git a/css/css-pseudo/selection-universal-shadow-dom.html b/css/css-pseudo/selection-universal-shadow-dom.html
new file mode 100644
index 0000000..738e799
--- /dev/null
+++ b/css/css-pseudo/selection-universal-shadow-dom.html
@@ -0,0 +1,30 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: Universal ::selection in Shadow DOM</title>
+<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-selectors">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ ::selection {
+ background-color: pink;
+ color: red;
+ }
+</style>
+<div id="host"></div>
+<script>
+ const root = host.attachShadow({mode:"open"});
+ root.innerHTML = `
+ <style>
+ ::selection {
+ background-color: green;
+ color: lime;
+ }
+ </style>
+ <div id="target"></div>
+ `;
+ test(() => {
+ const style = getComputedStyle(root.querySelector("#target"), "::selection");
+ assert_equals(style.backgroundColor, "rgb(0, 128, 0)", "Background color is green.");
+ assert_equals(style.color, "rgb(0, 255, 0)", "Color is lime.");
+ }, "getComputedStyle() for #target ::selection");
+</script>