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>