Commit graph

16166 commits

Author SHA1 Message Date
Ms2ger
dadba1fa22 Remove unused import. 2016-03-23 11:31:21 +01:00
Ms2ger
900583056b Remove outdated unsafe_code allowance. 2016-03-23 11:31:11 +01:00
bors-servo
f3abfeeadd Auto merge of #9979 - stspyder:master, r=jdm
Implementation of Blob Constructor with test changes

Apologize for the late PR. I see that #9977 already overlaps with some of the work. If that is accepted, then I'll change my PR to reflect just the WPT changes.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9979)
<!-- Reviewable:end -->
2016-03-23 09:07:38 +05:30
bors-servo
187ca44233 Auto merge of #9947 - pcwalton:faster-display-list-transfer, r=glennw
Faster display list transfer

This series of commits improves performance of display list construction in browser.html by about 3x when using WebRender.

It requires https://github.com/servo/webrender_traits/pull/18 and https://github.com/servo/webrender/pull/231.

Anyone should feel free to review if they have time; I'll ask someone in particular once those two upstream commits land.

cc @paulrouget

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9947)
<!-- Reviewable:end -->
2016-03-23 08:06:31 +05:30
Patrick Walton
0006c1923a gfx: Allow images to be shipped to the WebRender thread without shipping
over the data as well.

WebRender doesn't need the data, as it acquires it separately.

About a 50%-100% improvement in display list building time on
browser.html.
2016-03-22 14:49:47 -07:00
bors-servo
003fdd4176 Auto merge of #10127 - edunham:gold-env-var, r=larsbergstrom
Read `rustc-with-gold` setting from env var when no `.servobuild`

The build system needs to disable gold on arm64 slaves. Other configuration is
done through environment variables, and buildbot hosts currently don't use a
.servobuild file at all.

This change adds the `get_env_bool` function to cast an environment variable's
string contents into a Python boolean, and uses it to retrieve the optional
`SERVO_RUSTC_WITH_GOLD` setting.

I figured it's worth throwing the helper function in now in case we later want to read booleans from other env vars, but there's currently no need to make up a name for and read from an env var for every single setting.

r? @larsbergstrom

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10127)
<!-- Reviewable:end -->
2016-03-23 01:52:21 +05:30
edunham
e6a3f85383 Read SERVO_RUSTC_WITH_GOLD if no .servobuild
The build system needs to disable gold on arm64 slaves. Other configuration is
done through environment variables, and buildbot hosts currently don't use a
.servobuild file at all.

This change adds the `get_env_bool` function to cast an environment variable's
string contents into a Python boolean, and uses it to retrieve the optional
SERVO_RUSTC_WITH_GOLD setting.
2016-03-22 13:10:37 -07:00
bors-servo
50193e9119 Auto merge of #9518 - shinglyu:responseurl, r=jdm
Implemented XMLHttpRequest.responseURL

Resolves #8830

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9518)
<!-- Reviewable:end -->
2016-03-23 00:12:57 +05:30
Patrick Walton
9fcf9215d0 layout: Flatten display list transfer into a separately-transferred byte
array, and consolidate the multitude of display list messages into one.

Improves display list building performance by 50%-100% for small display
lists.
2016-03-22 10:51:25 -07:00
bors-servo
805aa3a3ab Auto merge of #10123 - Ms2ger:use_nightly_rust, r=KiChjang
Remove unused use_nightly_rust function.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10123)
<!-- Reviewable:end -->
2016-03-22 21:38:50 +05:30
Ms2ger
031a20df74 Remove unused use_nightly_rust function. 2016-03-22 17:06:57 +01:00
bors-servo
41060dbdd7 Auto merge of #10105 - mbrubeck:dirty-viewport-percentages, r=SimonSapin
Don't re-add stylesheets to recompute vw/vh lengths

This is a follow-up to #9876.  It avoids clearing and rebuilding SelectorMaps
when vh and vw units need to be recomputed. Instead it just dirties all nodes,
to force elements to be re-cascaded.

Filed #10104 for later follow-up work to dirty only affected nodes.

r? @SimonSapin

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10105)
<!-- Reviewable:end -->
2016-03-22 18:58:47 +05:30
bors-servo
327f1c1eb8 Auto merge of #10120 - servo:objc, r=nox
Update objc crates.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10120)
<!-- Reviewable:end -->
2016-03-22 18:10:59 +05:30
Ms2ger
5d2138e061 Update objc crates. 2016-03-22 13:38:59 +01:00
bors-servo
4341dc5fb4 Auto merge of #10107 - perlun:fix-hacking-quickstart-typo, r=jdm
HACKING_QUICKSTART: Fixed typo

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10107)
<!-- Reviewable:end -->
2016-03-22 11:40:41 +05:30
Shing Lyu
f55b0765d1 Bug 8830 - Implemented XMLHttpRequest.responseURL 2016-03-22 13:56:31 +08:00
bors-servo
d1e27eb4f4 Auto merge of #10109 - mbrubeck:compute_damage_short_circuit, r=pcwalton
Fixes for compute_damage

A few changes:

* Make `compute_damage` short-circuit more, by skipping comparisons if they will only set flags that are already set.

* Update some obsolete comments.

* Add a bunch of missing properties to `compute_damage`.

* Set `RECONSTRUCT_FLOW` when `text-decoration` changes, because it can affect text fragment splitting/merging.

I believe this is all of the computed properties except for the animation properties. (I wasn't sure what to do with those.)  After this lands I'd like to work on moving this information into `properties.mako.rs` so that this function can be auto-generated, and so that newly-added properties can default to setting all flags instead of none.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10109)
<!-- Reviewable:end -->
2016-03-22 10:29:48 +05:30
bors-servo
767b11cd67 Auto merge of #10106 - Ms2ger:renderer-id, r=ecoal95
Remove renderer ids.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10106)
<!-- Reviewable:end -->
2016-03-22 08:50:28 +05:30
bors-servo
db63aa423f Auto merge of #10100 - paulrouget:historyOnLocationChange, r=paulrouget
Add history information to mozbrowserlocationchange event

This is a change in the Browser API itself.

Before, on `mozbrowserlocationchange`, we would call `getCanGoBack()` and `getCanGoForward()`. Two asynchronous methods called on an event, which doesn't make much sense, especially because we already know on `mozbrowserlocationchange` if we can go back/forward. So here I'm adding 2 new properties to the event to tell if the iframe can go back/forward.

The way `event.detail` is defined also changed. Before, `event.detail` was a string (the new uri), now it's an object (`{uri:String,canGoBack:bool,canGoForward:bool}`).

This is one of the design flaw of the early Browser API: not using objects for the detail property, making it hard to extend the event payload.

So that makes this event not backward compatible. We can:
1. just don't care. It's up to the client to test if event.detail is a string or not if it needs to be compatible with Gecko
2. fix it in Gecko. The client will still have to test `event.detail` to make it compatible with older version of gecko
3. rename `mozbrowserlocationchange` to something else (`mozbrowserlocationchange2` ?)

Please advise.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10100)
<!-- Reviewable:end -->
2016-03-22 07:51:19 +05:30
bors-servo
9a8ba23a76 Auto merge of #10088 - pkondzior:7038-report-memory-usage-in-layout-thread-data-stylist, r=ecoal95
Report memory usage from LayoutThreadData Stylist [#7038]

@jdm PTAL I'm not sure what is the approach of updating cargo components here, I've made a pull request https://github.com/servo/heapsize/pull/54 but it has to be landed first before merge and version bump.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10088)
<!-- Reviewable:end -->
2016-03-22 06:54:11 +05:30
Matt Brubeck
f7d490a7e7 Add missing properties to compute_damage 2016-03-21 16:28:07 -07:00
Matt Brubeck
c2c3b30f87 Short-circuit more of compute_damage 2016-03-21 16:28:07 -07:00
bors-servo
9813d11f86 Auto merge of #10021 - pcwalton:skip-layout-traversals, r=mbrubeck
layout: Skip layout traversals that obviously won't do anything.

This reduces CPU usage when mousing over simple pages (example.com). More complex pages (Wikipedia) still reflow a lot due to other bugs.

Additionally, this change causes Servo to stop painting the results of hit test queries. This is also a win for CPU usage.

This significantly improves #9999, though there's more that can be done. I'll leave it open in case @paulrouget thinks this PR isn't enough.

r? @mbrubeck

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10021)
<!-- Reviewable:end -->
2016-03-22 03:37:49 +05:30
Per Lundberg
f0cb7fd642 Fixed typo 2016-03-21 22:13:46 +02:00
Ms2ger
22447055b9 Stop returning in-process senders from {CanvasPaintThread, WebGLPaintThread}::start. 2016-03-21 18:26:46 +01:00
Matt Brubeck
37636e8377 Don't re-add stylesheets to recompute vw/vh lengths
This is a follow-up to #9876.  It avoids clearing and rebuilding SelectorMaps
when vh and vw units need to be recomputed. Instead it just dirties all nodes,
to force elements to be re-cascaded.

Filed #10104 for later follow-up work to dirty only affected nodes.
2016-03-21 10:05:17 -07:00
Ms2ger
fb1b0d1a09 Remove Constellation::{canvas_paint_threads, webgl_paint_threads}. 2016-03-21 17:58:27 +01:00
Ms2ger
63a00f4dbf Stop sending the renderer id to script. 2016-03-21 17:55:08 +01:00
Ms2ger
7e2e54326f Remove renderer_id fields. 2016-03-21 17:49:47 +01:00
Ms2ger
3c04bca0f4 Remove get_renderer_id functions. 2016-03-21 17:45:42 +01:00
Ms2ger
036b789377 Remove HTMLCanvasData::renderer_id. 2016-03-21 17:41:46 +01:00
bors-servo
95de8b2b03 Auto merge of #10094 - KiChjang:remove-extra-iter, r=asajeffrey
Remove HTMLCollectionElementsRevIter

It's almost a duplicate of HTMLCollectionElementsIter, aside from that its node_iter is a PrecedingNodeIter. We can simply use dynamic dispatch for node_iter instead of making it a concrete type.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10094)
<!-- Reviewable:end -->
2016-03-21 22:09:47 +05:30
Ms2ger
1c1e55792f Remove CanvasFragmentInfo::renderer_id. 2016-03-21 17:34:30 +01:00
Patrick Walton
7a131ba104 layout: Minor whitespace cleanup. 2016-03-21 08:39:47 -07:00
Patrick Walton
ed6ee29951 script: Don't paint layouts induced by hit test queries.
Reduces CPU usage when mousing over simple pages.

Part of #9999.
2016-03-21 08:39:46 -07:00
Patrick Walton
7cb9429a0f layout: Don't start the reflow pass unless some node needs to be
reflowed.

Reduces CPU usage when mousing over simple pages.

Part of #9999.
2016-03-21 08:39:45 -07:00
Patrick Walton
acfd8e448c layout: Don't rebuild display lists at all unless restyling tells us
some object needs to be repainted.

Reduces CPU usage when mousing over simple documents. (More complex
documents tend to trigger unnecessary reflow bugs and so still have high
CPU.)

Part of #9999.
2016-03-21 08:39:44 -07:00
Patrick Walton
5dca005920 layout: Repaint when z-index is modified. 2016-03-21 08:39:42 -07:00
Patrick Walton
21ea8eef19 layout: Make transform changes require incremental repaint.
The progress bar in browser.html was only accidentally working before,
so actually making use of `REPAINT` makes it stop working without this
change.
2016-03-21 08:38:00 -07:00
bors-servo
e95368df62 Auto merge of #10096 - GuillaumeGomez:fun_to_string, r=nox
Make all interface objects share the same funToString

Fixes #9280

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10096)
<!-- Reviewable:end -->
2016-03-21 16:50:44 +05:30
Paul Rouget
6577409b95 Add history information to mozbrowserlocationchange event 2016-03-21 19:19:48 +08:00
Guillaume Gomez
b6feab97e0 Make all interface objects share the same funToString 2016-03-21 11:57:48 +01:00
bors-servo
691367745a Auto merge of #10097 - aneeshusa:make-dynamic-symbol-checking-script-python3-compatible, r=Ms2ger
Add Python 3 compatibility to Android symbol checker

Make the script that checks for undefined Android symbols compatible
with both Python 2 and Python 3, to allow for future updates to the
default system Python on our build machines.

I'd like to land this before https://github.com/servo/saltfs/pull/249.

We currently use Ubuntu 14.04 (an LTS release); Ubuntu is aiming for Python 3 as the default Python in the next LTS release, 16.04, and I'd like to have any scripts be ready for the transition.

Do we have a Python 2/3 compatibility policy?

cc @cengizIO @larsbergstrom

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10097)
<!-- Reviewable:end -->
2016-03-21 13:50:00 +05:30
Aneesh Agrawal
b8eb19e566 Add Python 3 compatibility to Android symbol checker
Make the script that checks for undefined Android symbols compatible
with both Python 2 and Python 3, to allow for future updates to the
default system Python on our build machines.

I'd like to land this before https://github.com/servo/saltfs/pull/249.

We currently use Ubuntu 14.04 (an LTS release); Ubuntu is aiming for
Python 3 as the default Python in the next LTS release, 16.04, and
I'd like to have any scripts be ready for the transition.
2016-03-20 18:16:15 -04:00
bors-servo
aa35d7721b Auto merge of #10076 - servo:rustup, r=larsbergstrom,manishearth
Update to Rust 2016-03-18.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10076)
<!-- Reviewable:end -->
2016-03-20 14:36:17 +05:30
Ms2ger
6f679c124c Update to Rust 2016-03-18. 2016-03-20 10:05:45 +01:00
bors-servo
090da52913 Auto merge of #9586 - notriddle:details_ui, r=SimonSapin
Details ui

Requires a patch to rust-selectors, and doesn't currently recalculate the styles correctly (which is needed to make actual toggling work correctly).

Still trying to figure out what it takes to get style recalc to do what this needs.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9586)
<!-- Reviewable:end -->
2016-03-20 13:27:59 +05:30
bors-servo
6dbffb621c Auto merge of #10087 - DDEFISHER:master, r=jdm
add a new command line flag --profile-dir [path]

add a new command line flag --profile-dir [path] that stores an optional directory path in the Opts struct in opts.rs, creating the directory if it does not exist.

For the Implement HTTP authorization UI and persistent sessions student project.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10087)
<!-- Reviewable:end -->
2016-03-20 12:25:10 +05:30
bors-servo
bcf077c53d Auto merge of #10092 - antrik:update-ipc_channel-4, r=KiChjang
Update ipc-channel for another intermittent bug fix

This pulls in https://github.com/servo/ipc-channel/pull/52 , and
especially 8e2357604f7af8869b489b9682a2cf8b58177637, which fixes another
likely cause of intermittent failures on GNU/Linux.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10092)
<!-- Reviewable:end -->
2016-03-20 10:24:40 +05:30
bors-servo
98a1b17cec Auto merge of #10090 - servo:tracking-nav-langs, r=ecoal95
Add link to tracking issue for NavigatorLanguage::Languages.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10090)
<!-- Reviewable:end -->
2016-03-20 09:30:10 +05:30