1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 20:35:06 +00:00
Commit graph

39 commits

Author SHA1 Message Date
Andreas Kling
37d844fd66 Ladybird: Use only the Qt event loop to speed everything up :^)
This patch removes the dual-event-loop setup, leaving only the Qt event
loop. We teach LibWeb how to drive Qt by installing an EventLoopPlugin.

This removes the 50ms latency on all UI interactions (and network
requests, etc.)
2022-12-25 07:58:58 -07:00
Andreas Kling
dcab11f5e9 Ladybird: Fix build after LibWeb+LibJS GC changes 2022-12-25 07:58:58 -07:00
Luke Wilde
1e7d4bc089 Ladybird: Retrieve console object from the realm's intrinsic
See: 867ad03
2022-12-25 07:58:58 -07:00
Luke Wilde
c9e6967d7b Ladybird: Update for LibJS realm changes 2022-12-25 07:58:58 -07:00
Andreas Kling
a14b00e046 Ladybird: Remove redundant subtraction of scrollbar from viewport rect 2022-12-25 07:58:58 -07:00
Andreas Kling
b1acf17d3c Ladybird: Simplify awkward keyboard mapping code 2022-12-25 07:58:58 -07:00
Andreas Kling
b1cc1bd47b Ladybird: Remove unused PageClient override 2022-12-25 07:58:58 -07:00
Andreas Kling
da23456f9e Ladybird: Try decoding images with Qt if LibGfx fails us
We might as well ask Qt if it can decode images in case our own decoders
don't succeed.
2022-12-25 07:58:58 -07:00
Diego Iastrubni
35eb696884 Ladybird: Basic keyboard input (#31)
This handles most (?) of keyboard input. For some reason, "Ctrl+A"
and Enter are not working on google.com.

It can handle plain ASCII, I tested also Hebrew input,
and https://playbiolab.com/ (which is playable now!)
2022-12-25 07:58:58 -07:00
Andrew Kaster
261f078a28 Ladybird/Meta: Add Android build
Build an Android APK file that, when configured properly in Qt Creator,
can be used to deploy the browser to an Android device.

The current build requires NDK 24, targets no less than Android API 30,
and Qt Creator 6.4.0.
2022-12-25 07:58:58 -07:00
Andreas Kling
73c15ef56d Ladybird: Don't try to append to the JS console before it's instantiated 2022-12-25 07:58:58 -07:00
Andreas Kling
f2b126f4d7 Ladybird: Basic support for window.alert() and window.confirm() 2022-12-25 07:58:58 -07:00
Andreas Kling
aa5f886128 Ladybird: Add quick & dirty port of the JS console from Browser :^) 2022-12-25 07:58:58 -07:00
Andreas Kling
80636d6779 Ladybird: Implement basic cookie support
We import the CookieJar class from Browser to do the work. Long-term
we should look for a way to share this code with Browser.
2022-12-25 07:58:58 -07:00
Andreas Kling
74c71804c7 Ladybird: Add "View Source" menu action (Ctrl+U) 2022-12-25 07:58:58 -07:00
Thitat Auareesuksakul
1400a160bc Ladybird: Set singleStep for scroll bars in WebView
Sets singleStep to 24px, this allows you to scroll using your mouse
scroll wheel :^)
2022-12-25 07:58:58 -07:00
Thitat Auareesuksakul
d89fbf3aa0 Ladybird: Set pageStep for scroll bars in WebView
This allows PageUp/PageDown keys to scroll 1 viewport size at a time.
This also fixes the scroll bar drag handle to be a correct length.
2022-12-25 07:58:58 -07:00
Andreas Kling
096164ea1a Ladybird: Revert accidentally commited local settings 2022-12-25 07:58:58 -07:00
Andreas Kling
487544d7b4 Ladybird: Port over part of the "Debug" menu from the SerenityOS browser
This is pretty messy, but we have to start somewhere. Eventually we
should find a way to share this code with SerenityOS.
2022-12-25 07:58:58 -07:00
David Gannerud
eea012472e Ladybird: Prevent loading of invalid URL
Loading invalid URL will result in a crash.
2022-12-25 07:58:58 -07:00
Andreas Kling
b97c74331c Ladybird: Don't include scrollbars in viewport rect size 2022-12-25 07:58:58 -07:00
Andreas Kling
a08e83e2cc Ladybird: Check for errors while decoding favicons 2022-12-25 07:58:58 -07:00
Matthew Costa
7681ef25da Ladybird: Expanded toolbar with browser history and home button
This patch takes the browser history code from the Serenity browser and
wires it up to the QT interface. This is tied in with a few extra
toolbar buttons associated with each tab.
2022-12-25 07:58:58 -07:00
Thitat Auareesuksakul
ec44691b56 Ladybird: Add basic cursor shape support in WebView 2022-12-25 07:58:58 -07:00
Andreas Kling
a7cb558783 Ladybird: Fix broken favicon conversion from Gfx::Bitmap to QPixmap 2022-12-25 07:58:58 -07:00
Andreas Kling
f96b53f118 Ladybird: Stop using deprecated Qt API and re-enable deprecated warnings 2022-12-25 07:58:58 -07:00
Andreas Kling
419d3ec646 Ladybird: Use QtNetwork for HTTP and HTTPS requests
Until we can get our own RequestServer infrastructure up and running,
running the TLS and HTTP code in-process was causing lots of crashes
due to unexpected reentrancy via nested event loops.

This patch adds a simple backend for HTTP and HTTPS requests that simply
funnels them through QNetworkAccessManager.
2022-12-25 07:58:58 -07:00
Andreas Kling
69d264828f Ladybird: Add a "Reload" action to reload the current URL 2022-12-25 07:58:58 -07:00
Keir Davis
95e3e06a1e Ladybird: Add Favicon to the window 2022-12-25 07:58:58 -07:00
Matthew Costa
47d7f1efec Ladybird: Apply inverse image scaling to ensure WebView renders at 1:1
On high-dpi systems QT will automatically scale up painting operations.
This results in an ugly blurry browser window surrounded by a nicely
scaled window frame. This patch applies an inverse scale to the WebView
widget, ensuring the painting and mouse events are lined up and draw
with a 1:1 pixel ratio with respect to the display's device pixels.
2022-12-25 07:58:58 -07:00
Andreas Kling
874e73e0c9 Ladybird/WebView: Apply viewport scroll offset to mouse event coordinate 2022-12-25 07:58:58 -07:00
Andrew Kaster
74fda4aff5 Ladybird/Meta: Convert to CMake build 2022-12-25 07:58:58 -07:00
Andreas Kling
f5d033b8ba Ladybird: Show the web page title in the window titlebar :^) 2022-12-25 07:58:58 -07:00
Andreas Kling
8b7000e151 Ladybird: Add a location bar and allow navigating to new pages :^) 2022-12-25 07:58:58 -07:00
Andreas Kling
88d256c109 Ladybird: Show hovered link URLs in the status bar :^) 2022-12-25 07:58:58 -07:00
Andreas Kling
9b8fe16e3d Ladybird: Plumb Qt mouse events into LibWeb 2022-12-25 07:58:58 -07:00
Andreas Kling
f16ba7945a Ladybird: Make HTTPS loads default to port 443 instead of 80 :^) 2022-12-25 07:58:58 -07:00
Andreas Kling
80526625e8 Ladybird: Basic scrolling support 2022-12-25 07:58:58 -07:00
Andreas Kling
1eb653115b Ladybird: Initial import :^) 2022-12-25 07:58:58 -07:00