Commit graph

3667 commits

Author SHA1 Message Date
bors-servo
0699d38e80 Auto merge of #8288 - larsbergstrom:new_android_build, r=mbrubeck
New Android suppport

r/f? @mbrubeck

No need to r+ urgently; I want to do a little bit more testing of the release build, but I'm hoping to land this bit (moving to a more sane build process) next week.

The new version of building an APK:
1) Removes the glutin-based APK builder from the link step
2) Adds a build.rs step to the build of the final Servo library that adds the native code required by glutin's android_rs_glue (e.g., `ANativeActivity_onCreate` definition)
3) Replaces the link step with a `fake-ld.sh` script that instead creates a libservo.so
4) Adds a new mach `package` step to build the APK that has some Rust code that builds the library from a set of in-tree build files

This setup fixes a number of problems:
1) We can use gdb, because we use `ndk-build`, which adds the .gdbserver info, plus we keep around all of the build files (also required by the ndk gdb)
2) We can add more Java code & hooks to handle Android intents
3) We no longer have any git submodules or the awkward two-step build with android-rs-glue

Many other setups were tried (and failed). The most obvious ones is building a libservo.so from a `dylib` target from the servo build on Android. This doesn't work because you can't have a different default lib target on one platform than others in Cargo, and you also can't pass it in from the commandline (e.g., --lib does not have a dylib arg). Additionally, if you don't go through the intermediate libservo.rlib step (which removes unused symbols), then you end up with a TON of missing symbols because our -sys crates are super sloppy about that. I spent a few weeks beginning to clean them up, but since it's something we can't easily enforce (and new -sys packages will have this problem, too, since it's only an issue with the Android loader), it made more sense to me to just have the build set up to discard those unused bits of code before they ever get to the linker, much less the loader.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8288)
<!-- Reviewable:end -->
2015-11-05 05:51:48 +05:30
Lars Bergstrom
17a6cb5873 New Android suppport 2015-11-04 16:29:39 -06:00
bors-servo
488459f801 Auto merge of #8317 - mbrubeck:glutin-warning, r=saneyuki
Fix unused import warning in headless builds



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8317)
<!-- Reviewable:end -->
2015-11-04 09:34:24 +05:30
Matt Brubeck
58a5369dd1 Fix unused import warning in headless builds 2015-11-03 14:22:20 -08:00
bors-servo
3fdaa6e3f3 Auto merge of #8232 - mbrubeck:glutin-touch, r=glennw
Correct event dispatching for multiple simultaneous touch points

Instead of just converting the mouse into a single "touch" input, Servo can now listen for multi-touch events from Glutin, maintain a list of active touch points, and dispatch events for all of them.

r? @glennw (for the compositor changes) and @jdm (for the DOM changes)

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8232)
<!-- Reviewable:end -->
2015-11-03 22:45:21 +05:30
Matt Brubeck
ef93650db9 Handle multi-touch events from glutin 2015-11-03 08:56:34 -08:00
bors-servo
526a3c8df3 Auto merge of #8223 - mrobinson:pinch-zoom-2, r=pcwalton
Make executing synthesized pinch zoom more similar to zoom

Synthesized pinch zoom was removed in #8121 so that this combination of
mouse wheel and key press can be handled by the page. I mistakenly
re-implemented it #8215. In order to preserve synthesized pinch zoom,
which is very useful for testing on desktop computers, have it work
similarly to page zoom except with the ALT key pressed.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8223)
<!-- Reviewable:end -->
2015-11-03 19:22:38 +05:30
bors-servo
3282174a99 Auto merge of #8291 - ecoal95:webgl-drop, r=jdm
Add destructors to some WebGL objects, remove duplicated glutin dependency and try to enable the webgl reftests

The first commit allows to cleanup the gl resources of the webgl task earlier if they aren't being used.
Right now all resources were cleaned up when the context was destroyed, so I think this is
a slightly better approach.

The second commit bumps rust-offscreen-rendering-context to remove the duplicated glutin dependency.

The third one tries to reenable the webgl reftests.
Since the errored builds are deleted, It's the only way I can try to troubleshoot it.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8291)
<!-- Reviewable:end -->
2015-11-02 18:52:33 +05:30
Emilio Cobos Álvarez
641e54bd41 Bump offscreen_gl_context
This new version shold prevent crashing on the linux buildbots.
2015-11-01 20:51:23 +01:00
Emilio Cobos Álvarez
2c87249311 Bump offscreen_rendering_context to remove duplicated Glutin dependency 2015-11-01 13:44:31 +01:00
nxnfufunezn
468eaac096 Accept Brotli-compressed HTTP responses #8156 2015-11-01 08:59:18 +05:30
Bobby Holley
41dfd07d16 Rev rust-selectors. 2015-10-31 14:28:51 -07:00
Bobby Holley
79ac365a68 Move EventState to rust-selectors. 2015-10-30 21:02:35 -07:00
Martin Robinson
a7a58e47a0 Expand DisplayList layer bounds to whole pixels
Before passing these layers to the paint task, expand them to pixel
boundaries. This ensures that subpixel edges of the layer will not be
clipped away and helps prevent rounding issues with layer contents.

Fixes #8166.
2015-10-28 18:11:59 -07:00
Matt Brubeck
ccecf3fc93 Disable debug logging in release builds
This uses the new `release_max_level` feature added in
rust-lang-nursery/log#58 to turn the `debug!` and `trace!` macros into no-ops
in optimized builds.
2015-10-28 14:22:57 -07:00
bors-servo
30ce2a84c1 Auto merge of #8242 - Ms2ger:update-js, r=metajack
Update js.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8242)
<!-- Reviewable:end -->
2015-10-28 23:35:40 +05:30
Ms2ger
2a2ab23dfb Update js. 2015-10-28 18:02:10 +01:00
Manish Goregaokar
184b2bacf3 Fix serde_macros 2015-10-28 21:53:15 +05:30
Manish Goregaokar
ce5586f74a Update euclid to 0.3 2015-10-28 21:34:23 +05:30
Martin Robinson
f71f7ba783 Make executing synthesized pinch zoom more similar to zoom
Synthesized pinch zoom was removed in #8121 so that this combination of
mouse wheel and key press can be handled by the page. I mistakenly
re-implemented it #8215. In order to preserve synthesized pinch zoom,
which is very useful for testing on desktop computers, have it work
similarly to page zoom except with the ALT key pressed.
2015-10-27 15:32:39 -07:00
Alan Jeffrey
219d1b9201 Updated to v0.1.15 of string_cache.
Manually edited ports/gonk/Cargo.lock.
Trying to rebuild ports/gonk/Cargo.lock using cargo-update produes errors:

$ ./mach update-cargo -p string_cache_shared -p string_cache_plugin -p string_cache
components/servo
    Updating registry `https://github.com/rust-lang/crates.io-index`
      Adding bitflags v0.1.1
      Adding gl_generator v0.0.27
      Adding khronos_api v0.0.7
ports/cef
    Updating registry `https://github.com/rust-lang/crates.io-index`
      Adding bitflags v0.3.2
      Adding gl_generator v0.0.27
      Adding khronos_api v0.0.8
ports/gonk
    Updating registry `https://github.com/rust-lang/crates.io-index`
Package `serde v0.5.2` does not have these features: `unstable`
2015-10-27 11:24:21 -07:00
Matt Brubeck
1f8940fedd Upgrade glutin, image, and related packages 2015-10-27 11:24:20 -07:00
Martin Robinson
c36484257b Implement pinch zoom emulation to the glutin port
The GLFW port had pinch zoom emulation that could be triggered by
holding control and using the mouse wheel. This was very useful for
testing pinch zoom behavior on desktop machines. This commit
implements this for the glutin port.
2015-10-26 18:00:33 -07:00
Ms2ger
5da7af0b14 Update js. 2015-10-25 19:49:34 +01:00
bors-servo
28f4dd4f48 Auto merge of #8163 - mbrubeck:glutin-multitouch, r=glennw
Enable multitouch in Glutin.

This tells Glutin's Android and iOS back-ends to send events for more than one
pointer at a time.

r? @glennw

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8163)
<!-- Reviewable:end -->
2015-10-23 06:13:28 -06:00
Matt Brubeck
11d2bf3137 Enable multitouch in Glutin.
This tells Glutin's Android and iOS back-ends to send events for more than one
pointer at a time.
2015-10-22 15:09:15 -07:00
Antonio de Luna
69273f2642 Fixes #8154 2015-10-22 12:20:56 -07:00
Paul Rouget
e60f02c3ba Remove zoom-on-ctrl-scroll and make quit-on-escape preventable 2015-10-22 09:08:01 +02:00
bors-servo
12c618450b Auto merge of #8103 - frewsxcv:bump, r=nox
Upgrade some dependencies

Check each commit for a link to the changelog

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8103)
<!-- Reviewable:end -->
2015-10-21 16:02:20 -06:00
benshu
553a0dbefd Timers are scheduled by a dedicated per-constellation thread. 2015-10-21 16:40:49 +02:00
Corey Farwell
355af70ec2 Upgrade bigflags: 0.1.1 -> 0.3.2
78241d80cb...274b488dff
2015-10-21 08:06:45 -04:00
Corey Farwell
f50c0efd14 Upgrade hyper: 0.6.14 -> 0.6.15
https://github.com/hyperium/hyper/compare/v0.6.14...v0.6.15
2015-10-21 08:06:42 -04:00
Corey Farwell
0aeed410e4 Upgrade lazy_static: 0.1.14 -> 0.1.15
0cef85e2af...0e32807d81
2015-10-21 08:05:33 -04:00
Corey Farwell
7ddbc75b38 Upgrade cocoa: 0.1.4 -> 0.1.5
https://github.com/servo/cocoa-rs/compare/v0.1.4...v0.1.5
2015-10-21 08:05:32 -04:00
Corey Farwell
8c78446ce5 Upgrade serde: 0.6.0 -> 0.6.1
https://github.com/serde-rs/serde/compare/v0.6.0...v0.6.1
2015-10-21 08:05:31 -04:00
Corey Farwell
0124f5c62c Upgrade openssl: 0.6.6 -> 0.6.7
https://github.com/sfackler/rust-openssl/compare/v0.6.6...v0.6.7
2015-10-21 08:05:30 -04:00
Corey Farwell
d6b1a5e33b Upgrade num_cpus: 0.2.6 -> 0.2.7
145dbf21f4...b393c1d4a8
2015-10-21 08:05:29 -04:00
Corey Farwell
bf65e577bf Upgrade core-graphics: 0.1.0 -> 0.1.1
https://github.com/servo/core-graphics-rs/compare/6937fdfe5012adf60d01400d90c33b26bb43ff1c...v0.1.1
2015-10-21 08:05:28 -04:00
bors-servo
7fb3c51bbb Auto merge of #8119 - paulrouget:updateImage, r=Manishearth
update image to 0.4.0



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8119)
<!-- Reviewable:end -->
2015-10-21 00:47:27 -06:00
Paul Rouget
b90a4eee12 update image to 0.4.0 2015-10-21 08:37:41 +02:00
Martin Robinson
ac5525aeeb Integrate iframes into the display list
Instead of always promoting iframes to StackingContexts, integrate them
into the display list. This prevents stacking bugs when
non-stacking-context elements should be drawn on top of iframes.

To accomplish this, we add another step to ordering layer creation,
where LayeredItems in the DisplayList are added to layers described by
the LayerInfo structures collected at the end of the DisplayList.
Unlayered items that follow these layered items are added to
synthesized layers.

Another result of this change is that iframe layers can be positioned
directly at the location of the iframe fragment, eliminating the need
for the SubpageLayerInfo struct entirely.

Iframes are the first type of content treated this way, but this change
opens up the possibility to properly order canvas and all other layered
content that does not create a stacking context.

Fixes #7566.
Fixes #7796.
2015-10-20 07:29:06 -07:00
Michael Wu
e733a7c46a Support the updated spidermonkey bindings 2015-10-14 15:30:52 -04:00
bors-servo
dd2f8b6891 Auto merge of #7989 - glennw:update-gleam, r=frewsxcv
Update gleam 0.1.9 -> 0.1.11



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7989)
<!-- Reviewable:end -->
2015-10-13 19:15:39 -06:00
Glenn Watson
23def4a9a1 Update gleam 0.1.9 -> 0.1.13 2015-10-14 09:26:54 +10:00
Ms2ger
f8b7a86ce4 Update cssparser. 2015-10-13 17:07:08 +02:00
bors-servo
0f597d3890 Auto merge of #7933 - mbrubeck:piston-image, r=glennw
Replace libpng and stb_image with PistonDevelopers/image

Fixes #3368. r? @glennw 

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7933)
<!-- Reviewable:end -->
2015-10-12 15:06:31 -06:00
bors-servo
6303126e0c Auto merge of #7957 - simartin:ticket_7905, r=mbrubeck
Issue #7905: Restore "headless" build on not Linux platforms.

Fix https://github.com/servo/servo/issues/7905 by implementing WindowMethods' native_display  in headless mode on "not Linux" platforms.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7957)
<!-- Reviewable:end -->
2015-10-12 12:02:43 -06:00
bors-servo
71c5587856 Auto merge of #7961 - connorimes:arm-crate-updates, r=jdm
Update dependencies with fixes for native ARM builds



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7961)
<!-- Reviewable:end -->
2015-10-12 01:42:25 -06:00
Connor Imes
d14888f039 Update dependencies with fixes for native ARM builds 2015-10-11 23:15:53 +00:00
Matt Brubeck
a15acef4c8 Don't pass -pie when linking a dylib on gonk 2015-10-10 07:43:26 -07:00