Commit graph

17 commits

Author SHA1 Message Date
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
Patrick Walton
c3daa72338 servo: Merge #11398 - script: Keep the DOM-side viewport up to date when scrolling happens in WebRender (from pcwalton:webrender-viewport); r=glennw
This happens asynchronously, just as it does in non-WebRender mode.

This functionality is a prerequisite for doing proper display-list-based
hit testing in WebRender, since it moves the scroll offsets into Servo
(and, specifically, into the script thread, enabling iframe event
forwarding) instead of keeping them private to WebRender.

Requires servo/webrender_traits#55 and servo/webrender#277.

Partially addresses #11108.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 27d1f182713077395426a53a9c91ec35c95887ee
2016-05-31 20:54:29 -05:00
Ms2ger
55c201f15b servo: Merge #11488 - Remove the ConvertPipelineIdToWebRender trait (from Ms2ger:ConvertPipelineIdToWebRender); r=metajack
- [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 refactoring

Source-Repo: https://github.com/servo/servo
Source-Revision: 0173cabbb6aedd5695e4035437b233927d4f27d0
2016-05-28 09:49:44 -05:00
Per Lundberg
28632dc3a1 servo: Merge #11192 - Removed unused imports (from perlun:remove-unused-imports); r=Manishearth
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #11185
- [X] These changes do not require tests because it only removes dead code.

----

This fixes #11185.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c674d0397927ef6563feb70e54f46815af55600
2016-05-15 15:41:16 -07:00
Ulf Nilsson
abe21b5d60 servo: Merge #11109 - Make text-align: justify incremental layout safe (from kaksmet:justify-fix); r=mbrubeck
Closes #10499
Closes #9057

Source-Repo: https://github.com/servo/servo
Source-Revision: 069be91e8451d197c8f66790fbf53086f22150d7
2016-05-10 12:54:26 -07:00
Kosov Eugene
531ca297be servo: Merge #11084 - move trait ConvertPipelineIdToWebRender to a better place (from kevgs:layout_traits); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a8c81773a7dc51301e52ce3f02f8ea55984365a
2016-05-09 03:14:03 -07:00
Matt Brubeck
b40d3af015 servo: Merge #11032 - Filter out whitespace glyphs from display list (from mbrubeck:no-whitespace); r=pcwalton
Fixes #10244. r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: df8008cfe6a0113ae9153e9eb3424f8b3a4030e8
2016-05-07 11:05:14 -07:00
Matt Brubeck
22979e08c6 servo: Merge #10895 - Use byte indices instead of char indices for text runs (from mbrubeck:byteindex); r=pcwalton
Replace character indices with UTF-8 byte offsets throughout all code dealing with text runs.  This eliminates a lot of complexity when converting from one to the other, and interoperates better with the rest of the Rust ecosystem.

For most code this is just a simple replacement of char indices with byte indices.  In a few places like glyph storage and text fragment scanning, it also lets us get rid of code that existed only to map between bytes and chars.

Also includes some related fixes to text shaping, discovered while working on this conversion.  See the commit messages for details.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: cf121ad8dff90b8fa55558ca9bdcbfe29512a617
2016-04-28 20:22:09 -07:00
Martin Robinson
2b99437a80 servo: Merge #10810 - Merge DisplayListEntry into DisplayItem (from mrobinson:displayitem); r=pcwalton
We don't really need two levels of abstraction for every element in the
DisplayList. This simplifies the complexity of the data structure in
preparation for providing documentation and properly handling scrolling
roots.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1fee7185a77424915d517a64685d6f7be40fbd3c
2016-04-26 10:13:00 -07:00
Patrick Walton
9d60fb7977 servo: Merge #10717 - layout: Implement support for overflow: scroll in WebRender (from pcwalton:wr-overflow-scroll); r=glennw
Requires a WebRender upgrade.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 64b0dafde8f65ef4aceeb85436c547a1581c619f
2016-04-20 02:26:44 +05:01
Martin Robinson
2728e5cc53 servo: Merge #10678 - WebRender no longer needs StackingLevel information (from mrobinson:remove-stackinglevel-from-webrender); r=pcwalton
Since the display list is already sorted before it is passed to
WebRender, we don't need to pass the stacking level information any
longer. Update webrender, webrender_traits, and gleam.

Source-Repo: https://github.com/servo/servo
Source-Revision: 062d933e4fb4a58d9dc319ec2b462f3c1d504d8a
2016-04-19 10:00:21 +05:01
Patrick Walton
46e11f6e68 servo: Merge #10529 - layout: Make child stacking contexts of fixed position stacking contexts also fixed position (from pcwalton:nested-fixed-position-webrender); r=glennw
Improves YouTube.
Improves the Washington Post.

Closes #10526.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 150338503dce8f2ba7f2a6850dca253733a636a1
2016-04-12 10:09:11 +05:01
Patrick Walton
9a7523f50e servo: Merge #9947 - Faster display list transfer (from pcwalton:faster-display-list-transfer); r=glennw
This series of commits improves performance of display list construction in browser.html by about 3x when using WebRender.

It requires https://github.com/servo/webrender_traits/pull/18 and https://github.com/servo/webrender/pull/231.

Anyone should feel free to review if they have time; I'll ask someone in particular once those two upstream commits land.

cc @paulrouget

Source-Repo: https://github.com/servo/servo
Source-Revision: 187ca442337313a76ce115ac92a2da44d91d5b96
2016-03-23 07:37:31 +05:01
Martin Robinson
f0ca9bc037 servo: Merge #9962 - Simplify the display list slightly (from mrobinson:display-list-simplification); r=pcwalton
Now that WebRender uses an Iframe display item, we do not need the Noop
item for the non-WebRender path. We can simply reuse the Iframe display
item. Also remove the layer_id member from the LayeredItem struct, as
it is unused.

Source-Repo: https://github.com/servo/servo
Source-Revision: 40083a7aa84c2459f2f1de7dd826d39f80e2195f
2016-03-11 10:53:29 +05:01
Patrick Walton
229ea1816b servo: Merge #9861 - Flatten the WebRender API to allow us to use shared memory to transfer display lists (from pcwalton:superflat); r=glennw
Improves performance significantly.

Requires servo/webrender_traits#15 and servo/webrender#222.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 1c63bf9822d54cf95daa9921cda08f3b60521027
2016-03-04 06:16:45 +05:01
Martin Robinson
36406cdba8 servo: Merge #9756 - Flatten display list structure (from mrobinson:flat-display-lists-webrender); r=pcwalton
Instead of producing a tree of stacking contexts, display list
generation now produces a flat list of display items and a tree of
stacking contexts. This will eventually allow display list construction
to produce and modify WebRender vertex buffers directly, removing the
overhead of display list conversion.  This change also moves
layerization of the display list to the paint thread, since it isn't
currently useful for WebRender.

To accomplish this, display list generation now takes three passes of
the flow tree:

        1. Calculation of absolute positions.
        2. Collection of a tree of stacking contexts.
        3. Creation of a list of display items.

After collection of display items, they are sorted based upon the index
of their parent stacking contexts and their position in CSS 2.1
Appendeix E stacking order.

This is a big change, but it actually simplifies display list generation.

Source-Repo: https://github.com/servo/servo
Source-Revision: 62814f7cb486bc267a796b7ce58c51d59240fad0
2016-03-02 05:52:08 +05:01
Glenn Watson
c6d5efc75f servo: Merge #9589 - Add WebRender integration to Servo (from glennw:webrender); r=pcwalton
WebRender is an experimental GPU accelerated rendering backend for Servo.

The WebRender backend can be specified by running Servo with the -w option (otherwise the default rendering backend will be used).

WebRender has many bugs, and missing features - but it is usable to browse most websites - please report any WebRender specific rendering bugs you encounter!

Source-Repo: https://github.com/servo/servo
Source-Revision: ab07b06823ea9748a6091aee2281495f86f00bce

--HG--
rename : servo/tests/unit/net_traits/lib.rs => servo/resources/shaders/clear.fs.glsl
rename : servo/tests/unit/net_traits/lib.rs => servo/resources/shaders/debug_color.fs.glsl
rename : servo/tests/unit/net_traits/lib.rs => servo/resources/shaders/mask.fs.glsl
2016-02-19 00:25:06 +05:01