Commit graph

543 commits

Author SHA1 Message Date
Patrick Walton
bffaad118e layout: Rewrite clipping to be per-display-item instead of having
a separate `ClipDisplayItem`.

We push down clipping areas during absolute position calculation. This
makes display items into a flat list, improving cache locality. It
dramatically simplifies the code all around.

Because we need to push down clip rects even for absolutely-positioned
children of non-absolutely-positioned flows, this patch alters the
parallel traversal to compute absolute positions for
absolutely-positioned children at the same time it computes absolute
positions for other children. This doesn't seem to break anything either
in theory (since the overall order remains correct) or in practice. It
simplifies the parallel traversal code quite a bit.

See the relevant Gecko bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=615734
2014-10-13 21:40:36 -07:00
Patrick Walton
d560d51454 layout: Refactor inline layout to remove the code that tried to avoid
splitting fragments.

I don't think it will be possible to avoid splitting fragments in the
presence of `vertical-align`, because one `ScannedTextFragment` could
potentially be split into arbitrary many fragments, each having its own
vertical position that can influence layout of other fragments.

This code also removes parts of `Range` that were no longer used.
2014-10-13 16:33:19 -07:00
Glenn Watson
eb5532c781 Expose user agent option to DOM navigator interface. 2014-10-13 19:53:41 +10:00
Patrick Walton
2a790d06dd Use Gecko's simpler Bloom filter instead of one based on hash
stretching.

This preserves the usage of the Bloom filter throughout style recalc,
but the implementation is rewritten. Provides a 15% improvement on
Guardians of the Galaxy.
2014-10-10 17:02:27 -07:00
Patrick Walton
01c90d8d6a layout: Implement z-index. 2014-10-08 22:30:44 -07:00
Robin Stocker
8a5c6a0d3b Allow to specify port with --devtools option (fixes #3597)
Note that using `servo --devtools http://example.org` doesn't work. In
that case either the port must be specified or the option moved to the
end. This is done by getopts and is the same for other such options,
e.g. `--profile`.
2014-10-09 00:39:31 +11:00
Simon Sapin
cf1785ecb1 Read user-agent.css at run time. Fix #3516 2014-10-07 21:16:54 +01:00
bors-servo
3e8aa05921 auto merge of #3565 : glennw/servo/user-agent, r=mbrubeck
Fixes #3455
2014-10-06 23:21:32 -06:00
Jack Moffitt
7f6f072b02 Fix up and run unit tests.
This adds the subpackages to `./mach test-unit`.
2014-10-02 23:14:42 -06:00
Glenn Watson
dc1d66d3ce Add cmd line option to set user agent. Improves github when used. 2014-10-03 13:57:12 +10:00
Patrick Walton
dbdfce0695 gfx: Use subpixel positioning for glyphs.
Improves text rendering significantly.
2014-10-02 08:05:24 -07:00
Keegan McAllister
d50114c41d Use string-cache's Namespace type 2014-09-29 21:40:54 -07:00
Keegan McAllister
6429750b33 Eliminate servo_util::atom
We only needed this for Encodable, and now we use JSTraceable instead.
2014-09-29 18:39:36 -07:00
Simon Sapin
b3245fa407 Upgrade to rustc d2b30f7d3 2014-09-23 2014-09-29 17:41:45 +01:00
Glenn Watson
e237519fdd Revert "Set default resolution to 1280x1024 now that reftests render to FBO."
This reverts commit c74798bb6b.
2014-09-29 10:10:37 +10:00
Glenn Watson
c74798bb6b Set default resolution to 1280x1024 now that reftests render to FBO. 2014-09-29 07:42:45 +10:00
bors-servo
177127e597 Merge pull request #3398 from glennw/config-res
Allow resolution to be configured on command line. Default to 1280x1024.

Reviewed-by: SimonSapin
2014-09-25 18:27:38 -06:00
Glenn Watson
ff4713c434 Change opts to work in screen pixels that are scaled to device pixels. 2014-09-24 07:39:37 +10:00
Glenn Watson
c2522ec127 Change default back to 800x600 as mac travis builders don't work with 1280x1024 2014-09-24 06:59:05 +10:00
Glenn Watson
c33f18b7df Allow resolution to be configured on command line. Default to 1280x1024. 2014-09-24 06:59:05 +10:00
Ms2ger
d3d7c1dabd Handle null strings in Namespace::new.
This also avoids a string copy in the rare case of an unrecognized namespace.
2014-09-23 22:22:45 +02:00
Patrick Walton
3bb4020ff8 layout: Adjust the position of block formatting contexts based on float
placement.

Improves Reddit considerably.

Closes #3456.
2014-09-22 18:04:15 -07:00
Keegan McAllister
dc86e83654 Eliminate warnings 2014-09-20 13:00:55 -07:00
Keegan McAllister
a640a7c5c3 Upgrade to rustc 0.12.0-pre (4d2af3861 2014-09-17 15:51:11 +0000) 2014-09-20 13:00:06 -07:00
Clark Gaebel
877de7f694 Merge pull request #3427 from cgaebel/add-license-to-tid
added valid license to tid.rs
2014-09-19 17:19:42 -07:00
Patrick Walton
08e004d106 Merge pull request #3424 from SimonSapin/font-size-absolute
Add font-size absolute size keywords. Fix #3417
2014-09-19 15:17:55 -07:00
Clark Gaebel
3b280ac8b0 added valid license to tid.rs 2014-09-19 11:34:43 -07:00
Simon Sapin
010d87b93e Remove min/max functions from util::geometry. Use std::cmp instead. 2014-09-19 13:56:35 +01:00
Simon Sapin
415bbaeb2e Fix dimensionality of Au
Previously, we implemented:

Au * Au -> Au
Au / Au -> Au
Au % Au -> Au

... which are inconsistent. It should be:

Au * Au -> SquaredAu
Au / Au -> i32
Au % Au -> i32

or:

Au * i32 -> Au
Au / i32 -> Au
Au % i32 -> Au

I picked the latter.

Also, the multiplicative identity does not make sense
when multiplication take two different types.
2014-09-19 13:54:57 +01:00
Josh Matthews
f0f7e98dfa Dump initial prototype of devtools server into the build. Expect lies if you try to use it for anything real. 2014-09-18 15:06:40 -04:00
Clark Gaebel
670ca9894e Fixed #3386. 2014-09-18 09:20:23 -07:00
Clark Gaebel
1b251db732 Merge pull request #3379 from cgaebel/bucketed-timing
Added more complex profiling metadata.
2014-09-18 09:12:34 -07:00
Josh Matthews
9607b468bc Revert "script: Use atom comparison in more places, especially for attributes." for persistent test failures.
This reverts commit 874db26104.
2014-09-18 09:20:19 -04:00
Clark Gaebel
6bc63d47cd Added more complex profiling metadata. 2014-09-17 15:41:27 -07:00
Matt Brubeck
a939cc50bb Fix doctest errors in rustdoc comments
Mostly this disables doctest for comments that are not actually tests.
2014-09-17 14:46:37 -07:00
Patrick Walton
874db26104 script: Use atom comparison in more places, especially for attributes.
75% improvement in style recalc for Guardians of the Galaxy.
2014-09-17 13:17:12 -07:00
Patrick Walton
ee2b4e208f build: Update string-cache to fix a nasty race 2014-09-17 08:20:54 -07:00
Josh Matthews
4a1d51b982 Merge pull request #3367 from jdm/breakpoint
Add breakpoint utility function.
2014-09-17 02:33:27 -04:00
Josh Matthews
efb59fde92 Add breakpoint utility function. 2014-09-16 10:57:00 -04:00
Clark Gaebel
acd83ff47b Added a bloom filter to CSS selector matching. 2014-09-15 16:29:45 -07:00
Jack Moffitt
e10206e91e Reinstate errors for unused variables and imports. 2014-09-13 23:38:00 -06:00
Patrick Walton
21b8a182a4 build: Update submodules 2014-09-12 18:00:54 -07:00
Jack Moffitt
c6ab60dbfc Cargoify servo 2014-09-08 20:21:42 -06:00