Commit Graph

27 Commits

Author SHA1 Message Date
Josh Matthews
d4392e69c6 servo: Merge #5459 - Make reflow queries always perform reflow. Fixes #5458 (from jdm:reflowquery); r=saneyuki
Source-Repo: https://github.com/servo/servo
Source-Revision: 6bedf4a229f07a9cce589466cb398cd5afdd382d
2015-04-01 14:03:43 -06:00
Patrick Walton
b4a63e5dbd servo: Merge #5400 - layout: Implement CSS transitions per CSS-TRANSITIONS § 2 (from pcwalton:transitions-redux); r=glennw
Transition events are not yet supported, and the only animatable
properties are `top`, `right`, `bottom`, and `left`. However, all other
features of transitions are supported. There are no automated tests at
present because I'm not sure how best to test it, but three manual tests
are included.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: ebdf1d494b6c986e6dfcb7d8fd3f0ffa126523ed
2015-03-31 10:39:56 -06:00
Ms2ger
b244a0a2c4 servo: Merge #5416 - Remove some int/uints (from Ms2ger:int); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 674e52afa1012cb342629dab4d3abae975a16fe9
2015-03-28 13:58:02 -06:00
Nicholas Nethercote
511ce78c9b servo: Merge #5348 - Rename lots of profiling-related things (from nnethercote:profiler-renaming); r=jdm
```
------------------------------------------------------------------------
BEFORE                              AFTER
------------------------------------------------------------------------
util::memory                        util::mem
- heap_size_of                      - heap_size_of (unchanged)
- SizeOf                            - HeapSizeOf
  - size_of_excluding_self            - heap_size_of_children

prof::mem                           prof::mem
- MemoryProfilerChan                - ProfilerChan
- MemoryReport                      - Report
- MemoryReportsChan                 - ReportsChan
- MemoryReporter                    - Reporter
- MemoryProfilerMsg                 - ProfilerMsg
  - {R,UnR}egisterMemoryReporter      - {R,UnR}egisterReporter
- MemoryProfiler                    - Prof
- ReportsForest                     - ReportsForest (unchanged)
- ReportsTree                       - ReportsTree   (unchanged)
- SystemMemoryReporter              - SystemReporter

prof::time                          prof::time
- TimeProfilerChan                  - ProfilerChan
- TimerMetadata                     - TimerMetadata (unchanged)
- Formatable                        - Formattable [spelling!]
- TimeProfilerMsg                   - ProfilerMsg
- TimeProfilerCategory              - ProfilerCategory
- TimeProfilerBuckets               - ProfilerBuckets
- TimeProfiler                      - Profiler
- TimerMetadataFrameType            - TimerMetadataFrameType (unchanged)
- TimerMetadataReflowType           - TimerMetadataReflowType (unchanged)
- ProfilerMetadata                  - ProfilerMetadata (unchanged)
```
In a few places both prof::time and prof::mem are used, and so
module-qualification is needed to avoid overlap, e.g. time::Profiler and
mem::Profiler. Likewise with std::mem and prof::mem. This is not a big
deal.

Source-Repo: https://github.com/servo/servo
Source-Revision: d784d9c488be4533a3590a154addd366d15a5864
2015-03-25 21:18:48 -06:00
Nicholas Nethercote
dab428b57b servo: Merge #5335 - Move profiler code from util into a new crate profile (from nnethercote:profile-crate); r=glennw
- Most of util::memory has been moved into profile::mem, though the
  `SizeOf` trait and related things remain in util::memory. The
  `SystemMemoryReporter` code is now in a submodule
  profile::mem::system_reporter.

- util::time has been moved entirely into profile::time.

Source-Repo: https://github.com/servo/servo
Source-Revision: d1268ec9c6633684270015e7b2619181aeb47b8b
2015-03-24 03:15:49 -06:00
Nicholas Nethercote
9f66ff8f0d servo: Merge #5193 - Add memory reporting infrastructure and use it to measure the display list (from nnethercote:measure-display-list); r=jdm
These changeset implements the beginnings of fine-grained measurement of Servo's data structures.

@pcwalton, @jdm: are you likely reviewers for this?

Source-Repo: https://github.com/servo/servo
Source-Revision: f093620922621e1877393b03968ed0ce767fdf12
2015-03-16 21:33:50 -06:00
Mikko Perttunen
9d54446033 servo: Merge #5173 - Consider media attribute on link and style tags (from cyndis:media-attr); r=jdm
Don't add a stylesheet if the current device does not match the media
query specified in a link or style tag.

Cheers,
cyndis

Source-Repo: https://github.com/servo/servo
Source-Revision: 660ea05ddb3b17b0bb914cb09968cbcf7c6b1aec
2015-03-16 09:54:56 -06:00
Glenn Watson
8b6b859ce0 servo: Merge #5086 - Reap layout data whenever a node is removed from the tree (from glennw:reap-more-stuff); r=jdm
Also introduce a clear() function to layout data which will be used to clear items such as compositor layouts.

Clear the layout data when a node becomes display:none.

Source-Repo: https://github.com/servo/servo
Source-Revision: 65454e51c806c7d91c869a7b4afce872b4eeea57
2015-03-02 16:45:51 -07:00
Simon Sapin
8fbd363d52 servo: Merge #4893 - Upgrade to rustc ba2f13ef0 2015-02-04 (from servo:rustup_2015-01-31); r=Ms2ger,glennw
Ready for review.

Final link step on android fails, but we know how to fix it and will add it to this branch soon.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2cc08f289ab909de44fa09a07b2c43b70ce379b9
2015-02-11 17:24:45 -07:00
Ms2ger
f3a69a15a3 servo: Merge #4886 - Import msg as msg rather than servo_msg (from Ms2ger:servo_msg); r=saneyuki
Source-Repo: https://github.com/servo/servo
Source-Revision: 29d3b872de4abb693b75e71fc0b987c52b0fd1f6
2015-02-10 03:51:46 -07:00
Ms2ger
3445c6a5f2 servo: Merge #4814 - Correct the documentation comment syntax in layout_interface.rs (from Ms2ger:layout_interface-doc); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 32a807da82f93c8b4311f4b53d8252618ed425e9
2015-02-03 06:21:53 -07:00
Simon Sapin
ba695b5444 servo: Merge #4757 - Bring CSS parse error reporting back (from servo:newnewnewcss); r=mbrubeck
(Still off by default. Enable with `RUST_LOG=style`.)

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 172aed535be3c34775824dac64ad2b91fc379ad5
2015-01-30 15:27:53 -07:00
Ms2ger
155838196e servo: Merge #4766 - Import the util crate as util rather than servo_util (from Ms2ger:util); r=Manishearth
This used to conflict with the util crate from the standard library, which
has long since been removed.

The import in layout has not been changed because of a conflict with the
util mod there.

Source-Repo: https://github.com/servo/servo
Source-Revision: 27e0f16407629422b5e047e067d458142372c97e
2015-01-29 05:12:49 -07:00
Josh Matthews
b11f7d94dc servo: Merge #4719 - Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev (from servo:rustup_20150109); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3f9012864a2cd927cf17a8e11dfa6922add1b7df
2015-01-27 18:15:50 -07:00
Martin Robinson
6c0ac241fb servo: Merge #4536 - Stall PaintTask exit until it can release all buffers (from mrobinson:pixmap); r=pcwalton
It is possible for a PaintTask to start exiting soon after sending new
buffers to the compositor. In that case, the compositor should return
the now unnecessary buffers to the PaintTask so that it can properly
free them.

To accomplish this, the compositor now keeps a hash map of paint task
channels per pipeline id. When a PaintTask exists, the constellation
informs the compositor that it can forget about it. Additionally, the
PaintTask should not wait for any buffers when the engine is doing a
complete shutdown. In that case, the compositor is already halted and
has simply let all buffers leak. We pipe through the shutdown type when
destroying the pipeline to make this decision.

Fixes #2641.

Source-Repo: https://github.com/servo/servo
Source-Revision: a31acffb0405b2c38b39c39c6d552f2ba79b6326
2015-01-02 20:21:47 -07:00
Tetsuharu OHZEKI
d32b4e13f5 servo: Merge #4434 - script: Remove glob imports added in #4405 (from saneyuki:glob_script); r=jdm
#4406

Source-Repo: https://github.com/servo/servo
Source-Revision: 803e5ef7904f2843d8e44184f9154af079eea9fa
2014-12-18 15:57:48 -07:00
Glenn Watson
636d338cf6 servo: Merge #4405 - Update rustc to revision 3dcd2157403163789aaf21a9ab3c4d30a7c6494d (from servo:rustup_20141124); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fbf42c951b2f53d91e2f32f8035484a07ea83493
2014-12-17 18:45:49 -07:00
Patrick Walton
2a3b044e37 servo: Merge #4289 - style: Implement basic column spans, quirks mode, and the legacy bgcolor and border attributes (from pcwalton:hacker-news); r=SimonSapin
This patch provides some of the groundwork for column spans greater than
1. It implements the column-span CSS property as well as the
corresponding colspan attribute; although the former is not
well-specified outside of CSS multi-column layout, INTRINSIC refers to
it. Although width is distributed to spanning columns, they do not yet
contribute minimum and preferred widths; this will be implemented in a
follow-up.

The parsing for the legacy bgcolor and border attributes is
implemented according to the WHATWG HTML specification.

Additionally, this patch cleans up some miscellaneous formatting issues,
refactors layout/css somewhat to eliminate needless levels of
indirection, and cleans up the handling of table rowgroups.

New Hacker News screenshot: http://i.imgur.com/hnl2a7E.png

Source-Repo: https://github.com/servo/servo
Source-Revision: 8e31e5f98747e4b42dafcc4b076fac46aeb09310
2014-12-15 19:33:46 -07:00
Glenn Watson
71f726977a servo: Merge #3948 - Rust upgrade to rustc hash b03a2755193cd756583bcf5831cf4545d75ecb8a (from servo:rustup-20141105_2); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: c5e1b0d32e17fad29799023c85e2e73ac89c3af7
2014-11-12 20:48:31 -07:00
Martin Robinson
814dac2156 servo: Merge #3809 - Clip display list based on frame viewport (from mrobinson:display-list-optimization); r=pcwalton
Instead of creating a display list for the entire page, only create one
for an area that expands around the viewport. On my machine this makes
incremental layout of http://timecube.com 50% faster.

Source-Repo: https://github.com/servo/servo
Source-Revision: 26045d7fcbab8851fbefe2851cd904203f8fd8dd
2014-11-12 17:36:32 -07:00
Martin Robinson
30e2e70d2d servo: Merge #3857 - Have ContentBox(es)Queries consult the flow tree (from mrobinson:queries); r=pcwalton
Instead of looking at the display tree, have ContentBox(es)Query consult
the flow tree. This allow optimizing away parts of the display tree
later. To do this we need to be more careful about how we send reflow
requests, only querying the flow tree when possible.

Fixes #3790.

Source-Repo: https://github.com/servo/servo
Source-Revision: c9089c45c4b7d40419233b48a192d85a8ad71c99
2014-11-03 12:03:37 -07:00
Keegan McAllister
a8be3c4e6b servo: Merge #3670 - Use html5ever for HTML parsing (from kmcallister:h5e-take2); r=jdm
r? @Ms2ger, @jdm

The parser is now a JS-managed object and we use hooks in html5ever to trace its internal state.  This should be memory-safe even if arbitrary JavaScript can run during a parse.  Please let me know if you think of a reason it wouldn't be!

I think the likely outcome of a garbage collection during parsing is a dynamic `RefCell` borrow failure, but I'm going to look into that after this lands.  It should be safe to trace the parser while it's mutably borrowed, as long as it's not shared between threads, so we can probably switch to `UnsafeCell`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8d3b107568ab965b518b8003b702a5db993fa7d0
2014-10-16 14:15:21 -06:00
Clark Gaebel
c0d7a56ba4 servo: Merge #3590 - Incremental Style Recalc (from cgaebel:slow-incremental-reflow-rebase); r=pcwalton
This patch puts in the initial framework for incremental reflow. Nodes' styles
are no longer recalculated unless the node has changed.

I've been hacking on the general problem of incremental reflow for the past
couple weeks, and I've yet to get a full implementation that actually passes all
the reftests + wikipedia + cnn. Therefore, I'm going to try to land the different
parts of it one by one.

This patch only does incremental style recalc, without incremental flow
construction, inline-size bubbling, reflow, or display lists. Those will be coming
in that order as I finish them.

At least with this strategy, I can land a working version of incremental reflow,
even if not yet complete.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 85b277655f07db1cb99c4d3dee93804735ed0470
2014-10-09 11:21:32 -06:00
Manish Goregaokar
f9ff33e0ec servo: Merge #3468 - Replace our usage our Encodable with JSTraceable; r=jdm (from Manishearth:jstraceable)
Source-Repo: https://github.com/servo/servo
Source-Revision: 95a4731c0eec0cfb2fb70af534757bc7ca63e407
2014-09-24 20:55:41 +05:00
Clark Gaebel
603e2d1c80 servo: Merge #3379 - Added more complex profiling metadata (from cgaebel:bucketed-timing)
Source-Repo: https://github.com/servo/servo
Source-Revision: 1b251db7323dce3b7838709c7d2dfb685d8b24a9
2014-09-18 09:12:34 -07:00
Matt Brubeck
6bf4cede00 servo: Merge #3352 - Move link rel=stylesheet fetching to layout task. r=jdm (from mbrubeck:link-style)
Source-Repo: https://github.com/servo/servo
Source-Revision: 0e2cdc5cca80e636bd904ea99e86f31a4ea9bcd2
2014-09-16 08:16:29 -07:00
Jack Moffitt
132ee35633 servo: Merge #3230 - Cargoify servo (from servo:cargoify)
Source-Repo: https://github.com/servo/servo
Source-Revision: b1305bb7d051f83850c51bb0da0ccc86a5e07922
2014-09-09 08:18:18 -06:00