1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-08 05:27:14 +09:00
ladybird/Libraries/LibWebView
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
..
EventLoop LibCore: Remove unused methods from EventLoop 2025-01-30 15:34:02 -07:00
Plugins LibWeb+LibWebView: Allow to specify default font size in FontPlugin 2025-01-02 10:47:21 +01:00
Application.cpp LibWebView+WebContent: Remove "styled" JS console IPC hooks 2025-03-27 14:14:02 +00:00
Application.h LibWeb/CSS: Move and rename PseudoElement types to prep for code gen 2025-03-24 09:49:50 +00:00
Attribute.cpp
Attribute.h
BrowserProcess.cpp LibWebView+UI: Introduce a persistent settings object 2025-03-22 17:27:45 +01:00
BrowserProcess.h LibWebView+UI: Rename ChromeProcess to BrowserProcess 2025-03-15 19:57:27 -04:00
CMakeLists.txt LibWeb+LibWebView+WebContent: Introduce a WebUI framework 2025-03-28 07:31:10 -04:00
ConsoleOutput.cpp LibDevTools+LibWebView+WebContent: Report exceptions to DevTools 2025-03-27 14:14:02 +00:00
ConsoleOutput.h LibDevTools+LibWebView+WebContent: Report exceptions to DevTools 2025-03-27 14:14:02 +00:00
CookieJar.cpp LibWebView: Consider wss a secure scheme for Secure cookies 2025-01-21 21:36:05 +01:00
CookieJar.h LibWebView: Add method to remove all cookies globally 2025-01-05 13:58:27 +00:00
Database.cpp
Database.h
DOMNodeProperties.cpp LibDevTools+LibWebView+WebContent: Selectively fetch DOM node properties 2025-03-20 09:01:26 +01:00
DOMNodeProperties.h LibDevTools+LibWebView+WebContent: Selectively fetch DOM node properties 2025-03-20 09:01:26 +01:00
Forward.h LibWeb+LibWebView+WebContent: Introduce a WebUI framework 2025-03-28 07:31:10 -04:00
HelperProcess.cpp LibWebView+WebWorker: Attach an image decoder to worker instances 2025-03-27 17:47:27 +00:00
HelperProcess.h LibWebView: Create a spare WebContent process 2025-03-11 12:10:42 +01:00
MachPortServer.cpp LibWebView+Services+UI: Move process helpers to LibWebView 2024-11-11 07:35:43 -05:00
MachPortServer.h LibWebView+Services+UI: Move process helpers to LibWebView 2024-11-11 07:35:43 -05:00
Mutation.cpp LibWeb+LibWebView+WebContent: Inform the UI about DOM mutations 2025-03-08 01:25:55 +01:00
Mutation.h LibWeb+LibWebView+WebContent: Inform the UI about DOM mutations 2025-03-08 01:25:55 +01:00
Native.css
Options.h LibWebView+UI: Introduce a persistent settings object 2025-03-22 17:27:45 +01:00
PageInfo.h
Process.cpp LibWebView: Port to Windows 2025-03-19 20:25:24 -06:00
Process.h AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
ProcessHandle.cpp
ProcessHandle.h
ProcessManager.cpp LibWebView: Port to Windows 2025-03-19 20:25:24 -06:00
ProcessManager.h LibWebView: Remove now-unused ProcessManager HTML generator 2025-03-19 10:03:17 -04:00
ProcessType.h LibWebView: Rename the Chrome process type to Browser 2025-03-15 19:57:27 -04:00
SearchEngine.cpp LibWebView+UI: Introduce a persistent settings object 2025-03-22 17:27:45 +01:00
SearchEngine.h LibWebView+UI: Introduce a persistent settings object 2025-03-22 17:27:45 +01:00
Settings.cpp LibWebView: Move stored settings to the system configuration directory 2025-03-24 22:55:35 +01:00
Settings.h LibWebView+UI: Introduce a persistent settings object 2025-03-22 17:27:45 +01:00
SiteIsolation.cpp LibWebView: Keep javascript URL navigations in the same process 2025-03-16 10:59:41 -04:00
SiteIsolation.h LibWebView+WebContent: Add a command-line flag to disable site isolation 2025-03-12 02:00:54 +00:00
SourceHighlighter.cpp Everywhere: Replace miscellaneous references to the chrome process 2025-03-15 19:57:27 -04:00
SourceHighlighter.h LibWebView: Handle missing URL for view source 2025-03-04 16:24:19 -05:00
UIProcessClient.ipc
UIProcessServer.ipc
URL.cpp LibWebView: Better integration of sanitize_url with search 2025-03-27 18:30:08 -04:00
URL.h LibURL+LibWebView: Move public suffix data to LibURL 2024-11-30 12:07:39 +01:00
UserAgent.cpp
UserAgent.h
Utilities.cpp LibWebView: Port to Windows 2025-03-19 20:25:24 -06:00
Utilities.h LibWebView+Services+UI: Move process helpers to LibWebView 2024-11-11 07:35:43 -05:00
ViewImplementation.cpp UI: Fix new error page 2025-03-27 08:34:38 +00:00
ViewImplementation.h LibWebView+WebContent: Remove "styled" JS console IPC hooks 2025-03-27 14:14:02 +00:00
WebContentClient.cpp LibWeb+LibWebView+WebContent: Introduce a WebUI framework 2025-03-28 07:31:10 -04:00
WebContentClient.h LibWeb+LibWebView+WebContent: Introduce a WebUI framework 2025-03-28 07:31:10 -04:00
WebUI.cpp LibWeb+LibWebView+WebContent: Introduce a WebUI framework 2025-03-28 07:31:10 -04:00
WebUI.h LibWeb+LibWebView+WebContent: Introduce a WebUI framework 2025-03-28 07:31:10 -04:00