mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 18:02:05 -05:00
LibWeb: Just ignore <script> elements that failed to load the script
We're never gonna be able to run them if we can't load them so just let it go.
This commit is contained in:
parent
84f8c91a6f
commit
17d26b92f8
3 changed files with 18 additions and 8 deletions
|
@ -190,13 +190,18 @@ void HTMLScriptElement::prepare_script(Badge<HTMLDocumentParser>)
|
|||
// FIXME: Check classic vs. module script type
|
||||
|
||||
// FIXME: This load should be made asynchronous and the parser should spin an event loop etc.
|
||||
ResourceLoader::the().load_sync(url, [this, url](auto& data, auto&) {
|
||||
ResourceLoader::the().load_sync(
|
||||
url,
|
||||
[this, url](auto& data, auto&) {
|
||||
if (data.is_null()) {
|
||||
dbg() << "HTMLScriptElement: Failed to load " << url;
|
||||
return;
|
||||
}
|
||||
m_script_source = String::copy(data);
|
||||
script_became_ready();
|
||||
},
|
||||
[this](auto&) {
|
||||
m_failed_to_load = true;
|
||||
});
|
||||
} else {
|
||||
// FIXME: Check classic vs. module script type
|
||||
|
|
|
@ -41,6 +41,7 @@ public:
|
|||
|
||||
bool is_non_blocking() const { return m_non_blocking; }
|
||||
bool is_ready_to_be_parser_executed() const { return m_ready_to_be_parser_executed; }
|
||||
bool failed_to_load() const { return m_failed_to_load; }
|
||||
|
||||
void set_parser_document(Badge<HTMLDocumentParser>, Document&);
|
||||
void set_non_blocking(Badge<HTMLDocumentParser>, bool);
|
||||
|
@ -60,6 +61,7 @@ private:
|
|||
bool m_from_an_external_file { false };
|
||||
bool m_script_ready { false };
|
||||
bool m_ready_to_be_parser_executed { false };
|
||||
bool m_failed_to_load { false };
|
||||
|
||||
Function<void()> m_script_ready_callback;
|
||||
|
||||
|
|
|
@ -1476,6 +1476,9 @@ void HTMLDocumentParser::handle_text(HTMLToken& token)
|
|||
// that is blocking scripts and the script's "ready to be parser-executed"
|
||||
// flag is set.
|
||||
|
||||
if (the_script->failed_to_load())
|
||||
return;
|
||||
|
||||
ASSERT(the_script->is_ready_to_be_parser_executed());
|
||||
|
||||
if (m_aborted)
|
||||
|
|
Loading…
Add table
Reference in a new issue