Commit graph

4270 commits

Author SHA1 Message Date
Ms2ger
26d191f068 Remove the unused Window::control_chan() method. 2015-08-12 15:32:30 +02:00
bors-servo
54300a9c73 Auto merge of #7170 - Ms2ger:unwrap-constellation, r=jdm
Avoid unwrap calls in handle_navigate_msg.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7170)
<!-- Reviewable:end -->
2015-08-12 07:29:47 -06:00
Ms2ger
c05f0906d5 Store a Sender<ConstellationControlMsg> in ScriptTask. 2015-08-12 15:25:31 +02:00
Ms2ger
1ef10550b1 Avoid unwrap calls in handle_navigate_msg. 2015-08-12 15:10:03 +02:00
Josh Matthews
c81c3a2f70 Document DevtoolScriptControlMsg variants. 2015-08-12 09:05:36 -04:00
Josh Matthews
aac53344b8 fixup! Simplify devtools frame marker notification. Record each frame tick based on a single message sent from the script task that ticked. 2015-08-12 09:05:05 -04:00
Ms2ger
38ed3a46d6 Disallow unsafe code in the devtools and devtools_traits crates. 2015-08-12 13:16:31 +02:00
Josh Matthews
56475676e4 Warning police. 2015-08-12 01:07:50 -04:00
Josh Matthews
e59de75608 Simplify devtools frame marker notification. Record each frame tick based on a single message sent from the script task that ticked. 2015-08-12 00:59:58 -04:00
Josh Matthews
47b9e89c66 Document the use and meaning of the devtools control messages. Fixes #6922. 2015-08-12 00:59:28 -04:00
bors-servo
fa83cfb4b5 Auto merge of #7164 - g-k:one-serde-macros-0.5.1, r=mbrubeck
Use one version of serde_macros

Refs: https://github.com/servo/servo/issues/7130

Ran `./mach update-cargo -a` and only seeing version 0.5.1:

```
$ git grep serde_macros
components/canvas_traits/Cargo.toml:serde_macros = "0.5"
components/canvas_traits/lib.rs:#![plugin(serde_macros)]
components/devtools/Cargo.toml:serde_macros = "0.5"
components/devtools/lib.rs:#![plugin(serde_macros)]
components/devtools_traits/Cargo.toml:serde_macros = "0.5"
components/devtools_traits/lib.rs:#![plugin(serde_macros)]
components/gfx/Cargo.toml:serde_macros = "0.5"
components/gfx/lib.rs:#![plugin(serde_macros)]
components/layout/Cargo.toml:serde_macros = "0.5"
components/layout_traits/Cargo.toml:serde_macros = "0.5"
components/layout_traits/lib.rs:#![plugin(serde_macros)]
components/msg/Cargo.toml:serde_macros = "0.5"
components/msg/lib.rs:#![plugin(serde_macros, plugins)]
components/net_traits/Cargo.toml:serde_macros = "0.5"
components/net_traits/lib.rs:#![plugin(serde_macros)]
components/profile_traits/Cargo.toml:serde_macros = "0.5"
components/profile_traits/lib.rs:#![plugin(serde_macros)]
components/script_traits/Cargo.toml:serde_macros = "0.5"
components/script_traits/lib.rs:#![plugin(serde_macros)]
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock:name = "serde_macros"
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/servo/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
components/style/Cargo.toml:serde_macros = "0.5"
components/style/lib.rs:#![plugin(serde_macros)]
components/style/lib.rs:#![plugin(serde_macros)]
components/util/Cargo.toml:serde_macros = "0.5"
components/util/lib.rs:#![plugin(serde_macros)]
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock:name = "serde_macros"
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/cef/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock:name = "serde_macros"
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
ports/gonk/Cargo.lock: "serde_macros 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
```

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7164)
<!-- Reviewable:end -->
2015-08-11 16:43:09 -06:00
Greg Guthe
513e4eff01 Use one version of serde_macros
Refs: https://github.com/servo/servo/issues/7130

And don't update everything else.
2015-08-11 18:39:35 -04:00
Corey Farwell
df79c8f8fa Utilize match guard; make methods more similar
Make the structure for the `stretchiness` and `boldness` methods more
similar
2015-08-11 18:28:50 -04:00
bors-servo
0c5158587d Auto merge of #6757 - mskrzypkows:document_hasFocus, r=jdm
Implementing document.hasFocus method, needs tests. #6475

I'm not sure if I have to implement some test for a new document method. As I remember there were tests for document methods, is it changed now? Where should I add tests?

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6757)
<!-- Reviewable:end -->
2015-08-11 15:35:21 -06:00
bors-servo
7dc83e7820 Auto merge of #7024 - pcwalton:whitespace-stripping, r=mbrubeck
layout: Rewrite whitespace stripping.

This patch makes Servo unconditionally strip whitespace before text run
scanning (assuming that the `white-space` property allows it). Whitespace
stripping during reflow is now only used for handling whitespace at the ends of
lines; reflow now never attempts to handle ignorable whitespace.

Many CSS tests pass now. There are some new failures, however.

The following reference tests now fail due to a pre-existing bug whereby
whitespace is used to calculate the position of inline hypothetical boxes for
elements with `display: inline; position: absolute`:

* `absolute-replaced-height-036.htm`
* `vertical-align-sub-001.htm`
* `vertical-align-super-001.htm`

The following reference tests fail due to a pre-existing bug whereby we don't
handle `font-size: 0` properly in inline reflow:

* `font-size-zero-1.htm`
* `font-size-zero-2.htm`

The following reference test fails due to the fact that it relied on our
incorrect insertion of whitespace to make room for the black background:

* `inline-formatting-context-007.htm`

r? @mbrubeck

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7024)
<!-- Reviewable:end -->
2015-08-11 12:57:02 -06:00
Patrick Walton
ae378a8c3e layout: Rewrite whitespace stripping.
This patch makes Servo unconditionally strip whitespace before text run
scanning (assuming that the `white-space` property allows it). Whitespace
stripping during reflow is now only used for handling whitespace at the ends of
lines; reflow now never attempts to handle ignorable whitespace.

Many CSS tests pass now. There are some new failures, however.

The following reference tests now fail due to a pre-existing bug whereby
whitespace is used to calculate the position of inline hypothetical boxes for
elements with `display: inline; position: absolute`:

* `absolute-replaced-height-036.htm`
* `vertical-align-sub-001.htm`
* `vertical-align-super-001.htm`

The following reference tests fail due to a pre-existing bug whereby we don't
handle `font-size: 0` properly in inline reflow:

* `font-size-zero-1.htm`
* `font-size-zero-2.htm`

The following reference test fails due to the fact that it relied on our
incorrect insertion of whitespace to make room for the black background:

* `inline-formatting-context-007.htm`
2015-08-11 11:42:20 -07:00
bors-servo
7ce47266ac Auto merge of #7137 - pcwalton:absolute-stacking-contexts, r=glennw
layout: Make absolutely-positioned elements with `z-index: auto` not stacking contexts.

Improves many sites.

Closes #7069.

r? @glennw

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7137)
<!-- Reviewable:end -->
2015-08-11 12:22:14 -06:00
Patrick Walton
67d86ac507 gfx: Print the color of solid color display items when dumping the
display list.
2015-08-11 11:21:53 -07:00
Patrick Walton
d3d59ced36 layout: Make absolutely-positioned elements with z-index: auto not
stacking contexts.

Improves many sites.

Closes #7069.
2015-08-11 11:21:52 -07:00
bors-servo
9c528c6382 Auto merge of #7161 - mbrubeck:underline, r=pcwalton
Snap rectangles to nearest pixels consistently.

Snapping the top-left and bottom-right corners separately can cause a rectangle to change size or even become empty when offset by a subpixel amount.  Instead, this patch snaps the top-left corner, then snaps the size to a whole pixel amount, so any rectangle of a given original size will always have the same snapped size.

Fixes #7152. r? @pcwalton or @glennw

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7161)
<!-- Reviewable:end -->
2015-08-11 11:31:32 -06:00
Matt Brubeck
3b6dc09e47 Snap rectangles to nearest pixels consistently.
Snapping the top-left and bottom-right corners separately can cause a
rectangle to change size when offset by a subpixel amount.  Instead, this
patch snaps the top-left corner, then rounds the size to a whole pixel amount,
so any rectangle of a given size will always have the same snapped size.

Fixes #7152.
2015-08-11 10:30:32 -07:00
bors-servo
d9925f5f92 Auto merge of #7104 - dzbarsky:add_color_stop, r=Ms2ger
CanvasGradient#addColorStop should throw for invalid colors and offsets

The new test failure is because the color stop has a value of 'currentColor' which we don't support yet.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7104)
<!-- Reviewable:end -->
2015-08-11 06:24:35 -06:00
bors-servo
15a73614f4 Auto merge of #7140 - wilmoz:master, r=jdm
Remove Message suffix from NetworkEventMessage

https://github.com/servo/servo/issues/7129

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7140)
<!-- Reviewable:end -->
2015-08-11 01:34:47 -06:00
bors-servo
b8d464f5dc Auto merge of #7151 - dzbarsky:style-setters, r=jdm
Make CSSStyleDeclaration setters rethrow errors instead of unwrapping



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7151)
<!-- Reviewable:end -->
2015-08-10 23:04:34 -06:00
David Zbarsky
a3ee46fc9c Make CSSStyleDeclaration setters rethrow errors instead of unwrapping and crashing. 2015-08-11 00:34:41 -04:00
Patrick Walton
bf26a2373f layout: Carry out some minor style cleanups. 2015-08-10 21:27:05 -07:00
Patrick Walton
300315bb78 compositing: Add some layer tree debugging infrastructure. 2015-08-10 21:27:04 -07:00
Patrick Walton
df4acbac04 layout: Implement basic overflow: scroll functionality.
Known issues:

* Display list optimization can sometimes optimize out elements that
  should be shown. This affects the Enyo demo.

* The `overflow: scroll` container doesn't clip the inner layer properly
  when borders, border radius, etc. are present.

* `overflow-x: scroll` and `overflow-y: scroll` don't work individually;
  elements are scrolled all at once.

* Scrolling only works on absolutely-positioned elements.
2015-08-10 21:27:04 -07:00
Patrick Walton
fc13dd1169 compositor: Allow children of layers that don't want scroll events to be
scrolled.

Necessary for `overflow: scroll`.
2015-08-10 21:27:04 -07:00
Patrick Walton
11822f3eb1 layout: Remove the now-useless dirty field from the layout context.
At this point the only thing it does is to try to avoid adding display
items that are outside the root scrollable area, which is both wrong
(since it's incompatible with having scrollable areas outside the root)
and is useless (because we have displayports now).
2015-08-10 21:27:03 -07:00
bors-servo
c079c1cf6d Auto merge of #7147 - glennw:abs-explicit-height, r=pcwalton
Fix explicit height edge case with absolute / relative nested divs.

Needed for #6643.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7147)
<!-- Reviewable:end -->
2015-08-10 20:58:12 -06:00
bors-servo
5af93e9ca3 Auto merge of #7141 - glennw:2d-clipping-update, r=pcwalton
Update rust-layers to get 2d transform + clipping support.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7141)
<!-- Reviewable:end -->
2015-08-10 20:23:42 -06:00
Glenn Watson
e83091d918 Fix explicit height edge case with absolute / relative nested divs.
Needed for #6643.
2015-08-11 11:25:26 +10:00
bors-servo
049cee1b5e Auto merge of #7143 - larsbergstrom:user_agent, r=mbrubeck
Add the Servo User Agent strings

Fixes #4331. I've tested this out on desktop and Android on "the usual" sites (reddit, cnn, github, wikipedia, etc.).

r? @mbrubeck @metajack

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7143)
<!-- Reviewable:end -->
2015-08-10 18:18:27 -06:00
Lars Bergstrom
6a4ce717cb Add the Servo User Agent strings 2015-08-10 19:11:12 -05:00
wilmoz
210e068ac7 Remove Message suffix from NetworkEventMessage 2015-08-10 18:48:53 -05:00
Glenn Watson
30d9e75557 Update rust-layers to get 2d transform + clipping support. 2015-08-11 08:48:44 +10:00
Brandon Fairchild
a95015b68a Rename SendConsoleMessage to ConsoleAPI
Fixes #7131.
2015-08-10 16:46:18 -04:00
bors-servo
2b9590c5a5 Auto merge of #6778 - nox:childnodes, r=jdm
Optimise Node.childNodes



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6778)
<!-- Reviewable:end -->
2015-08-10 14:05:02 -06:00
Maciej Skrzypkowski
07c0cd8a18 Implementing document.hasFocus method. #6475 2015-08-10 21:23:09 +02:00
bors-servo
a91c366c06 Auto merge of #7125 - AdrianArroyoCalle:master, r=Ms2ger
MIME classifier should use &[T] instead of &Vec<T>

Closes #7109

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7125)
<!-- Reviewable:end -->
2015-08-10 07:04:26 -06:00
Adrián Arroyo Calle
af21c2457e MIME classifier should use &[T] instead of &Vec<T> 2015-08-10 15:00:35 +02:00
Ms2ger
d39b166465 Remove unused import. 2015-08-10 09:30:46 +02:00
David Zbarsky
7315b50973 CanvasGradient#addColorStop should throw for invalid colors and offsets 2015-08-09 23:19:56 -04:00
bors-servo
f77973c903 Auto merge of #7101 - HarryLovesCode:master, r=jdm
Allows object evaluation in devtools -- Closes #6724

The purpose of this is to fix how objects were previously evaluated in
the developer tools.

- Before this, evaluating an object such as the `window` would `panic!`
- After this, evaluating an object such as the `window` outputs `[object
  Window]`

A few things to note:

- This commit contains `unsafe` code.
- This does not contain a test because the developer tools cannot be properly tested until #5971 lands.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7101)
<!-- Reviewable:end -->
2015-08-09 18:27:53 -06:00
bors-servo
44d93bc37a Auto merge of #7089 - dzbarsky:createtbody, r=Ms2ger
Implement HTMLTableElement#createTBody



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7089)
<!-- Reviewable:end -->
2015-08-09 13:56:47 -06:00
Ms2ger
97c79bbb99 Avoid a panic when clicking a link whose href is unparsable. 2015-08-09 20:05:35 +02:00
David Zbarsky
54adae26c6 Implement HTMLTableElement#createTBody 2015-08-09 12:24:15 -04:00
Ms2ger
ecd3f4f80e Introduce a follow_hyperlink function to implement the "follow a hyperlink" algorithm. 2015-08-09 17:54:56 +02:00
Harrison G
e0f007a940 Closes #6724 (Allows object evaluation in devtools)
The purpose of this is to fix how objects were previously evaluated in
the developer tools.

- Before this, evaluating an object such as the `window` would `panic!`
- After this, evaluating an object such as the `window` outputs `[object
  Window]`

A few things to note:

- This commit contains `unsafe` code.
- This does not contain a test because the developer tools cannot be properly tested until #5971 lands.
2015-08-09 11:45:16 -04:00