Commit Graph

466 Commits

Author SHA1 Message Date
Ms2ger
04a10a588f servo: Merge #6788 - Remove unused StyledNode::has_style method (from Ms2ger:has_style); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 662c00a8109c49d4c57343156b774441f4f48640
2015-07-27 08:07:23 -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
Ms2ger
57a380949b servo: Merge #6712 - Cleanup ParallelPostorderFlowTraversal (from Ms2ger:traversal); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 886c08c393f51499490702eaf97fc770273a2600
2015-07-24 20:50:55 -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
Patrick Walton
63409fac20 servo: Merge #6705 - canvas: Move to shared memory for images and canvas backing stores (from pcwalton:image-cache-shmem); r=jdm
The idea here is to land this before making images and canvas IPC-safe,
because this will shake out bugs relating to the shared memory. There
are currently test timeouts that are preventing multiprocess images and
canvas from landing, and I believe those are due to the inefficiency of
sending large amounts of data in the unoptimized builds we test with. By
moving to shared memory, this should drastically reduce the number of
copies and `serde` serialization.

Under the hood, this uses Mach OOL messages on Mac and temporary
memory-mapped files on Linux.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: ed1b6a3513e7546b580693f554a081bc0c7c478a
2015-07-24 17:14:59 -06:00
Matt Brubeck
83840728e7 servo: Merge #6471 - Basic support for bidirectional text (from mbrubeck:bidi); r=pcwalton
This re-orders text according to the Unicode bidirectional layout algorithm, using the [unicode-bidi](https://github.com/mbrubeck/unicode-bidi) crate.  It uses the natural order of the text based on Unicode character properties and the CSS `direction` property.

This does not yet support the CSS `unicode-bidi` property or the HTML `dir` attribute, but these should be straightforward to add.

r? @pcwalton.  Also depends on servo/unicode-bidi#4.

Source-Repo: https://github.com/servo/servo
Source-Revision: d3a36fafd948d7b9366feeca44f9ca9ad012d706
2015-07-23 21:20:49 -06:00
Ms2ger
1e33873725 servo: Merge #6715 - Implement more methods on LayoutJS (from Ms2ger:layoutelement); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: f44d75e5b2e4229728d97b6a70de3babd3496eb1
2015-07-23 12:40:52 -06:00
Simon Sapin
fbf6f36a37 servo: Merge #6700 - Update rust-selectors (from servo:selectors); r=Ms2ger
Update for https://github.com/servo/rust-selectors/pull/37

Source-Repo: https://github.com/servo/servo
Source-Revision: 5d857c5d0cac67337ea01895b7cf309359c89cce
2015-07-23 10:55:37 -06:00
Ms2ger
348ab3f0fb servo: Merge #6698 - Implement some methods on LayoutJS<Element> (from Ms2ger:layoutelement); r=jdm
Part of my long-term plan to stop exposing `unsafe_get()` outside the script crate.

Source-Repo: https://github.com/servo/servo
Source-Revision: 37a1e22515e98fbda93d7e856c5a67b21d9b00a4
2015-07-22 21:10:04 -06:00
Bogdan Cuza
8a7ad0a203 servo: Merge #6682 - Fix a few issues (from boghison:scripttask); r=jdm
- Use SmallVec<[T; N]>
 - Make find_iframe a free function
 - Make ProgressEvent use enums for bubbles and cancelable
 - Change README, as `rust-snapshot-hash` is just a text file

Source-Repo: https://github.com/servo/servo
Source-Revision: aafc3dfa963b466303d5f241d69036f211aaad00
2015-07-22 12:25:57 -06:00
Corey Farwell
40267c33e3 servo: Merge #6607 - Upgrade rust-selectors, pass ':empty' tests (from frewsxcv:bump-selectors); r=Ms2ger
https://github.com/servo/rust-selectors/pull/36

Source-Repo: https://github.com/servo/servo
Source-Revision: 488f3b65a1bce549bcda718ab745aa47528cd160
2015-07-22 05:33:06 -06:00
Ms2ger
c7f133a7bc servo: Merge #6690 - Cleanup the get_*_display methods (from Ms2ger:display-getters); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 406be7accf50394f962382fc5a4c3aeb1c33aaa3
2015-07-21 15:20:12 -06:00
Ms2ger
3e2e20d119 servo: Merge #6657 - Cleanup ThreadSafeLayoutNodeChildrenIterator (from Ms2ger:ThreadSafeLayoutNodeChildrenIterator); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: b1c4862119f40e16fa41531443573d2aa9d2d22c
2015-07-21 13:38:33 -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
Glenn Watson
3082aad970 servo: Merge #6666 - Restore exit after load command line flag (from glennw:exit-flag); r=larsbergstrom
Also updates glutin with a crash fix that was exposed by this patch.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5ac80bff8e25be65e96daaf6b7403b11d23d561a
2015-07-20 15:37:33 -06:00
Bogdan Cuza
a7c587c432 servo: Merge #6648 - Make tidy check for "*" in toml files (from boghison:tidytoml); r=jdm
This checks every .toml file for an asterisk and prints an error if found.

Source-Repo: https://github.com/servo/servo
Source-Revision: 58e9bc6583b6ebbeb27e3b28a6b271ee48cd695a
2015-07-20 14:43:05 -06:00
Patrick Walton
c301520dae servo: Merge #6593 - compositing: Make the constellation messages serializable (from pcwalton:constellation-ipc); r=jdm
Same idea as before. This depends on:

* https://github.com/servo/euclid/pull/94
* https://github.com/hyperium/hyper/pull/603

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f4bdc6ad631dc56b64622e3390943b59270b3ae
2015-07-18 07:43:24 -06:00
Ms2ger
9c37d1af77 servo: Merge #6650 - Various layout cleanup (from Ms2ger:layout-cleanup); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e6538c0f2d887bfb244313009490ca67bc1c2298
2015-07-17 09:17:41 -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
30b481c8c6 servo: Merge #6621 - Move away from the repeat().take().collect() pattern (from Ms2ger:repeat); r=SimonSapin
This was the preferred pattern between the deprecation of Vec::from_elem and
the addition of the count argument to the vec![] macro.

Source-Repo: https://github.com/servo/servo
Source-Revision: 556c0e1509cb48b90f492bcf0f25d0ed14b015d1
2015-07-14 02:42:26 -06:00
Ms2ger
5a10937399 servo: Merge #6588 - Remove unused has_children method (from Ms2ger:has_children); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: c70d53c9feae94ae9cbc95c11d507495b1cda27a
2015-07-13 23:01:54 -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
21e016f76e servo: Merge #6574 - Remove ReplacedImageFragmentInfo::for_node and unsafe code it required (from Ms2ger:for_node); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 805232a85e401f1a07635da894c8e7d05fed4ce9
2015-07-08 08:02:30 -06:00
Ms2ger
9b614a3493 servo: Merge #6576 - Reduce the scope of the allowed unsafe code in context.rs (from Ms2ger:scope-unsafe-context); r=pcwalton
Since I made unsafe code opt-in in layout, the unsafe code in this module has
been reduced to a single unsafe impl, so there is no reason to allow it in
the entire module.

Source-Repo: https://github.com/servo/servo
Source-Revision: ce81745a8ece10a81b3caaf80da41d7824c5105a
2015-07-08 05:59:00 -06:00
Ms2ger
c0efa4be7b servo: Merge #6573 - Don't lose a possible error in <SpecificFragmentInfo as fmt::Debug>::fmt (from Ms2ger:warnings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: effe569e32d33d5c6c95d0882487b6ea128fd71b
2015-07-08 00:35:38 -06:00
Ms2ger
bfda40e4ee servo: Merge #6577 - Remove the unused unrooted_must_root permission from layout (from Ms2ger:disallow-unrooted-layout); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 453b826fb8d24201f00e8a2280f0c5c6cfa77938
2015-07-07 23:57:44 -06:00
Ms2ger
82172c291b servo: Merge #6570 - Require that WorkQueue's QueueData is Sync rather than Send (from Ms2ger:workqueue-sync); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: c76720d67c0d04f6d77c138c295b4fd4ebf24ee3
2015-07-07 13:07:31 -06:00
Patrick Walton
34e36c0b01 servo: Merge #6492 - layout: Modify styles for replaced content as appropriate during incremental flow construction (from pcwalton:even-more-jumpiness); r=mbrubeck
Fixes jumpiness on lots of Web sites.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: bbcd42773342a587a8515f34bdc3ca69a380c0a8
2015-07-07 10:28:04 -06:00
David Winslow
fd19427d04 servo: Merge #6565 - Fix for #6542 - <img> top-padding adds margin (from dwins:issue_6452_image_padding); r=pcwalton
I wrote this patch that makes the test from #6542 render as expected but I am not confident it is actually the right fix.  Should the padding be included in the 'ascent' metric for images, or am I just introducing a bug that happens to offset the one I'm trying to fix?

Source-Repo: https://github.com/servo/servo
Source-Revision: 0688488a7fd3caee423968b33d6c19d79f94d29a
2015-07-07 06:27:13 -06:00
Glenn Watson
71a5cfc88b servo: Merge #6566 - Add servo Image type. Remove rust-png dependency from script, gfx, layout (from glennw:image-deps); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 3a3ac2281b2d137ba620194e037ec671b746530c
2015-07-06 13:45: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
Michael Wu
77b8adfde8 servo: Merge #6546 - Remove LayoutChan from LayoutDataWrapper (from michaelwu:slim-layoutdatawrapper); r=Ms2ger
Saves 32 bytes in Node.

Source-Repo: https://github.com/servo/servo
Source-Revision: cc73aad447f0455606a5a6005d31aa55334668a8
2015-07-05 21:39:12 -06:00
Ms2ger
b2ed6f95a8 servo: Merge #6551 - Store a LayoutJS<Element> in LayoutElement (from Ms2ger:layoutelement); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 2e1c9785dc5725f809c56b7bafb7a3a68fb1dca0
2015-07-04 04:00:29 -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
a0ce238da6 servo: Merge #6549 - Remove *Cast::from_actual (from Ms2ger:from_actual); r=nox
Since JSRef was removed, from_actual duplicates from_ref.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0298c92670bee90c06f98fac2e8469d1238d1bd4
2015-07-03 22:56:17 -06:00
Simon Sapin
7e8f5555b3 servo: Merge #6548 - Upgrade to rustc 1.3.0-dev (f3b97a74a 2015-07-03) (from servo:rustup_2015-07-03); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: f5f64dab749d0851ef82be3cdc7fb2bd1cb09956
2015-07-03 21:47:02 -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
82c0410b0a servo: Merge #6498 - Remove Deref and DerefMut implementations from WeakFlowRef (from Ms2ger:weak-deref); r=metajack
By definition of a weak pointer, these implementations cannot be safe.

Source-Repo: https://github.com/servo/servo
Source-Revision: 82be491fa318f742720dc0a31f6c1b24beb57a3d
2015-06-27 10:27:03 -06:00
Ms2ger
f7c82f15a8 servo: Merge #6474 - Use the heap module through its facade in libstd (from Ms2ger:alloc); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: e6db6ae61f3962b17b6e6b3af6249037484fdf0e
2015-06-26 15:26:25 -06:00
Simon Sapin
58dd9da612 servo: Merge #6468 - Update rust-selectors (from servo:update-selectors); r=Ms2ger
r? @Ms2ger

https://github.com/servo/rust-selectors/pull/33

Source-Repo: https://github.com/servo/servo
Source-Revision: c331db1623719774c3ead554bcdca0b9c02d90fe
2015-06-26 14:50:01 -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
6772384587 servo: Merge #6463 - Reduce the scope of the unsafe block in ParallelPostorderDomTraversal (from Ms2ger:layout-reduce-unsafe); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: f812390d3a6f5097aa493313c6c90fd2fa320024
2015-06-26 06:45:48 -06:00
Matt Brubeck
67b9391f01 servo: Merge #6449 - Slice TextRuns by byte range instead of char range (from mbrubeck:byte_range); r=pcwalton
Currently only the end of the byte range is used, but I plan to use the full range in some follow-up work.

Fixes #6431. r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 26982cb547f479e1fbe9395b7fd9207078a6d8ee
2015-06-25 22:25:36 -06:00
Ms2ger
ba32727574 servo: Merge #6459 - Update to rustc 2d0cbf3e3e25e092bd9e4c94d08e446b680869f0 (from servo:rustup_20150625); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 21b48fc44d0b32627918b4778fed16203eecdba5
2015-06-25 12:03:15 -06:00
Ms2ger
fa4c3dac9f servo: Merge #6456 - Some cleanup in layout (from Ms2ger:cleanup-layout); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: 605b83da54dc7c33def4fb1e3162e377e1715d0b
2015-06-25 01:42:45 -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