Граф коммитов

211 Коммитов

Автор SHA1 Сообщение Дата
Dzmitry Malyshau a39c2178b9 servo: Merge #16891 - Using TransformStyle::Preserve3D (from kvark:preserve3d); r=glennw,emilio
<!-- Please describe your changes on the following line: -->

The changes were reviewed previously as a part of WR update PRs, but then we decided to move them out.
r? @emilio

---
<!-- 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 _____

<!-- 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: a5ff57b20fea879cc24e9dc6b94dc381ce105b89

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 13ec4c4a854d170c065cd07d2a6441fc215ba845
2017-05-17 20:38:14 -05:00
Martin Robinson 5f37c2fc81 servo: Merge #16865 - Properly handle scroll offsets in hit testing (from mrobinson:scroll-offsets-fix); r=emilio
Scroll roots are no longer nested containers holding items, so instead
we need to track the offsets of each, carefully handling fixed position
items and stacking contexts that create new reference frames.
Additionally, we remove the complexity of the pre-computed page scroll
offset, instead opting to send script scrolls to the layout task in
order to more quickly have a ScrollState there that matches the
script's idea of the scroll world.

Fixes #16405.

<!-- 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 #16405.

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because it is currently impossible to test interactive scrolling with Servo's test infrastructure. Existing tests verify the script part though.

<!-- 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: d855c929ef32e8f7d4bc15ba726e8eb5f8ad8e05

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c4b92e4eab5b1712a84c4437f483ededcf317794
2017-05-16 08:33:22 -05:00
Glenn Watson 6e5a87871a servo: Merge #16860 - Update WR (preserve-3d, AA improvements) (from glennw:preserve3d); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 180edaab604212d8c43c0523ef3eba68d55a2c6c

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : c561fb9549a19dc015b3c7f7055b040266640999
2017-05-15 21:49:35 -05:00
Pyfisch 8844d0506c servo: Merge #16666 - Improvements to gradients (from pyfisch:gradients); r=emilio
This is a collection of commits improving the rendering of linear and radial gradients by making them conform more closely to the spec.

All commits are are independent and should work without the others.

These commits address the following issues:
* a956e3fd529715cc0ac39b23910f19e092c7c5a9 resolves #3908 but contains also some other necessary changes to `convert_gradient_stops`. The updated function has a few more copys but should be more correct. Maybe @pcwalton wants to comment since he has originally written the code.
* b230be8aaf318fb754cf58e5cd243087df2f7e0f partially solves #16638. (Partially because `border-image-outset` is not implemented. This is an older issue for border gradients: #15894.

To quickly catch regressions and see changes to gradients I have created [a set of twelve manual testcases](https://pyfisch.org/stuff/testcases-gradients.html) and placed them in a single file. Attached are two files. One shows how the gradients were rendered before the PR the other one with the changes applied.

![testcases-old](https://cloud.githubusercontent.com/assets/2781017/25580052/b433278e-2e7d-11e7-9396-500fef12eee0.png)
![testcases-new](https://cloud.githubusercontent.com/assets/2781017/25580051/b43222c6-2e7d-11e7-99ab-c0a2709baf41.png)

r? @emilio
and maybe also @jdm?

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

Source-Repo: https://github.com/servo/servo
Source-Revision: 3f1ae6425588bbac37da2e0f8aa2a708f51fa988

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b6e9d1479c65a59ebe6df841e7b648782449c5dc
2017-05-07 07:56:51 -05:00
Martin Robinson 387c611ae8 servo: Merge #16735 - Rename PushScrollRoot and remove PopScrollRoot (from mrobinson:push-pop-scroll-root); r=glennw
PopScrollRoot was unused and PushScrollRoot no longer pushes a scroll
root, but defines a new one.

<!-- 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: f832052d9500e1102ebf43450087a7f51bfcb60e

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 8f5eaa0100709586c0321ee817f98ae6dde7909c
2017-05-05 02:21:12 -05:00
Pyfisch 63677fa65f servo: Merge #16385 - Implement radial gradients (from pyfisch:radial-gradient); r=emilio
<!-- Please describe your changes on the following line: -->
This PR passes the `radial-gradient` function down from CSS parsed properties to webrender. It currently lacks tests but the examples from MDN and some other tests work fine. Probably there are some wpt tests I can enable?

<!-- 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 #11779 (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: 53c62e890acd05475d94b19d760272c6b658d83a

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1b8dd637f2ccee556a9edd14c2ef6fc2de8cc7d4
2017-04-29 09:40:32 -05:00
Martin Robinson b35beae16d servo: Merge #16531 - Eliminate ScrollRootId (from mrobinson:clip-id); r=glennw
Just use WebRender's ClipId directly. This will allow us to create and
use ReferenceFrames in the future, if we need to do that. It will also
make it easier to have Servo responsible for creating the root
scrolling area, which will allow removing some old hacks in the future.

<!-- 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: 6e05a903afe81af5a45067dde4f9af26a2ea4be2

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : ed3c05a3a6ad1de7c189632886473e8b9b294565
2017-04-20 01:55:33 -05:00
Martin Robinson eb03c99448 servo: Merge #16510 - Remove StackingContext::establishes_3d_context (from mrobinson:establishes-3d-context); r=jdm
This member is now unused since WebRender is the only display backend.

<!-- 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: 3e1f4fdc9ac1d42e6bbddf9a2dc82ca43a06b6f4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : b018c3655b68daeab0e2558323b41d2626cda380
2017-04-18 03:43:15 -05:00
Martin Robinson e6c81765aa servo: Merge #16284 - Use real clips when generating scroll roots (from mrobinson:scroll-root-clip); r=glennw
This is the first step toward removing inherited clips in favor of
scroll roots for handling overflow and CSS clipping. This will allow us
to more easily handle elements that should not be clipped. While we are
still using inherited clips here, we now properly clip some types of
content that wasn't clipped before.

<!-- 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 _____

<!-- 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: 24cea409f24135769c4fbedddd0f87da9d7bd12b

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9e1db3f7fa3de95574acbef51d5c5ac63de1a8fa
2017-04-06 14:32:16 -05:00
Glenn Watson 341d05c4ee servo: Merge #16264 - Update WR (border fast paths, clip interfaces) (from glennw:update-wr-borders-and-clips); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 6a67688924b1b122be9c8ec456d6029dc02366a4

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 88b484524f996cce0d5c77dfd7e3634684cdb6da
2017-04-04 20:35:19 -05:00
Morris Tseng 6ccbad8048 servo: Merge #15905 - Add gradient border support (from mephisto41:add-border-gradient); r=emilio
webrender add gradient border support in https://github.com/servo/webrender/pull/953. This pr add support in servo.

---
<!-- 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

<!-- Either: -->
- [X] These changes do not require tests because it should be covered by wpt

<!-- 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: fd8127b23b177886217eb1f21963e6c02528647a

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 9f3188db40cd1d21acb98f2b7f6927961c8e71ad
2017-03-26 02:29:16 -07:00
Glenn Watson 7ddc788706 servo: Merge #16073 - Update WR (gl trait, scroll roots) (from glennw:update-wr-glfns); r=mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: c99289a928b30c874da2aa4d8aa869593bbb5e14

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e963ce4fd8a3773dcd502808b89894a0d1755c07
2017-03-23 03:43:49 -07:00
Emilio Cobos Álvarez 99fa3bca94 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

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : fbf4742c4186ad27bd4d5ccd3e2319a5b0748b55
2017-03-11 02:31:25 -08:00
Glenn Watson 8f883113a7 servo: Merge #15804 - Update WR (reference frames for fixed position elements) (from glennw:update-wr-transforms); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 0f6b5c3b521686f79a18da64364eed5a03262605

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 005ea52828e73dce970ac55321f586771fffe909
2017-03-02 17:02:26 -08:00
Glenn Watson 9e303bf129 servo: Merge #15697 - Add support for most of the border-image properties, pass to WR (from glennw:border-image); r=jdm,pcwalton
This adds support for:
 * border-image (images, not gradients yet)
 * border-image-source
 * border-image-slice
 * border-image-repeat (stretch + repeat only for now)

Remaining work:
 * Connect border-image-outset (WR supports this).
 * border-image-width

Source-Repo: https://github.com/servo/servo
Source-Revision: 6c9e94b1c07dd148430d175e79c595db82dea742

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 1266344fb19194b3b2500700fb636c577a2d5366
2017-02-23 13:40:40 -08:00
Nazım Can Altınova 82f1580bc8 servo: Merge #15334 - Fix the panic when transform is non-invertible (from canaltinova:inverse); r=nox
<!-- Please describe your changes on the following line: -->
Fixes the panic when transform is non-invertible.
Counterpart of https://github.com/servo/webrender/pull/823
r? @glennw

---
<!-- 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 #13266 (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: d2ae3d8bedf99c97877ec944d94f2aa72e67478d

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 8d73f7ee9d060bf2daca6cf6ed2f709a439d0164
2017-02-19 05:10:57 -08:00
Martin Robinson 68043687bf servo: Merge #14979 - Only create scrolling overflow regions when necessary (from mrobinson:scroll-roots-when-necessary); r=emilio
Only create scroll roots for overflow regions when the overflow region
is actually larger than the container size. This prevents creating
scrolling roots for elements that do not have overflow scroll as a
side-effect of the way their height and width is defined. For example,
tables should never respect overflow:scroll since their height and
width should always be large enough to prevent overflow. This also
decreases the size and complexity of the display list in many other
circumstances.

As part of this change, transformed overflow calculation is moved from
display list construction to layout. This should mean that overflow is
handled more accurately earlier.

Fixes #14574.

<!-- 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 #14574 (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: 3ab514302f964a76938b8c87b4f27edb00d0f537
2017-01-17 07:18:42 -08:00
Florian Merz 9de12614ae servo: Merge #15047 - gfx: Don't mutate the same point multiple times while translating it … (from emilio:click-regression); r=notriddle,emilio
…to other stacking context space.

I don't know how neither review or a test caught this.

r? @pcwalton  or @notriddle

Fixes #15015

Source-Repo: https://github.com/servo/servo
Source-Revision: a4551d0ceea8f2aceb68775452ea3010760f2825
2017-01-16 15:46:05 -08:00
Florian Merz 873f716138 servo: Merge #14291 - Position insertion point in input field with mouse (from fiji-flo:text-input-select); r=pcwalton
<!-- Please describe your changes on the following line: -->
Implements cursor positioning in input elements (text/password) via mouse. The related issue is #10083 but is only covered partly.
This PR does **not** cover:
* positioning in textarea elements via mouse
* text selection in input/textarea elements via mouse

---
<!-- 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 #10083 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because I can't think of a way to test mouse interaction in the current test pipeline.

<!-- 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: 68a8e1bf2b57afe9bf6c4fb295bdc5dca099a9f6
2017-01-11 14:19:10 -08:00
Ms2ger 25854451c6 servo: Merge #14938 - Various cleanup around gfx_traits (from servo:gfx-traits); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: f674a9db8b7164dae667875c5cf19b3aabb18ef2
2017-01-10 07:02:23 -08:00
Martin Robinson 1798734219 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
Alan Jeffrey 07258edab3 servo: Merge #14592 - Remove the util crate (from asajeffrey:util-goodbye); r=mbrubeck
<!-- Please describe your changes on the following line: -->

This PR removes the `util` crate.

* Replaced the `spawn_named` and `clamp` functions by appropriate uses of `std:🧵:Builder::spawn`, `std::cmp::min` and `std::cmp::max`.
* Moved `opts`, `prefs` and `resource_files` into a new `config` crate.
* Moved `remutex` and `geometry` into their own crates.

---
<!-- 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 do not require tests because they are refactorings

<!-- 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: 4eb653817f87e5fb47de34356f558eb76ecbca9f

--HG--
rename : servo/components/util/Cargo.toml => servo/components/config/Cargo.toml
rename : servo/components/util/basedir.rs => servo/components/config/basedir.rs
rename : servo/components/util/lib.rs => servo/components/config/lib.rs
rename : servo/components/util/opts.rs => servo/components/config/opts.rs
rename : servo/components/util/prefs.rs => servo/components/config/prefs.rs
rename : servo/components/util/resource_files.rs => servo/components/config/resource_files.rs
rename : servo/components/util/geometry.rs => servo/components/geometry/lib.rs
rename : servo/components/util/remutex.rs => servo/components/remutex/lib.rs
rename : servo/tests/unit/util/lib.rs => servo/tests/unit/servo_config/lib.rs
rename : servo/tests/unit/util/opts.rs => servo/tests/unit/servo_config/opts.rs
rename : servo/tests/unit/util/prefs.rs => servo/tests/unit/servo_config/prefs.rs
rename : servo/tests/unit/util/remutex.rs => servo/tests/unit/servo_remutex/lib.rs
2016-12-14 16:48:42 -08:00
Martin Robinson b0c848f946 servo: Merge #14084 - Don't promote all scrollable regions to stacking contexts (from mrobinson:scroll_root_2); r=glennw
<!-- Please describe your changes on the following line: -->

Don't promote all scrollable regions to stacking contexts

Instead annotate all flows with their owning ScrollRoots. When
processing the display list items into a flattened display list, we add
PushScrollRoot and PopScrollRoot to signal when scrolling regions start
and end. It is possible for content from different scrolling regions to
intersect and when they do, the stack of scrolling regions is
duplicated.  When these duplicated scrolling regions stacks reach
WebRender, it will scroll them in tandem.

The PushScrollRoot and PopScrollRoot items are currently represented as
StackingContexts in WebRender, but eventually these will be replaced
with special WebRender display items.

---
<!-- 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 #13529 and #13298. (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: ef5ca14283f1f47654093b5c196ab813efb53ea8
2016-11-07 18:49:53 -06:00
Ms2ger 50df78169c servo: Merge #14060 - Remove the direct azure dependencies from gfx, layout and layout_thread (from servo:gfx-azure); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: f7875dad1a43792ff3869f292990d03d30ebd9eb
2016-11-05 07:26:30 -05:00
Martin Robinson f59917f404 servo: Merge #14020 - Fold some DisplayList methods into DisplayListBuildState (from mrobinson:scroll_root_prep); r=pcwalton
<!-- 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. -->

This makes the API used to build display lists quite a bit simpler and
reduces the amount of auxiliary data structures that need to be passed
around. It is also important preparation work for separating scrolling
areas from stacking contexts.

Source-Repo: https://github.com/servo/servo
Source-Revision: 021cabd3e6242b3537addec32010ee8cee556121
2016-11-02 13:55:07 -05:00
Martin Robinson 9a67ba798b 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

--HG--
rename : servo/resources/shaders/box_shadow.fs.glsl => servo/resources/shaders/cs_box_shadow.fs.glsl
rename : servo/resources/shaders/ps_box_shadow.glsl => servo/resources/shaders/cs_box_shadow.glsl
2016-10-30 15:27:56 -05:00
Martin Robinson bc43e4931e servo: Merge #13848 - Remove concept of Layers from Servo (from mrobinson:remove-layers); 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. -->

Layers were a feature of the legacy drawing path. If we re-add them at
some point, it probably makes more sense to make them a product of
display list inspection.

This change also remove a bunch of dead painting code.

Source-Repo: https://github.com/servo/servo
Source-Revision: bb271ef4afea02b6b1b5d207e773d1fedccd2906
2016-10-21 01:43:25 -05:00
Martin Robinson d9473c9c44 servo: Merge #13820 - Remove the concept of nested stacking contexts from display list builder (from mrobinson:remove-nesting); 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 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. -->

With the removal of the legacy rendering path, we don't need to worry
about nested stacking contexts. This change just pushes the
complication to the WebRender conversion step, but a later change will
remove the concept from WebRender as well.

This also helps to prepare for the introduction of ids for particular
scrolling regions, an integral part of multiple ScrollLayers per block.

Source-Repo: https://github.com/servo/servo
Source-Revision: e667e62f0ca8cd5fd21282333808cccaed8c957c
2016-10-19 12:54:40 -05:00
Ms2ger 482f4dabf3 servo: Merge #13811 - Remove unused DisplayItem::LayeredItem (from servo:LayeredItem); r=mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: 89ced788ebb89b6cab82b15f4a1bab0b822e953c
2016-10-18 03:30:17 -05:00
Martin Robinson 71416f64ac servo: Merge #13810 - Remove Class from DisplayItem enum names (from mrobinson:names); r=Ms2ger
<!-- 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 does not change behavior. It's only a rename.

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

This is probably a holdover from the days before namespaced enums. We
can remove this part of the name to avoid a lot of visual noise.

Source-Repo: https://github.com/servo/servo
Source-Revision: 275278be44b96b683bee40a8d8a6462198ec9e39
2016-10-18 02:24:44 -05:00
Patrick Walton abf10e1cb1 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
Martin Robinson 7ca3c89ebb servo: Merge #13682 - Integrate stacking contexts into the display list (from mrobinson:push_pop); r=pcwalton
<!-- 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. -->

Integrate stacking contexts into the display list by adding two new
entry types, PushStackingContext and PopStackingContext. This allows us
to eliminate the ugly offsets map that DisplayList used to contain
and seems to speed up display list construction. With this approach
we are able to also completely prune pseudo-stacking contexts from the
final display list and remove their (minimal) overhead from display
list traversal Traversing the display list is also a bit simpler now.

Additionally, this will allow easier editing of the DisplayList to
properly support scrolling roots. The push/pop entries can be
duplicated to clone complex StackingContext trees between layers.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6e0d7326ab2901ef493c6de5b41969f8ee602864
2016-10-13 17:25:03 -05:00
Martin Robinson a894e56028 servo: Merge #13696 - Add a custom Debug formatter for ClippingRegion (from mrobinson:clipping_region_print); 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 debug printing is untested.

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

This will make display list dumps more likely to fit on a single line.

Source-Repo: https://github.com/servo/servo
Source-Revision: b9bd15ebb0e84b48d5b0e7d1e952a911960d4fef
2016-10-11 20:58:49 -05:00
Martin Robinson aefcd15165 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
Martin Robinson e21db129b2 servo: Merge #13331 - Add support for background-repeat: space and round (from mrobinson:background-repeat); r=emilio
<!-- Please describe your changes on the following line: -->

Add support for new background-repeat modes and upgrade Euclid, which now has support for basic arithmetic with Size2D.

---
<!-- 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. -->

This adds support for more background-repeat modes using the legacy
rasterization backend.

Source-Repo: https://github.com/servo/servo
Source-Revision: efdd94a2b629e4ae41d81a4209ad80b89eb6b937
2016-09-22 06:37:10 -05:00
UK992 f8cb9971b7 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
Emilio Cobos Álvarez 4b5727104d servo: Merge #12841 - Fix hit testing to take into account nested stacking contexts #12777 (from emilio:hit-test); r=pcwalton
<!-- Please describe your changes on the following line: -->

Fixes #12833.

---
<!-- 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 #12833 (github issue number if applicable).

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 9b4713f5366aa43ac0db6a8f1d96f33b2f527978
2016-08-25 13:44:27 -05:00
Anthony Ramine 5177259222 servo: Merge #12941 - Update euclid to 0.10.1 (from nox:euclid); r=metajack,emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: bb0ba644a8a028d6de8b5daf1b578a82ab23d49e
2016-08-20 20:04:17 -05:00
Emilio Cobos Álvarez b79bea109c servo: Merge #12843 - layout: Make the stacking context take into account the children transform when calculating overflow areas (from emilio:transforms); r=glennw
<!-- Please describe your changes on the following line: -->

This is a potential fix for #12842. I have done only the math to handle simple transforms because it's three AM, but I'd like @pcwalton to verify my approach, or suggest an alternative.

---
<!-- 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 partially fix #12842 (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: 5f169581dc290e3cf0e8d6e7fc0550f1031fb25f
2016-08-17 00:35:16 -05:00
David Tolnay bb87ffde99 servo: Merge #12834 - Remove #[serde(bound = "")] attributes (from dtolnay:bound); r=nox
These were fixed in serde_codegen 0.8.0 by serde-rs/serde#456.

cc @nox

- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because: the generated code continues to compile

Source-Repo: https://github.com/servo/servo
Source-Revision: 11b853fbf1916fb71b49fefbf2ebeaccaec50ee2
2016-08-12 19:01:28 -05:00
Anthony Ramine 64c09a7eda servo: Merge #12828 - Update serde to 0.8 (fixes #12659) (from nox:serde); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 9abe9e450b54ef9151bbee1aa0bd2dedb685fa7a
2016-08-12 12:23:10 -05:00
Martin Robinson c116a510e2 servo: Merge #12817 - Update to euclid 0.8 (from servo:euclid); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 5b915c403d2e96bd2917e7df4f2a58a6668a0c0e
2016-08-11 20:12:29 -05:00
Emilio Cobos Álvarez 64a444210a servo: Merge #12777 - layout: Take into account the client point for fixed positioned stacking contexts (from emilio:hit-test); r=pcwalton
<!-- 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 #12763 (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: 9b4b94aa755a04d4b9c9703574b01c03ad25a788
2016-08-10 18:50:33 -05:00
Martin Robinson 163d68347b servo: Merge #12742 - Simplify and extend trans-stacking-context subpixel accumulation (from mrobinson:off-by-one-ng-2); r=pcwalton
<!-- 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 #10881 (github issue number if applicable).

<!-- Either: -->
- [x] There are tests for these changes OR
- [x] 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 situations in which subpixels are accumulated, so that it
is only done for translation or identity transformation matrices. Also,
apply accumulated subpixels to more operations in PaintContext. This
fixes several pre-existing reftests and hopefully will eliminate
off-by-one errors in flaky reftests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3ae94fca708bb7783c9e0e356f58521fc19fcdbf
2016-08-08 08:41:49 -05:00
Martin Robinson 849f2102d3 servo: Merge #12543 - Accumulate subpixels through stacking contexts (from mrobinson:off-by-one-ng); r=pcwalton
<!-- 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. -->

Instead of simply rounding layer origins and discarding subpixel
offsets, accumulate them by transforming them into the space of the
next child stacking context. This is an attempt to eliminate subpixel
differences that are caused by different stacking context boundaries in
reference tests.

Currently these accumulated subpixels are only used for text
positioning, but the plan is that they can be used for all drawing in
the future.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4077ae7d04e64d66e2dfd1577dc4d337c45fecd4
2016-07-27 05:17:22 -05:00
Eduard Burtescu 67ca178f91 servo: Merge #12586 - Update Rust to 1.12.0-nightly (9316ae515 2016-07-24) (from servo:rustup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 0be8e6857f4f767129dd694bf1e7e86060d307a4
2016-07-26 17:18:41 -05:00
Anthony Ramine cc183b15a7 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

--HG--
rename : servo/components/util/print_tree.rs => servo/components/gfx_traits/print_tree.rs
rename : servo/components/util/workqueue.rs => servo/components/style/workqueue.rs
2016-07-04 12:57:00 -07:00
Ms2ger df0f6b8d3d servo: Merge #11900 - Various DisplayList cleanup (from Ms2ger:displaylist-cleanup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: ffb8b35d3549ead90e0a05d492558bf8cabfbbe1
2016-06-29 03:32:52 -05:00
Simon Sapin 993d896521 servo: Merge #11816 - Make the style crate (almost) build with a stable compiler (from servo:stable-style); r=nox
<!-- Please describe your changes on the following line: -->

The bulk of this is adding cargo features to make derived implementations of `heapsize` and `serde` traits optional.

"Almost" because `std::intrinsics::discriminant_value` is currently unstable and doesn’t have any stable replacement that I know of. For now, this PR conditionally replaces it with `unimplemented!()`.

r? @nox

---
<!-- 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 <s>fix</s> are part of #11815 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not <s>require tests</s> *have tests yet* because that requires https://github.com/servo/servo/issues/11806, but I still want to land this before it bitrots. (Tests should check that the build succeeds with a stable compiler.)

<!-- 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: 0fb5d634a007f3d0424f95569ac3f83d500d054c
2016-06-22 09:43:20 -05:00
Patrick Walton 2120477f7d servo: Merge #11680 - script: When using WebRender, keep the DOM-side scroll positions for elements with `overflow: scroll` up to date, and take them into account when doing hit testing (from pcwalton:wr-overflow-scroll-hit-testing); r=jdm
Closes #11648.

r? @jdm
cc @paulrouget

Source-Repo: https://github.com/servo/servo
Source-Revision: 2d9338085561e7908c80ec7b2dd6d30125489aac
2016-06-11 11:01:36 -05:00