summaryrefslogtreecommitdiff
path: root/Ladybird/WebContent
AgeCommit message (Collapse)Author
2023-05-09AK: Add the `Input` word to input-only buffered streamsLucas CHOLLET
This concerns both `BufferedSeekable` and `BufferedFile`.
2023-05-08LibWeb: Add `--layout-test-mode` flag to HeadlessBrowsermartinfalisse
The `layout-test-mode` flag changes the font to be SerenitySans as this is the font used for layout tests for cross-platform compatibility of tests.
2023-05-08Ladybird: Move arguments parsing before FontPluginQt initmartinfalisse
In a future commit will pass arguments parsed to the FontPluginQt constructor.
2023-04-27Ladybird: Prohibit GUI interaction of the WebContent process on macOSTimothy Flynn
The WebContent process behaves a bit awkwardly on macOS. When we launch the process, we have to create a QGuiApplication to access system fonts. But on macOS, doing so creates an entry in the Dock, and also causes the WebContent to be focused. So if you enter cmd+Q without first focusing the Ladybird GUI, WebContent is closed, while the Ladybird process keeps running.
2023-04-25LibCore+Ladybird: Add EventLoopManager interface for persistent stateAndreas Kling
Things such as timers and notifiers aren't specific to one instance of Core::EventLoop, so let's not tie them down to EventLoopImplementation. Instead, move those APIs + signals & a few other things to a new EventLoopManager interface. EventLoopManager also knows how to create a new EventLoopImplementation object.
2023-04-25Ladybird: Remove Web::Platform plugins for Qt in favor of LibCoreAndreas Kling
Now that the Core::EventLoop is driven by a QEventLoop in Ladybird, we don't need to patch LibWeb with Web::Platform plugins. This patch removes EventLoopPluginQt and TimerQt. Note that we can't just replace the Web::Platform abstractions with LibCore stuff immediately, since the Web::Platform APIs use JS::SafeFunction for callbacks.
2023-04-25Ladybird: Run the Core::EventLoop with a Qt backendAndreas Kling
This patch adds EventLoopImplementationQt which is a full replacement for the Core::EventLoopImplementationUnix that uses Qt's event loop as a backend instead. This means that Core::Timer, Core::Notifier, and Core::Event delivery are all driven by Qt primitives in the Ladybird UI and WC processes.
2023-04-25LibCore: Simplify Core::Notifier by only allowing one event typeAndreas Kling
Not a single client of this API actually used the event mask feature to listen for readability AND writability. Let's simplify the API and have only one hook: on_activation.
2023-04-24Ladybird: Define AK_DONT_REPLACE_STD via CMake rather than in every fileTimothy Flynn
2023-04-22Browser+Ladybird+LibWeb: Port content filters to StringTimothy Flynn
2023-04-22Browser+Ladybird+LibWeb: Prevent infinite growth of content filtersTimothy Flynn
We never clear content filters on either end of the Browser-WebContent IPC connection. So when the filters change, we re-append all filters to the Vector holding them. This incidentally makes it impossible to remove a filter. Change both sides to clear their filter lists when receiving a new set of filters.
2023-04-18Ladybird: Propagate autoplay settings to the WebContent processTimothy Flynn
2023-03-21Everywhere: Use `LibFileSystem` where trivialCameron Youell
2023-03-17LibWeb: Move initialization of the MainThreadVM to WebContent's main()Timothy Flynn
It is a fallible operation, so this lets us abort early if it fails.
2023-03-16WebContent+LibWebView: Consolidate the way browsers connect to WebDriverTimothy Flynn
Currently, on Serenity, we connect to WebDriver from the browser-side of the WebContent connection for both Browser and headless-browser. On Lagom, we connect from within the WebContent process itself, signaled by a command line flag. This patch changes Lagom browsers to connect to WebDriver the same way that Serenity browsers do. This will ensure we can do other initializers in the same order across all platforms and browsers.
2023-02-13LibCore: Move Stream-based file into the `Core` namespaceTim Schumacher
2023-02-13LibCore: Move Stream-based sockets into the `Core` namespaceTim Schumacher
2023-02-13LibCore: Rename `File` to `DeprecatedFile`Tim Schumacher
As usual, this removes many unused includes and moves used includes further down the chain.
2022-12-25Ladybird/WebDriver: Move to using local socket files for WebDriver IPCTimothy Flynn
This allows us to use standard Serenity IPC infrastructure rather than manually creating FD-passing sockets. This also lets us use Serenity's WebDriver Session class, removing the copy previously used in Ladybird. This ensures any changes to Session in the future will be picked up by Ladybird for free.
2022-12-25Ladybird: Fix build after ConsoleGlobalEnvironmentExtensions renameAndreas Kling
2022-12-25Ladybird: Update for AK::{String => DeprecatedString} renameLinus Groh
2022-12-25Ladybird/WebDriver: Support running headless WebDriver sessionsTimothy Flynn
This adds a dependency from WebDriver to Lagom's headless-browser to be used if the client's required capabilities indicate to do so.
2022-12-25Ladybird: Construct a WebDriverConnection when instructed to do soTimothy Flynn
The WebDriver will pass the --webdriver-fd-passing-socket command line option when it launches Ladybird. Forward this flag onto the WebContent process, where it will create the WebDriverConnection for IPC.
2022-12-25Ladybird: Foward the WebContent passing socket FD by command lineTimothy Flynn
Rather than needing to set another environment variable for WebDriver's passing socket, let's forward these FDs by command line. This also moves the creation of the WebContent connection to a helper function so that the WebDriver connection can re-use it.
2022-12-25Ladybird: Add new WebContent source file for WebDriver endpointsTimothy Flynn
2022-12-25Ladybird: Add subclass of WebSocket::WebSocketImpl using Qt networkingAndreas Kling
2022-12-25Ladybird: Clean up linked librariesLinus Groh
- Add Qt::Core, Qt::Gui, LibGfx, LibIPC, and LibJS to the ladybird target, remove LibGL, LibSoftGPU, and LibWebSocket - Add LibJS to the WebContent target, remove LibWebView - Order them properly :^) Regressed in https://github.com/SerenityOS/serenity/pull/15746. Fixes #108.
2022-12-25Ladybird: Ensure that installed ladybird can launch WebContent processAndrew Kaster
Always call platform_init after there's a QApplication, because in the installed configuration that's how we find the resources. Try QCoreApplication::applicationDirPath() after looking in ./WebContent for the WebContent process. In an installed configuration, ladybird and WebContent will both be in $PREFIX/bin. Add install rules for WebContent and its linked libraries, for if they ever differ from ladybird's.
2022-12-25Ladybird: Let Lagom build the IPC endpoints for WebContentAndreas Kling
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. :^)