| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Properly escape CSS identifiers</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://crbug.com/343000522"> |
| <style id="sheet"> |
| @import 'abc' layer(\{\}); |
| @counter-style abc\{\}oops {} |
| @font-feature-values abc\{\}oops {} |
| @font-palette-values --abc\{\}oops {} |
| @keyframes abc\{\}oops {} |
| @layer abc\;oops\!; |
| </style> |
| </head> |
| <body> |
| <script> |
| test(()=>{ |
| const rules = Array.from(document.styleSheets[0].cssRules); |
| const text = rules.map(r => r.cssText).join('\n'); |
| sheet.innerText = text; |
| |
| const new_rules = Array.from(document.styleSheets[0].cssRules); |
| const new_text = new_rules.map(r => r.cssText).join('\n'); |
| assert_equals(new_text, text); |
| }, 'Rules must be the same after serialization round-trip, even with escaped characters'); |
| </script> |