This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!
Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
Currently pseudo-elements, like the fragments created for ::before and
::after, with layers will have the same LayerId as the body of their
owning fragments. Instead all LayerIds should be unique.
Fixes#2010.
Source-Repo: https://github.com/servo/servo
Source-Revision: cf13e806fe2f4cf5ad5f30efd16d7bd3f501f8b3
Makes the Google search result links appear.
Closes#7298.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: c3f9e1813ac93d0e143397ea5df9d4e5bc452d73
StackingContexts that should be painted on top of StackingContexts that
are already layerized should automatically get their own layer. This
will ensure proper painting order.
Source-Repo: https://github.com/servo/servo
Source-Revision: c0381c732569b9abe6282c6c750533bc271a2019
Small cleanup over mutable variables in components/layout/block.rs.
Thanks for looking into it!
Source-Repo: https://github.com/servo/servo
Source-Revision: 282f9ade931342e9cd1ae72fde9dd9f88cb5b34a
Places the search icon in the right place on the Google SERPs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 0bc7ad9b08d3ae978be4a95687025f00cfcff312
Fixes the location of the gear menu on the Google SERPs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 7df4ff7572bf131aca3643d078dfe7823b3fc347
Elided almost all the lifetimes and removed needless returns. Mostly done by sed + manual fixes.
r? @nox
Source-Repo: https://github.com/servo/servo
Source-Revision: c2c2646d37614ece5869af861993c3d619f6e003
This is #7185 with one commit added to make it build merged with master, which got support for the `ch` unit in the meantime.
Source-Repo: https://github.com/servo/servo
Source-Revision: a547ae6826cf171c42b090408a4c20d58d1829d9
This necessitated changing overflow to be calculated by the parent flow
if relatively positioned children are present. That is because the
overflow regions cannot be calculated without knowing relative offsets,
which themselves cannot be calculated without knowing the parent size
(because of percentages). To accomplish this without sacrificing
parallelism in the non-relative case, this patch splits overflow into
"early" and "late" computation. Late overflow computation cannot be
parallelized across children, while early overflow computation can.
Makes the "Apple Music" text show up over the full-bleed promotional
background on apple.com.
r? @SimonSapin -- would appreciate a look over the iframe test case that was changed.
Source-Repo: https://github.com/servo/servo
Source-Revision: dcaf66397a06246b9b4fdca3a10af1508a11f1e8
…so that it can be activated when we're forcing
the creation of extra layers due to positioned descendants that
themselves have layers.
The newly failing tests were tests that accidentally passed due to
incorrect stacking order.
Closes#7281.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 7945c174a6f90f3809a6d60f392a94e0ce10f021
Usually, Web developers set this property on block formatting contexts
in order to avoid running into floats, and we can use this as a
speculation hint.
Fixes the width of the search box on the Google SERPs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 19d466b06250f10169e88fc7f0b447c7f2f8209e
Several issues are addressed in this commit:
* Inline flows now bubble up their absolute descendants instead of
making the inline flow the containing block for them. (In the future,
we will need to make the inline flow *sometimes* be the containing
block for them, but for now it improves sites to unconditionally
bubble up.)
* Fragments now look at their inline fragment context to determine
whether they are positioned.
* Inline flows now push the stacking-relative position of the absolute
containing block down to their inline-block fragments.
* Inline absolute hypothetical fragments can be containing blocks.
* Fixes the logic in
`containing_block_range_for_flow_surrounding_fragment_at_index`. The
condition to determine whether fragments are positioned was inverted!
* `Descendants`/`AbsDescendants` has been refactored in order to become
more friendly to inline absolute containing blocks in the future.
Improves the inline position of the green drop-down arrow in the Google
SERPs. (The block position is still wrong.)
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: d654841288ad6c7d4f8d7da3c68d04ef7df2c241
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.
Note that multiple layers per stacking context aren't needed for the Enyo demo; rather the issue is that the height of the main area is being calculated incorrectly. (It looks like JS is measuring the height and poking in an explicit value that is too tall.)
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: b05b02e11fb849e1f0153d009d8fcf0501ace8dc
The failing `float-applies-to-*` CSS 2.1 tests never really should have
been passing in the first place; they depend on floats inside
fixed-layout tables working properly, which they don't.
Closes#6078.
Closes#6709.
Closes#6858.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 1ddef2997abf51716835017225b282f8a9077cce
It's not possible to correctly determine during the css cascade whether the container height
is explicitly specified. Additionally, the spec https://drafts.csswg.org/css2/visudet.html#the-height-property says this should affect the *used* height, rather than the computed height.
This significantly improves the layout in #6643.
Source-Repo: https://github.com/servo/servo
Source-Revision: 028707f5cd3263fd1476669207f67d5b9d5d4806
It's not quite done but can probably be reviewed anyway.
I still need to finish up a few of the ToCss impls, I just got lazy and wanted to make sure things worked.
The computation of the used values is definitely not right, I'm going to investigate that.
Source-Repo: https://github.com/servo/servo
Source-Revision: acbca7b3aaf18866f7a1a79d9684149897bf4305
Sorry for not doing it yesterday, I couldn't.
cc @metajack @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 4ebb95ccd8e034007eacb447a054919ef4af2bf7
This reverts commit 945adab / PR #6033.
The CSS Working Group resolved to drop this value from the spec:
http://log.csswg.org/irc.w3.org/css/2015-05-20/#e555680
The group was unable to come up with even a theoretical use case. Gecko only implemented this value for completeness. Other browsers vendors have clearly expressed they have no interest in implementing this.
Source-Repo: https://github.com/servo/servo
Source-Revision: 300c36f250f7838d8008d800644dc466bcd90a72
This improves Servo's performance on large pages.
Please double-check the logic when it comes to nested layers—I'm sure I've messed up some of the geometry calculations :)
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 0880e54f987bac7c34c934ef6ee36f46475b06e3
This fixes panics in RTL pages with floats (#6113) and partially fixes the positioning of RTL floats. There are some remaining issues with the layout of floats in RTL flows, which I'll file follow-up issues for.
Source-Repo: https://github.com/servo/servo
Source-Revision: 360c5d8235ae6fb5c51fba391be92c6cafe88425
`BaseFlow::position` is relative to the parent flow's margin box in the inline direction. We need to use the parent's `position` as the container size when translating it to physical coordinates, or we get incorrect results for non-LTR content.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 5a737bae1afd9dc48762a34fc041826e6d016e49
Makes qz.com visible.
In order to work around a compiler bug involving Sized, this patch moves
`store_overflow` to be a virtual method.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 5a13cae064c4418923fe35bb7e07c71f5bfd851e
Table columns should be layed out according to the 'direction' property of the
table flow, regardless of the 'direction' property of any table-row,
table-rowgroup, etc. flows.
This fixes a number of the `direction-applies-to-*` tests in the CSS2.1 test
suite.
This also simplifies `propagate_column_inline_sizes_to_child` by separating
the code used for table cells from the code for non-cell flows.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 844ac2915eab6573c43e7648cfa94cc2d97fa901
* Stop double-counting border and padding for inline-block fragments.
(Test case: `inline_block_border_intrinsic_size_a.html`.)
* Take clearance into account when determining intrinsic widths of
blocks containing floats.
Improves the Amazon headers.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 7b87085c1880c60aa3be5b3ec4572a0d93fd5537
* Fix queries involving stacking contexts
* The code was double accumulating stacking context origins.
* Handle queries of inline elements.
* The node addresses being compared were incorrect (CharacterData vs. Span)
* Handle ScriptQuery reflows correctly.
* The layout task was skipping the compute absolute positions traversal, so failed before window.onload.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5f6a740190e1e5912d84162c92c6b79365df165a
This add some properties to the style system and a new flow type, but the larger issues of dealing with fragmentation in the flow tree is still an open question.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1e150140bd12624ad357e3168fb496079fb8ec7c
They haven't been used for hypothetical box calculation in quite some
time.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 0a4db7ae0f581a959863bd5159766795c6caf8d8