Commit graph

379 commits

Author SHA1 Message Date
Delan Azabani
3a32af0c85
Plumb URL into interval profiler tracing events (#34337)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-11-22 13:31:00 +00:00
Jonathan Schwender
a6db3cb702
Disable layout-2013 feature by default (#34290)
Most of the time layout-2013 is not needed and just
wastes build time. Disable the optional feature by
default and require users to specify the feature
at compile time if they wish to use the legacy layout.

In CI we enable the feature by default for Linux, since
that we need it for wpt tests with the legacy layout
and CI should ensure that the legacy code continues
to compile.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-11-21 12:24:57 +00:00
dependabot[bot]
2bc5469efe
build(deps): bump the napi-ohos-related group with 4 updates (#34309)
Bumps the napi-ohos-related group with 4 updates: [napi-derive-ohos](https://github.com/ohos-rs/ohos-rs), [napi-ohos](https://github.com/ohos-rs/ohos-rs), [napi-derive-backend-ohos](https://github.com/ohos-rs/ohos-rs) and [napi-sys-ohos](https://github.com/ohos-rs/ohos-rs).


Updates `napi-derive-ohos` from 1.0.2 to 1.0.3
- [Release notes](https://github.com/ohos-rs/ohos-rs/releases)
- [Commits](https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.0.2...ohrs@1.0.3)

Updates `napi-ohos` from 1.0.2 to 1.0.3
- [Release notes](https://github.com/ohos-rs/ohos-rs/releases)
- [Commits](https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.0.2...ohrs@1.0.3)

Updates `napi-derive-backend-ohos` from 1.0.2 to 1.0.3
- [Release notes](https://github.com/ohos-rs/ohos-rs/releases)
- [Commits](https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.0.2...ohrs@1.0.3)

Updates `napi-sys-ohos` from 1.0.2 to 1.0.3
- [Release notes](https://github.com/ohos-rs/ohos-rs/releases)
- [Commits](https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.0.2...ohrs@1.0.3)

---
updated-dependencies:
- dependency-name: napi-derive-ohos
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: napi-ohos-related
- dependency-name: napi-ohos
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: napi-ohos-related
- dependency-name: napi-derive-backend-ohos
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: napi-ohos-related
- dependency-name: napi-sys-ohos
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: napi-ohos-related
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-20 18:19:24 +00:00
Jonathan Schwender
0a849adfa1
Update vergen to v9 (#34283)
Vergen v9 was split into multiple different crates.
See https://github.com/rustyhorde/vergen/blob/master/MIGRATING_v8_to_v9.md
Since we used the git2 backend, we migrate to vergen-git2.
We only use `VERGEN_GIT_SHA`, so no need to enable any
of the other possible instructions.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-11-19 06:47:15 +00:00
Jonathan Schwender
09684a3501
Fix various clippy warnings on OpenHarmony (#34281)
* ohos: Fix more clippy warnings

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Remove unnecessary `macro_use`

We can use `use` instead. Removes a warning about
unused macro_use on OpenHarmony.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-11-19 05:21:48 +00:00
Jonathan Schwender
538ac61a82
ohos: Add basic IME and keyboard support (#34188)
* ohos: Add basic IME and keyboard support

- Add extremely basic support for keyboard events
- Add basic IME support
   - Showing and hiding the IME
   - inserting text
   - deleting characters
   - very basic configuration of the IME

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Apply suggestions from code review

Improve the log message

Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>

* Update ports/servoshell/egl/ohos.rs

Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>

* ohos: Bump the minimum required SDK version to 5.0

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* ohos: Remove pub from callbacks

The callbacks don't need to be public, as we will be registering them.

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Rename composition event

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* ohos: clippy in log

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* ohos: address some clippy warnings

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* ohos: Raise Error in mach if unsupported SDK version is used.

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Add keyboard-types dependency for android

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2024-11-15 15:04:48 +00:00
Jonathan Schwender
6b6697e97b
servoshell: Fix --no-default-features and make webxr optional on ohos/android (#34242)
* servoshell: fix --no-default-features

The Embeddertraits only contain `register_webxr` if the
webxr feature is enabled, hence we also need to guard
the trait implementation.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* ohos/android: Make webxr optional in servoshell

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-11-13 20:02:30 +00:00
Ngo Iok Ui (Wu Yu Wei)
47a243614f
feat: webxr feature flag (#34241)
* Add webxr feature flag

Add webxr feature flag to embedder_traits

Add webxr flag to constellation

Add webxr flag to compositor

Add webxr flag to canvas

Turn registry into optional

Add webxr flag to servo lib

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>
Co-authored-by: august kline <me@augustkline.com>

* Cargo fmt

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>

* Add missing license

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>

* Cargo clippy

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>

---------

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>
Co-authored-by: august kline <me@augustkline.com>
2024-11-13 17:16:58 +00:00
Delan Azabani
c00804190c
Allow filtering of tracing events via SERVO_TRACING (#34236)
* Allow filtering of tracing events via SERVO_TRACING

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Assume SERVO_TRACING=off by default

Signed-off-by: Delan Azabani <dazabani@igalia.com>

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-11-13 09:52:26 +00:00
dependabot[bot]
81c1f961e9
build(deps): bump cc from 1.1.37 to 1.2.0 (#34234)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.1.37 to 1.2.0.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.37...cc-v1.2.0)

---
updated-dependencies:
- dependency-name: cc
  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>
2024-11-12 17:47:30 +00:00
Delan Azabani
f83e0a8b67
Filter Perfetto traces to servo_profiling spans and events only (#34209)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-11-11 12:01:15 +00:00
Jonathan Schwender
72971bd271
Add simple fling implementation (#33219)
* Add simple fling implementation

Add a simple fling implementation, which depends on a refresh tick from the
embedder.
Currently this refresh tick is only implemented for OpenHarmony
(using the vsync signal).
The fling implementation is very simple, without any fancy things like acceleration.
This can be improved in the future.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Multiply initial velocity with 2

This makes the experience much more snappy.

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* address review comments

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Rename constants and add todo

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* fmt

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Add a few periods to make comments consistent

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-11-10 10:15:42 +00:00
Jonathan Schwender
dcb9058fe3
ohos: Bump napi-ohos (#34160)
Update napi-ohos and migrate away from deprecated `JsFunction`
and use the new `Function` and `build_threadsafe_function()`
methods.

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
2024-11-10 03:34:07 +00:00
Jonathan Schwender
4f6283d7fe
ohos/android: Fix some compiler warnings (#34178)
* ohos: Remove unnecessary library links

`ohos-sys` now correctly links all required libraries, so we
don't need to specify them here again.
We still specify `ace_napi.z`, since we use napi via `napi-ohos`, which currently does not add the required link.

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Disable some unused functions on ohos/android

- get_default_url()
- parse_url_or_filename()
- add_noto_fallback_families

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* ohos: Remove unneeded import

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
2024-11-07 19:53:57 +00:00
Jonathan Schwender
0231571ecf
ohos: Bump ohos-vsync and ohos-sys (#34155)
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
2024-11-05 16:51:06 +00:00
Mukilan Thiyagarajan
f95c4cfaba
servoshell: fix logical screen size calculation (#34096)
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-11-01 10:35:43 +00:00
Nico Burns
78ba1613d4
Improve scrolling speed in servoshell. (#34063)
Servo was previously using the inverse of the correct scale factor
which could cause the scrolling speed to be 4x too slow on a machine
with scale factor of 2.0

Signed-off-by: Nico Burns <nico@nicoburns.com>
2024-10-30 16:45:34 +00:00
Martin Robinson
f12071f77e
andrdoid: Fix some compiler warnings (#34070)
This removes unused code in order to reduce the number of compiler
warnings on the Android build. Some of this code might be used in the
future and it can be restored from git commit history.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-30 12:20:43 +00:00
Martin Robinson
850e59f98e
servoshell: Allow overriding screen resolution with a command-line argument (#34038)
There is a command-line argument to override the default window size,
but not one for overriding the default screen resolution. This is
important for testing pages that use screen size to have different
behavior.

In addition to adding the new option this change:

 - Renames the `--resolution` command-line argument to `--window-size`
   to remove ambiguity with the `--screen-size` argument.
 - Passes the screen size as device independent (device pixels scaled by
   HiDPI factor) to Servo internals. Not only it make it simpler to pass
   the `--window-size` override, it makes more sense. Different screens
   can have different HiDPI factors and these can be different from the
   scale of the window. This makes the screen HiDPI factor totally
   independent of the one that Servo uses for the window.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-30 11:54:13 +00:00
dependabot[bot]
a501572971
build(deps): bump hilog from 0.1.0 to 0.1.1 (#34045)
Bumps hilog from 0.1.0 to 0.1.1.

---
updated-dependencies:
- dependency-name: hilog
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-28 20:22:17 +00:00
dependabot[bot]
5244b0212e
build(deps): bump napi-derive-ohos from 1.0.0 to 1.0.1 (#34044)
Bumps [napi-derive-ohos](https://github.com/ohos-rs/ohos-rs) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/ohos-rs/ohos-rs/releases)
- [Commits](https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.0.0...ohrs@1.0.1)

---
updated-dependencies:
- dependency-name: napi-derive-ohos
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-28 17:18:32 +00:00
webbeef
43c8441f6c
ServoShell: Don't request redrawing again when processing a RedrawRequested event (#34008)
Signed-off-by: webbeef <me@webbeef.org>
2024-10-25 14:48:47 +00:00
Josh Matthews
edc304854f
Avoid invalid lifetime extension for winit event loop. (#33962)
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2024-10-22 09:32:03 +00:00
Simon Wülker
e33bae6d0a
Use ROUTER::add_typed_route instead of ROUTER::add_route everywhere (#33866)
* Use ROUTER::add_typed_route where possible

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Update webxr, media and ipc-channel

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2024-10-18 10:47:52 +00:00
dependabot[bot]
133c763e65
build(deps): bump napi-derive-ohos from 0.0.9 to 1.0.0 (#33869)
Bumps [napi-derive-ohos](https://github.com/ohos-rs/ohos-rs) from 0.0.9 to 1.0.0.
- [Release notes](https://github.com/ohos-rs/ohos-rs/releases)
- [Commits](https://github.com/ohos-rs/ohos-rs/compare/napi-ohos@0.0.9...ohrs@1.0.0)

---
updated-dependencies:
- dependency-name: napi-derive-ohos
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-16 17:32:49 +00:00
Delan Azabani
fa1f7e5839
Gate all use of tracing behind Cargo feature (#33845)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-10-16 10:24:24 +00:00
dependabot[bot]
1167c8245a
build(deps): bump glow from 0.14.1 to 0.14.2 (#33810)
Bumps [glow](https://github.com/grovesNL/glow) from 0.14.1 to 0.14.2.
- [Commits](https://github.com/grovesNL/glow/commits)

---
updated-dependencies:
- dependency-name: glow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-11 17:36:09 +00:00
Mercy Bassey
e09362cd3c
clippy: Fix issues in components/fonts and ports/servoshell (#33809)
* fix linting issues

Signed-off-by: mercybassey <udohmercy911@gmail.com>

adding '-s'

* Remove a pair of unecessary parenethesis

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

---------

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-10-11 17:23:38 +00:00
birdbrained
1668b12ded
Replace some Point2D::new(0, 0) instances with Point2D::zero() (#33783)
Signed-off-by: hackerbirds <120066692+hackerbirds@users.noreply.github.com>
2024-10-10 18:20:51 +00:00
Gae24
fd19409f31
Upgrade to egui@0.29.1 and winit@0.30.5 (#33751)
* update egui dependencies

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* update glow to 0.14.1

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* update winit to 0.30.5

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* update servo-tidy.toml

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* Use more imports to avoid qualified usage, fix build, and silence warnings about deprecated methods

Signed-off-by: Martin Robinson <mrobinson@igalia.com>

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-10-10 17:18:03 +00:00
Martin Robinson
9195344b75
compositor: Create a single cross-process compositor API (#33619) (#33660)
Instead of exposing many different kinds of messages to the compositor
that are routed through the constellation, expose a single message type
which can be sent across IPC channels. In addition, this IPC channel and
the route to the crossbeam channel with the compositor is created along
with the `CompositorProxy`, simplifying what needs to be passed around
during pipeline initialization.

Previously, some image updates (from video) were sent over IPC with a
special serialization routine and some were sent via crossbeam channels
(canvas). Now all updates go over the IPC channel `IpcSharedMemory` is
used to avoid serialization penalties. This should improve performance
and reduce copies for video, but add a memory copy overhead for canvas.
This will improve in the future when canvas renders directly into a
texture.

All-in-all this is a simplification which opens the path toward having a
standard compositor API and reduces the number of duplicate messages and
proxying that had to happen in libservo.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-09 17:30:24 +00:00
Taym Haddadi
6aaca118a9
Drop support for '--no-minibrowser' mode (#33677)
* Drop support for '--no-minibrowser' mode

Signed-off-by: Taym <haddadi.taym@gmail.com>

* remove unused import

Signed-off-by: Taym <haddadi.taym@gmail.com>

---------

Signed-off-by: Taym <haddadi.taym@gmail.com>
2024-10-07 08:00:32 +00:00
Martin Robinson
48f8ff6236
Revert "compositor: Create a single cross-process compositor API (#33619)" (#33645)
This reverts commit f2f5614ad6.

This is causing intermittent crashes: https://github.com/servo/servo/actions/runs/11167043809/job/31044255019

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-04 09:08:19 +00:00
Jonathan Schwender
9fcfe09e51
ohos: Add toast prompt (#33621)
* ohos: Add toast prompt

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* ohos: Add toast on `load_ended`

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* Apply review feedback

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-10-03 16:33:21 +00:00
Martin Robinson
f2f5614ad6
compositor: Create a single cross-process compositor API (#33619)
Instead of exposing many different kinds of messages to the compositor
that are routed through the constellation, expose a single message type
which can be sent across IPC channels. In addition, this IPC channel and
the route to the crossbeam channel with the compositor is created along
with the `CompositorProxy`, simplifying what needs to be passed around
during pipeline initialization.

Previously, some image updates (from video) were sent over IPC with a
special serialization routine and some were sent via crossbeam channels
(canvas). Now all updates go over the IPC channel `IpcSharedMemory` is
used to avoid serialization penalties. This should improve performance
and reduce copies for video, but add a memory copy overhead for canvas.
This will improve in the future when canvas renders directly into a
texture.

All-in-all this is a simplification which opens the path toward having a
standard compositor API and reduces the number of duplicate messages and
proxying that had to happen in libservo.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-10-03 14:42:04 +00:00
Jonathan Schwender
e534c7d461
ohos: Allow passing arguments to servoshell (#33588)
* ohos: Bump minimum CMake version

By bumping the minimum CMake version, we avoid a deprecation warning.
The OH 4.0 SDK ships with CMake 3.16, so we can be sure that we have CMake 3.16
or newer available.

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>

* ohos: Allow passing arguments to servoshell

Allows passing options passed via `wants` to the Ability through to servoshell.
This allows easier debugging, either by calling servoshell from a test app,
or from the commandline, e.g.
```
hdc shell aa start -a EntryAbility -b org.servo.servoshell -U "https://www.wikipedia.org" \
 --pb dom.webgpu.enabled true \
 --ps dom.webgpu.wgpu_backend "gl" \
 --pi layout.threads 4
```

Note: While the OH `wants` API differentiates between boolean, string and integer values, we convert
everything back to strings, so we can reuse the same parsing code as the desktop servoshell.

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-10-02 04:27:18 +00:00
webbeef
58f34ad7a3
Create HttpStatus to safely deal with HTTP responses status. (#33581)
Signed-off-by: webbeef <me@webbeef.org>
2024-09-29 18:23:48 +00:00
webbeef
f57ae60056
Let protocol handlers decide if they are fetchable (#33573)
This adds a 'is_fetchable()' method on the ProtocolHandler trait that is then used in the fetch code.
The 'data:' protocol handler is updated to return true instead of hardcoding the scheme comparison, as well
as the 'urlinfo:' handler since it's just a testing one.

Signed-off-by: webbeef <me@webbeef.org>
2024-09-28 19:38:49 +00:00
Ngo Iok Ui (Wu Yu Wei)
c519a2cdb6
Fix typo on protocol handlers (#33565)
Signed-off-by: Wu Wayne <yuweiwu@pm.me>
2024-09-27 07:16:27 +00:00
Mukilan Thiyagarajan
ba67a0a4fb
servoshell: fix issues related to HiDPI (#33529)
The current implementation has 3 main issues related to HiDPI:

1. When the window moves from a screen with scale factor of 1.5 to one
   with 1 and back to 1.5, the minibrowser toolbar actually ends up
   being scaled by a factor of 2.25 instead of 1.5. This is because we
   currently use the [set_pixels_per_point] method on egui's Context,
   but calling this with a value of `ppp` will modify egui's internal
   'zoom factor' to be:
   ```
   zoom_factor = ppp / native_points_per_pixel.
   ```
   where `native_points_per_pixel` is the window system scale factor.
   The idea is egui can calculate the final scale factor for translating
   its logical points to physical pixels as:
   ```
   points_per_pixel = zoom_factor * native_points_per_pixel
   ```
   where zoom_factor is a factor used for Ctrl+Plus, Ctrl+Minus
   behaviour. The problem is when we handle the ScaleFactorChanged winit
   event due to window moving between screens, the
   `native_points_per_pixel` still has the value of the previous
   screen's native scaling factor and not the current screen's factor.
   This seems to be the case even if we pass the ScaleFactorChanged
   event to egui before we call `set_pixels_per_point`.
2. The egui logic for handing Ctrl+Plus, Ctrl+Minus and Ctrl+0 doesn't
   interact well with servoshell's device-pixel-ratio CLI argument which
   allows the user to override the HiDPI factor. For example, Ctrl+0
   will cause egui to reset the zoom_factor to 1.0 instead of the
   override we wanted. Another issue is egui's Ctrl+Plus/Ctrl+Minus
   will scale the minibrowser in increments of 0.10 whereas
   Servo's own page zoom doesn't (it keeps multiplying by 1.1, so the
   actual increments are 0.1, 0.21. 0.33 etc)
3. The inital window size calculation on Linux currently assumes a scale
   factor of 1.0. This means the window doesn't have the expected
   default logical size of 1024*740 on HiDPI systems. On a screen with
   HiDPI factor of 1.5, the logical window size ends up being 682x493.

This change addresses all 3 issues:

For 1,  switch to the `set_zoom_factor` method of egui context
to avoid the issue with scaling by incorrect native_points_per_pixel.
To allow for the device-pixel-ratio override to work, we calculate the
actual zoom_factor as `device-pixel-ratio / window's scaling factor`.

For 2, disable egui's handling of Ctrl+Plus, Ctrl+Minus, Ctrl-0
shortcuts. It is unclear whether the current behaviour of scaling
both the toolbar and the web page was intentional, or just an accident.
This behaviour is also different from other browser where page zoom
doesn't scale the GUI, so it doesn't seem like a regression to me.

For 3, use LogicalSize type of winit which lets the physical size
calulation to be handled by winit using the windows's actual HiDPI
factor instead of hardcoded 1.0.

[set_pixels_per_point]: 1603f05818/crates/egui/src/context.rs (L1886)

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-09-24 12:12:23 +00:00
Jonathan Schwender
88ffe9f7a5
ohos: Bundle resource files in hap (#33513)
Bundle resource files into the .hap, so they are available
as files in the application sandbox, instead of included
into the shared library.
This should slightly reduce the binary size in debug and
release mode.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
2024-09-24 04:29:53 +00:00
Jonathan Schwender
313fc663a6
android/ohos: Fix wrong production cfg (#33488)
Our build script sets `servo_production` and not `production`.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-09-18 07:42:52 +00:00
Martin Robinson
aa0029c11c
Add rust-version to all Cargo.toml files (#33483)
This is another step preparing for building Servo without `mach`.

Fixes #33430.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-09-17 16:39:07 +00:00
Daniel Adams
4c3b3529a8
servoshell: Update gilrs version, enable gamepad pref by default (#33466)
* Update gilrs version, enable pref by default

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Add core-foundation to servo-tidy ignore

Signed-off-by: Daniel Adams <msub2official@gmail.com>

* Update manifest

Signed-off-by: Daniel Adams <msub2official@gmail.com>

---------

Signed-off-by: Daniel Adams <msub2official@gmail.com>
2024-09-17 05:52:19 +00:00
Ali
ed6b1b5e6a
clippy: Fix suggestions in script, libservo, and servoshell (#33453)
* fix clone on copy warning in servoshell

Signed-off-by: Ali Zein Yousuf <azy5030@gmail.com>

* Remove unecessary borrow in libservo

Signed-off-by: Ali Zein Yousuf <azy5030@gmail.com>

* Ignore too many arguments warning on create_constellation()

Signed-off-by: Ali Zein Yousuf <azy5030@gmail.com>

* fix explicit auto-deref warning

Signed-off-by: Ali Zein Yousuf <azy5030@gmail.com>

* Autofix multiple clippy warnings in components/script

Signed-off-by: Ali Zein Yousuf <azy5030@gmail.com>

---------

Signed-off-by: Ali Zein Yousuf <azy5030@gmail.com>
2024-09-14 08:41:13 +00:00
Delan Azabani
6d6cd0f2dc
Plumb selected tracing spans into hitrace (#33324)
* Plumb selected tracing spans into hitrace

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Tag the spans in #33189 with the `servo_profiling` field

Signed-off-by: Delan Azabani <dazabani@igalia.com>

* Add comment about fields vs extensions

Signed-off-by: Delan Azabani <dazabani@igalia.com>

---------

Signed-off-by: Delan Azabani <dazabani@igalia.com>
2024-09-10 09:03:55 +00:00
Ben
7ec22306e8
Fallback to the url if a tabs title is empty (#33391)
Signed-off-by: Benjamin Vincent Schulenburg <bennyschulenburg@gmx.de>
2024-09-10 07:05:15 +00:00
dependabot[bot]
5350edb6ea
build(deps): bump ohos-sys from 0.3.0 to 0.3.1 (#33329)
Bumps [ohos-sys](https://github.com/openharmony-rs/ohos-sys) from 0.3.0 to 0.3.1.
- [Changelog](https://github.com/openharmony-rs/ohos-sys/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openharmony-rs/ohos-sys/commits)

---
updated-dependencies:
- dependency-name: ohos-sys
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-05 17:28:57 +00:00
webbeef
7e493ba865
minibrowser: Reset the location field when switching tabs (#33316)
Signed-off-by: webbeef <me@webbeef.org>
2024-09-05 13:45:11 +00:00
Ben
8263fe5495
Added some keyboard shortcuts for focusing tabs (#33319)
Currently Cmd/Ctrl + [1-9] and Ctrl + PageUp/Down, since they are
present in most major browsers.

Signed-off-by: Benjamin Vincent Schulenburg <bennyschulenburg@gmx.de>
2024-09-05 10:38:29 +00:00