Commit graph

4771 commits

Author SHA1 Message Date
Patrick Walton
24fdc8a3c7 Handle zero-sized source surfaces properly, and upgrade ipc-channel to
incorporate the fix for zero-sized shmem on Mac.

Depends on servo/rust-azure#201 and pcwalton/ipc-channel#10.

Closes #7422.
2015-09-30 23:09:36 -07:00
bors-servo
a7743052ca Auto merge of #6185 - luniv:viewport-meta, r=mbrubeck
Implement <meta name=viewport> handling

Translate <meta name=viewport> as according to [CSS Device Adaption § 9](http://dev.w3.org/csswg/css-device-adapt/#viewport-meta)

Note: as the PR currently stands, handling `<meta name=viewport>` elements always occurs. This is probably not desired for some contexts (e.g. desktop), but I'm unsure of how to conditionally handle elements based on that.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6185)
<!-- Reviewable:end -->
2015-09-30 22:49:41 -06:00
bors-servo
0860be4c28 Auto merge of #7811 - glennw:use-crates-au, r=larsbergstrom
Update servo to use published app units crate



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7811)
<!-- Reviewable:end -->
2015-09-30 22:21:36 -06:00
bors-servo
99880bf957 Auto merge of #7810 - glennw:publish-au, r=jdm
Prepare app_units crate for publishing



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7810)
<!-- Reviewable:end -->
2015-09-30 21:53:42 -06:00
James Gilbertson
d0ace58452 Handle <meta name=viewport> elements when added to document 2015-09-30 20:31:35 -07:00
James Gilbertson
61f7a0a1ee Implement CSS Device Adaption § 9 (Viewport <META> element)
Spec: http://dev.w3.org/csswg/css-device-adapt/#viewport-meta
2015-09-30 20:11:39 -07:00
bors-servo
9b37de965c Auto merge of #7808 - mbrubeck:headless-dpr, r=mrobinson
Start the constellation with the correct pixel ratio

This may mitigate race conditions like #7730. r? @mrobinson

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7808)
<!-- Reviewable:end -->
2015-09-30 20:58:10 -06:00
Glenn Watson
1999ea5e43 Update servo to use published app units crate 2015-10-01 11:45:35 +10:00
bors-servo
520c907742 Auto merge of #7806 - frewsxcv:consistent-str-join, r=mbrubeck
Make util::str::str_join consistent with SliceConcatExt::join

Prior to this commit, `str_join` would skip empty items at the start of
the `Iterator` until it found a non-empty item. This contradicts
`SliceConcatExt::join` which doesn't skip anything.

Brought up in:

https://github.com/servo/servo/pull/7776#issuecomment-144317281

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7806)
<!-- Reviewable:end -->
2015-09-30 19:34:44 -06:00
bors-servo
94e85a5226 Auto merge of #7801 - aopicier:refactor_formcontrol, r=Manishearth
Refactor FormControl trait

The trait is now implemented for HTMLFooElement instead of
&HTMLFooElement and does no longer require an impl body.

Suggested by @Manishearth

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7801)
<!-- Reviewable:end -->
2015-09-30 19:06:18 -06:00
Glenn Watson
18fd9b244f Prepare app_units crate for publishing 2015-10-01 11:04:16 +10:00
bors-servo
bb7742eecf Auto merge of #7804 - mrobinson:cleanup-stacking-context-creation, r=pcwalton
Simplify stacking context creation

Have Fragment::create_stacking_context understand which stacking
contexts need layers and which do not. This simplifies the way it is
called and eliminates a bunch of code.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7804)
<!-- Reviewable:end -->
2015-09-30 18:11:29 -06:00
Matt Brubeck
a604b360da Start the constellation with the correct pixel ratio
This may mitigate race conditions like #7730.
2015-09-30 16:53:10 -07:00
bors-servo
ac448cacba Auto merge of #7799 - mbrubeck:glyph-cleanup, r=pcwalton
Misc. code cleanup in gfx::text::glyph.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7799)
<!-- Reviewable:end -->
2015-09-30 17:44:02 -06:00
Corey Farwell
ea5e4e3ad0 Make util::str::str_join consistent with SliceConcatExt::join
Prior to this commit, `str_join` would skip empty items at the start of
the `Iterator` until it found a non-empty item. This contradicts
`SliceConcatExt::join` which doesn't skip anything.

Brought up in:

https://github.com/servo/servo/pull/7776#issuecomment-144317281
2015-09-30 19:23:18 -04:00
Martin Robinson
1a494b1a73 Simplify stacking context creation
Have Fragment::create_stacking_context understand which stacking
contexts need layers and which do not. This simplifies the way it is
called and eliminates a bunch of code.
2015-09-30 16:09:03 -07:00
Matt Brubeck
b024fdab33 Use same default window size in headless compositor
Attempts to fix #7730.
2015-09-30 15:58:49 -07:00
Glenn Watson
339a3f869b Split Au type into separate crate, with minimal dependencies. 2015-10-01 07:16:11 +10:00
Philipp Hartwig
b46243c00b Fix order of use statements 2015-09-30 22:26:47 +02:00
Philipp Hartwig
bae4abd388 Refactor FormControl trait
The trait is now implemented for HTMLFooElement instead of
&HTMLFooElement and does no longer require an impl body.
2015-09-30 22:02:56 +02:00
bors-servo
fb6d0946cb Auto merge of #7794 - mbrubeck:setdata, r=pcwalton
Dirty text nodes when their content changes

Fixes #7793. r? @pcwalton

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7794)
<!-- Reviewable:end -->
2015-09-30 11:49:52 -06:00
Matt Brubeck
584fb66e81 Remove unused import in net_traits 2015-09-30 10:00:57 -07:00
Matt Brubeck
5bacfe9db9 Remove unused CharIndex field from GlyphIterator::Item 2015-09-30 09:52:10 -07:00
Matt Brubeck
d3d1d15615 Remove unused is_missing flag 2015-09-30 09:45:24 -07:00
Matt Brubeck
fa85d5f312 Remove unneeded adapt_character_flags_of_entry 2015-09-30 09:41:53 -07:00
Matt Brubeck
4174c918ad Make set_char_is_space mutate self in place 2015-09-30 09:38:12 -07:00
Matt Brubeck
e663005ce2 Simplify add_glyph_for_char_index 2015-09-30 09:36:01 -07:00
bors-servo
61be58a87f Auto merge of #7798 - Ms2ger:dead, r=jdm
Remove dead code from net_traits.

It was added in commit ecf02a3656.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7798)
<!-- Reviewable:end -->
2015-09-30 08:14:05 -06:00
Ms2ger
49936b6ce7 Remove dead code from net_traits.
It was added in commit ecf02a3656.
2015-09-30 11:34:50 +02:00
bors-servo
b1d9f438b7 Auto merge of #7751 - mrobinson:refactor-hit-testing, r=pcwalton
Make DisplayList hit testing a method on DisplayList

This will allow us to hit test into DisplayLists that are not directly
contained in StackingContexts, but instead are children of PaintLayers.
It also makes things slightly simpler.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7751)
<!-- Reviewable:end -->
2015-09-30 03:04:16 -06:00
bors-servo
a0cb657fe8 Auto merge of #7423 - pcwalton:iframe-stacking-context-position, r=glennw
layout: Make the compositor rather than layout determine the position of each iframe.

The old code that attempted to do this during layout wasn't able to work
for multiple reasons: it couldn't know where the iframe was going to be
on the page (because of nested iframes), and at the time it was building
the display list for a fragment it couldn't know where that fragment was
going to be in page coordinates.

This patch rewrites that code so that only the size of an iframe is
determined during layout, and the position is determined by the
compositor. Layout layerizes iframes and marks the iframe layers with
the appropriate subpage ID so that the compositor can place them
correctly.

Closes #7377.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7423)
<!-- Reviewable:end -->
2015-09-29 19:26:49 -06:00
Matt Brubeck
7e199f9bda Dirty text nodes when their content changes
Fixes #7793.
2015-09-29 16:40:46 -07:00
bors-servo
4823ec947e Auto merge of #7776 - frewsxcv:str-join, r=mbrubeck
Avoid allocations when joining strings



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7776)
<!-- Reviewable:end -->
2015-09-29 16:59:14 -06:00
bors-servo
a144d086d9 Auto merge of #7786 - mbrubeck:harfbuzz-sys, r=pcwalton
Use Harfbuzz 1.0 and unicode-script for text shaping

Depends on servo/rust-harfbuzz#53 and introduces a dependency on the new servo/unicode-script crate.  r? @pcwalton

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7786)
<!-- Reviewable:end -->
2015-09-29 15:37:11 -06:00
Matt Brubeck
569b434023 Fix shaping of tab characters with Harfbuzz 1.0
Harfbuzz now renders tabs with a "missing character" glyph by default, so we
need to filter them out ourselves after computing an advance.
2015-09-29 14:34:51 -07:00
Matt Brubeck
6304186f4f Fix text-transform:capitalize across text runs 2015-09-29 14:34:50 -07:00
Matt Brubeck
371e6897e1 Break text runs by unicode script 2015-09-29 14:34:49 -07:00
Matt Brubeck
062493fac6 Upgrade to the new harfbuzz-sys crate 2015-09-29 14:34:48 -07:00
bors-servo
0c64e4a2c9 Auto merge of #7764 - j3parker:input-caret-only-for-text, r=pcwalton
Only display text carets in text inputs

For #7756

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7764)
<!-- Reviewable:end -->
2015-09-29 14:13:32 -06:00
bors-servo
d92e781a87 Auto merge of #7778 - paulrouget:decorationLessOption, r=jdm
Add a command line option to disable native titlebar



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7778)
<!-- Reviewable:end -->
2015-09-29 13:45:57 -06:00
bors-servo
c356593fd3 Auto merge of #7582 - paulrouget:navigator.platform, r=jdm
implement navigator.platform

Fix #7573

I used this as a reference: http://stackoverflow.com/questions/19877924/what-is-the-list-of-possible-values-for-navigator-platform-as-of-today

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7582)
<!-- Reviewable:end -->
2015-09-29 11:42:45 -06:00
Patrick Walton
c72d0c2ed0 layout: Make the compositor rather than layout determine the position of
each iframe.

The old code that attempted to do this during layout wasn't able to work
for multiple reasons: it couldn't know where the iframe was going to be
on the page (because of nested iframes), and at the time it was building
the display list for a fragment it couldn't know where that fragment was
going to be in page coordinates.

This patch rewrites that code so that both the sizes and positions of
iframes are determined by the compositor. Layout layerizes all iframes
and marks the iframe layers with the appropriate pipeline and subpage
IDs so that the compositor can place them correctly. This approach is
similar in spirit to Gecko's `RefLayer` infrastructure. The logic that
determines when it is time to take the screenshot for reftests has been
significantly revamped to deal with this change in delegation of
responsibility.

Additionally, this code removes the infrastructure that sends layout
data back to the layout task to be destroyed, since it is now all
thread-safe and can be destroyed on the script task.

The failing tests now fail because of a pre-existing bug related to
intrinsic heights and borders on inline replaced elements. They happened
to pass before because we never rendered the iframes at all, which meant
they never had a chance to draw the red border the tests expect to not
render!

Closes #7377.
2015-09-29 09:47:28 -07:00
Paul Rouget
5be60f2c79 Add a command line option to disable native titlebar 2015-09-29 08:50:39 +02:00
Paul Rouget
132724be2b implement navigator.platform 2015-09-29 08:14:30 +02:00
bors-servo
ed0d70e234 Auto merge of #7775 - frewsxcv:tracking-issue, r=jdm
Link to 'ask for a reset' tracking issue

FIXME added in  https://github.com/servo/servo/pull/7745

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7775)
<!-- Reviewable:end -->
2015-09-28 21:34:19 -06:00
Martin Robinson
a2cf8e583d Make DisplayList hit testing a method on DisplayList
This will allow us to hit test into DisplayLists that are not directly
contained in StackingContexts, but instead are children of PaintLayers.
It also makes things slightly simpler.
2015-09-28 18:34:07 -07:00
bors-servo
e68bd8d4ff Auto merge of #7771 - mbrubeck:rtl-stacking-context, r=pcwalton
Use the correct container size in compute_overflow

Fixes #7768 - positioning of RTL stacking contexts. r? @pcwalton

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7771)
<!-- Reviewable:end -->
2015-09-28 18:57:08 -06:00
Corey Farwell
f14f09e886 Use util::str::str_join in more places
Instead of intermediate allocations of `Vec`s, we should utilize
`str_join` which operates on iterators
2015-09-28 19:57:06 -04:00
Corey Farwell
2857e547be Make util::str::str_join operate on Iterators 2015-09-28 19:45:01 -04:00
Corey Farwell
2c67f89e9d Link to 'ask for a reset' tracking issue
FIXME added in  https://github.com/servo/servo/pull/7745
2015-09-28 18:45:55 -04:00