Commit Graph

50 Commits

Author SHA1 Message Date
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
Shinichi Morimoto
41ff93eca2 extended android jni with onMediaSessionSetPositionState 2019-12-03 23:16:43 +09:00
Fernando Jiménez Moreno
08f9f17ed3 Send MediaSessionAction from Android 2019-11-20 13:33:51 +01:00
Fernando Jiménez Moreno
3f6569447d MediaSession Android bits 2019-11-20 13:33:15 +01:00
Paul Rouget
f2f8223cf1 UWP: better mouse interaction support 2019-10-29 07:35:50 +01:00
Fernando Jiménez Moreno
11993bb8f5 Allow setting GST_DEBUG on Android through mach 2019-10-14 17:27:29 +02:00
Paul Rouget
3a374b3455 Expose javascript:window.alert() to libsimpleservo 2019-07-19 16:49:26 +02:00
akshitkrnagpal
027514c3e6 Add support for market:// urls 2019-06-28 17:30:42 -04:00
Paul Rouget
8f2390fdff Add transparent padding around ServoSurface 2019-03-25 19:01:39 +01:00
bors-servo
6c161e5037 Auto merge of #22773 - paulrouget:immersive, r=jdm
Support for ExternalVR implementation

This PR adds the hook necessary for the ExternalVR rust-webvr driver.
Waiting on rust-webvr 0.9.3 to be published before landing.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22773)
<!-- Reviewable:end -->
2019-02-07 00:17:26 -05:00
Paul Rouget
c055b74e13 Support for ExternalVR implementation 2019-02-07 06:15:11 +01:00
Paul Rouget
475756ec2f Remove readfile callback 2019-02-06 07:52:58 +01:00
Paul Rouget
c146653707 Implement ServoSurface::onSurfaceChanged 2019-01-30 07:40:55 +01:00
Manish Goregaokar
82f81fb9fd Stop catching Android click events
Servo already can simulate clicks from multiple tap events

fixes https://github.com/servo/servo/issues/22702
2019-01-16 18:23:07 -05:00
Manish Goregaokar
d171daa81c Automatically enable webvr for Android VR builds 2018-11-28 15:43:24 -08:00
Anthony Ramine
496a62860e Move Android and ML build artefacts to their own subdirectory
Works around #20380.
2018-11-28 13:00:44 +01:00
Paul Rouget
799833a94b shutdown synchronously 2018-11-22 11:48:57 +01:00
Manish Goregaokar
3bccb8c387 Add support for touch events on Android
Currently on Android we treat all touch events as scroll events. Servo
is already capable of distinguishing between scroll-touches and regular
touch events (see `on_touch_move` in `components/compositor/touch.rs`),
so we should just be passing touch events through.

Servo however does not natively support fling gestures, so we continue
to use `GestureDetector` for that.
2018-11-20 22:39:47 -08:00
Jan Andre Ikenmeyer
f5ab95786f Update MPL license to https (part 1) 2018-11-19 14:46:43 +01:00
Paul Rouget
6b2d9bf140 Properly cancel looping before triggering another drawing loop 2018-11-12 08:19:59 +01:00
Paul Rouget
549c8c565a Android: proper shutdown mechanism 2018-10-26 12:15:52 +02:00
Josh Matthews
03a75f418e Use a depth buffer when embedding Servo on android. 2018-10-11 16:07:58 -04:00
Sebastian Kaspari
f8a84a763b ServoView: Add default constructor.
Android's `View` has multiple constructors. Currently only `ServoView(Context, AttributeSet)` is available.
This constructor is usually used by Android when inflating a View from a layout XML file. However when
creating the `View` in code no `AttributeSet` is available.
2018-10-08 16:08:31 +02:00
bors-servo
65710bee94 Auto merge of #21871 - paulrouget:servooptions, r=jdm
Make JNI code more robust and introduce antialiasing option

This throws exceptions in various places. Trying to reduce the amount of unwrap/expect.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #21306 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21871)
<!-- Reviewable:end -->
2018-10-06 01:58:22 -04:00
Paul Rouget
5ddb8d577f Disable subpixel text antialiasing for ServoSurface 2018-10-06 07:57:07 +02:00
Paul Rouget
e0ce73abb2 Make JNI code more robust 2018-10-05 13:17:27 +02:00
bors-servo
7fa2b2c879 Auto merge of #21842 - jdm:android-extra-frame, r=paulrouget
Fix flickering on Android

This is particularly noticeable in debug builds on WebGL pages, but also appears during startup when loading normal pages. requestRender() causes Android to swap buffers under the assumption that the buffer contains a fully rendered frame, but when calling it from `doFrame` there are no guarantees that Servo has finished compositing yet. This causes stale buffers to be composited instead, leading to flickering at startup when there is no content, or general jerkiness on pages using animation callbacks as previous frames replace current frames.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #21796
- [x] These changes do not require tests because no android integration tests.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21842)
<!-- Reviewable:end -->
2018-10-03 05:00:48 -04:00
Josh Matthews
de8fae14b7 android: Do not trigger a composite before Servo has finished compositing. 2018-10-03 03:44:16 +02:00
Paul Rouget
54d7788698 Create a Maven repository 2018-10-02 18:16:44 +02:00
Paul Rouget
6d543dec28 com.mozilla to org.mozilla 2018-10-02 08:09:35 +02:00
Josh Matthews
4db25fe581 Remove unnecessary thread specification when flushing GL on Android. 2018-10-01 10:22:12 +02:00
Fernando Jiménez Moreno
c7d11b9a1e Remove duplicated context param from Servo constructor 2018-09-25 11:53:27 +02:00
Fernando Jiménez Moreno
991fdbe5d4 Declare libgstreamer_android as prebuilt library 2018-09-24 15:50:45 +02:00
Fernando Jiménez Moreno
e3c98802eb Move GStreamer initialization to a path shared by ServoSurface and ServoView 2018-09-24 15:50:06 +02:00
Fernando Jiménez Moreno
2854847c13 Do not copy gstreamer fonts or certs on Android 2018-09-24 15:14:47 +02:00
Fernando Jiménez Moreno
b27881523c Enable GStreamer support on Android 2018-09-24 15:14:46 +02:00
Paul Rouget
96cf1e2da3 Get the right pixel density on Android 2018-09-24 07:45:15 +02:00
Josh Matthews
f7516f57a7 Enable use of RUST_LOG with mach run --android. 2018-09-20 14:14:41 -04:00
Paul Rouget
77f38a0789 Save initial URI for all loadUri methods 2018-09-10 10:45:10 +02:00
Paul Rouget
6aa653a46d Show animation status 2018-08-16 13:51:57 +02:00
Paul Rouget
296b76070c pinch to zoom 2018-08-16 13:51:57 +02:00
Paul Rouget
ae407e9a65 Behave properly when app is suspended 2018-08-14 16:52:36 +02:00
Paul Rouget
b16b0b4a15 Execute callbacks in proper threads 2018-08-11 16:55:20 +08:00
Paul Rouget
927704b8a3 fix mGLLooperHandler null ref 2018-08-11 16:55:20 +08:00
Paul Rouget
f1a2862e65 Add asset to AAR 2018-08-11 16:55:19 +08:00
bors-servo
78fabb9110 Auto merge of #21361 - paulrouget:fasterBuild, r=MortimerGoro
Compile less

Fix #21332

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21361)
<!-- Reviewable:end -->
2018-08-09 10:06:55 -04:00
Paul Rouget
b79f80d9e5 Compile less 2018-08-09 17:54:35 +08:00
Paul Rouget
7a14dbf5a1 Add more methods to ServoSurface and relabel the inner surface class name 2018-08-08 11:10:52 +02:00
Paul Rouget
c36b16546e Introduce ServoSurface 2018-08-01 16:35:22 +08:00
Paul Rouget
e8af185a3d Build a AAR archive alongside the APK 2018-08-01 16:15:47 +08:00