Commit graph

1358 commits

Author SHA1 Message Date
Patrick Walton
5b4380389e layout: Enhance the heuristic that guesses the inline size of block
formatting contexts.

The widths of block formatting contexts depend on the floats prior to
them. To avoid a circular dependency between width assignment and height
assignment, we must guess their widths during the assign-widths pass.
The old code simply used the size of the last float, whether
left-floated or right-floated, but this proved insufficient to handle
layouts like those seen on Reddit. The new heuristic keeps track of both
left and right floats independently and sums the width of all left and
right floats to determine the width of a block formatting context. This
is still insufficient to properly lay out Reddit, but the results are
much more acceptable.

A fully correct approach will require that blocks be laid out again if
the initial guess proved to be incorrect. A `TODO` is in the code to
handle this case.
2014-09-25 17:50:24 -07:00
Patrick Walton
9f4c2de211 layout: Unify the block-size computation for blocks and floats.
The float code was old and did not support most of CSS 2.1. So unifying
the two paths both simplifies code and improves functionality.

Improves the Reddit sidebar.
2014-09-25 16:43:24 -07:00
Ms2ger
e8da983aeb Remove temporary wptrunner hotfix.
This was added in anticipation of a wptrunner release that includes the change.
2014-09-25 22:41:25 +02:00
Patrick Walton
62bb9093d7 layout: Float table wrappers directly instead of generating a block
wrapper around them.

Fixes Wikipedia tables leaking out.

Along the way, I refactored tables' width calculation significantly.
This was necessary in order to properly handle floated tables, as some
of the logic had to be ported over from block flows.
2014-09-25 08:06:03 -07:00
Patrick Walton
fffc7aaf38 layout: Consider relatively positioned blocks as possible block
formatting contexts, and translate floats out of block formatting
contexts.

These improve Reddit.
2014-09-24 22:03:06 -07:00
Lars Bergstrom
726cd91fd9 Disable travis 2014-09-24 18:29:37 -06:00
Patrick Walton
9aacd4c10c layout: Implement white-space: nowrap.
Improves the Reddit header.
2014-09-23 15:47:45 -07:00
Glenn Watson
32c02fc048 Fix inline context padding on inline-block.
Fixes categories bar on wikipedia - ref #2554.
2014-09-23 15:40:08 +10: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
Patrick Walton
34b3408a89 layout: Translate floats when clearing non-floated blocks.
Improves CNN layout considerably.

Closes #3439.
2014-09-22 14:14:20 -07:00
Simon Sapin
eabb8d4f29 Add support for font-size relative size keywords. Fix #3423 2014-09-22 17:00:00 +01:00
Ms2ger
e3496be9dd Update web-platform-tests. 2014-09-22 12:13:52 +02:00
Glenn Watson
87d18b90a6 Add support for min-width and max-width to images.
This fixes the images on the homepage of github.
2014-09-22 14:03:10 +10: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
Jeongeun Kim
dad77f0d25 Implement HTMLOptionElement.text#3023
Signed-off-by: Jeongeun Kim <je00julie.kim@gmail.com>

Implement HTMLOptionElement.text#3023 (2nd trial)

Implement HTMLOptionElement.text#3023 (3rd trial)

delete metadata for skipping option tests

fix conflict
2014-09-20 23:49:20 +09:00
Patrick Walton
0604d0c6b1 layout: Handle floated blocks with percentage heights correctly.
Improves the top menu in Wikipedia.
2014-09-19 17:56:07 -07:00
Patrick Walton
39d7bf93d6 layout: Make percentage heights propagate through inline flows.
I found this random bug during an attempt to improve Wikipedia.
2014-09-19 17:20:56 -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
Patrick Walton
b4db9aeaeb Handle generated content with display: block correctly during flow
construction.

The iteration was incorrect here. Although it accidentally worked
before, it will cause problems when we have incremental style
recalculation.

The `after_block_iteration` reftest will become interesting once we have
incremental style recalc.
2014-09-19 12:25:37 -07:00
Simon Sapin
4e71b215b8 Add font-size absolute size keywords. Fix #3417.
Relative size keywords are still missing:
https://github.com/servo/servo/issues/3423
2014-09-19 19:04:31 +01:00
Josh Matthews
6d6726178a Merge pull request #3253 from ChrisParis/TreeWalker
Implement TreeWalker
2014-09-19 10:54:26 -04:00
Glenn Watson
818f70e319 Fix img with display: block. Fixes text/image overflow on wikipedia.
Ref: #2554
2014-09-19 17:59:48 +10:00
Glenn Watson
fd176d5387 Fix padding on tables. This fixes the TOC on wikipedia pages.
Ref: #2554
2014-09-19 14:58:24 +10:00
Matt Brubeck
f35941d91d Fix line splitting in white-space: pre flows
The newline position from one line was getting used repeatedly, causing extra
"phantom" newlines in the following lines.  Fixes #3413.
2014-09-18 14:25:12 -07:00
Chris Paris
92638a6fe6 Implement TreeWalker 2014-09-18 11:13:33 -10:00
Glenn Watson
6bc65f3b07 Include margin in inline block intrinsic width. Fixes [edit] links on wikipedia. 2014-09-18 16:07:28 +10:00
LalehB
5dcce000e5 Update README.md 2014-09-16 14:04:16 -07:00
LalehB
dea11c5ba2 Update README.md 2014-09-16 13:27:41 -07:00
Simon Sapin
14f7d2dabd Merge pull request #3365 from SimonSapin/command-line-argument-filenames
Try to parse command line argument as file names
2014-09-16 20:32:40 +01:00
Matt Brubeck
6c9524b687 Implement background-position keyword values
Also fixes calculation of background-position percentages:

Rather than multiplying the container size by a percent and aligning the top
left of the image at the resulting width, we also need to subtract a
corresponding percent of the image size, per
http://dev.w3.org/csswg/css2/colors.html#propdef-background-position

"A value pair of '100% 100%' places the lower right corner of the image in the
lower right corner of the padding box. With a value pair of '14% 84%', the
point 14% across and 84% down the image is to be placed at the point 14%
across and 84% down the padding box."
2014-09-16 10:24:31 -07:00
Matt Brubeck
c7e30f87c4 Implement percentage heights for block flows
Fixes #2029
2014-09-16 09:02:01 -07:00
Simon Sapin
4768423eaa Give explicit file: URLs for reftests. Allow specifying a fragment id
The previous commit made #top be considered part of the file name in
../html/acid2.html#top
2014-09-16 16:22:52 +01:00
Matt Brubeck
1ae3bda172 Move link rel=stylesheet fetching to layout task
Fixes #3346.
2014-09-16 07:12:01 -07:00
Simon Sapin
11135d75cb Try to parse command line argument as file names
… when parsing as an absolute URL (without a base) fails.

Previously, arguments were parsed as URLs with the current working directory
converted to an URL and used as the base URL. This mostly worked for
relative filenames, except that `?` and `#` had a special meaning
and needed to be percent-encoded.

Fix #3340.
2014-09-16 14:41:45 +01:00
LalehB
9ed2a894dd Update PowerMeasure.py 2014-09-15 16:13:41 -07:00
Jack Moffitt
d161d0ad47 Merge pull request #3299 from servo/iframe-javascript-urls
Handle iframe.src with a javascript: URL.
2014-09-15 17:03:54 -06:00
LalehB
587eaf4f5b Update PowerMeasure.py
fixing a bug in displaying results
2014-09-15 14:03:42 -07:00
Jack Moffitt
b605929134 Handle iframe.src with a javascript protocol URL.
This change prevents us from crashing on Amazon and other pages with
iframe.src="javascript:foo".
2014-09-15 10:02:02 -06:00
Glenn Watson
cab15531b5 Implement generated_containing_block_rect for TableFlow. Fixes #3337. 2014-09-15 15:39:58 +10:00
Manish Goregaokar
fe31805a04 Merge pull request #3282 from gilles-leblanc/tests-readme
Updates tests README.md for mach; r=Manishearth
2014-09-14 23:14:36 +05:30
Gilles Leblanc
d3dc61c984 Updates tests README.md for mach 2014-09-14 13:40:19 -04:00
Jack Moffitt
e10206e91e Reinstate errors for unused variables and imports. 2014-09-13 23:38:00 -06:00
Ms2ger
f466d31446 Merge pull request #3323 from Ms2ger/get_attribute
Stop messing with the case of the attribute name in AttributeHandlers::get_attribute; r=Manishearth
2014-09-13 21:02:40 +02:00
Ms2ger
d0e095a3e5 Stop messing with the case of the attribute name in AttributeHandlers::get_attribute.
This fixes a bug where GetAttributeNS would incorrectly match lower-case
attributes when called with an upper-case argument.
2014-09-13 21:01:54 +02:00
Glenn Watson
6a9001b4fd Add support for tables that are floated. 2014-09-13 14:51:07 +10:00
Glenn Watson
98624c9576 Implement basic support for display: inline-block.
This still needs a lot of work, but it covers the basic
cases and improves wikipedia while passing all existing tests.

Tweak reftest to deal with linux/travis black background.
2014-09-13 07:13:42 +10:00
Patrick Walton
41ffec0378 layout: Don't crash on floated generated content.
It doesn't construct the float correctly, but at least it doesn't crash
anymore.

Fixes Reddit.

Closes #3287.
2014-09-12 14:10:27 -07:00
Bryan Bell
6d0e103cde Update and expand iframe tests
Add iframe tests to their own subdirectory and add another test case
that used to trigger a fatal error. The new test case uses the
"allow-scripts" sandbox attribute to work around a script task failure
caused by the child frame sharing the same script task as the parent.
2014-09-12 11:29:14 -07:00
Gilles Leblanc
81a0d065f1 Make use of the list of Atoms in ClassSelector
Make use of the list of Atoms in the class attribute selector
(ClassSelector) in selector_matching.

Fixes #3111
2014-09-11 23:19:26 -04:00
glennw
a18633b163 Merge pull request #3283 from glennw/bg-image
Partial fix for background images on wikipedia pages.
2014-09-12 11:31:24 +10:00