Commit graph

44652 commits

Author SHA1 Message Date
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 7e42eae1a2 Ladybird: Add a separate license file 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 45c6a8c479 Ladybird: Add files I forgot to commit :^) 2022-12-25 07:58:58 -07:00
Andreas Kling 79ce12a363 Ladybird: Remove debug spam about non-existent console messages 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
Daniel Bertalan af5250b2cb Ladybird: Fix compilation on macOS/Clang
- Silences the -Wuser-defined-literals warning which is triggered by our
  use of the `sv` suffix for StringView
- Removes an unused captured `this` pointer [-Wunused-lambda-capture]
- Changes a JSONArray.h include to JSONObject.h to get the definition
  for `JSONValue::serialize`. This is needed because template functions
  are not exported for dylibs on macOS. This is a hack; the JSON headers
  should be refactored so that each one includes the definition of
  the template functions it sees. -- Maybe we should build with
  -fvisibility-inlines-hidden on Linux to catch issues like this?
2022-12-25 07:58:58 -07:00
Filiph Sandström d1d6a204fc Ladybird: Replace StatusBar with ToolTip
This gives the actual webcontent more space to work with,
it also emulates how other browsers does it.

In the future we'd like to do something else since only ToolTip
can be visible at the same time.
2022-12-25 07:58:58 -07:00
Andreas Kling bfc9057638 Ladybird: Tell Qt to let us manage HTTP redirects ourselves 2022-12-25 07:58:58 -07:00
Andreas Kling 2bbf2dfb9a Ladybird: Update for removal of StringView(char const*) 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
Filiph Sandström ea7e637b6e Ladybird: Fix title branding when switching tabs 2022-12-25 07:58:58 -07:00
Filiph Sandström ace44dc13b Ladybird: Hide TabBar if count <= 1 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
Andreas Kling 50b3672f52 Ladybird: Add keyboard shortcut for focusing the location edit (Ctrl+L) 2022-12-25 07:58:58 -07:00
Andreas Kling 303fda074a Ladybird: Fix build with Qt 6.2.4 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
Matthew Costa 67ab6dd2e6 Ladybird: Allow browser tabs to be closed
This is a small patch which wires up the tab close button.
2022-12-25 07:58:58 -07:00
Matthew Costa 8af5b49cba Ladybird: Rudimentary tabbed browsing support
This patch removes the browser WebView from the window and places it
inside a Tab object, all wrapped up in a QT tab control. So far you can
create tabs, but can't close them.
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
Alfonso Saavedra "Son Link 48de1fb1b1 Ladybird: Added Arch Linux/Manjaro required packages to build 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
Matthew Costa 7bf3010185 Ladybird: Trigger browser to quit when the main window is closed
This patch adds an event handler to the main window which allows it to
respond to a user closing the window. This event is then passed on to
the LibCore event loop, which allows the application quit itself.
Previously the application would hang, only running in the background,
until killed by an external force.
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
Timothy Flynn 9edd334beb Ladybird/Meta: Add libgl1-mesa-dev to build dependencies
Without this package, CMake fails with the error:

    Could NOT find OpenGL (missing: OPENGL_INCLUDE_DIR)

This package is listed in Qt's requirements here:
https://doc.qt.io/qt-6/linux.html#requirements-for-development-host
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
Andreas Kling 96170a4f24 Ladybird/Meta: QT => Qt in the README :^) 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 da19b78dea Ladybird: Don't set a fixed height on the location edit 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
Xexxa 26fb41d1f8 Base: Adjust emoji
🥕 - U+1F955 CARROT
Add some shadow
🔝 - U+1F51D TOP ARROW
Adjust "o" in emoji
2022-12-25 15:50:58 +01:00
Xexxa b89bdd9497 Base: Add more emoji
💞 - U+1F49E REVOLVING HEARTS
🧅 - U+1F9C5 ONION
🎾 - U+1F3BE TENNIS
🛷 - U+1F6F7 SLED
👛 - U+1F45B PURSE
🎼 - U+1F3BC MUSICAL SCORE
🧻 - U+1F9FB ROLL OF PAPER
㊗️ - U+3297 JAPANESE “CONGRATULATIONS” BUTTON
❤️‍🩹 - U+2764 U+200D U+1FA79 MENDING HEART
👩‍❤️‍👩 - U+1F469 U+200D U+2764 U+200D U+1F469
COUPLE WITH HEART: WOMAN, WOMAN
👨‍👩‍👦 - U+1F468 U+200D U+1F469 U+200D U+1F466
FAMILY: MAN, WOMAN, BOY
👨‍👩‍👧 - U+1F468 U+200D U+1F469 U+200D U+1F467
FAMILY: MAN, WOMAN, GIRL
👨‍👨‍👦 - U+1F468 U+200D U+1F468 U+200D U+1F466
FAMILY: MAN, MAN, BOY
👨‍👨‍👧 - U+1F468 U+200D U+1F468 U+200D U+1F467
FAMILY: MAN, MAN, GIRL
👩‍👩‍👦 - U+1F469 U+200D U+1F469 U+200D U+1F466
FAMILY: WOMAN, WOMAN, BOY
👩‍👩‍👧 - U+1F469 U+200D U+1F469 U+200D U+1F467
FAMILY: WOMAN, WOMAN, GIRL
👨‍👦 - U+1F468 U+200D U+1F466 FAMILY: MAN, BOY
👨‍👧 - U+1F468 U+200D U+1F467 FAMILY: MAN, GIRL
👨‍👧‍👦 - U+1F468 U+200D U+1F467 U+200D U+1F466
FAMILY: MAN, GIRL, BOY
👨‍👧‍👧 - U+1F468 U+200D U+1F467 U+200D U+1F467
FAMILY: MAN, GIRL, GIRL
🪒 - U+1FA92 RAZOR
2022-12-25 15:50:58 +01:00