WebKit export of https://bugs.webkit.org/show_bug.cgi?id=233944 (#32029)
diff --git a/css/css-cascade/layer-statement-before-import.html b/css/css-cascade/layer-statement-before-import.html
index 5c3abe5..7d09936 100644
--- a/css/css-cascade/layer-statement-before-import.html
+++ b/css/css-cascade/layer-statement-before-import.html
@@ -159,26 +159,32 @@
const reference = document.getElementById('reference');
for (let testCase of testCases) {
- let styleElement;
- let sheet;
- if (!testCase.constructedStyleSheet) {
- styleElement = document.createElement('style');
- styleElement.textContent = testCase.style;
- document.head.append(styleElement);
- sheet = styleElement.sheet;
- } else {
- sheet = new CSSStyleSheet();
- sheet.replaceSync(testCase.style);
- document.adoptedStyleSheets = [sheet];
- }
+ promise_test(async t => {
+ let styleElement;
+ let sheet;
+ if (!testCase.constructedStyleSheet) {
+ styleElement = document.createElement('style');
+ styleElement.textContent = testCase.style;
+ await new Promise(resolve => {
+ styleElement.onload = resolve;
+ styleElement.onerror = resolve;
+ document.head.append(styleElement);
+ });
+ sheet = styleElement.sheet;
+ } else {
+ sheet = new CSSStyleSheet();
+ sheet.replaceSync(testCase.style);
+ document.adoptedStyleSheets = [sheet];
+ }
- test(() => {
- testCase.operations(sheet);
- assert_equals(getComputedStyle(target).color, getComputedStyle(reference).color);
- },testCase.title);
-
- if (styleElement)
- styleElement.remove();
- document.adoptedStyleSheets = [];
+ try {
+ testCase.operations(sheet);
+ assert_equals(getComputedStyle(target).color, getComputedStyle(reference).color);
+ } finally {
+ if (styleElement)
+ styleElement.remove();
+ document.adoptedStyleSheets = [];
+ }
+ }, testCase.title);
}
</script>