diff --git a/moli-benchmark/wpt-cross-current/failed-cases.txt b/moli-benchmark/wpt-cross-current/failed-cases.txt index 6db2a49e37..e85a36832e 100644 --- a/moli-benchmark/wpt-cross-current/failed-cases.txt +++ b/moli-benchmark/wpt-cross-current/failed-cases.txt @@ -2973,7 +2973,6 @@ html/semantics/scripting-1/the-script-element/moving-between-documents/ordering/ html/semantics/scripting-1/the-script-element/moving-between-documents/ordering/delay-load-event-2.html html/semantics/scripting-1/the-script-element/moving-between-documents/ordering/in-order.html html/semantics/scripting-1/the-script-element/moving-between-documents/ordering/parser-blocking.html -html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html html/semantics/scripting-1/the-script-element/text-module/cors-crossorigin-requests.html html/semantics/scripting-1/the-script-element/text-module/integrity.html html/semantics/scripting-1/the-script-element/text-module/module.html diff --git a/moli-benchmark/wpt-cross-current/passed-cases.txt b/moli-benchmark/wpt-cross-current/passed-cases.txt index 17b89ab5df..f55b0bff72 100644 --- a/moli-benchmark/wpt-cross-current/passed-cases.txt +++ b/moli-benchmark/wpt-cross-current/passed-cases.txt @@ -6576,6 +6576,7 @@ html/semantics/scripting-1/the-script-element/script-crossorigin.html html/semantics/scripting-1/the-script-element/script-defer.html html/semantics/scripting-1/the-script-element/script-for-event.html html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown.html +html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html html/semantics/scripting-1/the-script-element/script-onload-string.html diff --git a/moli-core/tests/scripts.rs b/moli-core/tests/scripts.rs index d1921a731f..9ca4076dff 100644 --- a/moli-core/tests/scripts.rs +++ b/moli-core/tests/scripts.rs @@ -19,6 +19,9 @@ mod child_synthetic_modules; #[path = "scripts/preparation_errors.rs"] mod preparation_errors; +#[path = "scripts/child_error_insertion.rs"] +mod child_error_insertion; + fn diagnostic_global<'a>( page: &'a moli_core::page::Page, name: &str, diff --git a/moli-core/tests/scripts/child_error_insertion.rs b/moli-core/tests/scripts/child_error_insertion.rs new file mode 100644 index 0000000000..a089a056a3 --- /dev/null +++ b/moli-core/tests/scripts/child_error_insertion.rs @@ -0,0 +1,75 @@ +use super::*; + +async fn child_script_error_write_probe( + nested: bool, + unknown_scheme: bool, +) -> Result { + let server = FixtureServer::spawn().await?; + let browser = Browser::new(AppConfig::default())?; + let mut page = browser.fetch(&server.url("/static")).await?; + let source = if unknown_scheme { + "no-such-script-scheme:missing".to_owned() + } else { + server.url("/missing-child-parser-script.js") + }; + let expression = r#"new Promise(resolve => { + let during = null; + globalThis.childErrorObserved = value => { during = value; }; + const frame = document.createElement('iframe'); + frame.onload = () => resolve(JSON.stringify({ + during, after: frame.contentDocument.body.textContent, + nestedRan: frame.contentWindow.nestedRan === true + })); + const written = NESTED + ? '