Commit graph

34615 commits

Author SHA1 Message Date
Anthony Ramine
19f40cdf0b Introduce ImageData::get_rect
We use that to send only the pixels that will be actually drawn to the
canvas thread in CanvasRenderingContext2d::PutImageData.

We also make the canvas thread byte swap and premultiply colours in-place.
2018-10-06 01:12:05 +02:00
Anthony Ramine
784fbb2bc1 Merge some byte swap/premultiply functions in their own crate 2018-10-06 01:11:55 +02:00
Anthony Ramine
a2e3dd4e86 Rename byte_swap_and_premultiply to byte_swap_colors_inplace
The function did not actually premultiply.
2018-10-06 00:05:04 +02:00
Anthony Ramine
82c7d71811 Improve gl.putImageData
This commit should allow us to send smaller blobs to the canvas thread,
I made it into its own commit just to try=wpt.
2018-10-05 17:07:58 +02:00
Anthony Ramine
3d910feb3a Align canvas.putImageData with spec
The arguments are supposed to be long values, not floats.
2018-10-05 17:07:56 +02:00
Anthony Ramine
62ea3c093a Move canvas.putImageData checks to the DOM side 2018-10-05 00:35:39 +02:00
bors-servo
caa4d190af
Auto merge of #21867 - servo-wpt-sync:wpt_update_03-10-2018, r=jdm
Sync WPT with upstream (03-10-2018)

Automated downstream sync of changes from upstream as of 03-10-2018.
[no-wpt-sync]

<!-- 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/21867)
<!-- Reviewable:end -->
2018-10-04 03:15:13 -04:00
WPT Sync Bot
5e2118728a Update web-platform-tests to revision e29e596073468910d8655a8ec23262f17543e147 2018-10-03 23:02:48 -04:00
bors-servo
e56db1f322
Auto merge of #21865 - servo:influent, r=SimonSapin
Update the influent crate from 0.4.0 to 0.4.1

The tarball for 0.4.1 is 44 KB uncompressed and contains 18 files.

The tarball for 0.4.0 is 45 MB uncompressed and contains 22113 files, most of which appear to be the output of `cargo doc` that was accidentally included in a release.

CC https://github.com/servo/servo/pull/21863#issuecomment-426609991

<!-- 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/21865)
<!-- Reviewable:end -->
2018-10-03 10:40:27 -04:00
Simon Sapin
d2ee7663f3 Work around removal of remote files used by the build system
f5a8327415
2018-10-03 16:38:54 +02:00
Simon Sapin
8b43719baa Update the influent crate from 0.4.0 to 0.4.1
The tarball for 0.4.1 is 44 KB uncompressed and contains 18 files.

The tarball for 0.4.0 is 45 MB uncompressed and contains 22113 files,
most of which appear to be the output of `cargo doc` that was accidentally
included in a release.
2018-10-03 15:11:19 +02:00
bors-servo
74e7736720
Auto merge of #21850 - servo:webgl, r=jdm
Don't use an intermediate PNG buffer in HTMLCanvasElement::ToDataURL

<!-- 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/21850)
<!-- Reviewable:end -->
2018-10-03 06:00:50 -04: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
Anthony Ramine
5efbeea61c Reindent the WebGL 2 case of canvas.toDataURL 2018-10-03 10:44:36 +02:00
Anthony Ramine
cfd446218b Slightly clean up the final URL creation in canvas.toDataURL 2018-10-03 10:43:41 +02:00
bors-servo
bbef671276
Auto merge of #21858 - servo-wpt-sync:wpt_update_02-10-2018, r=jdm
Sync WPT with upstream (02-10-2018)

Automated downstream sync of changes from upstream as of 02-10-2018.
[no-wpt-sync]

<!-- 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/21858)
<!-- Reviewable:end -->
2018-10-03 04:02:17 -04:00
WPT Sync Bot
2a8d9b6983 Update web-platform-tests to revision fec3928f355e049657d19780aa4b412d9d3a714b 2018-10-02 23:45:46 -04:00
Josh Matthews
de8fae14b7 android: Do not trigger a composite before Servo has finished compositing. 2018-10-03 03:44:16 +02:00
bors-servo
021a24d5bb
Auto merge of #21851 - paulrouget:maven, r=MortimerGoro
Create a Maven repository on package

This new step will go through all the *release* builds of the servoview AAR, and create a maven repo (just a tree of directories) with the relevant POM files under `target/gradle/servoview/maven`.

For example, after building for armv7 and x86, it looks like this:

```
/Users/paul/git/servo/target/gradle/servoview/maven
└── org
    └── mozilla
        └── servoview
            ├── servoview-armv7
            │   ├── 0.0.1.20181002
            │   │   ├── servoview-armv7-0.0.1.20181002.aar
            │   │   ├── servoview-armv7-0.0.1.20181002.aar.md5
            │   │   ├── servoview-armv7-0.0.1.20181002.aar.sha1
            │   │   ├── servoview-armv7-0.0.1.20181002.pom
            │   │   ├── servoview-armv7-0.0.1.20181002.pom.md5
            │   │   └── servoview-armv7-0.0.1.20181002.pom.sha1
            │   ├── maven-metadata.xml
            │   ├── maven-metadata.xml.md5
            │   └── maven-metadata.xml.sha1
            └── servoview-x86
                ├── 0.0.1.20181002
                │   ├── servoview-x86-0.0.1.20181002.aar
                │   ├── servoview-x86-0.0.1.20181002.aar.md5
                │   ├── servoview-x86-0.0.1.20181002.aar.sha1
                │   ├── servoview-x86-0.0.1.20181002.pom
                │   ├── servoview-x86-0.0.1.20181002.pom.md5
                │   └── servoview-x86-0.0.1.20181002.pom.sha1
                ├── maven-metadata.xml
                ├── maven-metadata.xml.md5
                └── maven-metadata.xml.sha1
```

<!-- 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/21851)
<!-- Reviewable:end -->
2018-10-02 20:58:44 -04:00
bors-servo
74ba683e27
Auto merge of #21826 - servo:jdm-patch-35, r=jdm
Enable fake fillText API in nightly builds.

The [three.js examples](https://threejs.org/examples/) are really useful for checking Servo WebGL support, but if the fillText API is not available they only display a blank screen. I think it's worth lying to web content about this API in order to make it easy to make use of these examples without using local development builds.

<!-- 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/21826)
<!-- Reviewable:end -->
2018-10-02 13:02:15 -04:00
Paul Rouget
54d7788698 Create a Maven repository 2018-10-02 18:16:44 +02:00
Josh Matthews
c3c8aabf80 Enable fake fillText API in all builds. 2018-10-02 14:47:29 +02:00
Anthony Ramine
a3392610c3 Make HTMLCanvasElement::get_size return a Size2D<u32>
The changes keep trickling down.
2018-10-02 14:21:06 +02:00
Anthony Ramine
b8dbf2dddd Implement JSTraceable for Size2D<u32> 2018-10-02 14:21:06 +02:00
Anthony Ramine
426067069c Clean up ToAzurePattern for FillOrStrokeStyle 2018-10-02 14:21:06 +02:00
Anthony Ramine
435d4d9f25 Implement JSTraceable for (A, B, C, D) instead of (T, T, T, T) 2018-10-02 14:21:06 +02:00
Anthony Ramine
99b6091b7a Clean up create_webgl_context 2018-10-02 14:21:06 +02:00
bors-servo
57053e03bb
Auto merge of #21825 - jdm:backtrace-helpers, r=Manishearth
Optional backtraces for JS errors and WebGL errors

This adds two new build-time features to enable useful debugging tools when investigating why JS and WebGL content isn't working. They're optional because they're quite heavyweight.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they're optional developer features.

<!-- 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/21825)
<!-- Reviewable:end -->
2018-10-02 06:57:38 -04:00
bors-servo
37b978af68
Auto merge of #21830 - paulrouget:com2org, r=SimonSapin
Android: com.mozilla to org.mozilla

We want to be compatible with the GeckoView namespace: https://maven.mozilla.org/maven2?prefix=maven2/org/mozilla/

<!-- 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/21830)
<!-- Reviewable:end -->
2018-10-02 02:17:27 -04:00
Paul Rouget
6d543dec28 com.mozilla to org.mozilla 2018-10-02 08:09:35 +02:00
Josh Matthews
06bca43aee script: Optionally store backtraces when throwing DOM exceptions. 2018-10-01 16:04:56 +02:00
bors-servo
057acdca2d
Auto merge of #21828 - servo:jdm-patch-36, r=nox
Warn when using slow WebGL code path.

This will make it more obvious when one source of WebGL performance problems is present.

<!-- 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/21828)
<!-- Reviewable:end -->
2018-10-01 09:26:19 -04:00
bors-servo
29fdf04338
Auto merge of #21840 - servo-wpt-sync:wpt_update_28-09-2018, r=jdm
Sync WPT with upstream (28-09-2018)

Automated downstream sync of changes from upstream as of 28-09-2018.
[no-wpt-sync]

<!-- 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/21840)
<!-- Reviewable:end -->
2018-10-01 08:34:36 -04:00
Josh Matthews
26e1001efd
Remove trailing whitespace. 2018-10-01 13:32:34 +02:00
bors-servo
0dd7ea5f2c
Auto merge of #21848 - servo:jdm-patch-38, r=paulrouget
Remove unnecessary thread specification when flushing GL on Android.

According to [the docs](https://developer.android.com/reference/android/opengl/GLSurfaceView#requestRender()) requestRender can be called from any thread, so we're just introducing unnecessary latency.

<!-- 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/21848)
<!-- Reviewable:end -->
2018-10-01 06:03:39 -04:00
Josh Matthews
5dc80dd07a webgl: Add feature to store backtraces for each WebGL API call for easier debugging. 2018-10-01 10:43:13 +02:00
Josh Matthews
4db25fe581
Remove unnecessary thread specification when flushing GL on Android. 2018-10-01 10:22:12 +02:00
bors-servo
4205ff9c40
Auto merge of #21833 - servo:jdm-patch-37, r=SimonSapin
Fix appveyor build

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #21832
- [x] There are tests for these changes

<!-- 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/21833)
<!-- Reviewable:end -->
2018-10-01 04:14:08 -04:00
bors-servo
4413290de1
Auto merge of #21713 - mandreyel:track-focused-browsing-context, r=cbrewster
Update Constellation to track focused BrowsingContext instead of Pipeline

<!-- Please describe your changes on the following line: -->
I need confirmation as to whether I understand this correctly, but I don't think tracking the focused browsing context instead of the pipeline introduces the benefits described in the issue, because if the focused browsing context is an iframe nested in a document that is being changed, we need to change focus to the browsing context whose current document is being changed, i.e. above the currently focused iframe. Is this correct?

However, I think we may be able to save the slightly expensive iteration over a frame tree (which is needed to check if the currently focused browsing context is nested within the one where the page is being loaded) when the [EDIT] focused browsing is the top-level browsing context, as in this case the load doesn't change the focus. I haven't implemented this as I'm unsure whether this is correct.

---
<!-- 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 #15507 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because because no new behaviour was introduced.

<!-- 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/21713)
<!-- Reviewable:end -->
2018-09-30 17:48:04 -04:00
WPT Sync Bot
7ba3376dde Update web-platform-tests to revision 2df7f9ff620cbdaa2928464892fb1dfb880fd6c6 2018-09-28 22:54:30 -04:00
bors-servo
97e3c5f3a9
Auto merge of #21608 - pyfisch:border-gradients, r=emilio
Improve border images

Respect CSS border-image-width.
Properly support gradients as a border-image-source.

Add a new test and mark two more as passing.

<!-- 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/21608)
<!-- Reviewable:end -->
2018-09-28 16:36:53 -04:00
Pyfisch
60d0c8cd76 Layout: stylistic changes
Additionally if an image border can't be displayed show solid border.
Introduce build_display_list_for_border_image to display border images.
2018-09-28 22:33:02 +02:00
bors-servo
58039c10b0
Auto merge of #21835 - servo:tc-android-arm32, r=jdm
Taskcluster: add Android build

[Example green build](https://tools.taskcluster.net/groups/FyF53cdfSKC39eqB3OAZVQ/tasks/ff23qoM3TzSCHrinmzU7gQ/details), with `servoapp.apk` in public artifacts.

This installs some dependencies within the task for now. I’ll follow up with moving some things like the NDK download to a Docker image, but even as it is the task completes in 17 minutes.

<!-- 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/21835)
<!-- Reviewable:end -->
2018-09-28 12:14:54 -04:00
Simon Sapin
2968572187 Taskcluster: add Android build 2018-09-28 17:26:57 +02:00
Josh Matthews
48a16ac058
Don't use mach wrappers for rustc/cargo smoketests on Windows. 2018-09-28 09:27:53 -04:00
bors-servo
25cc45eec2
Auto merge of #21829 - servo-wpt-sync:wpt_update_27-09-2018, r=jdm
Sync WPT with upstream (27-09-2018)

Automated downstream sync of changes from upstream as of 27-09-2018.
[no-wpt-sync]

<!-- 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/21829)
<!-- Reviewable:end -->
2018-09-28 09:02:37 -04:00
Josh Matthews
1d988cae8f
Remove intermittent timeout result. 2018-09-28 09:02:22 -04:00
mandreyel
dab49a217f Update Constellation to track focused BrowsingContext instead of Pipeline 2018-09-28 15:01:21 +02:00
bors-servo
80379c8f93
Auto merge of #21827 - ferjm:update.gst.binaries.travis, r=Manishearth
Update gstreamer binaries for Travis. With plugins-base now

<!-- 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/21827)
<!-- Reviewable:end -->
2018-09-28 02:15:02 -04:00
WPT Sync Bot
7295abcc2a Update web-platform-tests to revision 36634cbcf3253dfe8d220990a27ad4eeebf8ec2f 2018-09-27 23:48:13 -04:00