aboutsummaryrefslogtreecommitdiffstats
path: root/ports
Commit message (Collapse)AuthorAgeFilesLines
* Migrate to the 2024 edition (#35755)Simon Wülker2025-03-135-34/+37
| | | | | | | | | | | | | | | | | | | | | | * Migrate to 2024 edition Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Allow unsafe_op_in_unsafe_fn lint This lint warns by default in the 2024 edition, but is *way* too noisy for servo. We might enable it in the future, but not now. Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Compile using the 2024 edition Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Remove legacy layout (layout 2013) (#35943)Oriol Brufau2025-03-132-8/+0
| | | | | | We were already not compiling it and not running tests on it by default. So it's simpler to just completely remove it. Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* ohos: Remove direct link to ace_napi.z (#35921)Jonathan Schwender2025-03-111-4/+0
| | | | | | The underlying issue was solved in napi-ohos 1.0.2, and we have already updated to 1.0.4 Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* servoshell: Allow keyboard interaction with dialogs (enter / escape) (#35673)chickenleaf2025-03-101-11/+33
| | | Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* Allow domain-like as URL location input (#35756)Kafji2025-03-102-9/+94
| | | | | | | | | | | | | | | | | | | | | | | | * Allow domain-like as URL location input Before this patch, domain with subdomain (e.g. book.servo.org) won't be treated as URL location. This patch retifies that by adding Firefox's location bar behavior: - book.servo.org is URL location - book.servo.org. is URL location - .book.servo.org is not URL location Fixes #35754. Signed-off-by: Kafji <k@kafji.net> * Chain location input interpretation attempts Signed-off-by: Kafji <k@kafji.net> --------- Signed-off-by: Kafji <k@kafji.net>
* Remove obsolete memory profiler console output (#35861)webbeef2025-03-081-13/+0
| | | Signed-off-by: webbeef <me@webbeef.org>
* build(deps): bump egui_glow in the egui-related group (#35838)dependabot[bot]2025-03-071-1/+1
| | | | | | | | | | | | | | | | | | | | Bumps the egui-related group with 1 update: [egui_glow](https://github.com/emilk/egui). Updates `egui_glow` from 0.31.0 to 0.31.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.31.0...0.31.1) --- updated-dependencies: - dependency-name: egui_glow dependency-type: direct:production update-type: version-update:semver-patch dependency-group: egui-related ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump android_logger from 0.14.1 to 0.15.0 (#35840)dependabot[bot]2025-03-071-1/+1
| | | | | | | | | | | | | | | | Bumps [android_logger](https://github.com/rust-mobile/android_logger-rs) from 0.14.1 to 0.15.0. - [Release notes](https://github.com/rust-mobile/android_logger-rs/releases) - [Changelog](https://github.com/rust-mobile/android_logger-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-mobile/android_logger-rs/compare/0.14.1...v0.15.0) --- updated-dependencies: - dependency-name: android_logger dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Add an about:memory page (#35728)webbeef2025-03-071-0/+3
| | | | | | | | | | | | | | | | | This patch exposes a servo internal DOM API that is only made available to about: pages on the navigator object to request memory reports. The about:memory page itself is loaded like other html resources (eg. bad cert, net error) and makes use of this new API. On the implementation side, notable changes: - components/script/routed_promise.rs abstracts the setup used to fulfill a promise when the work needs to be routed through the constellation. The goal is to migrate other similar promise APIs in followup (eg. dom/webgpu/gpu.rs, bluetooth.rs). - a new message is added to request a report from the memory reporter, and the memory reporter creates a json representation of the set of memory reports. - the post-processing of memory reports is done in Javascript in the about-memory.html page, providing the same results as the current Rust code that outputs to stdout. We can decide later if we want to remove the current output. Signed-off-by: webbeef <me@webbeef.org>
* build(deps): bump the egui-related group with 5 updates (#35810)dependabot[bot]2025-03-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps the egui-related group with 5 updates: | Package | From | To | | --- | --- | --- | | [egui](https://github.com/emilk/egui) | `0.31.0` | `0.31.1` | | [egui-winit](https://github.com/emilk/egui) | `0.31.0` | `0.31.1` | | [ecolor](https://github.com/emilk/egui) | `0.31.0` | `0.31.1` | | [emath](https://github.com/emilk/egui) | `0.31.0` | `0.31.1` | | [epaint](https://github.com/emilk/egui) | `0.31.0` | `0.31.1` | Updates `egui` from 0.31.0 to 0.31.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.31.0...0.31.1) Updates `egui-winit` from 0.31.0 to 0.31.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.31.0...0.31.1) Updates `ecolor` from 0.31.0 to 0.31.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.31.0...0.31.1) Updates `emath` from 0.31.0 to 0.31.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.31.0...0.31.1) Updates `epaint` from 0.31.0 to 0.31.1 - [Release notes](https://github.com/emilk/egui/releases) - [Changelog](https://github.com/emilk/egui/blob/master/CHANGELOG.md) - [Commits](https://github.com/emilk/egui/compare/0.31.0...0.31.1) --- updated-dependencies: - dependency-name: egui dependency-type: direct:production update-type: version-update:semver-patch dependency-group: egui-related - dependency-name: egui-winit dependency-type: direct:production update-type: version-update:semver-patch dependency-group: egui-related - dependency-name: ecolor dependency-type: indirect update-type: version-update:semver-patch dependency-group: egui-related - dependency-name: emath dependency-type: indirect update-type: version-update:semver-patch dependency-group: egui-related - dependency-name: epaint dependency-type: indirect update-type: version-update:semver-patch dependency-group: egui-related ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* servoshell: Minor fixes to cli help. (#35794)Jonathan Schwender2025-03-041-2/+2
| | | | | | | | Fixes the `--pref` enable hint to use `_` instead of dots. Remove `--prefs-file` from the hint, since the hint is placed directly after the long option. (The help line displayed as `--prefs-file --prefs-file /path/to/prefs.json` before). Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* Update rustfmt to the 2024 style edition (#35764)Simon Wülker2025-03-0316-26/+28
| | | | | | | | | | | | | * Use 2024 style edition Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Reformat all code Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* servoshell: Rename `Minibrowser::is_in_browser_rect` to ↵Martin Robinson2025-03-031-4/+4
| | | | | | | | | `Minibrowser::is_in_egui_toolbar_rect` (#35717) "browser rect" is a bit of a misnomer as the browser is the entire window, but this function is trying to determine if a point is on the non-WebView toolbar portion of the GUI. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Set a valid default value for the --userscripts command line option (#35740)webbeef2025-03-021-1/+1
| | | | | This prevents a crash when not specifying the path and matches the help message for that option. Signed-off-by: webbeef <me@webbeef.org>
* servoshell: Read prefs.json from bundle on OHOS (#35581)Narfinger2025-03-012-3/+17
| | | | | | | | | | | | | | | | | * Allows to read the prefs.json from the hap bundle on OHOS. Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> * incorporate suggestions Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> * incoroporate requested changes Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> --------- Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
* libservo: Stop double-buffering `OffscreenRenderingContext` (#35638)Martin Robinson2025-02-281-7/+1
| | | | | | | | | | | The `OffscreenRenderingContext` does not need to be double-buffered. Instead, when resizing the framebuffer, create a new one and blit the old contents onto the new surface. This allows immediately displaying the contents without having to render paint the WebRender scene one more time. In addition to speeding up the rendering pipeline, the goal here is to reduce flickering during resizes (though there is more work to do). Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Remove tinyfiledialogs dependency (#35674)chickenleaf2025-02-271-1/+0
| | | Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* layout: Implement a non-recursive version of CSS `quotes` (#34770)Xiaocheng Hu2025-02-271-0/+1
| | | | | | | | | | | | | | | | | * Squash and don't explicitly use noto-cjk in tests Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com> * Mark quotes-034.html.ini failure Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com> * Address review comments Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com> --------- Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com>
* libservo: Clean up interfaces for alert()/confirm()/prompt() (#35579)Delan Azabani2025-02-277-161/+163
| | | Signed-off-by: Delan Azabani <dazabani@igalia.com>
* libservo: Add `WebView` immediately to the Compositor (#35662)Martin Robinson2025-02-262-8/+8
| | | | | | | | | When creating a `WebView`, let the Compositor know synchronously that it exists. This allows the embedder to immediately call methods like `WebView::focus()`. In addition remove messages associated with the `WebViewDelegate::notify_ready_to_show()` method (and the method itself), as now `WebView`s can be shown immediately. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Allow webdriver screenshots to occur immediately upon request. (#35677)Josh Matthews2025-02-261-1/+1
| | | Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Blocks all background webview interactions when a dialog is open (#35671)chickenleaf2025-02-263-8/+26
| | | Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* servoshell: Port SelectDevice dialog code to use egui instead of ↵chickenleaf2025-02-262-38/+69
| | | | | tinyfiledialogs (#35657) Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* libservo: Move size handling to `RenderContext` from `WindowMethods` (#35621)Martin Robinson2025-02-259-91/+30
| | | | | | | | | | | | | | | | | | | | | This is the first step toward removing `WindowMethods`, which will gradually be integrated into the `WebView` and `WebViewDelegate`. Sizing of the `WebView` is now handled by the a size associated with a `RenderingContext`. `WebView`s will eventually just paint the entire size of their `RenderingContext`. Notes: - This is transitionary step so now there is a `WebView::resize` and a `WebView::move_resize`. The first is the future which will resize the `WebView` and its associated `RenderingContext`. The second is a function that the virtual `WebView`s that will soon be replaced by a the one-`WebView` per `WebView` model. - We do not need to call `WebView::move_resize` at as much any longer because the default size of the `WebView` is to take up the whole `RenderingContext`. - `SurfmanRenderingContext` is no longer exposed in the API, as a surfman context doesn't naturally have a size unless a surface is bound to it. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* servoshell: Fall back to PNG format when outputting an image (#35648)Martin Robinson2025-02-251-2/+5
| | | | | | | | | | | | | | | | | A recent change, #35538 added the ability to dump different output image formats. Unfortunately, this necessitated adding a file extension to the output image for WPT tests. This had two problems: 1. The original change never landed properly in WPT for unknown reasons. 2. It interfered with the way that temporary files were cleaned up during WPT runs. This change modifies the image dumping code to fall back to PNG format when there is no valid file extension on the output image and reverts the change made to the WPT runner. Fixes #35635. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* feat: support IME cursor area (#35623)DK Liao2025-02-251-2/+12
| | | | | | | | | | | | | | | | | * feat: support IME cursor area Signed-off-by: DK Liao <dklassic@gmail.com> * use winit::dpi for LogicalPosition instead Signed-off-by: DK Liao <dklassic@gmail.com> * perform ./mach fmt Signed-off-by: DK Liao <dklassic@gmail.com> --------- Signed-off-by: DK Liao <dklassic@gmail.com>
* Touch handler: Fix race condition and rate-limit move events (#35537)Bi Fuguo2025-02-252-36/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * TouchSequenceInfo is added to store information about a touch sequence. For details about TouchSequenceInfo, see the code comments. The handling_touch_move attribute is added to the TouchHandler, indicating that the script is processing the touch move event. When handling_touch_move is set to true, the touch move event does not need to be sent to the script thread. Signed-off-by: kongbai1996 <1782765876@qq.com> * move touch state, active_touch_point and handling_touch_move to TouchSequenceInfo form TouchHandler. remove TouchSequenceInfo end_sequence property, add Finished state mark sequence end. if preventDefault on touchup, do not prevent Fling. Signed-off-by: kongbai1996 <1782765876@qq.com> * Refactor Touchhandler - Add a newtype wrapper for the TouchSequenceId - Move more state back into the TouchSequenceState - Rename TouchAction to TouchMoveAction, since it only covers immediate actions now. Everything else is handled via state, since it needs to wait on the handler. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Fix test-tidy Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Fix clippy missing-default lint Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Fix remaining clippy lints Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Remove accidental committed test file Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Remove wrong todo comment (move events that are sent to script are just raw touchpoints, no merging needed) Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> * Fix preventdefault after long touch_down handler Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> --------- Signed-off-by: kongbai1996 <1782765876@qq.com> Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> Co-authored-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* Update to rust 1.85 (#35628)Simon Wülker2025-02-242-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | * Update to rust 1.85 This is needed for cargo-deny Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Upgrade crown Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Clippy fixes Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> * Re-upgrade cargo-deny to 0.18 Keeping it locked to 0.18 just in case they update their required rustc version again Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> --------- Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* chore: silence unused import warning in app_state.rs (#35612)Yerkebulan Tulibergenov2025-02-231-2/+1
| | | Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
* servoshell: Port Permission dialog code to use egui instead of ↵chickenleaf2025-02-212-30/+49
| | | | | tinyfiledialogs (#35577) Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* fix(servoshell): blank view when close non focused tab (#35569)Jason Tsai2025-02-211-1/+3
| | | Signed-off-by: Jason Tsai <git@pews.dev>
* compositing: Move image output and shutdown management out of the compositor ↵Martin Robinson2025-02-208-42/+91
| | | | | | | | | | | | | | | | | | | | | | | (#35538) This is a step toward the renderer-per-WebView goal. It moves various details out of `IOCompositor`. - Image output: This is moved to servoshell as now applications can access the image contents of a `WebView` via `RenderingContext::read_to_image`. Most options for this are moved to `ServoShellPreferences` apart from `wait_for_stable_image` as this requires a specific kind of coordination in the `ScriptThread` that is also very expensive. Instead, paint is now simply delayed until a stable image is reached and `WebView::paint()` returns a boolean. Maybe this can be revisited in the future. - Shutdown: Shutdown is now managed by libservo itself. Shutdown state is shared between the compositor and `Servo` instance. In the future, this sharing might be unecessary. - `CompositeTarget` has been removed entirely. This no longer needs to be passed when creating a Servo instance. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>
* libservo: Move GL acclerated media setup out of `RenderingContext` and ↵Martin Robinson2025-02-203-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | simplify it (#35553) This moves the GL accelerated media setup out of `RenderingContext` which prevents making libservo dependo on the Wayland and X11 versions of surfman explicitly. This support is experimental and (honestly) a bit broken. I've confirmed that this works as well as it did before the change. The main thing here is that the configuration, which currently needs surfman types, moves to servoshell. In addition: 1. Instead of passing the information to the Constellation, the setup is stored statically. This is necessary to avoid introducing a dependency on `media` in `webrender_traits`. It's quite likely that `media` types should move to the internal embedding API to avoid this. This is preserved for a followup change. 2. The whole system of wrapping the media channels in an abstract type is removed. They could be either mpsc channels or IPC channels. This was never going to work because mpsc channels cannot be serialized and deserialized with serde. Instead this just uses IPC channels. We also have other ways of doing this kind of abstraction in Servo so we do not need another. The `mpsc` version was hard-coded to be disabled. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* chore: cleanup IME code for Servoshell (#35546)DK Liao2025-02-201-11/+12
| | | Signed-off-by: DK Liao <dklassic@gmail.com>
* servoshell: Port Authentication dialog code to use egui intead of ↵chickenleaf2025-02-192-9/+78
| | | | | tinyfiledialogs (#35507) Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* feat: support pre-edit text display for IME (#35535)DK Liao2025-02-193-0/+68
| | | | | | | | | | | | | * feat: support pre-edit text display for IME Signed-off-by: DK Liao <dklassic@gmail.com> * enable ime by show_ime Signed-off-by: DK Liao <dklassic@gmail.com> --------- Signed-off-by: DK Liao <dklassic@gmail.com>
* libservo: Rework and clarify the rendering model of the `WebView` (#35522)Martin Robinson2025-02-194-29/+26
| | | | | | | | | | | | | | | | | Make the rendering model of the `WebView` clearer: 1. `WebViewDelegate::notify_new_frame_ready()` indicates that the WebView has become dirty and needs to be repainted. 2. `WebView::paint()` asks Servo to paint the contents of the `WebView` into the `RenderingContext`. 3. `RenderingContext::present()` does a buffer swap if the `RenderingContext` is actually double-buffered. This is documented and all in-tree embedders are updated to work with this new model. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* libservo: Expose `SoftwareRenderingContext` and `WindowRenderingContext` ↵Martin Robinson2025-02-189-167/+128
| | | | | | | | | | | | | | (#35501) Expose two easy-to-use wrappers around `SurfmanRenderingContext` that make the API simpler to use: - `WindowRenderingContext`: This `RenderingContext` is a newtype around `SurfmanRenderingContext` takes a `raw-window-handle` display and window and creates a full window rendering context. - `SoftwareRenderingContext`: is wraps `SurfmanRenderingContext` and adds a swap chain in order to expose a software GL rendering context. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Make WebBluetooth an optional feature. (#35479)Josh Matthews2025-02-181-1/+1
| | | Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* implement Touchevent prevent default behavior (#35031)Bi Fuguo2025-02-173-26/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * implement Touchevent prevent default behavior * The status change logic of the `TouchHandler` is changed. > The `WaitingForScript` state is canceled. TouchAction can be identified based on the current touch type and numbers if touch points. * Sends current event to script thread along with recognized `TouchAction`. > After dispatch event, script thread sends a `TouchEventProcess(EventResult)` message to main thread. If the event is set to `DefaultAllowed`, the corresponding `TouchAction` information is added. * After receiving `DefaultAllowed(TouchAction)` message, main thread executes corresponding action. > `DefaultPrevented(TouchEventType)` is received. Use `prevent_click` to mark that the default `Click` is blocked, and `prevent_move` to mark that the default `Scroll` and `Zoom` are blocked. In this way, all TouchActions implement preventDefault. Signed-off-by: Bi Fuguo <1782765876@qq.com> * fix some suggestions * support preventDefault fling * move `TouchAction` to share touch directory * check preventDefault everytime when touch * fix zoom ineffective Signed-off-by: Bi Fuguo <1782765876@qq.com> * fix some suggestions rename on_event_processed to on_touch_event_processed clear unused features Signed-off-by: Bi Fuguo <1782765876@qq.com> * Optimizes pan performance by continuously sliding without waiting for the eventhandler. Signed-off-by: kongbai1996 <1782765876@qq.com> * resolve conflict Signed-off-by: kongbai1996 <1782765876@qq.com> --------- Signed-off-by: Bi Fuguo <1782765876@qq.com> Signed-off-by: kongbai1996 <1782765876@qq.com>
* libservo: Expose an `OffscreenRenderingContext` and use it for servoshell ↵Martin Robinson2025-02-176-248/+205
| | | | | | | | | | | | | | | | | | (#35465) Create a new `RenderingContext` which is used to render to a `SurfmanRenderingContext`-related offscreen buffer. This allows having a temporary place to render Servo and then blitting the results to a subsection of the parent `RenderingContext`. The goal with this change is to remove the details of how servoshell renders from the `Compositor` and prepare for the compositor-per-WebView world. Co-authred-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me> Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* servoshell: Actually set the Servo delegate in servoshell (#35502)Martin Robinson2025-02-162-3/+8
| | | | | | This was implemented, but unset. Fixes #35481. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* servoshell: Port input dialog code to use egui intead of tinyfiledialogs ↵chickenleaf2025-02-142-47/+56
| | | | | (#35464) Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* libservo: change 'request_fullscreen_state_change' API to a notification ↵Mukilan Thiyagarajan2025-02-131-1/+1
| | | | | (#35445) Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Use surfman with glow bindings (take II) (#35422)Samson2025-02-131-1/+1
| | | | | | | | | | | | | | | * Reapply "Use surfman with glow bindings (#34328)" (#35402) This reverts commit 0fed99590a9377d8be071e457ecb1b3284f9ef27. Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * update surfman Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* (chore): tinyfiledialog::MessageBoxIcon is only used on Linux (#35441)webbeef2025-02-131-1/+2
| | | | | This was causing a compilation warning on Mac and Windows. Signed-off-by: webbeef <me@webbeef.org>
* Update window.screenX and window.screenY when moving the embedder window ↵webbeef2025-02-132-22/+23
| | | | | (#35246) Signed-off-by: webbeef <me@webbeef.org>
* libservo: Expose a single `InputEvent` type and pass it to script (#35430)Martin Robinson2025-02-124-106/+136
| | | | | | | | | | | | | | | | | | | | | | | | This change exposes a single `InputEvent` type and now there is only a single delegate method for this `WebViewDelegate::notify_input_event`. - Clipboard events are now handled as `EditingAction` inpute events. In the future this can include things like "Select All", etc. In addition, many parts of the dance to pass these events can now be simplified due to this abstraction. - All forwarded events are handled the same way in the `Constellation`, though they may carry an optional hit test (for events that have a `point`) which affects which `Pipeline` they are sent to. - In the `ScriptThread` we now accept these `InputEvents` and use them everywhere. Now all "compositor events" are "input events". - This allows removing several data structures which are no longer necessary. - We no longer inform the embedder when an event was handled by a WebView as that was only important for a MDI feature that will no longer be so important the full-featured `WebView` API. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* servoshell: Port alert/confirm dialog code to use egui intead of ↵chickenleaf2025-02-122-91/+140
| | | | | tinyfiledialogs (#35399) Signed-off-by: L Ashwin B <lashwinib@gmail.com>
* libservo: Don't bounce ready-to-present frame notifications to the ↵Martin Robinson2025-02-122-16/+0
| | | | | | | | | | | | | | | Constellation (#35369) Instead of telling the Constellation to tell the embedder that new frames are ready, have the compositor tell the embedder directly. This should reduce frame latency. Now, after processing compositor updates, run any pending `WebView::new_frame_ready` delegate methods. This change also removes the `refresh` call from the Java interface as that was the only other place that the compositor was rendering the WebRender scene outside of event looping spinning. This `refresh` call was completely unused. Signed-off-by: Martin Robinson <mrobinson@igalia.com>