Commit Graph

224 Commits

Author SHA1 Message Date
Simon Sapin
3cbcc8bd46 servo: Merge #18870 - Use pointer casts instead of tramsutes to raw::TraitObject (from servo:cast); r=KiChjang
Casting `*const T` to `*const U` with `U: Sized` is allowed even if `T: ?Sized`. This safely extracts the data pointer out of a trait object, without relying on the memory representation of trait objects.

Source-Repo: https://github.com/servo/servo
Source-Revision: 86a5135ffaa60d4743b6f6950fc395c2615e85ba
2017-10-13 21:43:09 -05:00
Martin Robinson
d5d5df5172 servo: Merge #18462 - Do some minor cleanups in display list building (from mrobinson:cleanup-building-state); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they should not change behavior.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: b2df99cb65a585907e59f70081c3b3c15317b11a
2017-09-15 12:43:40 -07:00
Corey Farwell
d3e3a66de5 servo: Merge #18494 - Implement size_hint for more iterators (from frewsxcv:frewsxcv-size-hint); r=jdm
```
implement size hint for
more iterators because why
not we like fast things
```

Source-Repo: https://github.com/servo/servo
Source-Revision: bb2030a49314433c1b31f853e4fa50afa241b596
2017-09-13 19:38:32 -05:00
Anthony Ramine
292de3bdc0 servo: Merge #18301 - Use generics for the vertical-align property (from servo:derive-all-the-things); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 174c37fddd3ba66797efdb8067c24003f32c04a7
2017-08-31 09:41:50 -05:00
Keith Yeung
8ff9d37718 servo: Merge #18252 - Remove border collapse argument from compute_border_and_padding (from KiChjang:remove-bc-arg); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 8f7bcdfef3ead441320f52b8570f8bf25f1840f2
2017-08-26 16:09:16 -05:00
Clément DAVID
a6c6efb7e6 servo: Merge #18179 - Automatically verify that derive() lists are alphabetically ordered #… (from davidcl:master); r=jdm
<!-- Please describe your changes on the following line: -->
Automatically verify that derive() lists are alphabetically ordered #18172

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #18172 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 474369618965569407d127b1e8c481e757cc59d3
2017-08-23 17:18:31 -05:00
Martin Robinson
dc7168a502 servo: Merge #18112 - Use the is_absolute_containing_block method everywhere (from mrobinson:containing-block-helper); r=mbrubeck
This is a better approach than relying on
contains_positioned_fragments, because in the future other properties
will create absolute containing blocks.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they do not change behavior.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 7806784eb4761bf9018d342d29594eb6c9058fc3
2017-08-16 19:18:48 -05:00
Simon Sapin
6ea0512630 servo: Merge #18046 - Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10) (from servo:rustup); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d9b82b9efa7b10a2e34d93df5ac535d99518f7a
2017-08-15 07:31:04 -05:00
Matt Brubeck
afc138f440 servo: Merge #18004 - Clean up and simplify layout traversal code (from mbrubeck:layout-cleanup); r=pcwalton
Various refactorings of the code for traversing flow trees, including:

* Add a generic inorder traversal method
* Remove unused `traverse_postorder_absolute_flows` method
* Combine `compute_absolute_position` and `build_display_list` into a single traversal
* Move all generic traversal code into the `layout::traversal` module

And some changes to add documentation and more-accurate names:

* Fix spelling of `bottom_up_flow`
* Rename `compute_absolute_position` to `compute_stacking_relative_position`
* Change the mis-named `traverse_flow_tree_preorder` to `reflow`

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are refactoring only

Source-Repo: https://github.com/servo/servo
Source-Revision: ed3c2b95573c355c11c99eb43320d604fc95a5e9
2017-08-08 14:04:23 -05:00
Michael Partheil
728ab1f36c servo: Merge #17775 - Replace all uses of the style::stylearc alias with servo_arc (from michael-p:rename-stylearc-to-servo-arc); r=emilio
The `stylearc` alias is left there temporarilly and will be removed completely in a later commit/PR where also `components/style/gecko/generated/structs_{debug|release}.rs` are re-generated (they still use the old alias).

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #17768  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because no new features / only refactoring

Source-Repo: https://github.com/servo/servo
Source-Revision: 31228c18499d1c7f68b6b64b559354c768e81215
2017-07-19 06:03:17 -07:00
Manish Goregaokar
cb8af9ffe8 servo: Merge #17767 - stylo: Fuse ServoStyleContext and ServoComputedValues (from Manishearth:stylo-fuse); r=bholley
r=bholley https://bugzilla.mozilla.org/show_bug.cgi?id=1367904

Source-Repo: https://github.com/servo/servo
Source-Revision: d746abaa9e69e6cf0ad187d2b46be661bbe03a9f
2017-07-17 19:44:25 -07:00
Hugh Gallagher
87540aaf72 servo: Merge #17720 - Removed unsused import (from hgallagher1993:local_branch); r=emilio
<!-- Please describe your changes on the following line: -->
Removed IS_ABSOLUTELY_POSITIONED from use flow::{self, BaseFlow, Flow, FlowClass, ForceNonfloatedFlag, IS_ABSOLUTELY_POSITIONED};

components/layout/inline.rs

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c3c14cbd1a655748e2e2cce88d017f591ba6540
2017-07-13 17:07:21 -07:00
Pu Xingyu
3cdb136d64 servo: Merge #17690 - layout: Stop in-order traversal on children of InlineFlow (from stshine:no-inorder); r=emilio
No need to do in-order traversal for children of InlineFlow, since
they are either inline-block or absolutely positioned elements, which
are guaranteed to be block formatting context.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because cleanup

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 95bad3f33a9f0af9511011d4a83a9c95322784d5
2017-07-13 09:53:39 -07:00
Simon Sapin
8afdd4838e servo: Merge #17605 - Replace remaining usage of deprecated Range::step_by (from servo:maybereverse); r=nox
… which is being removed in rust-lang/rust#43012

Source-Repo: https://github.com/servo/servo
Source-Revision: 5baea7b73223283b551cf378bb714491a2383c28
2017-07-05 06:08:29 -07:00
Nathan Froyd
7f0ada4949 servo: Merge #17493 - remove various things now that Rust 1.17 is required (from froydnj:rust-117-fixes); r=jdm
std::ptr::eq and Arc::ptr_eq are now usuable, and we can replace a
panic!() with abort().

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes do not require tests because they are trivial replacements.

Source-Repo: https://github.com/servo/servo
Source-Revision: bb9391ba2cacc2976d546c42cb339fa3e7cbf35c
2017-06-23 16:01:02 -07:00
Nicolas Silva
6e99a9e0a6 servo: Merge #17184 - Bump euclid to 0.14.x (from nical:euclid-bump); r=SimonSapin
- [x] `./mach build -d` does not report any errors (kinda, need webrender published and Cargo.toml fixed up)
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it is a refactoring in which the difference is mostly a compile-time/strong-typing thing with no change to the logic.

Source-Repo: https://github.com/servo/servo
Source-Revision: 18653f69581693a5bae1ce4e350e78bc16159b08
2017-06-14 07:25:05 -07:00
Boris Zbarsky
600534f53c servo: Merge #16999 - Fix stylo's text-overflow handling to match gecko (from bzbarsky:fix-text-overflow-handling); r=Manishearth
A single value sets the text-overflow on the _end_ of the text, not both start and end.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: f3a694a7b442abad8af02475b944aeac7a09d539
2017-05-23 20:39:24 -05:00
Behnam Esfahbod
d74e314371 servo: Merge #16779 - [gfx] [layout] [style] Upgrade unicode-bidi to 0.3 (from behnam:bidi-0.3); r=mbrubeck
Depends on https://github.com/servo/unicode-bidi/pull/27 , which
upgrades `unicode-bidi` crate to `0.3.0`.

Summary of changes:

* Use `unicode_bidi::Level` (instead of `u8`) in all relevant places and
replace magic computations with (inline) method calls to Level API.

* Doing so required adding `unicode-bidi` crate dependency to two more
components here: `style` and `gfx`. IMHO, totally makes sense, as
replaces local integer manipulations/checks with well-tested ones
already available in a common dependency.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable). [N/A]

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because `unicode-bidi` has its own tests and there's no logic change in this diff.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: edd6c2cecb2c245f9f8bcab04ff8e57f1c5d1333
2017-05-22 23:06:07 -05:00
Manish Goregaokar
66b5b511cc servo: Merge #16914 - Update app_units to 0.4.1 (from Manishearth:update_au); r=jryans
Source-Repo: https://github.com/servo/servo
Source-Revision: 00376cbaa77b2c3b78990e49eb9ca29cc1e0a714
2017-05-19 23:09:20 -05:00
Bobby Holley
e02608275b servo: Merge #16702 - Use a custom arc in the style system (from bholley:custom_arc); r=emilio
See https://bugzilla.mozilla.org/show_bug.cgi?id=1360889

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b1006936a27232fb77fef5893cc141e66bb12b7
2017-05-02 20:01:10 -05:00
Emilio Cobos Álvarez
22714ca00f servo: Merge #15891 - style: Iterate the LRU cache contents from back to front (from emilio:lru-back-to-front); r=bholley,mbrubeck
This is on top of #15888. Only the second commit needs review.

We put the more recently used item last, so iterating then from left to right is
pointless.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fa4a94bb154449702e5ae9422c3008a5195c714
2017-03-11 02:31:25 -08:00
Pu Xingyu
cb8a77c037 servo: Merge #15417 - layout: Remove cached thread local context from LayoutContext, and use LayoutContext for assign_inline_sizes() (from stshine:column-flexbox); r=emilio
<!-- Please describe your changes on the following line: -->

According to https://github.com/servo/servo/pull/3069 the cached thread local context is introduced for green threads. Now green threads has gone, and the existence of cache force us to create a `LayoutContext`, an `AssignISizes` and an `AssignBSizes` for each flow during parallel layout, so the pull request tries to remove it. And it also switch `assign_inline_sizes()` to accept a `LayoutContext` parameter, as according to my current design we need to do full layout to some flex items for column flexbox during assign isize traversal.

Part of #14123.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because refactoring

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: e2b494b1d08b8929ca7e5ae369304f41af81ace2
2017-02-07 17:16:05 -08:00
Shing Lyu
d9a9c93daf servo: Merge #14978 - Implemented display: inline-flex (from shinglyu:inline-flex); r=notriddle
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #14685 (github issue number if applicable).

<!-- Either: -->
- [x] There are tests for these changes
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: c75946c3ed52d262aae585055023becd5a2e9769
2017-01-22 19:57:49 -08:00
Michael Howell
491b34e105 servo: Merge #14989 - Fix the incrmental reflow behavior of text-overflow (from notriddle:ellipsis_reflow); r=emilio
This patch allows Servo to incrementally reflow truncated fragments correctly.

* The untruncated version of a fragment is preserved, and when incrementally reflowing, the untruncated version is what gets reflowed. If it needs truncated, it will get truncated again.
* The ellipsis fragments are skipped when incrementally reflowing a line. If it is still needed, it will be recreated.

---

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14952
- [X] There are tests for these changes OR

Source-Repo: https://github.com/servo/servo
Source-Revision: 6a04aea4a5a0da583e8cc7fc0f76c9bfea857538
2017-01-12 17:31:19 -08:00
Martin Robinson
64b15f1c19 servo: Merge #14603 - Rework the way scroll roots are collected (from mrobinson:collect-scoll-roots); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they should not change behavior.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Collect scroll roots during the collect_stacking_context phase instead
of during display list construction. This will be useful in order to
collect containing block scroll roots as well as to give scroll roots
sequential ids in the future. This change also pulls stacking context
children out of the StackingContext struct itself, which should reduce
very slightly the memory used by the finished display list. This also
simplifies the DisplayListBuilder because it no longer has to maintain
a stack of ScrollRootIds and StackingContextIds and can instead just
rely on the program stack.

Source-Repo: https://github.com/servo/servo
Source-Revision: dabb79c7878fce31b8b979dd5fcfdfb8713a9d80
2017-01-10 04:48:31 -08:00
Emilio Cobos Álvarez
cefdb77f9b servo: Merge #14801 - style: Document and force documentation in a big chunk of the style crate (from emilio:no-missing-docs); r=mbrubeck,Manishearth,Wafflespeanut
Style no forced docs for the properties code and similar, but I ran out of time, and I think it's a nice improvement.

I'd appreciate a fast-ish turn-around time because this is pretty much prone to bitrot.

Source-Repo: https://github.com/servo/servo
Source-Revision: bd67163438317daa711b2411ce302aaf5bf4136a
2016-12-31 03:19:02 -08:00
Bobby Holley
ee2dc4ec29 servo: Merge #14610 - Simplify style context architecture and make it safer (from bholley:style_context_refactor); r=emilio
See the discussion at https://bugzilla.mozilla.org/show_bug.cgi?id=1323372

Not done here, but want to get a try run in on the first patch.

Source-Repo: https://github.com/servo/servo
Source-Revision: a4ecdf2d5fda281f25e2689852bc2134429e07c6
2016-12-16 11:38:27 -08:00
Pu Xingyu
f69e1e965d servo: Merge #14490 - layout: Unify size calculation of replaced elements (from stshine:replaced-size); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 1993b6e812de30de06100e7d52c1d90af929f24f
2016-12-12 03:25:03 -08:00
Nikhil Shagrithaya
c06c0d157f servo: Merge #13924 - implemented string-valued text-overflow (from cynicaldevil:text-overflow); r=emilio
<!-- Please describe your changes on the following line: -->
---

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13709

<!-- Either: -->
- [x] There are tests for these changes

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

cc @Manishearth
The lorem-ipsum example from MDN works as expected.

Source-Repo: https://github.com/servo/servo
Source-Revision: a91f48ee05933784630fdf918fc4b66037dba9f1
2016-11-09 16:36:45 -06:00
Bobby Holley
45403df2b6 servo: Merge #14034 - incremental restyle: Use more concrete types in the style system (from bholley:more_concrete_types); r=emilio
We need to hang both snapshots and restyle damage off of ElementData, and so we need them to be concrete to avoid infecting ElementData with the trait hierarchy.

Source-Repo: https://github.com/servo/servo
Source-Revision: d8ac5100e81ccbad4b5131688b96bedb9b5e279d
2016-11-07 16:31:10 -06:00
Shing Lyu
7cc92387d4 servo: Merge #13740 - Migrated -Z trace-layout to serde_json (from shinglyu:layout_serde); r=jdm
<!-- Please describe your changes on the following line: -->

Migrated the trace-layout code from old `rustc-serialize` to `serde_json`. This will help us iterate faster on the layout viewer (#13432), #13436, #12675 and fix #12936.
---

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #12936 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it's a relatively low risk debug tool

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 1c26f44cbb23e7da3b9d63f0223c8d5d43eec958
2016-11-07 02:15:03 -06:00
Michael Howell
f147c962c2 servo: Merge #14053 - Make FlowRef a newtype (from notriddle:flow_ref_unsafe); r=pcwalton
This creates a sharp distinction between `Arc<Flow>`s, which may be
owned by anyone, and `FlowRef`s, which may only be owned by the
traversal code. By checking the reference count, we ensure that a `Flow`
cannot be pointed to by `Arc`s and `FlowRef`s simultaneously.

This is not a complete fix for #6503, though it is a necessary start
(enforcing the no-aliasing rule of `FlowRef::deref_mut` will require far
more work).

---

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14014 (github issue number if applicable).
- [X] These changes do not require tests because the existing tests, plus the added assertions, should be sufficient

Source-Repo: https://github.com/servo/servo
Source-Revision: 2b4a7b0b7ad9dd568dfde15ab47dc634ec561d70
2016-11-04 16:53:38 -05:00
Martin Robinson
7ebd503192 servo: Merge #13957 - Track overflow:scroll stacking contexts with ScrollRootId instead of StackingContextId (from mrobinson:scroll_root); r=glennw
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because this PR should not change behavior.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 3a3f3192a87dbcd5d05efb82a1f4dde23f9c4cf7
2016-10-30 15:27:56 -05:00
Glenn Watson
89fec93361 servo: Merge #13711 - Remove old rendering backend (from glennw:remove-old-renderer); r=larsbergstrom
This removes paint threads, rust-layers dependency, and changes
optional webrender types to be required.

The use_webrender option has been removed, however I've left
the "-w" command line option in place for now so that wpt
runner can continue to pass that. Once it's removed from there
we can also remove the -w option.

Once this stage is complete, it should be fine to change the
display list building code to generate webrender display
lists directly and avoid the conversion step.

Source-Repo: https://github.com/servo/servo
Source-Revision: f96718d03da969510dc992699cb6f25c2e21ae1e
2016-10-17 19:22:20 -05:00
Patrick Walton
6fcfbaf43c servo: Merge #13756 - layout: Rewrite clipping to be a two-phase process that takes physical border box positions and transforms into account (from pcwalton:relative-position-clip); r=notriddle
Clipping region computation now follows a simple process: (1) in the
parent's coordinate system, parents store appropriate clipping regions
into children; (2) each child moves its clipping region to its own
coordinate system if necessary.

Because clipping region computation is now based on stacking-relative
border box positions and the `transform_rect` method, it can handle
`position: relative` offsets and more types of transforms, such as
scaling.

Improves etsy.com.

Closes #13753.

Source-Repo: https://github.com/servo/servo
Source-Revision: c1abd8797c5b257c9339fbaf6ca4b7480c43a755
2016-10-15 16:19:10 -05:00
Patrick Walton
de5f94eda0 servo: Merge #13602 - layout: Rewrite Servo's vertical-align support to match CSS 2.1 § 10.8, and implement vertical-align: middle per CSS 2.1 § 10.8.1 (from pcwalton:vertical-align-middle); r=mbrubeck
`InlineMetrics` has been split into `InlineMetrics` for fragments and
`LineMetrics` for lines. Both structures' fields have been renamed in
order to more clearly delineate the difference between *space* and
*content*. Vertical positioning of fragments has been reworked to take
margins and borders into account only for replaced content.

This patch fixes the `vertical_align_super_a.html` reftest. Servo now
matches the rendering that Gecko and WebKit produce.

Additionally, this includes a test for the popular inline-block
centering technique described here:
https://s.codepen.io/shshaw/fullpage/gEiDt?#Inline-Block

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 768a699fa5d822173b2247d6348413d09951a8bb
2016-10-11 15:33:47 -05:00
Patrick Walton
03e0483758 servo: Merge #13490 - layout: Place inline absolute hypothetical boxes properly during block fragment position assignment (from pcwalton:inline-absolute-hypothetical-metrics); r=notriddle
r? @notriddle

Closes #13471.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1c62520142a250da5dd6ac027ce531a255096acf
2016-10-04 21:03:55 -05:00
Michael Howell
40eb32d066 servo: Merge #13401 - Implement sequential fallback to float speculation (from notriddle:master); r=pcwalton
This shouldn't impact any pages that are already rendering correctly, but it is a very naive implementation of this pass.

---

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13284 and fix #13223
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 4ebecc915a13cd944b25738dd5859f1a6072a4ff
2016-09-29 13:16:24 -05:00
Martin Robinson
150309e9aa servo: Merge #13417 - Simplify stacking context collection (from mrobinson:simplify-stacking-context-collection); r=glennw
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Simplify the way that stacking contexts are collected. Instead of
passing the StackingContextId down the tree, pass the parent
StackingContext itself. This will allow future patches to get more
information about the parent stacking context (such as location).

Also remove the return value of collect_stacking_contexts, which was
unused.

Source-Repo: https://github.com/servo/servo
Source-Revision: 81dfa6a96b99eae8a7232eab39de96edf663ba99
2016-09-29 09:01:33 -05:00
Patrick Walton
5a2dd3c43b servo: Merge #13470 - layout: Improve the interaction between baseline-offset-of-last-line-in-flow logic and inline absolute hypothetical boxes (from pcwalton:inline-absolute-hypothetical-baseline); r=notriddle
See commits for details. These changes place the heart icon on Twitter in the right place.

r? @notriddle

Source-Repo: https://github.com/servo/servo
Source-Revision: ccfc60161b8d92217b9f77040d6928d429bcbe9d
2016-09-29 00:11:33 -05:00
Patrick Walton
0ce1837364 servo: Merge #13346 - layout: Make some major improvements to incremental layout to improve CNN (from pcwalton:cnn); r=notriddle
CNN is still too slow to be usable, but this is a partial solution.

r? @notriddle (feel free to reassign if you like)

Source-Repo: https://github.com/servo/servo
Source-Revision: cbe54582727e3d756aa084e94520f2f29f9d7c86
2016-09-26 20:57:59 -05:00
UK992
a6ebcb8483 servo: Merge #13205 - Tidy: Fix ordering use statements with braces (from UK992:tidy-sort); r=Wafflespeanut
This hack fixes https://github.com/servo/servo/issues/7412 and matches behavior with rustfmt.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3117787fd2a8b7748cfde1e9b8c5be3c00f2c599
2016-09-08 22:19:19 -05:00
Ms2ger
ffcc6c813c servo: Merge #13012 - Stop creating a LayoutContext in build_display_list_for_subtree (from servo:shared-layout-context); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 6191748907e0480059a9a33c5c8c7be42d79efe3
2016-08-24 09:38:31 -05:00
Alexandrov Sergey
650a8fc20f servo: Merge #12669 - Inline pseudo elements layout#12367 (from splav:inline_pseudo_elements_layout#12367); r=notriddle
<!-- Please describe your changes on the following line: -->
This PR fixes ignored paddings and margins for inline pseudo elements.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12367 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 9ffda4c7b33f14c291404655bd137b544969fff9
2016-08-11 03:38:14 -05:00
Alexandrov Sergey
350b874f80 servo: Merge #12760 - Inline split fixes#12699 (from splav:inline_split_fixes#12699); r=notriddle
<!-- Please describe your changes on the following line: -->
Fix fragment splitting algorithm to set FIRST/LAST_FRAGMENT_OF_ELEMENT flag correctly, account for border_padding for border_box and set zero border_padding between for new fragments.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12699 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 2420dc4a3e9338977e6f24184e65abff9749afb4
2016-08-09 11:05:57 -05:00
Simon Sapin
1f820224e4 servo: Merge #12515 - Make the style crate more concrete (from servo:concrete-style); r=bholley
Background:

The changes to Servo code to support Stylo began in the `selectors` crate with making pseudo-elements generic, defined be the user, so that different users (such as Servo and Gecko/Stylo) could have a different set of pseudo-elements supported and parsed. Adding a trait makes sense there since `selectors` is in its own repository and has others users (or at least [one](https://github.com/SimonSapin/kuchiki)).

Then we kind of kept going with the same pattern and added a bunch of traits in the `style` crate to make everything generic, allowing Servo and Gecko/Stylo to do things differently. But we’ve also added a `gecko` Cargo feature to do conditional compilation, at first to enable or disable some CSS properties and values in the Mako templates. Since we’re doing conditional compilation anyway, it’s often easier and simpler to do it more (with `#[cfg(feature = "gecko")]` and `#[cfg(feature = "servo")]`) that to keep adding traits and making everything generic. When a type is generic, any method that we want to call on it needs to be part of some trait.

----

The first several commits move some code around, mostly from `geckolib` to `style` (with `#[cfg(feature = "gecko")]`) but otherwise don’t change much.

The following commits remove some traits and many type parameters through the `style` crate, replacing them with pairs of conditionally-compiled API-compatible items (types, methods, …).

Simplifying code is nice to make it more maintainable, but this is motivated by another change described in https://github.com/servo/servo/pull/12391#issuecomment-232183942. (Porting Servo for that change proved difficult because some code in the `style` crate was becoming generic over `String` vs `Atom`, and this PR will help make that concrete. That change, in turn, is motivated by removing geckolib’s `[replace]` override for string-cache, in order to enable using a single Cargo "workspace" in this repository.)

r? @bholley

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require new tests because refactoring

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 2d01d41a506bcbc7f26a2284b9f42390d6ef96ab
2016-07-20 02:58:34 -05:00
Ms2ger
6bc3a47cdd servo: Merge #12385 - Move arc_ptr_eq to style (from Ms2ger:arc_ptr_eq); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: c3a8cbbd38570d4a9095ca94ee4a970956691051
2016-07-11 05:11:48 -07:00
Emilio Cobos Álvarez
0d89c54012 servo: Merge #12370 - Fix line-breaking with white-space: pre-wrap/pre-line; (from emilio:wrap); r=mbrubeck
Fix line-breaking with white-space: pre-wrap/pre-line;

<!-- Please describe your changes on the following line: -->

Not sure if this is the appropriate fix, but we'll know soon.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #12369

<!-- Either: -->
- [x] There are tests for these changes OR

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 8ded106186aa0855a2bd991d573e7095590efca1
2016-07-11 01:08:57 -07:00
Anthony Ramine
c394aff8fa servo: Merge #12224 - Remove some stuff from util (from nox:die-util-die); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 3b0dadda529a5ba45a8a0dc394187f43a66e7c1f
2016-07-04 12:57:00 -07:00
Ms2ger
198c27393f servo: Merge #11822 - Avoid creating a LayoutContext in parallel::assign_inline_sizes (from Ms2ger:sharedcontext); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 44b0bddf413563890481fd77e43d3d073bd6b627
2016-06-23 03:03:02 -05:00