|  | <!doctype html> | 
|  | <title>CSS Test: @keyframes applies to :host::before/::after.</title> | 
|  | <script src="/resources/testharness.js"></script> | 
|  | <script src="/resources/testharnessreport.js"></script> | 
|  | <link rel="help" href="https://drafts.csswg.org/css-scoping/#shadow-names"> | 
|  | <div id="host"></div> | 
|  | <script> | 
|  | test(function() { | 
|  | host.attachShadow({ mode: "open" }).innerHTML = ` | 
|  | <style> | 
|  | @keyframes myanim { | 
|  | from { background: red; } | 
|  | to { background: green; } | 
|  | } | 
|  | :host::before, :host::after { | 
|  | content: ""; | 
|  | display: block; | 
|  | width: 100px; | 
|  | height: 100px; | 
|  | background: blue; | 
|  | animation: myanim 10s infinite step-end; | 
|  | } | 
|  | </style> | 
|  | `; | 
|  |  | 
|  | assert_equals(getComputedStyle(document.getElementById('host'), "::before").backgroundColor, "rgb(255, 0, 0)"); | 
|  | assert_equals(getComputedStyle(document.getElementById('host'), "::after").backgroundColor, "rgb(255, 0, 0)"); | 
|  | }, "@keyframes applies to the shadow host"); | 
|  | </script> |