1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 17:44:56 +09:00
ladybird/Meta
Timothy Flynn 41aeb9e63a LibWeb+LibWebView+WebContent: Introduce a WebUI framework
When we build internal pages (e.g. about:settings), there is currently
quite a lot of boilerplate needed to communicate between the browser and
the page. This includes creating IDL for the page and the IPC for every
message sent between the processes.

These internal pages are also special in that they have privileged
access to and control over the browser process.

The framework introduced here serves to ease the setup of new internal
pages and to reduce the access that WebContent processes have to the
browser process. WebUI pages can send requests to the browser process
via a `ladybird.sendMessage` API. Responses from the browser are passed
through a WebUIMessage event. So, for example, an internal page may:

    ladybird.sendMessage("getDataFor", { id: 123 });

    document.addEventListener("WebUIMessage", event => {
        if (event.name === "gotData") {
            console.assert(event.data.id === 123);
        }
    });

To handle these messages, we set up a new IPC connection between the
browser and WebContent processes. This connection is torn down when
the user navigates away from the internal page.
2025-03-28 07:31:10 -04:00
..
CMake AK: Don't assert things about active union members in StringBase 2025-03-27 15:58:57 +00:00
gn LibWeb: Generate pseudo-element code from JSON 2025-03-24 09:49:50 +00:00
Lagom LibWeb+LibWebView+WebContent: Introduce a WebUI framework 2025-03-28 07:31:10 -04:00
check-debug-flags.sh Meta: Make check-debug-flags.sh runnable in Bash 3.2 2024-07-16 09:13:14 -06:00
check-html-doctype.py Meta: Make CI enforce doctype in test cases 2025-03-20 11:50:49 +01:00
check-idl-files.py Meta: Disallow links to single-page HTML spec 2025-02-05 16:04:50 -07:00
check-newlines-at-eof.py Meta: Don't check for newlines at EOF in Tests/LibWeb/Ref/ 2025-01-25 10:16:21 +01:00
check-png-sizes.sh Meta: Make missing optipng fatal in CI 2025-02-12 17:37:42 +00:00
check-style.py LibCore: Implement System::socketpair on Windows 2025-02-14 09:38:59 -07:00
configure-clangd.sh Meta: Script to configure clangd according to build type 2024-08-05 23:44:03 -06:00
debug.plist CMake: Add a command for codesigning with the get-task-allow entitlement 2024-07-02 16:57:51 -06:00
embed_as_string.py Meta: Make embed_as_string_view.py produce Strings instead 2024-09-03 10:12:07 +01:00
find_compiler.sh Meta: Update to clang-19 in CI and build instructions 2024-12-28 05:39:32 -08:00
generate-libwasm-spec-test.py LibWasm: Ignore tests that check that we don't support 2+ memories 2024-07-14 11:26:52 +02:00
generate-libwasm-spec-test.sh Meta: Run the Wasm spec tests in CI 2021-05-27 17:28:41 +04:30
generate_clang_module_map.py Meta+LibGfx: Exclude Metal and Vulkan headers from Clang module map 2024-11-15 10:51:45 -07:00
import-wpt-test.py Tests: Import URLs surrounded by single quotes 2025-03-28 09:41:06 +00:00
ladybird.sh Meta: Move the vcpkg installation/cache directories under Build 2024-11-06 10:38:57 -07:00
lint-ci.sh Meta: Make CI enforce doctype in test cases 2025-03-20 11:50:49 +01:00
lint-clang-format.sh Meta: Switch to clang-format-19 as the standard formatter 2024-12-28 05:39:32 -08:00
lint-commit.sh CI: Add a check to report git merge commit 2022-12-10 12:07:06 +00:00
lint-executable-resources.sh Tests: Prevent executable images or html files during lint 2024-10-25 09:00:52 +02:00
lint-gn.sh Meta: Make gn linter actually fail 2025-03-07 09:44:42 +01:00
lint-prettier.sh Meta+LibJS: Upgrade to prettier version 3.3.3 2024-11-06 15:10:27 -05:00
lint-python.sh Meta: Make all pre-commit CI scripts work with Bash 3.2 2024-07-16 08:56:22 -06:00
lint-shell-scripts.sh Meta: Make all pre-commit CI scripts work with Bash 3.2 2024-07-16 08:56:22 -06:00
lint-swift.sh Meta: Add swift-format linter script 2024-10-01 13:33:05 -06:00
refresh-ladybird-qtcreator.sh Meta+Documentation: Update config for QtCreator 2024-12-02 09:45:32 +00:00
shell_include.sh Meta: Make shell_include.sh compatible with busybox 2025-03-26 20:59:01 +00:00
WPT.sh Meta: Increase max open file descriptors in WPT.sh 2025-03-25 16:24:06 -04:00