LadybirdBrowser / ladybird

Truly independent web browser
https://ladybird.org
BSD 2-Clause "Simplified" License
21.98k stars 975 forks source link

WebContent process crashed after go back from github.com to 'about:newtab' #2242

Open gmuller-dev opened 1 week ago

gmuller-dev commented 1 week ago

Summary

When i visited github.com javascript error started to be logged in the terminal i then clicked on the back button that would have send me to about:newtab. Ladybird tab then froze it was not possible navigate anywhere from that tab. From another website like ladybird.org I have the message in the "Failed to load about:newtab".

Operating system

macOS

Steps to reproduce

1.Launch ladybird 2.Go to github.com 3.Press the back button

Expected behavior

the page should be navigated to about:newtab

Actual behavior

Ladybird froze

URL for a reduced test case

N/A

HTML/SVG/etc. source for a reduced test case

N/A

Log output and (if possible) backtrace

877142.976 WebContent(95240): (js error) [Error] Error creating WebGL context.
877142.976 WebContent(95240): (js error) [Error] Error creating WebGL context.
877142.976 WebContent(95240): (js error) [Error] Error creating WebGL context.
877142.976 WebContent(95240): (js error) [Error] Error creating WebGL context.
877142.976 WebContent(95240): (js error) [Error] Error creating WebGL context.
877142.980 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877142.980 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877142.980 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877142.980 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877142.981 WebContent(95240): (js error) "THREE.WebGLRenderer: Error creating WebGL context."
877143.577 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.578 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.578 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.578 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.578 WebContent(95240): (js error) "THREE.WebGLRenderer: Error creating WebGL context."
877143.583 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.583 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.584 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.584 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.584 WebContent(95240): (js error) "THREE.WebGLRenderer: Error creating WebGL context."
877143.589 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.589 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.589 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.589 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.589 WebContent(95240): (js error) "THREE.WebGLRenderer: Error creating WebGL context."
877143.594 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.594 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.594 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.594 WebContent(95240): (js error) "THREE.WebGLRenderer: A WebGL context could not be created. Reason: " ""
877143.594 WebContent(95240): (js error) "THREE.WebGLRenderer: Error creating WebGL context."
877144.253 WebContent(95240): Unhandled JavaScript exception: [Error] Error creating WebGL context.
877144.253 WebContent(95240):     at Error
    at rR (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:109582)
    at WebGL1Renderer (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:131014)
    at init (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:7559)
    at Artwork (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:7077)
    at https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:11720
    at oD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:84059)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113104)
    at https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111490
    at uD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111554)
    at uC (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:96187)
    at r4 (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:44821)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113242)
    at uw (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:93815)
    at x (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1365)
    at R (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1895)
    at <unknown>
    at <unknown>
    at <unknown>

877144.253 WebContent(95240): Unhandled JavaScript exception: [Error] Error creating WebGL context.
877144.254 WebContent(95240):     at Error
    at rR (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:109582)
    at WebGL1Renderer (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:131014)
    at init (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:51527)
    at Artwork (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:10402)
    at https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:11614
    at oD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:84059)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113104)
    at https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111490
    at uD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111554)
    at uC (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:96187)
    at r4 (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:44821)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113242)
    at uw (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:93815)
    at x (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1365)
    at R (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1895)
    at <unknown>
    at <unknown>
    at <unknown>

877144.254 WebContent(95240): Unhandled JavaScript exception: [Error] Error creating WebGL context.
877144.254 WebContent(95240):     at Error
    at rR (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:109582)
    at WebGL1Renderer (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:131014)
    at init (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:51527)
    at Artwork (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:10402)
    at https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:11614
    at oD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:84059)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113104)
    at https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111490
    at uD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111554)
    at uC (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:96187)
    at r4 (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:44821)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113242)
    at uw (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:93815)
    at x (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1365)
    at R (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1895)
    at <unknown>
    at <unknown>
    at <unknown>

877144.254 WebContent(95240): Unhandled JavaScript exception: [Error] Error creating WebGL context.
877144.254 WebContent(95240):     at Error
    at rR (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:109582)
    at WebGL1Renderer (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:131014)
    at init (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:51527)
    at Artwork (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:10402)
    at https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:11614
    at oD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:84059)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113104)
    at https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111490
    at uD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111554)
    at uC (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:96187)
    at r4 (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:44821)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113242)
    at uw (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:93815)
    at x (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1365)
    at R (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1895)
    at <unknown>
    at <unknown>
    at <unknown>

877144.254 WebContent(95240): Unhandled JavaScript exception: [Error] Error creating WebGL context.
877144.254 WebContent(95240):     at Error
    at rR (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:109582)
    at WebGL1Renderer (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:131014)
    at init (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:51527)
    at Artwork (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:10402)
    at https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:11614
    at oD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:84059)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113104)
    at https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111490
    at uD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:111554)
    at uC (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:96187)
    at r4 (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:44821)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113242)
    at uw (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:93815)
    at x (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1365)
    at R (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1895)
    at <unknown>
    at <unknown>
    at <unknown>

877144.255 WebContent(95240): MixedContent: Blocked 'about:newtab' (request)
VERIFICATION FAILED: may_defer || !called_from_inside_function at /Users/gmuller/Development/perso/ladybird/AK/Function.h:230
0   liblagom-ak.0.0.0.dylib             0x0000000100ce1418 ak_verification_failed + 216
1   liblagom-ipc.0.0.0.dylib            0x00000001007319a4 Core::LocalSocket::~LocalSocket() + 196
2   liblagom-ipc.0.0.0.dylib            0x0000000100730e40 IPC::TransportSocket::~TransportSocket() + 32
3   liblagom-web.0.0.0.dylib            0x000000010236e00c Web::HTML::MessagePort::disentangle() + 84
4   liblagom-web.0.0.0.dylib            0x0000000102069194 AK::Function<void (AK::Span<unsigned char>)>::operator()(AK::Span<unsigned char>) const + 76
5   liblagom-web.0.0.0.dylib            0x000000010236e120 Web::HTML::MessagePort::for_each_message_port(AK::Function<void (Web::HTML::MessagePort&)>) + 116
6   liblagom-web.0.0.0.dylib            0x00000001021f9418 Web::DOM::Document::destroy() + 200
7   liblagom-web.0.0.0.dylib            0x0000000102204c34 AK::Function<void ()>::CallableWrapper<Web::DOM::Document::destroy_a_document_and_its_descendants(JS::GCPtr<JS::HeapFunction<void ()>>)::$_2>::call() + 24
8   liblagom-web.0.0.0.dylib            0x0000000102069194 AK::Function<void (AK::Span<unsigned char>)>::operator()(AK::Span<unsigned char>) const + 76
9   liblagom-web.0.0.0.dylib            0x00000001022e71bc AK::Function<bool ()>::CallableWrapper<Web::HTML::EventLoop::spin_processing_tasks_with_source_until(Web::HTML::Task::Source, JS::NonnullGCPtr<JS::HeapFunction<bool ()>>)::$_0>::call() + 280
10  liblagom-web.0.0.0.dylib            0x00000001020d0b68 AK::Function<JS::Value (Web::Bindings::KeyUsage const&)>::operator()(Web::Bindings::KeyUsage const&) const + 80
11  liblagom-core.0.0.0.dylib           0x0000000100a27fe4 AK::Function<bool (Core::Event&)>::operator()(Core::Event&) const + 80
12  liblagom-core.0.0.0.dylib           0x0000000100a27e8c Core::EventLoop::spin_until(AK::Function<bool ()>) + 88
13  liblagom-web.0.0.0.dylib            0x00000001024e402c Web::Platform::EventLoopPluginSerenity::spin_until(JS::Handle<JS::HeapFunction<bool ()>>) + 116
14  liblagom-web.0.0.0.dylib            0x00000001022e5a40 Web::HTML::EventLoop::spin_processing_tasks_with_source_until(Web::HTML::Task::Source, JS::NonnullGCPtr<JS::HeapFunction<bool ()>>) + 364
15  liblagom-web.0.0.0.dylib            0x00000001023efef0 Web::HTML::TraversableNavigable::apply_the_history_step(int, bool, AK::Optional<Web::HTML::SourceSnapshotParams>, JS::GCPtr<Web::HTML::Navigable>, AK::Optional<Web::HTML::UserNavigationInvolvement>, AK::Optional<Web::Bindings::NavigationType>, Web::HTML::TraversableNavigable::SynchronousNavigation) + 2604
16  liblagom-web.0.0.0.dylib            0x00000001023f2068 Web::HTML::TraversableNavigable::apply_the_traverse_history_step(int, AK::Optional<Web::HTML::SourceSnapshotParams>, JS::GCPtr<Web::HTML::Navigable>, Web::HTML::UserNavigationInvolvement) + 228
17  liblagom-web.0.0.0.dylib            0x00000001023f6a1c AK::Function<void ()>::CallableWrapper<Web::HTML::TraversableNavigable::traverse_the_history_by_delta(int, AK::Optional<Web::DOM::Document&>)::$_0>::call() + 256
18  liblagom-web.0.0.0.dylib            0x0000000102069194 AK::Function<void (AK::Span<unsigned char>)>::operator()(AK::Span<unsigned char>) const + 76
19  liblagom-web.0.0.0.dylib            0x00000001023d3224 AK::Function<void ()>::CallableWrapper<Web::HTML::SessionHistoryTraversalQueue::SessionHistoryTraversalQueue()::$_0>::call() + 80
20  liblagom-core.0.0.0.dylib           0x0000000100a2a5d4 AK::Function<void ()>::operator()() const + 76
21  liblagom-core.0.0.0.dylib           0x0000000100a2f69c Core::EventReceiver::dispatch_event(Core::Event&, Core::EventReceiver*) + 112
22  liblagom-core.0.0.0.dylib           0x0000000100a3e188 Core::ThreadEventQueue::process() + 452
23  liblagom-core.0.0.0.dylib           0x0000000100a27ea8 Core::EventLoop::spin_until(AK::Function<bool ()>) + 116
24  liblagom-web.0.0.0.dylib            0x00000001024e402c Web::Platform::EventLoopPluginSerenity::spin_until(JS::Handle<JS::HeapFunction<bool ()>>) + 116
25  liblagom-web.0.0.0.dylib            0x00000001022e5700 Web::HTML::EventLoop::spin_until(JS::NonnullGCPtr<JS::HeapFunction<bool ()>>) + 348
26  liblagom-web.0.0.0.dylib            0x000000010233aaf4 _ZZN3Web4HTML16HTMLMediaElement15select_resourceEvENK3$_1clIN2AK6StringEEEDaT_ + 444
27  liblagom-web.0.0.0.dylib            0x0000000102339704 Web::HTML::HTMLMediaElement::select_resource() + 600
28  liblagom-web.0.0.0.dylib            0x00000001023379bc Web::HTML::HTMLMediaElement::load_element() + 1096
29  liblagom-web.0.0.0.dylib            0x00000001023374ac Web::HTML::HTMLMediaElement::attribute_changed(AK::FlyString const&, AK::Optional<AK::String> const&, AK::Optional<AK::String> const&) + 88
30  liblagom-web.0.0.0.dylib            0x0000000102362bf0 Web::HTML::HTMLVideoElement::attribute_changed(AK::FlyString const&, AK::Optional<AK::String> const&, AK::Optional<AK::String> const&) + 52
31  liblagom-web.0.0.0.dylib            0x0000000102212a7c Web::DOM::Element::run_attribute_change_steps(AK::FlyString const&, AK::Optional<AK::String> const&, AK::Optional<AK::String> const&, AK::Optional<AK::FlyString> const&) + 72
32  liblagom-web.0.0.0.dylib            0x00000001021e4cd8 Web::DOM::Attr::handle_attribute_changes(Web::DOM::Element&, AK::Optional<AK::String> const&, AK::Optional<AK::String> const&) + 1508
33  liblagom-web.0.0.0.dylib            0x000000010223d4e0 Web::DOM::NamedNodeMap::append_attribute(Web::DOM::Attr&) + 124
34  liblagom-web.0.0.0.dylib            0x000000010221144c Web::DOM::Element::set_attribute(AK::FlyString const&, AK::String const&) + 428
35  liblagom-web.0.0.0.dylib            0x00000001027076d8 Web::Bindings::ElementPrototype::set_attribute(JS::VM&) + 592
36  liblagom-js.0.0.0.dylib             0x0000000100f6ab68 AK::Function<JS::ThrowCompletionOr<void> (JS::Declaration const&)>::operator()(JS::Declaration const&) const + 80
37  liblagom-js.0.0.0.dylib             0x000000010111be0c JS::NativeFunction::internal_call(JS::Value, AK::Span<JS::Value const>) + 400
38  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
39  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
40  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
41  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
42  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
43  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
44  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
45  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
46  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
47  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
48  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
49  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
50  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
51  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
52  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
53  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
54  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
55  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
56  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
57  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
58  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
59  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
60  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
61  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
62  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
63  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
64  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
65  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
66  liblagom-js.0.0.0.dylib             0x0000000101044bc4 JS::call_impl(JS::VM&, JS::Value, JS::Value, AK::Span<JS::Value const>) + 100
67  liblagom-js.0.0.0.dylib             0x0000000101086b94 JS::BoundFunction::internal_call(JS::Value, AK::Span<JS::Value const>) + 232
68  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
69  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
70  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
71  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
72  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
73  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
74  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
75  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
76  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
77  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
78  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
79  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
80  liblagom-js.0.0.0.dylib             0x0000000101044bc4 JS::call_impl(JS::VM&, JS::Value, JS::Value, AK::Span<JS::Value const>) + 100
81  liblagom-js.0.0.0.dylib             0x0000000101086b94 JS::BoundFunction::internal_call(JS::Value, AK::Span<JS::Value const>) + 232
82  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
83  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
84  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
85  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
86  liblagom-js.0.0.0.dylib             0x0000000100fb3eb4 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8512
87  liblagom-js.0.0.0.dylib             0x0000000100fb1a34 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 420
88  liblagom-js.0.0.0.dylib             0x00000001010a59e0 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 432
89  liblagom-js.0.0.0.dylib             0x00000001010a52c0 JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 448
90  liblagom-web.0.0.0.dylib            0x000000010257eb88 Web::WebIDL::invoke_callback(Web::WebIDL::CallbackType&, AK::Optional<JS::Value>, JS::MarkedVector<JS::Value, 0ul>) + 220
91  liblagom-web.0.0.0.dylib            0x0000000102236dc0 JS::Completion Web::WebIDL::invoke_callback<JS::GCPtr<Web::FileAPI::Blob>>(Web::WebIDL::CallbackType&, AK::Optional<JS::Value>, JS::GCPtr<Web::FileAPI::Blob>&&) + 340
92  liblagom-web.0.0.0.dylib            0x000000010223667c Web::DOM::EventTarget::process_event_handler_for_event(AK::FlyString const&, Web::DOM::Event&) + 532
93  liblagom-web.0.0.0.dylib            0x0000000102238594 AK::Function<JS::ThrowCompletionOr<JS::Value> (JS::VM&)>::CallableWrapper<Web::DOM::EventTarget::activate_event_handler(AK::FlyString const&, Web::HTML::EventHandler&)::$_0>::call(JS::VM&) + 120
94  liblagom-js.0.0.0.dylib             0x0000000100f6ab68 AK::Function<JS::ThrowCompletionOr<void> (JS::Declaration const&)>::operator()(JS::Declaration const&) const + 80
95  liblagom-js.0.0.0.dylib             0x000000010111be0c JS::NativeFunction::internal_call(JS::Value, AK::Span<JS::Value const>) + 400
96  liblagom-web.0.0.0.dylib            0x000000010257e784 Web::WebIDL::call_user_object_operation(Web::WebIDL::CallbackType&, AK::String const&, AK::Optional<JS::Value>, JS::MarkedVector<JS::Value, 0ul>) + 248
97  liblagom-web.0.0.0.dylib            0x000000010223383c JS::Completion Web::WebIDL::call_user_object_operation<Web::DOM::Node*>(Web::WebIDL::CallbackType&, AK::String const&, AK::Optional<JS::Value>, Web::DOM::Node*&&) + 356
98  liblagom-web.0.0.0.dylib            0x0000000102233600 Web::DOM::EventDispatcher::inner_invoke(Web::DOM::Event&, AK::Vector<JS::Handle<Web::DOM::DOMEventListener>, 0ul>&, Web::DOM::Event::Phase, bool) + 504
99  liblagom-web.0.0.0.dylib            0x000000010223397c Web::DOM::EventDispatcher::invoke(Web::DOM::Event::PathEntry&, Web::DOM::Event&, Web::DOM::Event::Phase) + 184
100 liblagom-web.0.0.0.dylib            0x00000001022342c0 Web::DOM::EventDispatcher::dispatch(JS::NonnullGCPtr<Web::DOM::EventTarget>, Web::DOM::Event&, bool) + 1976
101 liblagom-web.0.0.0.dylib            0x000000010236fc20 Web::HTML::MessagePort::post_message_task_steps(Web::HTML::SerializedTransferRecord&) + 596
102 liblagom-web.0.0.0.dylib            0x000000010236f930 Web::HTML::MessagePort::parse_message() + 416
103 liblagom-web.0.0.0.dylib            0x000000010236ff50 Web::HTML::MessagePort::read_from_transport() + 352
104 liblagom-core.0.0.0.dylib           0x0000000100a2a5d4 AK::Function<void ()>::operator()() const + 76
105 liblagom-core.0.0.0.dylib           0x0000000100a2a5d4 AK::Function<void ()>::operator()() const + 76
106 liblagom-core.0.0.0.dylib           0x0000000100a2f69c Core::EventReceiver::dispatch_event(Core::Event&, Core::EventReceiver*) + 112
107 liblagom-core.0.0.0.dylib           0x0000000100a3e188 Core::ThreadEventQueue::process() + 452
108 liblagom-core.0.0.0.dylib           0x0000000100a27ea8 Core::EventLoop::spin_until(AK::Function<bool ()>) + 116
109 liblagom-web.0.0.0.dylib            0x00000001024e402c Web::Platform::EventLoopPluginSerenity::spin_until(JS::Handle<JS::HeapFunction<bool ()>>) + 116
110 liblagom-web.0.0.0.dylib            0x00000001022e5700 Web::HTML::EventLoop::spin_until(JS::NonnullGCPtr<JS::HeapFunction<bool ()>>) + 348
111 liblagom-web.0.0.0.dylib            0x0000000102391524 Web::HTML::HTMLParser::the_end(JS::NonnullGCPtr<Web::DOM::Document>, JS::GCPtr<Web::HTML::HTMLParser>) + 804
112 liblagom-web.0.0.0.dylib            0x0000000102391180 Web::HTML::HTMLParser::run(URL::URL const&, Web::HTML::HTMLTokenizer::StopAtInsertionPoint) + 240
113 liblagom-web.0.0.0.dylib            0x000000010220c8b8 AK::Function<void ()>::CallableWrapper<Web::load_html_document(Web::HTML::NavigationParams const&)::$_0::operator()(AK::Detail::ByteBuffer<32ul>) const::'lambda'()>::call() + 128
114 liblagom-web.0.0.0.dylib            0x0000000102069194 AK::Function<void (AK::Span<unsigned char>)>::operator()(AK::Span<unsigned char>) const + 76
115 liblagom-core.0.0.0.dylib           0x0000000100a2a5d4 AK::Function<void ()>::operator()() const + 76
116 liblagom-core.0.0.0.dylib           0x0000000100a3e13c Core::ThreadEventQueue::process() + 376
117 liblagom-core.0.0.0.dylib           0x0000000100a294f8 Core::EventLoopImplementationUnix::exec() + 44
118 liblagom-core.0.0.0.dylib           0x0000000100a27d48 Core::EventLoop::exec() + 72
119 WebContent                          0x00000001004da550 serenity_main(Main::Arguments) + 4064
120 WebContent                          0x0000000100576434 main + 216
121 dyld                                0x000000019cd04274 start + 2840
877144.274 Ladybird(95234): WebContent process crashed!
877144.274 Ladybird(95234): Consider raising an issue at https://github.com/LadybirdBrowser/ladybird/issues/new/choose
877154.394 WebContent(95642): ImageDecoderClient: Failed to decode image with ID 0: Decoding failed: Could not find suitable image decoder plugin for data
877154.531 WebContent(95642): HTMLScriptElement: Refusing to run classic script because it has the nomodule attribute.
877154.556 WebContent(95642): ResourceLoader: Filtered request to: "https://www.everestjs.net/static/le/last-event-tag-latest.min.js"
877154.911 WebContent(95642): Potential FIXME: Removing unsupported PerformanceEntry type 'paint' from list of observed types in PerformanceObserver::observe()
877154.911 WebContent(95642): Potential FIXME: Returning from PerformanceObserver::observe() as we don't support any of the specified types (or none was specified).
877154.911 WebContent(95642): Potential FIXME: Removing unsupported PerformanceEntry type 'largest-contentful-paint' from list of observed types in PerformanceObserver::observe()
877154.911 WebContent(95642): Potential FIXME: Returning from PerformanceObserver::observe() as we don't support any of the specified types (or none was specified).
877154.911 WebContent(95642): Potential FIXME: Returning from PerformanceObserver::observe() as we don't support the PerformanceEntry type 'layout-shift'
877154.913 WebContent(95642): Potential FIXME: Removing unsupported PerformanceEntry type 'resource' from list of observed types in PerformanceObserver::observe()
877154.913 WebContent(95642): Potential FIXME: Returning from PerformanceObserver::observe() as we don't support any of the specified types (or none was specified).
877154.915 WebContent(95642): HTMLScriptElement: Refusing to run script because the element's result is null.
877155.406 WebContent(95642): (js log) "DATA_LAYER_PUSH" Object{ "webProperty": "penguin.co.uk", "eventInfo": Object{}, "currencyOfwebsite": "gbp", "servers": "smetrics.penguin.co.uk", "page": Object{ "pageInfo": Object{ "pageName": "penguinuk:ladybird", "pageType": "static-page", "pageURL": "https://www.penguin.co.uk/ladybird/", "sysEnv": "desktop", "userAgent": "Mozilla/5.0 (macOS; AArch64) Ladybird/1.0", "language": "en-US", "referringURL": "https://www.google.com/", "previousPage": "", "breadcrumbs": "Home > Ladybird" } }, "category": Object{ "categoryInfo": Object{ "siteSection": "brands" } }, "event": "pageload" }
877155.747 WebContent(95642): FIXME: Stubbed ScreenOrientation::type()
877155.748 WebContent(95642): FIXME: Stubbed ScreenOrientation::type()
877155.751 WebContent(95642): ResourceLoader: Filtered request to: "https://static.ads-twitter.com/uwt.js"
877155.753 WebContent(95642): HTMLScriptElement: Refusing to run script because the element's result is null.
877156.275 WebContent(95642): (js log) "DATA_LAYER_PUSH" Object{ "webProperty": "penguin.co.uk", "eventInfo": Object{}, "currencyOfwebsite": "gbp", "servers": "smetrics.penguin.co.uk", "page": Object{ "pageInfo": Object{ "pageName": "penguinuk:ladybird", "pageType": "static-page", "pageURL": "https://www.penguin.co.uk/ladybird/", "sysEnv": "desktop", "userAgent": "Mozilla/5.0 (macOS; AArch64) Ladybird/1.0", "language": "en-US", "referringURL": "https://www.google.com/", "previousPage": "", "breadcrumbs": "Home > Ladybird" } }, "category": Object{ "categoryInfo": Object{ "siteSection": "brands" } }, "event": "interaction", "privacy": Object{ "cookieConsent": Object{ "performance": "no", "functional": "no", "targeting": "no" } } }
877166.162 WebContent(95642): (js log) "functional-no:performance-no:targeting-no"
877166.225 WebContent(95642): (js log) "functional-no:performance-no:targeting-no"
877166.259 WebContent(95642): (js log) "functional-no:performance-no:targeting-no"
877166.278 WebContent(95642): FIXME: Stubbed ScreenOrientation::type()
877166.278 WebContent(95642): FIXME: Stubbed ScreenOrientation::type()
877166.281 WebContent(95642): ResourceLoader: Filtered request to: "https://www.everestjs.net/static/le/last-event-tag-latest.min.js"
877166.281 WebContent(95642): ResourceLoader: Filtered request to: "https://www.everestjs.net/static/le/last-event-tag-latest.min.js"
877166.281 WebContent(95642): HTMLScriptElement: Refusing to run script because the element's result is null.
877166.281 WebContent(95642): HTMLScriptElement: Refusing to run script because the element's result is null.
877176.301 WebContent(95642): (js log) ":::::::::"
877176.307 WebContent(95642): (js log) ":::::::::"
877176.311 WebContent(95642): (js log) undefined
877176.312 WebContent(95642): (js log) undefined
877176.313 WebContent(95642): (js log) undefined
877176.315 WebContent(95642): (js log) undefined

Screenshots or screen recordings

image image

Build flags or config settings

using default build instruction without brew clang or qt

Contribute a patch?

ADKaster commented 1 week ago

Confirmed. Also breaks on linux with Qt chrome.

Log from a debug build:

1492607.319 WebContent(2828125): Unhandled JavaScript exception: [Error] Error creating WebGL context.
1492607.319 WebContent(2828125):     at Error
    at rR (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:109582)
    at WebGL1Renderer (https://github.githubassets.com/assets/vendors-node_modules_three_build_three_module_js-5d880871cb6c.js:186:131014)
    at init (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:606:51527)
    at Artwork (https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:10402)
    at https://github.githubassets.com/assets/landing-pages-b5a5e2626460.js:1107:11614
    at oD (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:84059)
    at uO (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:113104)
    at uw (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:25:93815)
    at x (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1365)
    at R (https://github.githubassets.com/assets/react-lib-7b7b5264f6c1.js:33:1895)
    at <unknown>
    at <unknown>
    at <unknown>

1492607.750 WebContent(2828125): MixedContent: Blocked 'about:newtab' (request)
VERIFICATION FAILED: may_defer || !called_from_inside_function at /home/andrew/ladybird-org/ladybird-browser/AK/Function.h:230
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-ak.so.0(ak_verification_failed+0x8a) [0x7aa7876dde13]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-core.so.0(+0x33bc2) [0x7aa7877c6bc2]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-core.so.0 Core::Notifier::~Notifier() 0x2e) [0x7aa7877d5c74]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-core.so.0 Core::Notifier::~Notifier() 0xd) [0x7aa7877d5c8b]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-ipc.so.0(+0x137e7) [0x7aa7897ef7e7]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-ipc.so.0(+0x1ee37) [0x7aa7897fae37]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-ipc.so.0(+0x1ee71) [0x7aa7897fae71]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-ipc.so.0 IPC::TransportSocket::~TransportSocket() 0x1f) [0x7aa7897fa1bf]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-web.so.0 Web::HTML::MessagePort::disentangle() 0x5a) [0x7aa788d01a1a]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-web.so.0(+0xb5b420) [0x7aa788b5b420]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-web.so.0(+0xb5b433) [0x7aa788b5b433]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-web.so.0(+0xd048be) [0x7aa788d048be]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-web.so.0 Web::HTML::MessagePort::for_each_message_port(AK::Function<void (Web::HTML::MessagePort&)>) 0x4c) [0x7aa788d01b1a]
/home/andrew/ladybird-org/ladybird-browser/Build/debug/lib/liblagom-web.so.0 Web::DOM::Document::destroy() 0x6c) [0x7aa788b682a0]

full gdb backtrace:

https://gist.github.com/ADKaster/a9bae8b9ebcb038e2d2ff94358af00e8

It looks like we are destroying a document and a message port it owns in a way that is not kosher.

At the very bottom of the event loop stack, we start the whole thing off by receiving a message from a message port (presumably a worker, or iframe?)

#199 0x00007aa788baf3b8 in Web::WebIDL::call_user_object_operation<Web::DOM::Event*&> (callback=..., operation_name=..., this_argument=...) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibWeb/WebIDL/AbstractOperations.h:33
#200 0x00007aa788bae472 in Web::DOM::EventDispatcher::inner_invoke (event=..., listeners=..., phase=Web::DOM::Event::BubblingPhase, invocation_target_in_shadow_tree=false) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibWeb/DOM/EventDispatcher.cpp:91
#201 0x00007aa788bae678 in Web::DOM::EventDispatcher::invoke (struct_=..., event=..., phase=<optimized out>) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibWeb/DOM/EventDispatcher.cpp:155
#202 0x00007aa788baf02f in Web::DOM::EventDispatcher::dispatch (target=..., target@entry=..., event=..., legacy_target_override=legacy_target_override@entry=false) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibWeb/DOM/EventDispatcher.cpp:372
#203 0x00007aa788bafb6a in Web::DOM::EventTarget::dispatch_event (this=this@entry=0x7aa759d2d040, event=...) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibJS/Heap/GCPtr.h:22
#204 0x00007aa788d02de5 in Web::HTML::MessagePort::post_message_task_steps (this=<optimized out>, serialize_with_transfer_result=...) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibJS/Heap/GCPtr.h:71
#205 0x00007aa788d034aa in Web::HTML::MessagePort::parse_message (this=0x7aa759d2d040) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibWeb/HTML/MessagePort.cpp:327
#206 0x00007aa788d03d96 in Web::HTML::MessagePort::read_from_transport (this=0x7aa759d2d040) at /home/andrew/ladybird-org/ladybird-browser/Userland/Libraries/LibWeb/HTML/MessagePort.cpp:352

While handling the event for that, HTMLMediaElement::select_resource spins the Web Event Loop, which accepts the user triggered navigate backwards event and tries to destroy the document, spinning even more event loop stuff to make it happen.

ADKaster commented 1 week ago

2243 fixes the crash, but even then the navigation fails due to our poor choice of sourceDocument for user initiated navigations, which is root caused to https://github.com/whatwg/html/issues/9133

ADKaster commented 1 week ago

Actually maybe it's not that html issue. When you click the back button we call void TraversableNavigable::traverse_the_history_by_delta(int delta, Optional<DOM::Document&> source_document)

from Page.cpp:89

@kalenikaliaksandr Any thoughts on why that might be hitting a MixedContent::should_fetching_request_be_blocked_as_mixed_content error in fetch() ?