Commit Graph

165 Commits

Author SHA1 Message Date
Johann Tuffe
25ce9ab4be servo: Merge #7265 - Add alphabetical order check for use statements (from tafia:tidy-use); r=Ms2ger
close #7112

Source-Repo: https://github.com/servo/servo
Source-Revision: a5fbb2f2a6fa79755f975feff2435abb6a5dd0e9
2015-08-20 07:43:56 -06:00
Patrick Walton
531f8e9211 servo: Merge #7294 - layout: Don't panic if requestAnimationFrame() is called before first layout (from servo:tick-animations-with-no-layout-root); r=glennw+Ms2ger
Closes #7115.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f05447a7b1977f91fab753166fa428164a9307b
2015-08-20 05:17:47 -06:00
Corey Farwell
caebc586e7 servo: Merge #7178 - flow::Flow should follow *_mut naming conventions (from frewsxcv:flow-api-mut); r=nox
Fixes #7148

Source-Repo: https://github.com/servo/servo
Source-Revision: 014608f60c45574e6a347f39a96aa33b8eab02e1
2015-08-18 07:31:57 -06:00
Josh Matthews
d1f1ba555f servo: Merge #7203 - Add automated style nit checks to test-tidy (from jdm:style); r=Ms2ger
Expands on the work by @wilmoz and cleans up the existing errors. Closes #7180. Closes #7111.

Source-Repo: https://github.com/servo/servo
Source-Revision: e74825f9fde8e222f4ba9bb24b2c2a3864c73e5f
2015-08-16 08:37:40 -06:00
João Oliveira
5bbd3b623e servo: Merge #7225 - Replace uses of for foo in bar.iter() and for foo in bar.iter_mut() (from jxs:master); r=nox
closes #7197

Source-Repo: https://github.com/servo/servo
Source-Revision: a1b3f477aa541fda4d1b6ccb02c3e56143f4d217
2015-08-15 03:03:21 -06:00
Ms2ger
3d6204b63a servo: Merge #7171 - Remove ScriptControlChan (from Ms2ger:ScriptControlChan); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3ad49fc689ceb6067cd6dea1aa0d004321704b8e
2015-08-12 08:28:29 -06:00
Patrick Walton
03469bd0d3 servo: Merge #7090 - layout: Implement basic overflow: scroll functionality (from pcwalton:overflow-scroll); r=glennw
Known issues:

* Display list optimization can sometimes optimize out elements that
  should be shown. This affects the Enyo demo.

* The `overflow: scroll` container doesn't clip the inner layer properly
  when borders, border radius, etc. are present.

* `overflow-x: scroll` and `overflow-y: scroll` don't work individually;
  elements are scrolled all at once.

Note that multiple layers per stacking context aren't needed for the Enyo demo; rather the issue is that the height of the main area is being calculated incorrectly. (It looks like JS is measuring the height and poking in an explicit value that is too tall.)

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: b05b02e11fb849e1f0153d009d8fcf0501ace8dc
2015-08-10 22:29:40 -06:00
Patrick Walton
78e790ea7d servo: Merge #7099 - servo: Update ipc-channel to pick up bincode support (from pcwalton:bincode); r=jdm
Large improvement in page load times, especially in debug builds.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: d4d4d6dc013ee322282de7ec0effa54c8827a775
2015-08-08 10:55:00 -06:00
Simon Sapin
676e8e49a5 servo: Merge #7013 - Make the Ahem font available to test-css and test-wpt tests (from servo:user-stylesheets); r=mbrubeck
Add support for user stylesheets, and provide one to tests with an `@font-face` rule for it.

Fix #6195.

Many previously-failing tests now pass, and a few previously-passing now fail.

Among the latter, `font-family-013.htm` and `fonts-013.htm` are testing that the Ahem font is not used for characters it doesn’t have a glyph for. They were passing because Ahem was not available at all, and now fail because we don’t implement font fallback correctly.

The others also use Ahem, but I don’t understand yet what’s going on exactly.

Source-Repo: https://github.com/servo/servo
Source-Revision: 08987e3eda370e3eb00876c7f5efdebf3ba0265a
2015-08-07 14:05:19 -06:00
Manish Goregaokar
c75548bdb3 servo: Merge #7054 - Rollup of 3 pull requests (from Manishearth:rollup); r=Manishearth
- Successful merges: #7028, #7034, #7039
- Failed merges:

Source-Repo: https://github.com/servo/servo
Source-Revision: 76b4bae6ee45317f2ca0aefbc48b89169d2450c8
2015-08-06 17:43:09 -06:00
Nick Thompson
e86b2e4fa1 servo: Merge #6836 - Extract layout query code into layout/query.rs (from nick-thompson:layout_refactor); r=Ms2ger
Fix for #6787. I left the commits split up for ease of review, happy to squash when this gets accepted.

Source-Repo: https://github.com/servo/servo
Source-Revision: 172f046688c600c9f51f8db0380e399f6372fe4d
2015-08-06 03:29:16 -06:00
Glenn Watson
a1e8cd6cbc servo: Merge #6988 - No need for paint layer in stacking context to be an arc (from glennw:no-arc)
Source-Repo: https://github.com/servo/servo
Source-Revision: f570da28c29e2cd762fd7743f11b711c18055aac
2015-08-05 20:06:09 -06:00
Glenn Watson
c51526ac99 servo: Merge #6784 - Implement offsetParent/Top/Left/Width/Height (from glennw:offset-ext); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: d66c59a15213dec17f38af0653e9e7e1bf579a95
2015-08-03 18:39:43 -06:00
Patrick Walton
179aadb5a4 servo: Merge #6895 - layout: Tie transitions to the DOM node and finish them instantly when new styles are set (from pcwalton:better-transitions); r=glennw
Tying transitions to the DOM node avoids quadratic complexity when
updating them.

Finishing transitions instantly when styles are updated makes our
behavior more correct.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: ffe4bd25a495efd672986f090150b165811b6708
2015-08-02 15:04:54 -06:00
Patrick Walton
33045acedc servo: Merge #6795 - Send display lists over IPC in multiprocess mode (from pcwalton:display-list-e10s-fixes); r=glennw
This patch set introduces the `--multiprocess` (`-M`) switch. Right now, all it does it cause display lists to be serialized, but eventually it will cause actual processes to be spawned.

r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: c4480b5d0309acc7f154166b91992f73a85de57f
2015-07-31 09:43:40 -06:00
Nicholas Nethercote
2471f9031d servo: Merge #6802 - Add a kind field to memory reports (from nnethercote:report-kind); r=jdm
This is used for two memory reporting improvements.

- It's used to distinguish "explicit" memory reports from others. This
  mirrors the same categorization that is used in Firefox, and gives a single
  tree that's the best place to look. It replaces the "pages" tree which
  was always intended to be a temporary stand-in for "explicit".

- It's used to computed "heap-unclassified" values for both the jemalloc
  and system heaps, both of which are placed into the "explicit" tree.

Example output:
```
|  114.99 MiB -- explicit
|      52.34 MiB -- jemalloc-heap-unclassified
|      46.14 MiB -- system-heap-unclassified
|      14.95 MiB -- url(file:///home/njn/moz/servo2/../servo-static-suite/wikipe
dia/Guardians%20of%20the%20Galaxy%20(film)%20-%20Wikipedia,%20the%20free%20encyc
lopedia.html)
|          7.32 MiB -- js
|             3.07 MiB -- malloc-heap
|             3.00 MiB -- gc-heap
|                2.49 MiB -- used
|                0.34 MiB -- decommitted
|                0.09 MiB -- unused
|                0.09 MiB -- admin
|             1.25 MiB -- non-heap
|          1.36 MiB -- layout-worker-3-local-context
|          1.34 MiB -- layout-worker-0-local-context
|          1.24 MiB -- layout-worker-1-local-context
|          1.24 MiB -- layout-worker-4-local-context
|          1.16 MiB -- layout-worker-2-local-context
|          0.89 MiB -- layout-worker-5-local-context
|          0.38 MiB -- layout-task
|             0.31 MiB -- display-list
|             0.07 MiB -- local-context
|       1.56 MiB -- compositor-task
|          0.78 MiB -- surface-map
|          0.78 MiB -- layer-tree
```
The heap-unclassified values dominate the "explicit" tree because reporter
coverage is still quite poor.

Source-Repo: https://github.com/servo/servo
Source-Revision: bff5e325a89ab6621a049ac55c1da66e901c776c
2015-07-29 19:42:00 -06:00
David Zbarsky
c79a7611a6 servo: Merge #6798 - Implement getComputedStyle (from dzbarsky:gCS); r=pcwalton
It's not quite done but can probably be reviewed anyway.
I still need to finish up a few of the ToCss impls, I just got lazy and wanted to make sure things worked.

The computation of the used values is definitely not right, I'm going to investigate that.

Source-Repo: https://github.com/servo/servo
Source-Revision: acbca7b3aaf18866f7a1a79d9684149897bf4305
2015-07-29 18:48:45 -06:00
Ms2ger
b7afa848f3 servo: Merge #6794 - Remove StyledNode (from Ms2ger:StyledNode); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 0b447651e4e5309c057f2cf2af58b3aa733bb4c4
2015-07-28 17:26:42 -06:00
Till Schneidereit
1c2b3eacf2 servo: Merge #6662 - Implement Element.client{Top,Left,Width,Height} (from tschneidereit:client-geometry); r=glennw,pcwatson
This isn't done, but contains a working implementation of at least `clientTop`. Feedback would be much appreciated: it's probably far from ideal.

Implementing `clientLeft` is straight-forward, I think, but `clientWidth` and `clientHeight` require accessing the `border_box` - and I don't know how that works, yet.

Source-Repo: https://github.com/servo/servo
Source-Revision: e0bd80f80715bdbdf30de1de9c79a99a41cfd99e
2015-07-27 20:45:05 -06:00
Patrick Walton
37246da499 servo: Merge #6597 - script: Make the ImageCacheTask use IPC (from pcwalton:image-cache-ipc); r=jdm
This necessitated getting rid of the boxed trait object that was being
be passed between the script task and the image cache task.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: e13ebf712de444132a6cc90f394c121d8d751c4c
2015-07-27 00:08:15 -06:00
Patrick Walton
89b3b2b275 servo: Merge #6616 - script: Make most of 2D canvas and WebGL run over IPC (from pcwalton:canvas-webgl-ipc); r=jdm
To actually make the multiprocess communication work, we'll need to
reroute the task creation to the pipeline or the compositor. But this
works as a first step.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 1764267379a00b96a1df89f3917299a0c6fd325c
2015-07-25 01:50:31 -06:00
Patrick Walton
9a5dbcbefe servo: Merge #6629 - profile: Make the time and memory profilers run over IPC (from pcwalton:profiler-ipc); r=jdm
Uses a couple of extra threads to work around the lack of cross-process
boxed trait objects.

r? @nnethercote

Source-Repo: https://github.com/servo/servo
Source-Revision: f778e0eecf7cd8a2b870d18c3c305ff10d6b1894
2015-07-24 18:55:05 -06:00
Nicholas Nethercote
15357cc3c1 servo: Merge #6608 - Register/unregister memory reporters in a better place (from nnethercote:tweak-reporter-registration); r=glennw
By doing this on either side of the call to the relevant tasks' start()
method, we don't need to store the mem::ProfilerChan or the reporter
name in the task itself.

Source-Repo: https://github.com/servo/servo
Source-Revision: cb52cc66581191b6f787a4a6d0d2844e2968b7eb
2015-07-20 21:43:09 -06:00
Patrick Walton
73a1dca1b4 servo: Merge #6583 - gfx: Make display lists serializable using serde (from pcwalton:serializable-display-list); r=metajack
This commit introduces the `serde` dependency, which we will use to
serialize messages going between processes in multiprocess Servo.

This also adds a new debugging flag, `-Z print-display-list-json`,
allowing the output of display list serialization to be visualized.
This will be useful for our experiments with alternate rasterizers.

r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: ef9715203edf0a280d019b6e8823666f0e7020be
2015-07-15 14:04:55 -06:00
Patrick Walton
cc4801b4d2 servo: Merge #6618 - script: Split Pipeline::create into chrome process and content process parts (from pcwalton:content-process-code-shuffling); r=larsbergstrom
This will make it easier to adapt to IPC.

The trickiest part here was to make script tasks spawn new layout tasks
directly instead of having the pipeline do it for them. The latter
approach will not work in multiprocess mode, because layout and script
must run in the same address space and the pipeline cannot inject tasks
into another process.

r? @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: e06eaa0064f49bc215e3851f0a3686e1191b356a
2015-07-14 12:11:09 -06:00
Patrick Walton
cd4263a0d6 servo: Merge #6596 - compositing: Make ScriptListener and LayoutControlChan messages go over IPC (from pcwalton:layout-control-ipc); r=jdm
r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 64751b8eef5b95de9ac3b9a382b4cb4408cb90c0
2015-07-14 08:46:07 -06:00
Ms2ger
f76fc9dc88 servo: Merge #6605 - Pass the WorkQueue to LayoutTask::solve_constraints_parallel (from Ms2ger:solve_constraints_parallel); r=SimonSapin
This removes the possibility of a panic by checking a constraint at compile
time rather than at run time.

Source-Repo: https://github.com/servo/servo
Source-Revision: d7cf58d6f15c1b96884a5aef210a5c5d244abf54
2015-07-12 02:44:04 -06:00
Ms2ger
ea2d1bcebf servo: Merge #6547 - Borrow the QueueData for WorkQueue::run (from Ms2ger:workqueue-reference); r=pcwalton
This allows us to get rid of the raw pointers and unsafe dereferencing in
the parallel layout implementation.

Source-Repo: https://github.com/servo/servo
Source-Revision: a3821bf24094bf5bb2a9553e66b69da3b6430aa5
2015-07-06 08:29:17 -06:00
Patrick Walton
45140644fc servo: Merge #6365 - layout: Disable parallel display list building by default (from pcwalton:sequential-display-list-construction); r=larsbergstrom
I've never see it result in a speedup. Actually, I don't think I've seen
it result in anything better than a 50% slowdown. The arithmetic
intensity is just too low, at least with the current algorithm.

Parallel DL building can still be enabled with a debug flag if the
algorithm is improved.

r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: b876a54dce091e161b87340130446597dd864732
2015-07-06 07:08:58 -06:00
Ms2ger
d48ac93091 servo: Merge #6550 - Fix build warnings (from Ms2ger:warnings); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: c7f1716ee1778893004d5210c5945cf1d7839160
2015-07-04 01:01:25 -06:00
Ms2ger
821cbd07ec servo: Merge #6513 - Remove the data field from WorkQueue (from Ms2ger:workqueue-data); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: d09881b051e01f145bf701d48d6d91167bccbe30
2015-07-03 07:22:44 -06:00
Ms2ger
faa6c6e853 servo: Merge #6461 - Use a dedicated type for the opaque type parameter to WorkQueue in layout (from Ms2ger:workqueuedata); r=pcwalton
Currently, we use UnsafeFlow and UnsafeLayoutNode, both of which are aliases
for (usize, usize) and thus interconvertible. This change should make it
clearer that the WorkQueue is not limited to one particular type.

Source-Repo: https://github.com/servo/servo
Source-Revision: 07a1e187f03484c5f326e48c4a5fed81c134d215
2015-06-26 14:10:07 -06:00
Ms2ger
d90e9f1d68 servo: Merge #6454 - Make {ThreadSafe,}LayoutNode::get_jsmanaged private (from Ms2ger:opaque); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: e02e7c517c30e87adcb61ef408d1ecddc7fb1458
2015-06-24 14:27:11 -06:00
Ms2ger
cbc764953c servo: Merge #6443 - Various layout cleanup (from Ms2ger:cleanup-layout); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 469b9550f6feec56d87ea5c772cb76453c13036a
2015-06-24 03:00:32 -06:00
Glenn Watson
d905323231 servo: Merge #6425 - Implement enough of 3d transforms spec to run the CSS FPS demo (from glennw:3d-transforms); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: dcb1237bb5deb84cdf921bf7b145b07eb2bd1430
2015-06-23 12:13:25 -06:00
Simon Sapin
1024deb134 servo: Merge #6427 - Update rust-selectors (from servo:selector-traits-refactor); r=Ms2ger
https://github.com/servo/rust-selectors/pull/30

r? @Ms2ger

This conflicts with the SpiderMonkey upgrade #6150. I’m happy to wait until that lands and rebase.

Source-Repo: https://github.com/servo/servo
Source-Revision: c119b59e82269a84925673236dd896101f27a6f3
2015-06-21 11:12:07 -06:00
ecoal95
87b4c78bcf servo: Merge #6423 - Use euclid from crates.io (from emilio:euclid); r=glennw
Sorry for not doing it yesterday, I couldn't.

cc @metajack @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 4ebb95ccd8e034007eacb447a054919ef4af2bf7
2015-06-18 20:50:22 -06:00
Corey Farwell
06b50698fa servo: Merge #6349 - rust-geom API changes (from frewsxcv:geom-api-changes); r=pcwalton
Shouldn't be merged until these have merged:

https://github.com/servo/rust-geom/pull/81

https://github.com/ecoal95/rust-offscreen-rendering-context/pull/13

https://github.com/servo/rust-layers/pull/178

~~I'll also need to update the Cargo lock files once they merge~~

Source-Repo: https://github.com/servo/servo
Source-Revision: cfcd8589d06935f83b903f76477ea03e4d4652d0
2015-06-13 13:52:07 -06:00
Nicholas Nethercote
55d3637142 servo: Merge #6334 - Measure LocalLayoutContexts in LayoutTask and LayoutWorkers (from nnethercote:report-local-contexts); r=pcwalton
Passing a function that measures TLS to WorkQueue is a bit weird, but I can't see how else to measure that data.

Source-Repo: https://github.com/servo/servo
Source-Revision: f03f584895f80deb08c77c817f6655609c4ee97c
2015-06-12 18:42:32 -06:00
Nicholas Nethercote
326e6cac62 servo: Merge #6335 - Ignore CollectReport messages when shutting down the LayoutTask (from nnethercote:fix-layout-task-shutdown-panic); r=metajack
Prior to this change, a panic would occur if a CollectReport message was
received while the LayoutTask was shutting down. Now it just gets
ignored.

Source-Repo: https://github.com/servo/servo
Source-Revision: 74ef31cfc4805d6dbeaa9e4769f0ceb14d124733
2015-06-11 00:58:41 -06:00
Corey Farwell
55bdf0aa9b servo: Merge #6317 - Remove fnv & smallvec crate reexports from util (from frewsxcv:rm-util-crate-reexports); r=Ms2ger
The util component specified fnv and smallvec as dependencies and publicly
reexported both of them. Several other components utilized these reexports,
presumably because fnv and smallvec used to live in the tree so reexporting
made the transition easier.

These indirect dependencies through the util component are unnecessary.

This commit removes the fnv & smallvec crate reexports in the util component.
It exchange, it adds fnv & smallvec as dependencies to non-util components
wherever needed. Finally, it removes the fnv dependency from util as it is not
utilized anywhere in the util component.

Source-Repo: https://github.com/servo/servo
Source-Revision: 35000a9b854dc0989cc473aaec0ea8c082521c66
2015-06-10 08:23:11 -06:00
Nicholas Nethercote
009c298911 servo: Merge #6289 - Make LOCAL_CONTEXT_KEY safe and non-leaky (from nnethercote:unleak-LOCAL_CONTEXT_KEY); r=pcwalton
`LOCAL_CONTEXT_KEY` is currently a `Cell<*mut LocalLayoutContext>`. The use
of the raw pointer means that the `LocalLayoutContext` is not dropped when
the thread dies; this leaks FreeType instances and probably other
things. There are also some unsafe getter functions in `LayoutContext`
(`font_context`, `applicable_declarations_cache` and
`style_sharing_candidate_cache`) that @eddyb says involve undefined
behaviour.

This changeset changes `LOCAL_CONTEXT_KEY` to
`RefCell<Option<Rc<LocalLayoutContext>>>`. This fixes the leak and also
results in safe getters.

(Fixes #6282.)

Source-Repo: https://github.com/servo/servo
Source-Revision: 0dec64caf01c98d10e72b73e35b994127c23e81f
2015-06-09 15:52:45 -06:00
Manish Goregaokar
c574d8a190 servo: Merge #6314 - Audit and reduce usage of unstable features (from Manishearth:feature_audit); r=mbrubeck
Will post audit report in a bit

Source-Repo: https://github.com/servo/servo
Source-Revision: 88c1cdc9fca6568d1075ea9577ac996c5f73b98f
2015-06-09 14:31:42 -06:00
Eduard Burtescu
97ee3c496c servo: Merge #6301 - Use the correct log crate and setup env_logger in main (from eddyb:fix-logging-2); r=larsbergstrom
Fixes #6103.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1587d8a301983b881b038c7e443ba6d1deb1f72f
2015-06-06 15:49:56 -05:00
Glenn Watson
351767453f servo: Merge #6214 - First step towards 3d transforms (from glennw:parse-transforms); r=pcwalton
* Add parser support for 3d transforms.
 * Change ComputedMatrix to a representation that suits interpolation.
 * Switch stacking contexts to use 4x4 matrices.

The transforms themselves are still converted to 2d and handled by azure for now, but this is a small standalone part that can be landed now to make it easier to review.

Source-Repo: https://github.com/servo/servo
Source-Revision: 05212b702dbafacd3d1d44e600139af8d7516308
2015-06-02 19:56:17 -05:00
ecoal95
0656a2b904 servo: Merge #6083 - First steps to layerize canvas (from emilio:layerize-canvas); r=pcwalton
I've done a bit of job to get this done. Right now readback is still used, but we have a `LayerId` -> `CanvasRenderer` map on the paint task, that we can use to get rid of that.

I'd want review, to see if this is a good approach (I know it's not the initial `CanvasId` -> renderer approach, but it's pretty similar, since a canvas involves a `PaintLayer`).

I had to do a bit of refactoring to avoid cyclic dependencies between canvas and gfx. I'd want you to review them too.

It's mergeable and doesn't break any tests :P

Some of my main concerns:
* Does the canvas render really need to be behind an `Arc<Mutex<T>>`?
* I can't clone a `NativeSurface` right now (that's why the `SendNativeSurface()` msg is unimplemented in the WebGL task). It should be easy to add that to rust-layers, supposing the caller is responsible to mark it as non-leaking, any reason to not do it?

cc @jdm @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: ad53e95080144485e74cd9b9d48ce75e20de4e36
2015-05-20 15:42:06 -05:00
Glenn Watson
17e3775b23 servo: Merge #6131 - Fix several hangs / panics during pipeline cleanup of in progress loads (from glennw:jquery-exit-fix); r=jdm
This fixes a hang found while testing the jQuery test suite.

Source-Repo: https://github.com/servo/servo
Source-Revision: c51e9f04559f04f1e820b792261e1653c6869ee5
2015-05-19 21:44:45 -05:00
Patrick Walton
cf0b11ec43 servo: Merge #6053 - compositing: Implement display ports and avoid creating display lists for items outside it (from pcwalton:displayports); r=glennw
This improves Servo's performance on large pages.

Please double-check the logic when it comes to nested layers—I'm sure I've messed up some of the geometry calculations :)

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 0880e54f987bac7c34c934ef6ee36f46475b06e3
2015-05-19 19:40:36 -05:00
Patrick Walton
6ea6db2d01 servo: Merge #6124 - layout: Support inline incremental reflow, and stop reconstructing all flows when mousing over the document (from pcwalton:inline-incremental-reflow); r=mbrubeck
r?

Source-Repo: https://github.com/servo/servo
Source-Revision: 16793d0e24ed49245e5777bc282839e4c157a091
2015-05-19 13:51:30 -05:00
Glenn Watson
76f1d2ef46 servo: Merge #6031 - Fixes a number of race conditions and reliability issues with reftests and compositor (from glennw:reftest-race-conditions); r=larsberg,jdm
The basic idea is it's safe to output an image for reftest by testing:
 - That the compositor doesn't have any animations active.
 - That the compositor is not waiting on any outstanding paint messages to arrive.
 - That the script tasks are "idle" and therefore won't cause reflow.
    - This currently means page loaded, onload fired, reftest-wait not active, first reflow triggered.
    - It could easily be expanded to handle pending timers etc.
 - That the "epoch" that the layout tasks have last laid out after script went idle, is reflected by the compositor in all visible layers for that pipeline.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5e61ebaa05e5babb7b2fdd1347b6cdd23df38e62
2015-05-13 18:37:54 -05:00