Skip to content

Browser crashes on pdfjs.express demo #3057

@shlyakpavel

Description

@shlyakpavel

Summary

When I open https://pdfjs.express/demo, it crashes

Operating system

macOS

Steps to reproduce

  1. Open Ladybird
  2. Navigate to https://pdfjs.express/demo
  3. Observe

Expected behavior

It doesn't crash

Actual behavior

It crashes

URL for a reduced test case

https://pdfjs.express/demo

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

N/A

Log output and (if possible) backtrace

371029.828 WebContent(31517): HTMLScriptElement: Refusing to run classic script because it has the nomodule attribute.
371029.831 WebContent(31517): ResourceLoader: Filtered request to: "https://www.googletagmanager.com/gtm.js?id=GTM-58P2FHSN"
371029.831 WebContent(31517): ResourceLoader: Filtered request to: "https://static.hotjar.com/c/hotjar-2159231.js?sv=6"
371029.831 WebContent(31517): ResourceLoader: Filtered request to: "https://www.redditstatic.com/ads/pixel.js"
371029.836 WebContent(31517): HTMLScriptElement: Refusing to run script because the element's result is null.
371029.836 WebContent(31517): HTMLScriptElement: Refusing to run script because the element's result is null.
371029.836 WebContent(31517): HTMLScriptElement: Refusing to run script because the element's result is null.
371030.279 WebContent(31517): (js debug) "Munchkin.init("243-NCO-372") options:" Object{ "anonymizeIP": true }
371030.281 WebContent(31517): ResourceLoader: Filtered request to: "https://243-nco-372.mktoresp.com/webevents/visitWebPage?_mchNc=1735317711851&_mchCn=&_mchId=243-NCO-372&_mchTk=_mch-pdfjs.express-1735309772408-24814&_mchHo=pdfjs.express&_mchPo=&_mchRu=%2Fdemo&_mchPc=https%3A&_mchVr=163&aip=1&_mchEcid=&_mchHa=&_mchRe=&_mchQp="
371030.529 WebContent(31517): ResourceLoader: Filtered request to: "https://px.ads.linkedin.com/collect?v=2&fmt=js&pid=4002228&time=1735317712098&conversionId=8288220&url=https%3A%2F%2Fpdfjs.express%2Fdemo"
371030.529 WebContent(31517): ResourceLoader: Filtered request to: "https://px.ads.linkedin.com/collect?v=2&fmt=js&pid=4002228&time=1735317712099&url=https%3A%2F%2Fpdfjs.express%2Fdemo"
371030.539 WebContent(31517): ResourceLoader: Filtered request to: "https://px.ads.linkedin.com/wa/"
371042.921 WebContent(31517): (js) Object{ "rows": [ Object{ "(index)": "UI version", "Value": "8.7.0" }, Object{ "(index)": "Core version", "Value": "8.7.0" }, Object{ "(index)": "webviewer.min.js", "Value": "8.7.0" }, Object{ "(index)": "Build", "Value": "Ny8yMC8yMDIyfDJhMWM5ZWYwOA==" }, Object{ "(index)": "WebViewer Server", "Value": false }, Object{ "(index)": "Full API", "Value": false } ], "columns": [ "(index)", "Value" ] }
VERIFICATION FAILED: !height.might_be_saturated() at /Users/pavel/Develop/ladybird/Libraries/LibWeb/Layout/LayoutState.cpp:637
0   liblagom-ak.0.0.0.dylib             0x00000001055f3280 ak_trap + 56
1   liblagom-ak.0.0.0.dylib             0x00000001055f3594 ak_assertion_failed + 0
2   liblagom-web.0.0.0.dylib            0x000000010730fab4 Web::Layout::LayoutState::UsedValues::set_temporary_content_width(Web::CSSPixels) + 0
3   liblagom-web.0.0.0.dylib            0x00000001072d699c Web::Layout::BlockFormattingContext::resolve_used_height_if_not_treated_as_auto(Web::Layout::Box const&, Web::Layout::AvailableSpace const&) + 200
4   liblagom-web.0.0.0.dylib            0x00000001072d74f4 Web::Layout::BlockFormattingContext::layout_block_level_box(Web::Layout::Box const&, Web::Layout::BlockContainer const&, Web::CSSPixels&, Web::Layout::AvailableSpace const&) + 1708
5   liblagom-web.0.0.0.dylib            0x00000001072d1898 Web::Layout::BlockFormattingContext::layout_block_level_children(Web::Layout::BlockContainer const&, Web::Layout::AvailableSpace const&) + 200
6   liblagom-web.0.0.0.dylib            0x00000001072d1214 Web::Layout::BlockFormattingContext::run(Web::Layout::AvailableSpace const&) + 224
7   liblagom-web.0.0.0.dylib            0x00000001072d75ec Web::Layout::BlockFormattingContext::layout_block_level_box(Web::Layout::Box const&, Web::Layout::BlockContainer const&, Web::CSSPixels&, Web::Layout::AvailableSpace const&) + 1956
8   liblagom-web.0.0.0.dylib            0x00000001072d1898 Web::Layout::BlockFormattingContext::layout_block_level_children(Web::Layout::BlockContainer const&, Web::Layout::AvailableSpace const&) + 200
9   liblagom-web.0.0.0.dylib            0x00000001072d1214 Web::Layout::BlockFormattingContext::run(Web::Layout::AvailableSpace const&) + 224
10  liblagom-web.0.0.0.dylib            0x00000001072d75ec Web::Layout::BlockFormattingContext::layout_block_level_box(Web::Layout::Box const&, Web::Layout::BlockContainer const&, Web::CSSPixels&, Web::Layout::AvailableSpace const&) + 1956
11  liblagom-web.0.0.0.dylib            0x00000001072d1898 Web::Layout::BlockFormattingContext::layout_block_level_children(Web::Layout::BlockContainer const&, Web::Layout::AvailableSpace const&) + 200
12  liblagom-web.0.0.0.dylib            0x000000010705e004 Web::DOM::Document::update_layout() + 508
13  liblagom-web.0.0.0.dylib            0x0000000107086018 Web::DOM::Element::get_client_rects() const + 76
14  liblagom-web.0.0.0.dylib            0x0000000107085df4 Web::DOM::Element::get_bounding_client_rect() const + 52
15  liblagom-web.0.0.0.dylib            0x00000001077759d0 Web::Bindings::ElementPrototype::get_bounding_client_rect(JS::VM&) + 100
16  liblagom-js.0.0.0.dylib             0x00000001058b735c AK::Function<JS::ThrowCompletionOr<void> (JS::Declaration const&)>::operator()(JS::Declaration const&) const + 80
17  liblagom-js.0.0.0.dylib             0x0000000105a7ce88 JS::NativeFunction::internal_call(JS::Value, AK::Span<JS::Value const>) + 388
18  liblagom-js.0.0.0.dylib             0x0000000105900014 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8820
19  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
20  liblagom-js.0.0.0.dylib             0x00000001059fb158 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 420
21  liblagom-js.0.0.0.dylib             0x00000001059fa89c JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 328
22  liblagom-js.0.0.0.dylib             0x0000000105900014 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8820
23  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
24  liblagom-js.0.0.0.dylib             0x00000001059fb158 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 420
25  liblagom-js.0.0.0.dylib             0x00000001059fb504 JS::ECMAScriptFunctionObject::internal_construct(AK::Span<JS::Value const>, JS::FunctionObject&) + 452
26  liblagom-js.0.0.0.dylib             0x0000000105924018 JS::Bytecode::perform_call(JS::Bytecode::Interpreter&, JS::Value, JS::Bytecode::Op::CallType, JS::Value, AK::Span<JS::Value const>) + 320
27  liblagom-js.0.0.0.dylib             0x0000000105900550 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 10160
28  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
29  liblagom-js.0.0.0.dylib             0x00000001059fb158 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 420
30  liblagom-js.0.0.0.dylib             0x00000001059fa89c JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 328
31  liblagom-js.0.0.0.dylib             0x0000000105a0e9d4 JS::FunctionPrototype::apply(JS::VM&) + 600
32  liblagom-js.0.0.0.dylib             0x00000001058b735c AK::Function<JS::ThrowCompletionOr<void> (JS::Declaration const&)>::operator()(JS::Declaration const&) const + 80
33  liblagom-js.0.0.0.dylib             0x0000000105a7ce88 JS::NativeFunction::internal_call(JS::Value, AK::Span<JS::Value const>) + 388
34  liblagom-js.0.0.0.dylib             0x0000000105900014 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8820
35  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
36  liblagom-js.0.0.0.dylib             0x00000001059fb158 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 420
37  liblagom-js.0.0.0.dylib             0x00000001059fb504 JS::ECMAScriptFunctionObject::internal_construct(AK::Span<JS::Value const>, JS::FunctionObject&) + 452
38  liblagom-js.0.0.0.dylib             0x0000000105924018 JS::Bytecode::perform_call(JS::Bytecode::Interpreter&, JS::Value, JS::Bytecode::Op::CallType, JS::Value, AK::Span<JS::Value const>) + 320
39  liblagom-js.0.0.0.dylib             0x0000000105900550 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 10160
40  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
41  liblagom-js.0.0.0.dylib             0x00000001059fb158 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 420
42  liblagom-js.0.0.0.dylib             0x00000001059fa89c JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 328
43  liblagom-js.0.0.0.dylib             0x0000000105a0ef54 JS::FunctionPrototype::call(JS::VM&) + 272
44  liblagom-js.0.0.0.dylib             0x00000001058b735c AK::Function<JS::ThrowCompletionOr<void> (JS::Declaration const&)>::operator()(JS::Declaration const&) const + 80
45  liblagom-js.0.0.0.dylib             0x0000000105a7ce88 JS::NativeFunction::internal_call(JS::Value, AK::Span<JS::Value const>) + 388
46  liblagom-js.0.0.0.dylib             0x0000000105900014 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8820
47  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
48  liblagom-js.0.0.0.dylib             0x00000001059fb158 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 420
49  liblagom-js.0.0.0.dylib             0x00000001059fa89c JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 328
50  liblagom-js.0.0.0.dylib             0x0000000105900014 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8820
51  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
52  liblagom-js.0.0.0.dylib             0x00000001059fb158 JS::ECMAScriptFunctionObject::ordinary_call_evaluate_body() + 420
53  liblagom-js.0.0.0.dylib             0x00000001059fa89c JS::ECMAScriptFunctionObject::internal_call(JS::Value, AK::Span<JS::Value const>) + 328
54  liblagom-js.0.0.0.dylib             0x0000000105900014 JS::Bytecode::Interpreter::run_bytecode(unsigned long) + 8820
55  liblagom-js.0.0.0.dylib             0x00000001058fdac8 JS::Bytecode::Interpreter::run_executable(JS::Bytecode::Executable&, AK::Optional<unsigned long>, JS::Value) + 408
56  liblagom-js.0.0.0.dylib             0x00000001058fd6cc JS::Bytecode::Interpreter::run(JS::Script&, GC::Ptr<JS::Environment>) + 536
57  liblagom-web.0.0.0.dylib            0x0000000107256770 Web::HTML::ClassicScript::run(Web::HTML::ClassicScript::RethrowErrors, GC::Ptr<JS::Environment>) + 184
58  liblagom-web.0.0.0.dylib            0x00000001071e4bdc Web::HTML::HTMLScriptElement::execute_script() + 544
59  liblagom-web.0.0.0.dylib            0x0000000107231c34 Web::HTML::HTMLParser::handle_text(Web::HTML::HTMLToken&) + 1088
60  liblagom-web.0.0.0.dylib            0x000000010722b930 Web::HTML::HTMLParser::run(Web::HTML::HTMLTokenizer::StopAtInsertionPoint) + 724
61  liblagom-web.0.0.0.dylib            0x000000010722ca10 Web::HTML::HTMLParser::run(URL::URL const&, Web::HTML::HTMLTokenizer::StopAtInsertionPoint) + 232
62  liblagom-web.0.0.0.dylib            0x000000010707d1c0 AK::Function<void ()>::CallableWrapper<Web::load_html_document(Web::HTML::NavigationParams const&)::$_0::operator()(AK::Detail::ByteBuffer<32ul>) const::'lambda'()>::call() + 128
63  liblagom-web.0.0.0.dylib            0x0000000106e74d54 AK::Function<void (AK::Span<unsigned char>)>::operator()(AK::Span<unsigned char>) const + 76
64  liblagom-core.0.0.0.dylib           0x0000000105333dc4 AK::Function<void (AK::Error&)>::operator()(AK::Error&) const + 76
65  liblagom-core.0.0.0.dylib           0x0000000105343e30 Core::ThreadEventQueue::process() + 352
66  liblagom-core.0.0.0.dylib           0x0000000105330f48 Core::EventLoop::spin_until(AK::Function<bool ()>) + 116
67  liblagom-web.0.0.0.dylib            0x0000000107398bd4 Web::Platform::EventLoopPluginSerenity::spin_until(GC::Root<GC::Function<bool ()>>) + 116
68  liblagom-web.0.0.0.dylib            0x000000010717259c Web::HTML::EventLoop::spin_until(GC::Ref<GC::Function<bool ()>>) + 360
69  liblagom-web.0.0.0.dylib            0x000000010722cef8 Web::HTML::HTMLParser::the_end(GC::Ref<Web::DOM::Document>, GC::Ptr<Web::HTML::HTMLParser>) + 992
70  liblagom-web.0.0.0.dylib            0x000000010722ca1c Web::HTML::HTMLParser::run(URL::URL const&, Web::HTML::HTMLTokenizer::StopAtInsertionPoint) + 244
71  liblagom-web.0.0.0.dylib            0x000000010707d1c0 AK::Function<void ()>::CallableWrapper<Web::load_html_document(Web::HTML::NavigationParams const&)::$_0::operator()(AK::Detail::ByteBuffer<32ul>) const::'lambda'()>::call() + 128
72  liblagom-web.0.0.0.dylib            0x0000000106e74d54 AK::Function<void (AK::Span<unsigned char>)>::operator()(AK::Span<unsigned char>) const + 76
73  liblagom-core.0.0.0.dylib           0x0000000105333dc4 AK::Function<void (AK::Error&)>::operator()(AK::Error&) const + 76
74  liblagom-core.0.0.0.dylib           0x0000000105343e30 Core::ThreadEventQueue::process() + 352
75  liblagom-core.0.0.0.dylib           0x0000000105347bc4 Core::EventLoopImplementationUnix::exec() + 44
76  liblagom-core.0.0.0.dylib           0x0000000105330de8 Core::EventLoop::exec() + 72
77  WebContent                          0x0000000104d31e24 serenity_main(Main::Arguments) + 4316
78  WebContent                          0x0000000104dd2580 main + 196
79  dyld                                0x000000019ef04274 start + 2840
371042.937 Ladybird(31514): WebContent process crashed! Last page loaded: https://pdfjs.express/demo
371042.937 Ladybird(31514): Consider raising an issue at https://github.com/LadybirdBrowser/ladybird/issues/new/choose

Screenshots or screen recordings

No response

Build flags or config settings

No response

Contribute a patch?

  • I’ll contribute a patch for this myself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghas reproWe have a way to reproduce this bug.needs reductionIssue needs someone to make a minimal test case that demonstrates the problem.web compatibility

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions