LadybirdBrowser / ladybird

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

Website 'o2.de' stalls browser and rendering is completely broken #607

Open RubenKelevra opened 4 months ago

RubenKelevra commented 4 months ago

I'm using https://github.com/LadybirdBrowser/ladybird/commit/09f76098b06804efb1f82f2244338ad4a97c9cfb of Ladybird under Linux x86_64 and found that it has a very hard time rendering the website of the largest mobile provider in Germany (o2.de), which is quite complex.

First of all it takes an awful long time for first paint, and then it stalls and then drops in a couple of elements and stalls again, and then it adds the rest.

While the rendering is completely messed up, images missing, layout broken etc.

Sure, the layout etc. may be not fully supported (yet) but the browser should not stall like that.

Screencast_20240713_013835.webm

If you keep Ladybird open on this page for a very long time, it will eventually fill nearly all of those empty boxes with images, but the layout stays broken.

Firefox on the same connection takes about 6 seconds to load the webpage completely.

circl-lastname commented 4 months ago

Keep in mind the browser is nowhere near the speeds of existing ones, but the images taking so long is interesting.

AtkinsSJ commented 2 months ago

Seems to be doing a bit better now, but it was still very slow. And the layout is... unusual. :laughing:

image

RubenKelevra commented 1 month ago

@AtkinsSJ yeah, I just tested Ladybird (34261e54901) and it indeed looks better, after a minute or so we even get 2 fps, sometimes. But in the beginning theres a frame rendered every 5-10 seconds or so.

Screencast_20241013_175932.webm

Platform: KDE/Wayland/CachyOS

shlyakpavel commented 1 week ago

As of 64747c03978406d5f83c5675ff7f599baabb5c18, the page crashes Ladybird:

ninja: Entering directory `/Users/pavel/Develop/ladybird/Build/ladybird'
[0/2] Re-checking globbed directories...
ninja: no work to do.
Ladybird PID file '/Users/pavel/Library/Application Support/Ladybird.pid' exists with PID 69892, but process cannot be found
2024-11-04 00:58:23.067 Ladybird[70122:4475438] +[IMKClient subclass]: chose IMKClient_Modern
2024-11-04 00:58:23.168 Ladybird[70122:4475438] +[IMKInputSession subclass]: chose IMKInputSession_Modern
196554.328 WebContent(70139): FIXME: Unimplemented IDL interface: 'ServiceWorkerContainerPrototype.controller'
196554.332 WebContent(70139): FIXME: Unimplemented IDL interface: 'ServiceWorkerContainerPrototype.getRegistrations'
196554.333 WebContent(70139): FIXME: Unimplemented IDL interface: 'ServiceWorkerContainerPrototype.controller'
196554.335 WebContent(70139): Potential FIXME: Returning from PerformanceObserver::observe() as we don't support the PerformanceEntry type 'largest-contentful-paint'
196554.336 WebContent(70139): FIXME: Unimplemented IDL interface: 'ServiceWorkerContainerPrototype.controller'
196554.572 WebContent(70139): HTMLScriptElement: Refusing to run script because the element is not connected.
196554.572 WebContent(70139): HTMLScriptElement: Refusing to run script because the element is not connected.
196554.608 WebContent(70139): FIXME: Unimplemented Navigator.maxTouchPoints
196554.745 Ladybird(70122): WebContent process crashed!
196554.745 Ladybird(70122): Consider raising an issue at https://github.com/LadybirdBrowser/ladybird/issues/new/choose
VERIFICATION FAILED: !is_error() at /Users/pavel/Develop/ladybird/AK/Error.h:187
0   liblagom-ak.0.0.0.dylib             0x0000000100aea0c0 ak_verification_failed + 216
1   Ladybird                            0x00000001004b1224 _ZN2AK8FunctionIFNS_13NonnullRefPtrIN7WebView16WebContentClientEEEvEE15CallableWrapperIZ38-[LadybirdWebView setWebViewCallbacks]E3$_4E4callEv + 228
2   Ladybird                            0x00000001004b9f50 AK::Function<AK::NonnullRefPtr<WebView::WebContentClient> ()>::operator()() const + 76
3   Ladybird                            0x00000001004b98e4 Ladybird::WebViewBridge::initialize_client(WebView::ViewImplementation::CreateNewClient) + 164
4   liblagom-webview.0.0.0.dylib        0x00000001007f0778 WebView::ViewImplementation::handle_web_content_process_crash() + 240
5   liblagom-core.0.0.0.dylib           0x00000001006de708 AK::Function<void ()>::operator()() const + 76
6   liblagom-core.0.0.0.dylib           0x00000001006f2270 Core::ThreadEventQueue::process() + 376
7   Ladybird                            0x000000010049a684 -[Application sendEvent:] + 68
8   AppKit                              0x000000019857089c -[NSApplication _handleEvent:] + 60
9   AppKit                              0x0000000198016b08 -[NSApplication run] + 520
10  Ladybird                            0x00000001004a1694 Ladybird::CFEventLoopImplementation::exec() + 32
11  liblagom-core.0.0.0.dylib           0x00000001006dbe7c Core::EventLoop::exec() + 72
12  liblagom-webview.0.0.0.dylib        0x00000001007cbf80 WebView::Application::execute() + 24
13  Ladybird                            0x0000000100490f30 serenity_main(Main::Arguments) + 1100
14  Ladybird                            0x00000001004c73f8 main + 216
15  dyld                                0x0000000194090274 start + 2840
Meta/ladybird.sh: line 192: 70122 Trace/BPT trap: 5       "$BUILD_DIR/bin/Ladybird.app/Contents/MacOS/$lagom_target" "${lagom_args[@]}"

What is worse, it doesn't crash when lldb is attached to the process....