Commit Graph

161 Commits

Author SHA1 Message Date
Jonathan Schwender
84eff13a25 Bump version to 0.0.6 in preparation for release (#42932)
Same procedure as every month. `./mach release 0.0.6`

Testing: Not tested.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-01 19:07:44 +00:00
Jonathan Schwender
de7c9d2e43 Bump servoshell to 0.0.5 (#42305)
This version bump is a bit delayed, since I forgot to open the PR before
FOSDEM. The actual release will thus likely not be based on this commit,
but backported to the release branch, to stay in sync with our monthly
report.
There still has been no resolution on the `0.1` version bump situation,
hence another bump of the patch version.

Testing: Not required

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-02-03 14:05:55 +00:00
Niklas Merz
4f3b6fd267 Rename pauseCompositor/resumeCompositor in JNIServo (#41827)
pauseCompositor/resumeCompositor have been renamed
topausePainting/resumePainting in 824f551. This renames the Java methods
to fix the regression.

Testing: Built servoview.aar and tested in Android app.
Fixes #41826

Signed-off-by: Niklas Merz <niklasmerz@apache.org>
2026-01-10 20:15:41 +00:00
Jonathan Schwender
0fa84df099 servoshell: Bump version number to 0.0.4 (#41589)
In preparation for the next release.

Testing: Not required

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-12-31 22:00:25 +00:00
lumiscosity
d47da6b09e Optimize assets, again (#41163)
Turns out we can squeeze a bit more out of rippy.png, as well as a
single byte off the big logo with a few new tricks I found.

This PR also converts the new kebab menu icon in the Android app to webp
like all the others, for another 3kb saved.

Testing: Manual.

Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2025-12-09 23:33:31 +00:00
Mukilan Thiyagarajan
7e744697d7 libservo: Trigger shutdown internally from Servo's Drop impl (#41012)
Remove the public API to trigger shutdown and instead trigger the
process from `Servo`'s implementation of `Drop` trait.

This makes it hard to create issues involving the order of destruction
of `Servo` and `WebView`s. It will also allow us to implement
asynchronous shutdown in the future.

Testing: Should be covered by existing unit tests.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-12-03 08:26:30 +00:00
Jonathan Schwender
323d1cf987 servoshell: Prepare November release (0.0.3) (#40962)
As discussed in the tsc-channel, prepare for the next release by cutting
a version on the last day of the month.

Note: The actual release would happen ~ 2 weeks from now, when the blog
post for november is ready.

This commit was produced by running `./mach release 0.0.3`.

Testing: Not required. Additional pre-release testing will happen after
the version bump and before the release, with potential patches being
cherry-picked to a release branch.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-12-02 04:41:50 +00:00
Martin Robinson
6d4937b5d6 servoshell: Add architectural support for opening multiple windows (#40883)
This change is a major re-architecture of servoshell to support multiple
windows. Unfortunately it was not possible to do this incrementally, but
@mukilan and I did this together so we feel more confident about these
changes.

The main change here is that now the `HashMap` of windows that `App`
has can be filled with more than one `ServoShellWindow`.
`ServoShellWindow` is a wrapper around a `PlatformWindow` which can
either be headed, headless, or for embedded platforms. Embedded
platforms (Android and OHOS) are only expected to have a single window,
but there is no reason that more windows cannot be added.

There is still a little bit more work to be done in order to fully
enable
mulitple windows, so this change is just the architectural preparation.

This change enables the embedded and desktop versions of servoshell to
start to be fully integrated so that the entire `RunningAppState` is
shared between them.


Testing: servoshell is the test harness so these changes are covered
by the WPT tests.

---------

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2025-11-27 10:41:32 +00:00
Martin Robinson
39676a6f60 libservo: Remove Servo::animating() (#40799)
Instead of relying on `Sevo::animating()` in servoshell to drive the
event loop, it is sufficient to just let the `RefreshDriver` wake it up
when it is time to re-render.

This allows us to remove `Servo::animating()` completely. It is a bit
odd that there is a global API to track this, rather than per-`WebView`
or window, so this change just removes it entirely.

Testing: This should make the main loop of headless servoshell more
efficient,
but I do not think this difference is going to be observable in any way.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-11-21 17:35:45 +00:00
Jonathan Schwender
641a1f4cfc Update servoshell to v0.0.2 (#40614)
Ran ./mach release 0.0.2 to update the version number and update the
license.html
This is in preperation for the v0.0.2 release with the next nightly, as
discussed on zulip.

Testing: Not tested

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-11-13 15:49:06 +00:00
Martin Robinson
493acd7e43 servoshell: Add a VsyncRefreshDriver for Android (#40306)
This adds an implementation of `VsyncRefreshDriver` ensuring that frame
updates are driven by the system compositor.

Testing: This should increase the smoothness of animations, but I'm
not sure how to test that exactly.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-11-03 08:00:29 +00:00
Martin Robinson
20179bca45 android: Let Servo handle touch events (#40240)
This change makes it so that Servo handles touch events on Android.
Flinging becomes a bit less native, but with two big benefits:

1. Before touch event handling on Android wasn't standards compliant,
   because web content didn't get a chance to call `preventDefault()` on
   touch events, whcih important for proper site behavior.
2. This unifies all touch event handling across Servo platforms. This
   means that improvements to things like fling will benefit all
   platforms equally. In addition, fling on Android can be integrated
   into Servo's animation handler.

Generally, this also just makes things much simpler to reason about on
Android.

Testing: This kind of input handling isn't tested in Servo yet.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-10-28 15:45:22 +00:00
Martin Robinson
37ae099695 compositing: Fully implement pinch zoom (#40083)
This change adds a full implementation of pinch zoom, including
center-aware zooming. Before this kind of pinch zooming was only enabled
on OpenHarmony. Now all pinch zooms must come with a focal point, which
determines the center point of the zoom. This enables full pinch zoom on
Android and has OpenHarmony use the same system for pinch zoom.

Every WebView now has a `PinchZoom` which describes the viewport of the
pinch zoom and handles panning with proper chaining of zoom viewport
panning to scroll layer scrolling.  In addition, the collection of touch
actions is simplified by storing an array and turning each into a
ScrollZoomEvent when appropriate.

Caveats:
-  We've noticed some hard to diagnose bugs with clamping the panning
  viewport, but we'll tackle those later once we figure out how to
  reliably reproduce them.
- Keyboard scroll events currently do not properly pan the pinch zoom
   viewport. This will be handled in a followup.

Testing: There are currently no tests for this kind of touch interaction
as there's no way to read the pinch zoom from a WebView. It's processed
asynchronously. Once that API is added, we should be able to add some
simple tests, but many things are still unaccessible such as the pan
position in the pinch zoom viewport.
Fixes #4224.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Rakhi Sharma <atbrakhi@igalia.com>
2025-10-23 13:52:27 +00:00
Josh Matthews
855445983d android: Add UI setting for experimental features (#40054)
These commits add a new settings screen to the app, then add:
1) a setting to disable a developer-targeted UI element (an indicator
about whether the app is polling continuously for events)
2) a toggle for experimental web platform features

The page needs to be reloaded after switching the toggle before any
changes can be observed.

Testing: Manually tested by visiting https://developer.mozilla.org with
the setting enabled and disabled. No automated testing for Android yet.
Fixes: #39791

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-10-22 13:29:57 +00:00
Josh Matthews
cf077efe68 servoview: Focus the view when a touch input occurs. (#40049)
Focusing the location bar in the Android app shows the onscreen
keyboard, but clicking on a link in the current document does not make
it disappear. This change ensures the input focus is reset appropriately
and ensures the keyboard disappear when the location bar is not being
edited.

Testing: Manually tested. No automated tests for Android app at this
time.
Fixes: #40008

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-10-21 07:39:15 +00:00
Jonathan Schwender
205b049fcd mach: Android: Support custom profiles (#39982)
Use Release mode for gradle for production builds and Debug for any
other builds.
This fixes an exception when building for android with a custom cargo
profile.
`SERVO_TARGET_DIR` is read in `apk/jni/Android.mk` and specifies the
folder
libservoshell.so is expected to be in.

Testing: Tested manually with `./mach build --android --production`
Fixes: #34564

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com>
Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
2025-10-20 17:00:00 +00:00
Josh Matthews
3a29c20fff servoshell: Hook up Android software keyboard to embedder events. (#40009)
This is the most basic integration possible. Current limitations
include:
* the done button doesn't trigger form submission/keyboard hiding
* IME events don't trigger inputs (ie. pressing and holding a letter to
get more options)

However, it is infinitely better than the current integration.

Testing: Manually tested in the Android emulator.
Fixes: #12127 (we can open more specific issues after this)

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-10-20 13:57:04 +00:00
lumiscosity
d0bf02d00c Convert Android resources to lossless .webp (#39437)
Another tiny binary size win for Android! .webp assets are supported
since API level 17, and Servo is built against 33, so this shouldn't
cause issues.

Testing: Manual.

Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
2025-09-22 16:00:14 +00:00
lumiscosity
eda83564f3 Losslessly optimize Android resources (#38332)
Losslessly optimizes the Android resources. These are the only non-test
PNGs remaining in the project, to my knowledge.

Testing: Unnecessary, since this only optimizes assets.

Signed-off-by: maple! <averyrudelphe@gmail.com>
2025-07-29 12:15:50 +00:00
Martin Robinson
89bfa26f00 libservo|compositor: Have scroll offset directionality match that of WebRender and the web (#37752)
Previously, our Servo-specific spatial tree scroll offsets were opposite
to
that of WebRender and also the web platform. This is due to the fact,
likely, that `winit` wheel directionality is also flipped. This change
has both the Servo spatial tree and the API take offsets that are
consistent with the web.

Any possible changes to the meaning of wheel directionality will be
handled in a followup change.

This is a breaking change to the Servo API.

Testing: This change updates unit tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-07-03 13:04:06 +00:00
Martin Robinson
23524a5413 libservo: Move size handling to RenderContext from WindowMethods (#35621)
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>
2025-02-25 15:03:53 +00:00
Martin Robinson
71bfd2d13f libservo: Don't bounce ready-to-present frame notifications to the 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>
2025-02-12 08:25:58 +00:00
Jonathan Schwender
dfcbb18a8b android: Fix flinging downwards (#34584)
* android: Fix onScroll source

Scrolling should be based on `e2`, the second event, since dX and
dY are relative to e2 and not e1.

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

* android: Fix flinging down on android.

We need to ensure x and y are inside the window, otherwise servo will
not scroll!

Our fling implementation will set `mCurX` and `mCurY` to a very high
initial value when flinging with a negative velocity, since we don't
know the size of our content page and the android `OverScroller`
needs to know the size of the page.

Setting the page size to a ridiculously high value ensures that flinging
will not be cut of short, even if we fling farther then the edge of the
screen, starting from the touch up point.

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

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-12-12 04:54:50 +00:00
Clocks
cc6f7c5bc4 Conversion to Gradle KTS (#33772)
* Convert settings.gradle to Kotlin Script

Stage 1 of #33742

Signed-off-by: clocks <doomsdayrs@gmail.com>

* servoview-local: Convert build.gradle to Kotlin Script

Stage 1 of #33742

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Convert build.gradle to Kotlin Script

This was a trickier one, as I wanted to maintain compatibility with the rest of the files while facilitating this migration.

Closures are annoying, another annoyance of loosely typed languages in an OOP project.

Migration of child build scripts will require the reverse code and or migration of this scripts functions to kotlin lambdas / functions (which are just jvm functions).

Code based off of the following guide.
https://docs.gradle.org/current/userguide/kotlin_dsl.html#groovy_closures_from_kotlin

Stage 1 of #33742

Signed-off-by: clocks <doomsdayrs@gmail.com>

* servoapp: Convert build.gradle to Kotlin Script

Migrated deprecated API usages.
There are two more, but ignored for now.
("splits.density", "capitalize")

Stage 1 of #33742

Signed-off-by: clocks <doomsdayrs@gmail.com>

* servoview: Convert build.gradle to Kotlin Script

Migrated deprecated API usages.
There are two more, but ignored for now.
("splits.density", "capitalize")

Stage 1 of #33742

Signed-off-by: clocks <doomsdayrs@gmail.com>

* servoview: Replace ResourceGroovyMethods with Kotlin File.walk

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Replace Groovy Closures with Kotlin Lambda types

Stage 1 of #33742

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Move Utility fields to buildSrc

Using extra fields is quite annoying and makes it hard to maintain
 API stability.

"buildSrc" is designed for this task, and thus is being used
 for said task.

This means that when editing build.gradle files in an Android Studio,
 there is a direct reference to the source of a function.
 (Easier time referring to documentation, source of function, etc).

More information here:
https://docs.gradle.org/current/userguide/sharing_build_logic_between_subprojects.html

Stage 1 of #33742

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Sync target SDK to 33

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Make Notification actions immutable.

Otherwise android lint will be upset.

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Move dependencies from servoview to servoapp

ServoView does not use them.

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Add POST_NOTIFICATIONS to manifest

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Add host to intent-filter

Use "*" for any host, lets hope this works.

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Solve ndkBuild tasks not being linked

The problem stems from something something groovy wishy washy unclear
 execution order something Kotlin explicit execution order.

Merge tasks exist after the project is evaluated.
 The problem is that simply running afterEvaluate causes an
 ConcurrentModificationException. This is because of creating a new
 task while looping over existing tasks. To remedy this we simply
 filter the tasks first, than create and link the new task.

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Add documentation to why some functions are extensions to Project

Signed-off-by: clocks <doomsdayrs@gmail.com>

* android: drop the host directives from AndroidManifest.xml

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: clocks <doomsdayrs@gmail.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-11-01 08:04:28 +00:00
Clocks
7df18aecfe Upgrade Android Gradle (#33681)
* Upgrade to Gradle 8.9

Gradle 8.0 is no longer supported by Android Studio.

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Upgrade to AGP to 8.7

Signed-off-by: clocks <doomsdayrs@gmail.com>

* Update to Android Build Tools 34.0.0

Signed-off-by: clocks <doomsdayrs@gmail.com>

---------

Signed-off-by: clocks <doomsdayrs@gmail.com>
2024-10-09 05:25:22 +00:00
Mukilan Thiyagarajan
ea109d5490 android: publish nightly builds for aarch64 (#33435)
* android: publish nightly builds for aarch64

Publish the aarch64 apk and aar packages to both Github Releases
and S3 so that it can be linked from servo.org.

The focus is on getting a working version of the APK on the homepage,
so few issues are resolved with temporary solutions:
1) We publish the "release" profile instead of "production" since the
   latter will need changes in the gradle configuration (the changes
   required was previously blocked on #32720 which is now closed).
2) The scheme for the version code is simple and doesn't consider
   other factors such as API level and product variants discussed in the
   Android docs (https://developer.android.com/google/play/publishing/multiple-apks#VersionCodes)
   This should be fine for now as we don't publish to any store yet.

The change also makes it so that the 'Release nightly' workflow will
endup building all 4 variants for the Android target, but only aarch64
is uploaded. This is because GH Actions doesn't have a good way to skip
a specific job in a matrix and the additionally code complexity needed
to acheive it (either generating a JSON dynamically in a new job and using
`fromJSON` in the matrix definition or skipping each individual step
based on matrix.target and `inputs.upload`) didn't seem worth the cost
saved (this is executed only once a day).

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: add attestation for nightly build artifacts

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-09-16 11:45:04 +00:00
Daniel Adams
a976db3ec0 Update layout of servoshell android app (#33294)
* Update layout of servoshell android app

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

* Remove gap after loop/idle text

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

---------

Signed-off-by: Daniel Adams <msub2official@gmail.com>
2024-09-04 11:30:52 +00:00
Samson
d132a0273d Update mozjs (SpiderMonkey) to 128.0 (#32769)
* Update mozjs

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Fix changed readTransfer callback

https://bugzilla.mozilla.org/show_bug.cgi?id=1842713
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Use NewExternalArrayBuffer from glue

d33454be74
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Fix columnorigin and filename being in latin1

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* fixup newexternalarray

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Float16 (this might require more work for codegen support)

https://bugzilla.mozilla.org/show_bug.cgi?id=1833647
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* js.strict is removed

https://bugzilla.mozilla.org/show_bug.cgi?id=1621603
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* asm options are now somewhere else

https://hg.mozilla.org/mozilla-central/rev/26045c88e3972957087d535e7f259e08857bd2a2
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Comment out offthread compilation

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Set NDK to 26

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Fix 1-origin handling

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Expect `FinalizationRegistry` interface

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Good expectations

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* more expectations

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Add `WeakRef` to interfaces expectation

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* mozjs upgrade: fixes for Android

Android NDK's layout has changed in r26 and 'lib64' no longer exists
under `toolchain/llvm/prebuilt/linux-x86_64`. The libraries that used to
be it are now present in `lib` folder itself.

This patch updates the build configuration to use the `lib` folder
instead when configuring the LIBCLANG_PATH environment variable.

This patch also updates to a newer mozjs version that includes fixes for
linker errors faced on Android (see #32769).

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* Patch libz-sys & update mozjs

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* update NDK version in README

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* Use servo/mozjs

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* Update mozjs again

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-07-29 07:20:15 +00:00
Mukilan Thiyagarajan
24639bb540 android: sign release APK with a custom key. (#32721)
This PR adds support for signing all APKs we produce on the CI
with a custom signing key. Currently the logic falls back to
the debug key (which is generated by AGP and not persistent) if
the environment variable for the keystore is not set. This allows
local developer builds to work without requiring a key store.
Once #32720 is resolved, we could sign just the production builds
and remove the conditional logic.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-07-08 08:36:00 +00:00
Martin Robinson
30dad2565f android: Rename the Android app to reflect servo.org ownership and servoshell (#32554)
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2024-06-24 15:39:57 +00:00
Jonathan Schwender
24906e1c21 Move android port code to servoshell (#32533)
Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2024-06-19 03:34:08 +00:00
Gae24
e6ea4a9c29 Android: fix url resolution (#32422)
* fix localhost

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

* android: parse search bar field in rust

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

* Update comment to reflect new function behavior

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-06-10 10:03:07 +00:00
Gae24
fe6e1cfb29 Android: load url from Intent, plus fixed some warnings (#32160)
* update gitignore folder with android build files

* address some warnings

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

* fix servo not loading url from Intent

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

* format

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

* InitOptions, added url field to avoid override homepage url

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

* actually there is a gitignore file in the android folder

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

* Restore buildToolsVersion property

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

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2024-04-29 13:14:10 +00:00
Mukilan Thiyagarajan
4bca55e27a android: add support for x86_64 images (#31725)
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-03-18 09:44:10 +00:00
Mukilan Thiyagarajan
d7de206dbd Preliminary Android build support (#31086)
* Android build

* Fixes
* More fixes
  - Still failing in the linking step
* More work on getting linking working

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: use mozjs with ndk r25c. loads servo.org

more android build fixes.

* fix ./mach run for android and make it follow logs

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* add experimental logic for compositor pause/resume

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* pass DPI from android to simpleservo

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* ci: add android workflow

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* switch to ANDROID_SDK_ROOT and ANDROID_NDK_ROOT vars

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade gradle to 4.10.1

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade to gradle 5.1.1

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade to gradle 8 and agp 8

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* make compositing work again with external present

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: improve mach support for non-NixOS and CI

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fix sampler compilation bug introduced in #30490

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* ci: add android build to main workflow

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* gradle: set MinSdk = targetSdk = 30

NDK requires we compile against the minSdk API level
which is 30 in our case.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* add instructions for android in README.md

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: move servosurface to servoview

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: uncomment the mediasession callbacks on MainActivity

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: fix crash on MainAtivity.onDestroy

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: drop VR, arm 5 and unused code

This commit drops:
* support for google, oculusvr
* support for arm5 architecture

and also removes
* fakeld scripts
* unused java code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* cleanup shell.nix

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: add FIXMEs for gstreamer code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: remove commented code and debug logs

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* cleanup ServoView.java

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* mach: comment call to download gstreamer deps for android

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* disable bluetooth for jniapi as blurdroid is broken

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fixup! README.md

* fixup! remove change in Cargo.toml

* fixup! move shell variables together

* fixup! cleanup jniapi/Cargo.toml comments

* delete commented gstreamer related android code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* remove unused config variable in servbuild

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: more cleanup

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* force no_static_freetype only for android

* use actions to manage sdk, ndk and java

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* rename embedder event names to be more clear.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* link to startup crash issue

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fix lint issues

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade env_logger to 0.10 with duplicate exception

libservo and android_logger can use env_logger 0.10
but quickcheck is still stuck on 0.8 and has not seen
any activity in the last 2 years. This commit adds
a duplicate exception until the quickcheck dependency
can be upgraded (or replaced)

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: fix comments

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* disable jemalloc on android

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fixup! replace linux with android in cfg

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-01-22 13:00:15 +00:00
Martin Robinson
bce7622cde Switch to rustls and webpki-roots (#30025)
This change replaces OpenSSL with rustls and also the manually curated
CA certs file with webpki-roots (effectively the same thing, but as a
crate).

Generally speaking the design of the network stack is the same. Changes:

- Code around certificate overrides needed to be refactored to work with
  rustls so the various thread-safe list of certificates is refactored
  into `CertificateErrorOverrideManager`
- hyper-rustls takes care of setting ALPN protocols for HTTP requests,
  so for WebSockets this is moved to the WebSocket code.
- The safe set of cypher suites is chosen, which seem to correspond to
  the "Modern" configuration from [1]. This can be adjusted later.
- Instead of passing a string of PEM CA certificates around, an enum is
  used that includes parsed Certificates (or the default which reads
  them from webpki-roots).
- Code for starting up an SSL server for testing is cleaned up a little,
  due to the fact that the certificates need to be overriden explicitly
  now. This is due to the fact that the `webpki` crate is more stringent
  with self-signed certificates than SSL (CA certificates cannot used as
  end-entity certificates). [2]

1. https://wiki.mozilla.org/Security/Server_Side_TLS
2. https://github.com/briansmith/webpki/issues/114

Fixes #7888.
Fixes #13749.
Fixes #26835.
Fixes #29291.
2023-08-08 14:00:10 +00:00
yvt
262a41dd2a Use #!/usr/bin/env bash in shell scripts for NixOS compatibility
Signed-off-by: yvt <i@yvt.jp>
2021-06-14 22:06:09 +09:00
Simon Sapin
68b5657575 Use new S3 buckets
CC https://github.com/servo/project/issues/25
2020-11-11 21:02:51 +01:00
Mustafa Al-Qinneh
4ea7da8478 Update servo.png to new logo asset 2020-02-24 17:27:07 -05:00
Mustafa Al-Qinneh
07c82962dd Delete servo-1024.png 2020-02-24 17:26:21 -05:00
Mustafa Al-Qinneh
d340883f7f Delete servo-1000.png 2020-02-13 10:18:58 -05:00
Mustafa Al-Qinneh
96d6c8354d Add files via upload
* Added servo-1024.png (replacing servo.png @ 1024px)
2020-02-13 10:16:41 -05:00
Mustafa Al-Qinneh
ed965b6656 Add Servo logo
* Added servo-1000.png (replacing servo.png @ 1024px)
2020-02-13 10:12:27 -05:00
Shinichi Morimoto
41ff93eca2 extended android jni with onMediaSessionSetPositionState 2019-12-03 23:16:43 +09:00
Fernando Jiménez Moreno
59f22abb3e Remove stop button for now and show play/pause in compact mode 2019-11-20 13:34:31 +01:00
Fernando Jiménez Moreno
f65c400828 Update media session metadata and show content text with artist and album 2019-11-20 13:34:30 +01:00
Fernando Jiménez Moreno
caedc28118 Do not play notification sound when creating media session on Android 2019-11-20 13:34:29 +01:00
Fernando Jiménez Moreno
7b5b46f560 Fix play action 2019-11-20 13:34:29 +01:00
Fernando Jiménez Moreno
07483f1d44 Switch play and pause buttons according to playback state 2019-11-20 13:34:29 +01:00
Fernando Jiménez Moreno
b5b8c6c2a8 Remove prev and next track action buttons for now 2019-11-20 13:34:29 +01:00