Commit graph

44686 commits

Author SHA1 Message Date
Andreas Kling
27b9cd13ee Ladybird: Focus the location editor when creating a new tab
This lets you start typing a new URL right after pressing Ctrl+T.
2022-12-25 07:58:58 -07:00
Andreas Kling
031005de2d Ladybird: Remove some awkward camelCase signal names
We use snake_case for everything except when we're forced by Qt to use
their camelCase names.
2022-12-25 07:58:58 -07:00
Andreas Kling
0c4ae810d7 Ladybird: Hide the hovered URL label on startup 2022-12-25 07:58:58 -07:00
Andreas Kling
4e3e5149d5 Ladybird: Show tooltips for <a title> text 2022-12-25 07:58:58 -07:00
Andreas Kling
ce38528fff Ladybird: Allow scrolling with arrow keys and PageUp/PageDown
This will need further work to integrate well with content that listens
for key events, but at least this is better than doing nothing.
2022-12-25 07:58:58 -07:00
Andreas Kling
f4a9b382b1 Ladybird: Remove spacing between toolbar and web view 2022-12-25 07:58:58 -07:00
Andreas Kling
d74802e4e2 Ladybird: Show hovered link URLs in a conditional UI label
The tooltips for hovered links were super awkward when in a tooltip
2022-12-25 07:58:58 -07:00
Andreas Kling
aa27112d78 Ladybird: Tweak the QTabWidget look 2022-12-25 07:58:58 -07:00
Andreas Kling
8a657eaa34 Ladybird: Add a FontPlugin and try much harder to find suitable fonts
Instead of only looking at the SerenityOS default fonts, we now also
look recursively in /usr/share/fonts for suitable fonts that we can
load and use.
2022-12-25 07:58:58 -07:00
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
9789d8b769 Ladybird: Turn initialize_global_object() into a regular initialize()
See: https://github.com/SerenityOS/serenity/commit/cfa5885
2022-12-25 07:58:58 -07:00
Luke Wilde
1e7d4bc089 Ladybird: Retrieve console object from the realm's intrinsic
See: https://github.com/SerenityOS/serenity/commit/867ad03
2022-12-25 07:58:58 -07:00
Andreas Kling
ced442f426 Ladybird: Remove obsolete call to set_associated_realm() 2022-12-25 07:58:58 -07:00
Kemal Zebari
80edd654fa Ladybird: Fix a few typos in README 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
90c0ae5e63 Ladybird: Update for LibJS global object construction changes 2022-12-25 07:58:58 -07:00
Andreas Kling
b1cc1bd47b Ladybird: Remove unused PageClient override 2022-12-25 07:58:58 -07:00
Xexxa
5a5473a38e Ladybird/Meta: Use reverse domain name notation in property list files 2022-12-25 07:58:58 -07:00
Filiph Sandström
7ddb433f99 Ladybird/Meta: Enable macOS high-dpi support
This also adds an Info.plist file required to properly
build macOS applications.
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
Andreas Kling
11e5be050f Ladybird: Enable HTTP pipelining 2022-12-25 07:58:58 -07:00
Andreas Kling
9073d60f00 Ladybird: Actually add request headers to outgoing HTTP requests 2022-12-25 07:58:58 -07:00
Filiph Sandström
d60f8807e3 Ladybird: Allow for setting the hompage through SettingsDialog 2022-12-25 07:58:58 -07:00
Filiph Sandström
91e5b6d4f5 Ladybird: Add SettingsDialog stub 2022-12-25 07:58:58 -07:00
Filiph Sandström
a838004725 Ladybird: Add Settings class 2022-12-25 07:58:58 -07:00
Andreas Kling
1b682e4b2c Ladybird: Don't rewrite file:// URLs to HTTP 2022-12-25 07:58:58 -07:00
Andreas Kling
c216e714c7 Ladybird: Tweak inaccurate copyright year :^) 2022-12-25 07:58:58 -07:00
Diego Iastrubni
2905bda0f2 Ladybird: Add a protocol to the URL, when one is not set
When a http(s):// is not written by the user - lets manually add one.
2022-12-25 07:58:58 -07:00
Alec Murphy
700c709c00 Ladybird: Add Ctrl-W action to close current tab (#28) 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
1002de086e Ladybird/Docs: Document Android build steps 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
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