summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-25Ladybird: Let Lagom build the IPC endpoints for WebContentAndreas Kling
2022-12-25Ladybird: Remove PageClientLadybird as it's no longer usedAndreas Kling
2022-12-25Ladybird: Port over ConsoleWidget from the SerenityOS BrowserAndreas Kling
While this adds a fair bit of widget code, we're also increasing code sharing by using the same bits in WebContentClient for interacting with the JS console. That said, we should look for more ways to share code here.
2022-12-25Ladybird: Render web content in a separate process :^)Andreas Kling
This patch brings over the WebContent process over from SerenityOS to Ladybird, along with a new WebContentView widget that renders web content in a separate process. There's a lot of jank and FIXME material here, notably I had to re-add manually pumped Core::EventLoop instances on both sides, in order to get the IPC protocol running. This introduces a lot of latency and we should work towards replacing those loops with improved abstractions. The WebContent process is built separately here (not part of Lagom) and we provide our own main.cpp for it. Like everything, this can be better architected, it's just a starting point. :^)
2022-12-25Ladybird/Meta: Split out build instructions to a separate documentAndreas Kling
2022-12-25Ladybird/ConsoleClient: Implement console message styling with `%c`Sam Atkins
This matches the changes made to Serenity in: https://github.com/SerenityOS/serenity/commit/7a2da4cabf5627941cf1fc6eb7c5fd068fcc75f9
2022-12-25Ladybird/CMake: Enable compile_commands.json by defaultAndrew Kaster
This should help IDEs have an easier time indexing serenity files.
2022-12-25Ladybird/SimpleWebView: Install and check for content filters in res/Andrew Kaster
This allows installed ladybird and Andriod ladybird to find the content filters without copying all of Base/home/anon into the install tree.
2022-12-25Ladybird/WebView: Fix size calculation in update_viewport_rect()Itamar
size() may include the dimensions of the scrollbars, so we now use viewport() instead.
2022-12-25Ladybird/Tab: Handle "Dump History" actionMoustafa Raafat
2022-12-25Ladybird/SimpleWebView: Add debug logging for unhandled debug requestsMoustafa Raafat
2022-12-25Ladybird/Tab: Update history title when tab title changesMoustafa Raafat
2022-12-25Ladybird/History: Ignore title updates when history has no current itemMoustafa Raafat
2022-12-25Ladybird/BrowserWindow: Make "View Source" a separate windowMoustafa Raafat
View Source was a subwindow which made it cover part of the browser with no way for closing it.
2022-12-25Ladybird: The JS console widget should be a standalone windowAndreas Kling
...not part of the WebView. Its lifetime is managed by a QPointer.
2022-12-25Ladybird/ConsoleClient: Get the current ESO from new HostDefined helperAndrew Kaster
2022-12-25Ladybird/Everywhere: Ensure that Qt objects are created with parentsAndrew Kaster
This prevents memory leaks detected by both Valgrind and ASAN/LSAN. Valgrind is still suspicious of the leaked JS::VM from Web::Bindings::main_thread_vm() but there's other issues with leak checking all the GC'd objects. Co-Authored-By: Diego Iastrubni <diegoiast@gmail.com>
2022-12-25Ladybird: Fix typo in README.mdJonas Kvinge
2022-12-25Ladybird: Start applying the default content filterLuke Wilde
For the first cut, the file path is not configurable and the content filter cannot be toggled on or off. If we fail to apply the content filters for any reason (e.g. the filter file doesn't exist), we simply just stop loading the content filters to allow using Ladybird without content filters.
2022-12-25Ladybird/Everywhere: Replace "protocol" with "scheme" url helpersnetworkException
See https://github.com/SerenityOS/serenity/commit/4230dbbb21ec68cbb9844130d5e90276c96d16c2
2022-12-25Ladybird/BrowserWindow: Port user agent spoofing from BrowserIdan Horowitz
2022-12-25Ladybird/BrowserWindow: Give color scheme action group a detailed nameIdan Horowitz
'group' is not very specific.
2022-12-25Ladybird: Add a very simple DOM inspectorAndreas Kling
We use a ModelTranslator to expose a DOMTreeModel from LibWebView :^) It allows you to select the currently inspected node, which causes the engine to render a little box model overlay above the web content.
2022-12-25Ladybird: Add a ModelTranslator to translate a GUI::Model to a Qt modelAndreas Kling
This will be used to expose the DOMTreeModel from LibWebView :^)
2022-12-25Ladybird: Rename WebView to SimpleWebViewAndreas Kling
This will allow us to share code with LibWebView from SerenityOS. (This would otherwise not work, since its "WebView" namespace collides with our "WebView" class.) Also, we should eventually move towards a more sophisticated multi-process WebView like OOPWV.
2022-12-25Ladybird: Clean up tab bar autohideAaron Dewes
Qt has this feature built-in, so there's no need to create a custom implementation
2022-12-25Ladybird: Make Tab.cpp directly take a BrowserWindows as m_windowAaron Dewes
2022-12-25Ladybird: Remove redundant use of impl()Linus Groh
This blocks us from removing it upstream in LibWeb.
2022-12-25Ladybird/PageClient: Initialize the js console earlier during page setupdavidot
2022-12-25Ladybird/WebView: Ensure a console widget exists before storing messagesdavidot
This makes sure that any console.log (and friends) called before ever opening the JS Console are not lost.
2022-12-25Ladybird/WebView: Close top-level BC when the WebView is destroyedAndreas Kling
2022-12-25Ladybird: Add macOS build instructionsNiek van der Maas
Remove release build info, as per request of @bgianfo
2022-12-25Ladybird: Add link to Serenity's LibWeb ylluminate
library path for easier reference and finding.
2022-12-25Ladybird: Add instructions for building on FedoraDiego Iastrubni
closes #49
2022-12-25Ladybird: Don't propagate unrecognized button clicks to the web engineDiego Iastrubni
There are a lot of unsupported mouse click events that the engine cannot handle. It such event (0) reaches the web engine - it will assert. Don't even propagate them - this is the safe way. As of today! I also added back/forward buttons to the translation. Should fix #27
2022-12-25Ladybird/WebView: Plumb visibility state changes from Qt to LibWebAndreas Kling
2022-12-25Ladybird: Add --needed option on pacman dependencies commandMatheus Vinicius
2022-12-25Ladybird/WebView: Move WebSocket stuff to its own filesAndreas Kling
2022-12-25Ladybird/WebView: Move our PageClient to its own fileAndreas Kling
And rename it to PageClientLadybird while we're at it, it's not "headless" by any means.
2022-12-25Ladybird/BrowserWindow: Add UI for switching preferred CSS color schemeAndreas Kling
2022-12-25Ladybird/Tab: Conditionally enable back/forward buttonsJulen Ruiz Aizpuru
2022-12-25Ladybird/Tab: Make back/forward keyboard shortcuts platform-specificJulen Ruiz Aizpuru
This commit changes how we set the back and forward button key bindings to use platform-specific standard key sequences. For example, in Mac OS X, the back action will be now triggered via Cmd+← and Cmd+[, whereas previously the action was mapped to Alt+←, which is not standard in Mac OS X.
2022-12-25Ladybird/FontPluginQt: Initialize the default fixed-width fontAndreas Kling
2022-12-25Ladybird/FontPluginQt: Implement default font virtualsAndreas Kling
2022-12-25Ladybird/WebView: Ensure JS console is initialized before handling inputAndreas Kling
2022-12-25Ladybird/WebView: Implement page_did_request_scroll_into_view()Andreas Kling
This makes #foo links actually scroll the #foo element into view.
2022-12-25Ladybird/WebView: Notify LibWeb whenever the viewport is scrolledAndreas Kling
2022-12-25Ladybird/CMake: Install resources and Lagom libraries alongside ladybirdAndrew Kaster
This setup should allow the package maintainers who are looking to distribute ladybird on their distributions to use CMake to install ladybird using cmake install rules rather than having to write their own
2022-12-25Ladybird/WebView: Search for resources using installed locationAndrew Kaster
Reorganize the logic for initializing s_serenity_resource_root. Now, we initialize it in platform_init(), and move platform_init to the top of initialize_web_engine. Add a branch at the end of the function to check ``QApplication::applicationDirPath()`` for the location of the executable, and base the location of resources on that. In an installed configuration, this will be /some/path/bin, with the resource root set to /some/path/share/, looking for files in /some/path/share/res/resource-type. This matches up with some upcoming CMake changes to install resources in CMAKE_INSTALL_DATADIR.
2022-12-25Ladybird: Fix some crashes related to keyboard eventsDiego Iastrubni
Don't try to get the unicode value of an empty string.