Commit graph

6892 commits

Author SHA1 Message Date
Manish Goregaokar
b25d9de03d Spec says 'ContextMenu', not 'Menu' 2016-03-22 21:09:43 +05:30
Manish Goregaokar
2f982e668c Update spec links for keyboardevent 2016-03-22 21:09:08 +05:30
Manish Goregaokar
f3162cd316 Add support for navigation keys 2016-03-22 21:03:56 +05:30
Ms2ger
5d2138e061 Update objc crates. 2016-03-22 13:38:59 +01: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
Ms2ger
22447055b9 Stop returning in-process senders from {CanvasPaintThread, WebGLPaintThread}::start. 2016-03-21 18:26:46 +01: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
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
bors-servo
8c92e3f32b Auto merge of #10075 - Ms2ger:deny-unsafe, r=jdm
Deny unsafe code in more 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/10075)
<!-- Reviewable:end -->
2016-03-20 08:00:53 +05:30
Daniel
ddc96dca82 add a new command line flag --profile-dir [path] 2016-03-19 21:20:30 -04:00
bors-servo
8e95f54501 Auto merge of #10079 - servo:script-encoding, r=jdm
Implement encoding determination for external scripts.

<!-- 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/10079)
<!-- Reviewable:end -->
2016-03-20 06:28:25 +05:30
Keith Yeung
4e81fd36b0 Remove HTMLCollectionElementsRevIter 2016-03-19 20:28:40 -04:00
Michael Howell
9d9c5398a8 Get the fundamentals of the HTMLDetailsElement rendering stuff working.
Still need to implement the style invalidation.

Part of #9395
2016-03-19 16:02:11 -07:00
bors-servo
a4251c832d Auto merge of #9876 - mbrubeck:seen-viewport-percentages, r=SimonSapin
Recompute styles on viewport size change if they contain viewport percentages

Fixes #8754.  Depends on servo/rust-cssparser#99.  r? @SimonSapin

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9876)
<!-- Reviewable:end -->
2016-03-20 02:20:54 +05:30
Matt Brubeck
25c1bce9f6 Recompute viewport-dependent styles on viewport size change
Fixes #8754.
2016-03-19 13:23:39 -07:00
bors-servo
8120fb5c2d Auto merge of #10064 - pcwalton:overflow-bottom-up, r=mbrubeck
layout: Move overflow calculation to be a separate, sequential, bottom-up pass.

Right now, the only reason that overflow calculation works is that we
rely on script inducing extra reflows that are sent for display. This
was preventing #10021 from landing.

This change regresses layout performance by about 1% in my tests.

Fixes #7797 properly.

r? @mbrubeck
cc @glennw

<!-- 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/10064)
<!-- Reviewable:end -->
2016-03-20 00:53:27 +05:30
Pawel Kondzior
db2e10a70f Report memory usage from LayoutThreadData Stylist [#7038] 2016-03-19 11:53:13 -07:00
bors-servo
4df7975ed3 Auto merge of #10066 - apopiak:fromBool, r=asajeffrey
implement and use From<bool> for enum and back

as discussed in the #servo channel on IRC:

implement and use  `From<bool>` for `EventBubbles` (and back direction)
implement and use `From<bool>` for `EventCancelable` (and back direction)

<!-- 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/10066)
<!-- Reviewable:end -->
2016-03-19 22:58:21 +05:30
Olaf Buddenhagen
183d01adba 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.
2016-03-19 17:57:10 +01:00
Corey Farwell
deefa8907a Add link to tracking issue for NavigatorLanguage::Languages. 2016-03-19 11:09:24 -04:00
Patrick Walton
5ea8c34276 layout: Move overflow calculation to be a separate, sequential,
bottom-up pass.

Right now, the only reason that overflow calculation works is that we
rely on script inducing extra reflows that are sent for display. This
was preventing #10021 from landing.

This change regresses layout performance by about 1% in my tests.

Fixes #7797 properly.
2016-03-18 22:11:51 -07:00
bors-servo
2d6283c64b Auto merge of #9929 - servo:cascade, r=pcwalton
Refactor the cascade

Converting the specified value of some properties into a computed value depends on the value of other properties. For example, the `em` unit of any length depends on the `font-size` property.

Previously, we would do a first pass over applicable declarations to build up a `values::computed::Context` struct with a number of fields for each such piece of data from other properties.

This simplies the struct by instead having it contain the set of computed values (for a given element) that is being populated and classify properties into "early" and "other", such that the only dependencies can be from "other" to "early". We iterate applicable_declarations twice, first cascading "early" properties then "other". Unfortunately, it’s not easy to check that this classification is correct.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9929)
<!-- Reviewable:end -->
2016-03-19 08:08:56 +05:30
Simon Sapin
529164e4a5 Refactor the cascade
Converting the specified value of some properties into a computed value
depends on the value of other properties. For example, the `em` unit
of any length depends on the `font-size` property.

Previously, we would do a first pass over applicable declarations
to build up a `values::computed::Context` struct with a number of fields
for each such piece of data from other properties.

This simplies the struct by instead having it contain the
set of computed values (for a given element) that is being populated
and classify properties into "early" and "other",
such that the only dependencies can be from "other" to "early".
We iterate applicable_declarations twice, first cascading "early" properties
then "other".
Unfortunately, it’s not easy to check that this classification is correct.
2016-03-18 17:09:16 +01:00
Ms2ger
f1f53468a0 Use a Cell for HTMLScriptElement::block_character_encoding. 2016-03-18 16:51:29 +01:00
askalski
89b8499df8 Implement encoding determination for external scripts. 2016-03-18 16:51:25 +01:00