summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/OutOfProcessWebView.h
AgeCommit message (Collapse)Author
2022-03-10Browser+LibWeb+WebContent: Show style for pseudo-elements :^)Sam Atkins
This expands the InspectorWidget::Selection to include an optional PseudoElement, which is then passed over IPC to request style information for it. As noted, this has some pretty big limitations because pseudo-elements don't have DOM nodes: - Declared style has to be recalculated when it's requested. - We don't display the computed style. - We don't display custom properties.
2022-03-10Browser: Show currently loading host and remaining resource countBen Abraham
2022-03-08Browser+LibWeb: Add an Element size preview widget to inspectorVrins
This Adds an element size preview widget to the inspector widget in a new tab. This functions similar to chrome and firefox and shows the margin, border, padding, and content size of the selected element in the inspector. The colors for the size preview widget are taken from the chrome browser.
2022-02-06LibWeb: Plumb OOPWV focus state across the IPC boundaryAndreas Kling
This makes focus outlines show up in OOPWV at last! :^)
2021-12-10Browser+LibWeb+WebContent: Add variables display to InspectorSam Atkins
This allows us to see which custom properties apply to a given element, which previously wasn't shown.
2021-11-11Everywhere: Pass AK::StringView by valueAndreas Kling
2021-10-31LibWeb+WebContent: Add set_preferred_color_scheme IPC callSam Atkins
This allows the owner of a WebView to override whether to use a dark theme or not, instead of just using the system theme's IsDark property.
2021-10-18LibWeb: Coalesce nested repaint requests instead of swallowing themAndreas Kling
Previously we would ignore repaint requests that came in via OOPWV while the WebContent process was busy with a previous paint request. This caused some easy-to-trigger bugs where the painted content would be "one paint behind", especially noticeable when scrolling.
2021-09-28LibWeb: Fire "keyup" events as well :^)Andreas Kling
This was easy, now that we have KeyboardEvent.
2021-09-27LibWeb+Browser: Make ad blocking work in the multi-process worldAndreas Kling
We now send the list of content filters over to new WebContent processes after creating an OutOfProcessWebView. :^)
2021-09-17LibWeb: Don't request WebContent repaint while we have repaints pendingAndreas Kling
This prevents flickering by ensuring that WebContent is only ever painting into the back buffer bitmap. Without this change, it was possible for WebContent to paint into the front buffer bitmap.
2021-09-17LibWeb: Make a SharedBitmap struct for OOPWV bitmapsAndreas Kling
Instead of having separate members for "bitmap ID" and "bitmap", let's wrap them in a struct.
2021-09-13LibWeb: Add the Web::URL namespace and move URLEncoder to itIdan Horowitz
This namespace will be used for all interfaces defined in the URL specification, like URL and URLSearchParams. This has the unfortunate side-effect of requiring us to use the fully qualified AK::URL name whenever we want to refer to the AK class, so this commit also fixes all such references.
2021-09-11LibWeb+WebContent: Add WebContentClient::did_request_scroll_to() callSam Atkins
This call sets the absolute scroll position for the window.
2021-09-11LibWeb+WebContent: Modify did_request_scroll() IPC to take x&y deltasSam Atkins
This is in preparation for implementing JS scrolling functions, which specify both x and y scrolling deltas. The visible behavior has not changed. Also, moved the "mouse wheel delta * 20" calculation to the `EventHandler` since the JS calls will want to work directly in pixels.
2021-09-08LibWeb+WebContent: Port DumpLayoutTree to OutOfProcessWebViewAndreas Kling
This required adding a simple OOPWV::dump_layout_tree() API that synchronously requests a dump of the layout tree from the WebContent process.
2021-09-06LibWeb+WebContent: Remove old console-logging IPC callsSam Atkins
This patch removes the following WebContent IPC calls, which are no longer used: - `Server::js_console_initialize()` - `Client::did_js_console_output()`
2021-09-06LibWeb+WebContent: Add new console-message IPC callsSam Atkins
This patch introduces three new IPC calls for WebContent: - `Client::did_output_js_console_message(index)`: Notifies the client that a new console message was logged. - `Server::js_console_request_messages(start_index)`: Ask the server for console messages starting at the given index. - `Client::did_get_js_console_messages(start_index, types, messages)`: Send the client the messages they requested. This mechanism will replace the current `Client::did_js_console_output()` call in the next few commits. This will allow us to display messages in the console that happened before the console was opened.
2021-09-02LibWeb+WebContent: Add query for hovered DOM node to OOPWVSam Atkins
This is needed for the "Inspect Element" context menu action.
2021-09-02LibWeb+WebContent: Implement asynchronous DOM Node properties callSam Atkins
This lets us "push" a new style-properties list to the DOM Inspector, for example when JS changes the style of the inspected node.
2021-09-02LibWeb+WebContent: Add inspect_dom_node() IPC callSam Atkins
This is the IPC version of `Document::set_inspected_node()`, using a node ID. We return the inspected node's style properties as JSON, so that the DOM Inspector can immediately display them.
2021-08-24LibWeb+WebContent: Add a simple API for running arbitrary JavaScriptAndreas Kling
This patch adds OutOfProcessWebView::run_javascript(StringView). This can be used by the OOPWV embedder to execute arbitrary JavaScript in the top-level browsing context on the WebContent process side.
2021-07-14LibWeb: Add OOPWV IPC for selecting all textTimothy Flynn
2021-07-14LibWeb: Add OOPWV IPC for retrieving selected textTimothy Flynn
2021-06-29LibWeb+WebContent: Add IPC flow for Inspect DOM TreeAdam Hodgen
Add `inspect_dom_tree` to WebContentServer and 'did_get_dom_tree' to WebContentClient. These two async methods form a request & response for requesting a JSON representation of the Content's DOM tree.
2021-06-20WindowServer: Add initial support for rendering on multiple screensTom
This allows WindowServer to use multiple framebuffer devices and compose the desktop with any arbitrary layout. Currently, it is assumed that it is configured contiguous and non-overlapping, but this should eventually be enforced. To make rendering efficient, each window now also tracks on which screens it needs to be rendered. This way we don't have to iterate all the windows for each screen but instead use the same rendering loop and then only render to the screen (or screens) that the window actually uses.
2021-05-03LibGUI: Rename ScrollableWidget => AbstractScrollableWidgetAndreas Kling
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-16Browser+LibWeb+WebContent: Parse cookies in the OOP tabTimothy Flynn
To protect the main Browser process against nefarious cookies, parse the cookies out-of-process and then send the parsed result over IPC to the main process. This way, if the cookie parser blows up, only that tab will be affected.
2021-04-14Browser+LibWeb+WebContent: Track the source of document.cookie requestsTimothy Flynn
To implement the HttpOnly attribute, the CookieJar needs to know where a request originated from. Namely, it needs to distinguish between HTTP / non-HTTP (i.e. JavaScript) requests. When the HttpOnly attribute is set, requests from JavaScript are to be blocked.
2021-04-11LibWeb+WebContent: Hook document.cookie to the backend cookie storageTimothy Flynn
2021-04-11LibWeb+WebContent: Support image context menus in OOPWVAndreas Kling
You can now right-click images in web content and get a context menu.
2021-04-04LibWeb+WebContent: Keep track of screen rectLinus Groh
It is now possible to get the up-to-date screen rect from a Web::Page.
2021-03-30LibWeb+WebContent: Support displaying tooltips in OOPWVTimothy Flynn
2021-03-26LibWeb+WebContent: Support displaying favicons in OOPWVTimothy Flynn
In single process mode, the browser will display a page's favicon in both the location bar and tab. This adds the same support for multi- process mode.
2021-03-02LibWeb: Handle scrolling an OutOfProcessWebViewAngus Gibson
When a mousewheel scroll event isn't handled by the web content itself (e.g. an overflowed box or similar), the event needs to get passed back up to the OutOfProcessWebView.
2021-02-28LibWeb: Support setting the cursor in OutOfProcessWebViewAdam Hodgen
2021-02-28LibWeb: Add in all of the plumbing required to use the JS console over IPCBrandon Scott
2021-02-23LibWeb: Added get source functionality and hook eventBrandon Scott
2021-02-22LibWeb: Plumb wheel events from widget layer to EventHandlerAndreas Kling
2021-02-22LibWeb: Defer the handling of WebContent process crashesAndreas Kling
Handling crashes synchronously is finicky since we're modifying the m_client_state struct while in a callback lambda owned by it. Let's avoid all the footguns here by simply using deferred_invoke() and handling the crash on next event loop iteration instead.
2021-02-20LibWeb: Implement Window.prompt()Linus Groh
2021-02-10LibWeb+WebContent: Support window.confirm() in OOPWVAndreas Kling
2021-02-09LibWeb: Make OOPWV resizing flicker-free :^)Andreas Kling
When resizing, keep a copy of the last good bitmap we have, and keep using that until we receive a new one from the WebContent process.
2021-01-31Browser+LibWeb+WebContent: Make the "Debug" menu work in multi-processAndreas Kling
This patch adds an IPC call for debugging requests. It's stringly typed and very simple, and allows us to easily implement all the features in the Browser's Debug menu.
2021-01-30LibWeb: Handle WebContent process crashes gracefully :^)Andreas Kling
The OOPWV will now detect WebContent process crashes/disconnections and simply create a new WebContent process in its place. We also generate a little error page with a link to the crashing URL so you can reload and try again. This a huge step forward for OOPWV since it now has a feature that IPWV can never replicate. :^)
2021-01-16LibWeb+WebContent: Use anonymous files for OOPWV backing storesAndreas Kling
To support this, the GUI process and the WebContent service will now coordinate their backing store bitmaps. Each backing store can be referred to by a serial ID, and we don't need to keep resending it as a file descriptor. We should probably do something similar in WindowServer. :^)
2021-01-12Libraries: Move to Userland/Libraries/Andreas Kling