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

562 Коммитов

Автор SHA1 Сообщение Дата
Ms2ger 5418f19918 servo: Merge #9275 - Remove some unused extern crates (from Ms2ger:extern-crate); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 0b5dda3e9c38f6cd4ec9b82f023bf3698addc65f
2016-01-13 20:47:35 +05:01
John DeSilva 1a9ecebaf4 servo: Merge #9230 - Move Epoch to gfx_traits (from Aesthetikx:move_epoch_to_gfx_traits); r=KiChjang
Resolves #9222. Moved Epoch from components/msg/compositor_msg to
components/gfx_traits/lib. Updated use statements to reflect the move.

Source-Repo: https://github.com/servo/servo
Source-Revision: e89dd05a169aa16267bdb2dbfe5bca01ad6cfe84
2016-01-11 08:50:23 +05:01
rohan.prinja d440ee6a41 servo: Merge #9201 - task -> thread (from ajnirp:8512-task-thread); r=jdm
for #8512

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

--HG--
rename : servo/components/canvas/canvas_paint_task.rs => servo/components/canvas/canvas_paint_thread.rs
rename : servo/components/canvas/webgl_paint_task.rs => servo/components/canvas/webgl_paint_thread.rs
rename : servo/components/compositing/compositor_task.rs => servo/components/compositing/compositor_thread.rs
rename : servo/components/gfx/font_cache_task.rs => servo/components/gfx/font_cache_thread.rs
rename : servo/components/gfx/paint_task.rs => servo/components/gfx/paint_thread.rs
rename : servo/components/layout/layout_task.rs => servo/components/layout/layout_thread.rs
rename : servo/components/net/image_cache_task.rs => servo/components/net/image_cache_thread.rs
rename : servo/components/net/resource_task.rs => servo/components/net/resource_thread.rs
rename : servo/components/net/storage_task.rs => servo/components/net/storage_thread.rs
rename : servo/components/net_traits/image_cache_task.rs => servo/components/net_traits/image_cache_thread.rs
rename : servo/components/net_traits/storage_task.rs => servo/components/net_traits/storage_thread.rs
rename : servo/components/script/script_task.rs => servo/components/script/script_thread.rs
rename : servo/components/util/task.rs => servo/components/util/thread.rs
rename : servo/tests/unit/gfx/font_cache_task.rs => servo/tests/unit/gfx/font_cache_thread.rs
rename : servo/tests/unit/net/resource_task.rs => servo/tests/unit/net/resource_thread.rs
rename : servo/tests/unit/util/task.rs => servo/tests/unit/util/thread.rs
2016-01-10 15:20:04 +05:01
Martin Robinson 465fce5cd7 servo: Merge #9059 - Use DisplayListSection everywhere (from mrobinson:simplify-display-list-sections); r=pcwalton
DisplayListSection, StackingLevel, and BackgroundAndBorderLevel all
represent pretty much the same thing, a particular section of the
display list. Instead of maintaining three enums which do the same
thing, just use DisplayListSection everywhere. It's a superset of the
other two and this change will make it easier to flatten the DisplayList
in the future for WebRender.

Source-Repo: https://github.com/servo/servo
Source-Revision: be555a9409c949bea7287b0e21df009bce3cb328
2016-01-09 05:53:44 +05:01
Patrick Walton a32fe1fed9 servo: Merge #9177 - gfx: Eagerly transform clips into `ClippingRegion::max()` if possible (from pcwalton:filter-out-useless-clips); r=glennw
This helps WebRender look for useless clips and optimize them out.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 58111a6420d3edded1cb66efa7c9863f1b3cdd8e
2016-01-08 20:55:45 +05:01
Adrian Heine eab5174533 servo: Merge #9149 - Correctly handle local sources for CSS3 fonts (from adrianheine:webFonts); r=glennw
Currently, servo panics for me when loading something like this:

```
@font-face {
  font-family: "test family";
  src: local(test font face);
}
```

That's due to a bug in `FontCacheTask`. `FontCacheTask` tries to get the value for the key
"test font face" from `self.web_families`, but previously initialized a value for the key "test family".

These two commits add an awkward test and fix the bug by not shadowing the variable `family_name`. Since the argument to `local()` should explicitly not be the name of a font family, the previous variable name was wrong and misleading anyways.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8e75a05e6bea78d388e6409020f3279a090c9168
2016-01-08 04:18:55 +05:01
Patrick Walton 190477e3b4 servo: Merge #9173 - Remove the fontgroup address cache (from pcwalton:remove-font-group-address-cache); r=mbrubeck
It's not clear to me that it actually helps. Moreover, it's wrong and
results in fonts randomly changing e.g. on GitHub when mousing over
elements.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 6eb28c7fd829892842de6b5c4ae9166e8908a312
2016-01-07 08:46:45 +05:01
Tetsuharu OHZEKI 3a4fcad968 servo: Merge #9159 - gfx: handle the ResponseAction::ResponseComplete error case in font_cache_task (from saneyuki:9158); r=jdm
Fix #9158

Source-Repo: https://github.com/servo/servo
Source-Revision: e3dd36f0f3cb894d0eacedc99134e715135882bf
2016-01-06 02:00:26 +05:01
Johannes Linke 38405ee47e servo: Merge #9123 - Fix a bunch of clippy lints (from karyon:clippy_cleanup); r=Manishearth
This fixes about 130 clippy lints. Let me know if i should split up the commit.

I wasn't sure about some of the changes, especially map_or instead of map(...).unwrap_or(...) and if let instead of single arm match were not always a strict improvement in my opinion, but i'll leave that decision to the reviewer :)

There are about 150 lints left which i thought were clippy bugs or i didn't know how to fix.

cc @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 9da739acefc7d1776bf727c8bf782eb79f241028
2016-01-03 08:47:34 +05:01
Olaf Buddenhagen 2b7fba373e servo: Merge #9070 - Derive Debug for more font-related types (from antrik:debug-fonts); r=nox
Needs to pull in newer ipc-channel and azure.

Source-Repo: https://github.com/servo/servo
Source-Revision: ebf4ce8288987af1a65390cbf7e56d1e564fa335
2016-01-03 07:42:57 +05:01
Josh Matthews 647c5be7dd servo: Merge #8190 - Implemementing context-based MIME type sniffing (from jdm:4138); r=eefriedman
This is a rebase of #7842 that also adds a test.
Fixes #4183.

@Yoric, how's this look to you?

Source-Repo: https://github.com/servo/servo
Source-Revision: af1690f3036bc329101bbd6f4e877672d58ca5e0
2015-12-31 20:44:10 +05:01
David Raifaizen f718d1505b servo: Merge #8420 - Enabled use of FontFamily enum type (from craftytrickster:8371/generic-font-family); r=glennw
https://github.com/servo/servo/issues/8371

In addition to replacing loose strings with the FontFamily enum in `font_cache_task.rs`, I also centralized the add_generic_font calls into one single function. If centralizing into one function is not desired or if anything else needs to be changed, please let me know.

Source-Repo: https://github.com/servo/servo
Source-Revision: 66c8aa8cdac24ad956be5e99be3b7bc07c5f798c
2015-12-31 16:20:48 +05:01
Bobby Holley a5868c1c28 servo: Merge #9051 - Split layout wrappers into style+layout and layout-only functionality (from bholley:split_style_and_layout_wrappers); r=SimonSapin
This is a step towards removing the dependency of stylo on layout/.

This PR depends on #9004.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0f5c614609fd8867a9e7c27b8a398ea7d877c714
2015-12-30 09:35:14 +05:01
Simon Martin 6f8d33fe11 servo: Merge #9055 - Issue #9042: Report incorrect number of spaces around => in the style checker (from simartin:issue_9042); r=Wafflespeanut
Fixes https://github.com/servo/servo/issues/9042

Source-Repo: https://github.com/servo/servo
Source-Revision: f77c7928868469ef4f326a269147ae2aee6151ee
2015-12-24 10:26:48 +05:01
Brandon Fairchild 845411a627 servo: Merge #8938 - Move LayerKind and ScrollPolicy enums to gfx_traits (from nerith:gfx); r=Ms2ger
Fixes #8836.

Source-Repo: https://github.com/servo/servo
Source-Revision: 68c4f290c7c9ad7ea45fcea66e3c6b172e42be62
2015-12-23 18:09:51 +05:01
Maciej Skrzypkowski 8fd965896a servo: Merge #9022 - Move PaintMsg enum to gfx_traits #8844 (from mskrzypkows:PaintMsg_refactoring); r=jdm
re-PR of https://github.com/servo/servo/pull/9007, because homu seems stuck

Fixes #8844.

Source-Repo: https://github.com/servo/servo
Source-Revision: 95eabdb4dbdc00937eeea5b495002d5526217f93
2015-12-20 01:05:26 +05:01
Mathieu Agopian 2ee894fb9d servo: Merge #9019 - Use Url.join instead of UrlParser.base_url(...).parse (#9002) (from magopian:9002-use-url.join); r=SimonSapin
Fix issue #9002

Source-Repo: https://github.com/servo/servo
Source-Revision: f9141ef2db693518fef676740f25abee3b938cac
2015-12-19 01:29:56 +05:01
Olaf Buddenhagen c17165f0d9 servo: Merge #9013 - Derive Debug for FontGroup and Homu is a bully (from antrik:debug-fontgroup); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 6490d1e1c59c6de3d7ef030c209ad33e22bc6b26
2015-12-18 13:54:15 +05:01
Glenn Watson 7ead86e251 servo: Merge #8612 - Add test to constellation to avoid writing reftest image if there are pending frames (from glennw:pending-frames); r=jdm
This changes several tests that contain <iframe></iframe> from FAIL to TIMEOUT. This is correct
since there is a bug that prevents these iframes from ever rendering.

~~~There are also a few previous FAILs that changed to OK. These may be intermittents or they
may genuinely be fixed by this change.~~~

Source-Repo: https://github.com/servo/servo
Source-Revision: c6ae32abdde715dbdc3097a40ab7abdbc98cf4b0
2015-12-17 15:50:16 +05:01
Patrick Walton 9964a8693a servo: Merge #8995 - gfx: Measure text shaping time in the time profiler (from pcwalton:measure-text-shaping); r=mbrubeck
r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 338f66003e78250ce141584e87190661249c5589
2015-12-17 10:28:29 +05:01
Patrick Walton e2cd3f51e6 servo: Merge #8990 - Optimize `TextRun::advance_for_range` (from pcwalton:advance-for-range-optzns); r=mbrubeck
The combined effects of these optimizations move `advance_for_range` from #1 in the layout profile on all sites I tested to #2, #3, or #4, depending on the site.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 67c3cb37073068fe8be7b35b26469e2e329ce385
2015-12-17 09:18:03 +05:01
Ms2ger e998b88c1e servo: Merge #8947 - Use core-text from crates.io (from Ms2ger:core-text); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 23b220644c3cca7e90152c62a04133e72a95570c
2015-12-12 12:58:45 +05:01
Ms2ger 5cc95f9ea6 servo: Merge #8946 - Remove unused imports (from Ms2ger:warnings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 16de31c13ce1dd002bd25dfb5b51a2fd7079b14a
2015-12-12 12:18:39 +05:01
Tomas Cernaj 250daed104 servo: Merge #8939 - Move PaintListener to gfx_traits, Fixes #8834 (from cnaj:msg_refactoring); r=Ms2ger
Adding layers and msg dependency to gfx_traits.

Fixes #8834.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9f0c6d75d1abef030b1f98f07cb598100b96c05e
2015-12-12 03:58:55 +05:01
Patrick Walton fddb845d66 servo: Merge #8943 - Cache font style struct addresses in a separate font group cache (from pcwalton:font-cache-addresses); r=mbrubeck
On http://en.wikipedia.org/wiki/Spotted_hyena, I was seeing a 100% miss
rate in the first fast cache lookup and 45% of total layout time in this
function. After making this change, the first cache lookup almost always
succeeds, and the time spent in this function drops to 8%.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: ebe3295424a4e2895657ef0defa5c90b4cd16718
2015-12-12 02:05:38 +05:01
Tetsuharu OHZEKI 1541b677a4 servo: Merge #8922 - Fix warnings: Use Vec.extend_from_slice instead of Vec.push_all (from saneyuki:warning); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: d01233a7b417c87b18d31f10709ed83141887b94
2015-12-11 04:28:58 +05:01
Ms2ger 6ce36f8878 servo: Merge #8820 - Fix warnings (from Ms2ger:warnings); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: bb117abcd3fee0c3435cefd3d4f196345770ca69
2015-12-04 14:40:00 +05:01
Alexander Mankuta e779396565 servo: Merge #8796 - Replaced ZERO_POINT with Point2D::zero() (from pointlessone:zero-point); r=SimonSapin
This is a proposed in servo/servo#8792 clean up.

Fixes #8792.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2dbc314e2dec39b8798d4e922dd5220d32083b56
2015-12-04 10:40:59 +05:01
Alexander Mankuta bd67fabcbf servo: Merge #8797 - Replaced rect_contains_point with Rect.contains() (from pointlessone:rect-contains); r=Manishearth
This is a proposed in servo/servo#8791 clean up.

Fixes #8791.

Source-Repo: https://github.com/servo/servo
Source-Revision: 68922e0ac2e36d10dd5f079ecae5de7c07cd1253
2015-12-04 03:32:44 +05:01
Alexander Mankuta 01d0a231d9 servo: Merge #8795 - Replace ZERO_RECT with Rect::zero() (from pointlessone:zero-rect); r=SimonSapin
This is a proposed in servo/servo#8792 clean up.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3995a7672d4b4ee3f2d6f348f2fe0a88964fc9c6
2015-12-03 21:12:03 +05:01
Simon Sapin d4a1557a4b servo: Merge #8757 - Use skia and deps from crates.io (from servo:skia); r=mbrubeck
This makes the initial download for skia go from a 300 MB git repository to a 5 MB tarball. This should help with issues like #6132 and #7687.

Fix https://github.com/servo/skia/issues/70

This builds, but the at the moment causes a number of tidy errors for duplicated crates.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8b95d7b8d860ec4c0834192083361a9fb78ddbeb
2015-12-03 12:29:29 +05:01
Guillaume Gomez 732bf0a03c servo: Merge #8692 - Ensure crate are alphabetically sorted (from GuillaumeGomez:patch-1); r=Wafflespeanut
cc @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: dbff1ab33636bc7d60a4c97b63f39b59985726ce
2015-11-28 19:05:11 +05:01
Manish Goregaokar 693578b06a servo: Merge #8446 - Rust upgrade to rustc 1.6.0-nightly (5b4986fa5 2015-11-08) (from servo:rustup_20151110); r=SimonSapin+Ms2ger+jdm+Manishearth
<s>DO NOT r+ or try+ this</s>

<s>It causes an OOM (https://github.com/rust-lang/rust/issues/29740) and can crash the OS. Probably will set our CI on fire. </s>

Source-Repo: https://github.com/servo/servo
Source-Revision: f13c72d68e1e7f49e241938bfd6e8a588c68e86b
2015-11-27 10:18:00 +05:01
Greg Guthe 0619875813 servo: Merge #8598 - Split paint task messages from ScriptMsg (from g-k:split-scriptmsg); r=KiChjang
Refs: https://github.com/servo/servo/issues/8592
Source-Repo: https://github.com/servo/servo
Source-Revision: 5e7306bf1965988551cafe6a27baab13eb927bbe
2015-11-26 02:33:47 +05:01
Alan Jeffrey f4ab2bfdb5 servo: Merge #8667 - Update string cache (from asajeffrey:update-string-cache); r=SimonSapin
Updated string_cache to 0.2, and updated the dependencies that depend on string_cache.
Removed references to string_cache_plugin.
Import atom! and ns! from string_cache.
Replaced ns!("") by ns!().
Replaced ns!(XML) and co by ns!(xml) and co.
Replaced Atom::from_slice by Atom::from.
Replaced atom.as_slice() by &*atom.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 188fa9378c103093f1f8dac24bff0d9d237fd2bc
2015-11-25 23:41:39 +05:01
Patrick Walton a2c55b5db1 servo: Merge #8660 - Update `ipc-channel` to pick up the improved error reporting (from pcwalton:ipc-channel-errors); r=larsbergstrom
Intended to help diagnose intermittent failures.

r? @jdm or @larsbergstrom (or whoever)

Source-Repo: https://github.com/servo/servo
Source-Revision: 13a96fcaf78c299beb2021d3ae9dae8d9e916762
2015-11-25 07:02:15 +05:01
Patrick Walton 8c7de61738 servo: Merge #8599 - compositing: Split Servo up into multiple sandboxed processes (from jdm:e10s-redux); r=metajack
Multiprocess mode is enabled with the `-M` switch, and sandboxing is
enabled with the `-S` switch.

Rebase of #6884.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8b39b9afed6ef8a3d7d3e6609fd301a37825d3e1
2015-11-20 03:30:48 +05:01
Keith Yeung 5b3f4b220a servo: Merge #8530 - Split ConstellationMsg into ScriptMsg and CompositorMsg (from KiChjang:split-constellation-msg); r=jdm
Fixes #8356.

Source-Repo: https://github.com/servo/servo
Source-Revision: acbe41305230a926458596444ca955eff063d9dd
2015-11-19 04:10:20 +05:01
Michael Wu 64aafda294 servo: Merge #8552 - Avoid overflow in freetype/font_context.rs (from michaelwu:avoid_overflow); r=glennw
When new_actual_size < old_actual_size, there is an overflow panic since we're using usize. This breaks Reddit for me.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8950345e0e2c803cfa87105374dfdb30a550cfe0
2015-11-17 12:35:47 +05:01
Michael Howell 2591ecef99 servo: Merge #8524 - Draw layers that are under sub-displaylists (from notriddle:paint_task_deep); r=jdm
Fixes #8325

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f2a3a64f141f175e417e240766f9d7f06be0482
2015-11-14 21:57:22 +05:01
Michael Howell 6310520c6e servo: Merge #8493 - Clean up use of Option in `font_cache_task` (from notriddle:fct_cleanup); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 118fbd6120fdcbec04858ecddb3ac8be882f4da1
2015-11-13 07:35:50 +05:01
Ms2ger d1fefa91f1 servo: Merge #8355 - Cleanup exit messages and related code (from Ms2ger:Exit); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a465c58429547b59b8a6e1258eaaea46bf7e5a2
2015-11-07 22:05:45 +05:01
Maciej Skrzypkowski c78e45310c servo: Merge #7696 - Draft. Change PaintContext rects to TypedRects #7023 (from mskrzypkows:PaintContext_Units); r=mbrubeck
I created draft. I'm not sure if we need any units conversion in PaintContext. There is also strange 'clear' method, we use PagePx origin and ScreenPx size is it OK?

Source-Repo: https://github.com/servo/servo
Source-Revision: 8d8ffa8265d67e0ec89cf2d37d1c549b47187cca
2015-11-06 23:53:59 +05:01
Martin Robinson 3d6034f11c servo: Merge #8337 - Remove DisplayListBuildingResult (from mrobinson:remove-display-list-result); r=pcwalton
Always produce a DisplayList when processing nodes for display list
construction. StackingContexts are now added to the positioned content
section of DisplayLists. This makes the code a bit simpler and opens up
the possibility of producing a StackingContext in another section of
the DisplayList. This doesn't change behavior, but is a cleanup
prerequisite for proper inline stacking context support.

Source-Repo: https://github.com/servo/servo
Source-Revision: da25b8c848886d2fc875008de5adcaf13d7c9e99
2015-11-06 05:07:35 +05:01
Martin Robinson 92570bfa5e servo: Merge #8266 - Mix stacking contexts into the positioned content list (from mrobinson:stacking-context-mix); r=pcwalton
Sometimes positioned content needs to be layered on top of stacking
contexts. The layer synthesis code can do this, but the current design
prevents it because stacking contexts are stored in a separate struct
member. In order to preserve tree order, mix stacking contexts into the
positioned content list, by adding a new StackingContextClass
DisplayItem. Such items do not have a base DisplayItem.

In some ways this simplifies the code, because we no longer have to
have a separate code path in the StackingContextLayerCreator.

Source-Repo: https://github.com/servo/servo
Source-Revision: 86e3add8fdc35fc6980bb63695781925607437b8
2015-11-04 06:53:43 +05:01
Martin Robinson 5672e44e9c servo: Merge #8244 - Expand DisplayList layer bounds to whole pixels (from mrobinson:layer-size); r=pcwalton
Before passing these layers to the paint task, expand them to pixel
boundaries. This ensures that subpixel edges of the layer will not be
clipped away and helps prevent rounding issues with layer contents.

Fixes #8166.

Source-Repo: https://github.com/servo/servo
Source-Revision: 94ca87e7ddc07160b9205c0112b60b0a951f0742
2015-10-29 06:26:10 +05:01
Manish Goregaokar 0869f53e87 servo: Merge #8241 - Update euclid to 0.3 (from Manishearth:euclid_up); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 0d699a2b4419632e31b35352c518e2ef5ffcc9a3
2015-10-28 21:32:15 +05:01
Martin Robinson 7f9d8e7d86 servo: Merge #7950 - Integrate iframes into the display list (from mrobinson:layerize-iframes); r=pcwalton
Instead of always promoting iframes to StackingContexts, integrate them
into the display list. This prevents stacking bugs when
non-stacking-context elements should be drawn on top of iframes.

To accomplish this, we add another step to ordering layer creation,
where LayeredItems in the DisplayList are added to layers described by
the LayerInfo structures collected at the end of the DisplayList.
Unlayered items that follow these layered items are added to
synthesized layers.

Another result of this change is that iframe layers can be positioned
directly at the location of the iframe fragment, eliminating the need
for the SubpageLayerInfo struct entirely.

Iframes are the first type of content treated this way, but this change
opens up the possibility to properly order canvas and all other layered
content that does not create a stacking context.

Source-Repo: https://github.com/servo/servo
Source-Revision: 11d23a41b31c2b2846d1e9c6b40e87ba7e2a095f
2015-10-20 16:01:38 -06:00
Eli Friedman 75c42c7efd servo: Merge #7951 - Add support for `pre-wrap` and `pre-line` values for `white-space` (from eefriedman:white-space); r=pcwalton
This is mostly straightforward.  I had to modify a couple of places
which were accidentally discarding whitespace.

Fixes #1513.

This fixes some relevant tests from the CSS testsuite... but a lot of
them are either manual, or don't pass because of unrelated issues.  (For
example, white-space-mixed-002 renders correctly, but
white-space-mixed-002-ref doesn't because of a float bug.)

I'd appreciate any suggestions for how to go about adding tests for this.

Source-Repo: https://github.com/servo/servo
Source-Revision: c3ab71109ee2ffcc31b40890f4c6739d8f5b1333
2015-10-20 12:38:54 -06:00
Corey Farwell 7ef53c6ece servo: Merge #7987 - Fix issues found by rust-clippy (from frewsxcv:clippy); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: eb7039d04d4c83800ba9d92dc251222f79b83040
2015-10-12 18:33:30 -06:00
Anthony Ramine eafe1e3613 servo: Merge #7918 - Derive PartialEq on the style Font structure (from nox:partialeq-font); r=mbrubeck
We check the hash first.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0f8493a5669d8c6c29d07881534e144bfc87b511
2015-10-10 12:26:07 -06:00
Martin Robinson eb37118a1e servo: Merge #7891 - Properly size synthesized layers (from mrobinson:display-list-paint-layer); r=pcwalton
Layers that are composed of several stacking contexts that need to be
rendered on top of other layered content need synthesized layers.
Previously, these layers were placed into a stacking context that was
the same size as their parent. This patch creates a new type of
PaintLayer which simply holds a display list. The layer is sized to the
bounds of the DisplayList and its children are positioned relative to
the parent stacking context.

This will also be useful in the future, when items outside of
StackingContexts are given their own layer for render order purposes.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6d52bdf4ffd5479780df4a3fb0ff07bd7378720e
2015-10-09 17:00:21 -06:00
Paul Rouget f320ac97d4 servo: Merge #7909 - Snap to screen pixels instead of px (from paulrouget:subpixelPos); r=mbrubeck
Fixes #7904

Source-Repo: https://github.com/servo/servo
Source-Revision: 8ef8c53d2a3e8a54a2bfc98e7e1d71d609098f62
2015-10-09 14:10:44 -06:00
Patrick Walton 791f7a5b16 servo: Merge #7896 - layout: Add a field in the display list for simple border radii on box shadows (from pcwalton:box-shadow-border-radii); r=mbrubeck
Only supported in WebRender (with my upcoming PR) for now.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 5eb1c04e7854d932c0d63f9e5ed4d54ee43deb9b
2015-10-06 15:46:56 -06:00
Ms2ger 8c45f9d5c5 servo: Merge #7827 - Check for font_variant equality in LayoutFontGroupCacheKey::eq (from Ms2ger:jumpy-variant); r=pcwalton
This fixes an issue whereby normal text would intermittently be rendered as
small-caps and vice versa.

Source-Repo: https://github.com/servo/servo
Source-Revision: c0b397db77b87f02d1742efd71f526ba6e89197b
2015-10-06 10:03:24 -06:00
Glenn Watson 5130b51a6c servo: Merge #7807 - Make it possible for iframes to create their own pipeline ID (from glennw:pid); r=jdm
This doesn't change any functionality, but it's the first step towards removing SubpageId.

Adding this change now will allow us to gradually change over code referencing subpage id rather than in one massive PR.

Introduces a namespace for pipeline ID generation - there is a namespace for the constellation thread, and one per script thread.

Source-Repo: https://github.com/servo/servo
Source-Revision: 098bdb5f22500a6e856b085a1140090f63ef8645
2015-10-06 01:08:32 -06:00
Martin Robinson 7845aaf33f servo: Merge #7822 - Rework how StackingContexts are dynamically added to layers (from mrobinson:layer-info); r=pcwalton
StackingContexts are added to layers when it is necessary to maintain
their ordering on top of other layered StackingContexts. Instead of
tracking the information about a layer scattered around into different
structs, combine it all into LayerInfo. LayerInfo will be used in the
future to hold layer information for DisplayItems that are layerized
independently of StackingContexts.

Source-Repo: https://github.com/servo/servo
Source-Revision: 27d468b6674b81c396aa0a13d8fe9eb410c12d6e
2015-10-05 23:05:21 -06:00
Patrick Walton 82da2292ff servo: Merge #7802 - Handle zero-sized source surfaces properly, and upgrade `ipc-channel` to incorporate the fix for zero-sized shmem on Mac (from pcwalton:zero-size-source-surfaces); r=mbrubeck
Depends on servo/rust-azure#201 and pcwalton/ipc-channel#10.

Closes #7422.

r? @mbrubeck (don't r+ until the upstream dependencies have landed)

cc @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: e2048d57c4c0602c5a6b82db8cb76e6c3e5467fa
2015-10-01 00:08:34 -06:00
Glenn Watson ad94e13b24 servo: Merge #7811 - Update servo to use published app units crate (from glennw:use-crates-au); r=larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 0860be4c28ebaee36a0df4de3510d917b0e08cb7
2015-09-30 22:21:36 -06:00
Matt Brubeck 784ada3fce servo: Merge #7799 - Misc. code cleanup in gfx::text::glyph (from mbrubeck:glyph-cleanup); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: ac448cacbaa194ba7a41abffeac83e95217d5d81
2015-09-30 17:44:02 -06:00
Glenn Watson 40d2827806 servo: Merge #7795 - Split Au type into separate crate, with minimal dependencies (from glennw:app-units-crate); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 35888e5a1d48511ec54ddf8c58f1c7b0c47c5d3c
2015-09-30 15:19:33 -06:00
Martin Robinson 4e10279230 servo: Merge #7751 - Make DisplayList hit testing a method on DisplayList (from mrobinson:refactor-hit-testing); r=pcwalton
This will allow us to hit test into DisplayLists that are not directly
contained in StackingContexts, but instead are children of PaintLayers.
It also makes things slightly simpler.

Source-Repo: https://github.com/servo/servo
Source-Revision: b1d9f438b79743e03cb5b81a0e36f336943e940e
2015-09-30 03:04:16 -06:00
Patrick Walton 0f5d421cf7 servo: Merge #7423 - layout: Make the compositor rather than layout determine the position of each iframe (from pcwalton:iframe-stacking-context-position); r=glennw
The old code that attempted to do this during layout wasn't able to work
for multiple reasons: it couldn't know where the iframe was going to be
on the page (because of nested iframes), and at the time it was building
the display list for a fragment it couldn't know where that fragment was
going to be in page coordinates.

This patch rewrites that code so that only the size of an iframe is
determined during layout, and the position is determined by the
compositor. Layout layerizes iframes and marks the iframe layers with
the appropriate subpage ID so that the compositor can place them
correctly.

Closes #7377.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0cb657fe80859dd8862361631268479d1045432
2015-09-29 19:26:49 -06:00
Matt Brubeck c0299bc195 servo: Merge #7786 - Use Harfbuzz 1.0 and unicode-script for text shaping (from mbrubeck:harfbuzz-sys); r=pcwalton
Depends on servo/rust-harfbuzz#53 and introduces a dependency on the new servo/unicode-script crate.  r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: a144d086d911375f8d5674ac90ff55a9dcaf0cda
2015-09-29 15:37:11 -06:00
Patrick Walton da504ba30c servo: Merge #7596 - layout: Load Web fonts asynchronously (from pcwalton:async-web-font-loading); r=mbrubeck
Improves page load times significantly.

Closes #7343.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7933b484300131d3de79edbcf399288b22010616
2015-09-28 12:11:50 -06:00
Glenn Watson 5f3d6b85ab servo: Merge #7766 - A few clean ups for Au type (from glennw:au-tidy); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 007c22737df0f002203ca4e42b56afff7d4e1661
2015-09-28 11:35:04 -06:00
Bryan Bell 4bde6430b3 servo: Merge #7703 - gfx: Fix border-radius panic when a corner has 0px and >0px borders (from bjwbell:bugfix-0px-and-non-0px-border-widths); r=pcwalton
When one border is 0px and the other is >0px then the border corner
drawing code panics when computing the values to use in drawing the
border corner arcs.

This fixes that bug and makes the `draw_corner` function more robust
by explicitly passing an enum, `BorderCorner`, naming which corner is
being drawn e.g. `BorderCorner::TL`.

Add a ref test,
`border_radius_zero_sizes_a.html/border_radius_zero_sizes_ref.html`.

Fixes https://github.com/servo/servo/issues/7700.

r? @pcwalton or @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 4d1be2f56cd7a37c4c803ba12733fca55b57d4de
2015-09-24 18:18:07 -06:00
Martin Robinson 2addce6653 servo: Merge #7710 - A few small bits of refactoring to prepare for more advanced DisplayList layerization (from mrobinson:small-dl-refactor); r=pcwalton
This will be useful when PaintLayers that contain DisplayLists instead
of StackingContexts need to draw themselves. This is a simple
preparatory refactoring and doesn't change any behavior.

Source-Repo: https://github.com/servo/servo
Source-Revision: 09b970af4aeba749146a9a9215e346653016672b
2015-09-23 17:22:31 -06:00
Ravi Shankar 7d512d50d1 servo: Merge #7698 - sorted the declarations in various files (from Wafflespeanut:sorting); r=frewsxcv
This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!

Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
2015-09-23 15:02:56 -06:00
Manish Goregaokar a0f53e1f0e servo: Merge #7697 - Rust upgrade to rustc 1.5.0-dev (6217b002b 2015-09-21) (from servo:rustup_20150921); r=Ms2ger
Snapshot doesn't exist yet. Rust master+ should work.

Also https://github.com/serde-rs/aster/pull/33 hasn't merged yet.

r? @Ms2ger @larsbergstrom

Source-Repo: https://github.com/servo/servo
Source-Revision: f7f16870bebdc9359661544054259b37780f1331
2015-09-23 06:45:18 -06:00
Brandon Fairchild f7fb1e4b4a servo: Merge #7662 - Check for multiple import blocks separated by whitespace (from nerith:import); r=frewsxcv
Fixes #7381.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0d3c9223f09757124b1520c4f17e94fa8bbe249
2015-09-19 13:34:51 -06:00
Bryan Bell 20434e217e servo: Merge #7679 - Add css twitter fail whale html test & update ellipse_to_bezier comment (from bjwbell:reftest-twitter-fail-whale); r=pcwalton
cgaebel had a TODO for a css twitter fail whale reftest, which depended on elliptical border-radius support.
I didn't see any feasible way other than a reference image for border_twitter_fail_whale_b.html.

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: c91c0188f279b9d7edf706fc7ad3111948156ed6
2015-09-18 22:54:44 -06:00
Hugo Thiessard 357588437d servo: Merge #7680 - fixes #7390 : tidy now check the order of mod declarations even whith attribute (from Mylainos:Issue-#7390); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: d1b85de762c0193276010a019f931526c34c04ce
2015-09-18 14:44:48 -06:00
Matt Brubeck d460f99bca servo: Merge #7667 - Snap to screen pixels instead of px (from mbrubeck:oh-snap); r=glennw
Fixes #7665. r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 491d62c27cbd55ea5c4269bca11dc8584c77e170
2015-09-18 04:09:26 -06:00
Martin Robinson a8570d696e servo: Merge #7587 - Ensure unique LayerIds for pseudo-elements (from mrobinson:layer-id); r=pcwalton
Currently pseudo-elements, like the fragments created for ::before and
::after, with layers will have the same LayerId as the body of their
owning fragments. Instead all LayerIds should be unique.

Fixes #2010.

Source-Repo: https://github.com/servo/servo
Source-Revision: cf13e806fe2f4cf5ad5f30efd16d7bd3f501f8b3
2015-09-17 08:53:39 -06:00
Patrick Walton 12ae75107c servo: Merge #7644 - layout: Draw the insertion point in input elements (from pcwalton:carrot); r=mbrubeck
Known issues:

* The caret doesn't show up if there's no text present, because we don't create text runs in that case. This should be a followup.

* Text runs don't support decomposing ligatures into their constituent subglyphs for advance computation, so the caret won't appear inside a ligature. This is a text run bug.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 6cd098da302db85975d0967ddee836f04eae3bd5
2015-09-17 05:50:41 -06:00
Martin Robinson 4936135d02 servo: Merge #7648 - Improve printing of DisplayLists (from mrobinson:print-tree); r=glennw
Use box tree characters to make DisplayLists easier to scan when
printing them out.

This is what the output looked like before:
```
#### start printing display list.
"####" Stacking context at Rect(800px×608px at (0px,0px)) with overflow Rect(800px×608px at (0px,0px)):
#### SolidColor(0,0,0,0). Rect(800px×608px at (0px,0px))
#### SolidColor(0,0,0,0). Rect(784px×0px at (8px,0px))
#### SolidColor(0,0.5019608,0,1). Rect(100px×100px at (0px,0px))


#### Child layers list length: 1
"########" Stacking context at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
######## SolidColor(1,0,0,1). Rect(100px×100px at (0px,0px))


######## Child layers list length: 1
"############" Stacking context at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
```

This is what it looks like after this patch:
```
┌ DisplayList
│  ├─ Layered StackingContext at Rect(800px×608px at (0px,0px)) with overflow Rect(800px×608px at (0px,0px)):
│  │  ├─ Block Backgrounds and Borders
│  │  │  ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(800px×608px at (0px,0px)) (7f926f46f1f0)
│  │  │  └─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7f926f46f2e0)
│  │  ├─ Layered StackingContext at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
│  │  │  ├─ Backgrounds and Borders
│  │  │  │  └─ SolidColor rgba(1, 0, 0, 1) @ Rect(100px×100px at (0px,0px)) (7f926f46f310)
│  │  │  ├─ Layered StackingContext at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
│  │  ├─ Layered StackingContext at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
│  │  │  ├─ Backgrounds and Borders
│  │  │  │  └─ SolidColor rgba(0, 0.5019608, 0, 1) @ Rect(100px×100px at (0px,0px)) (7f926f46f3a0)
```

Source-Repo: https://github.com/servo/servo
Source-Revision: 4e9a888f1ac58866833418ee5e8253358918b741
2015-09-16 20:43:59 -06:00
Jinwoo Song 2a438e5141 servo: Merge #7605 - Implement "transform: skew()" (from nox:skew); r=mbrubeck
Thanks to @Jinwoo-Song for the original commit, which I just rebased and cleaned up. Fixes #6237.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6a12f00d6d392651bae10365b4c806f36d704b21
2015-09-16 06:31:48 -06:00
Mathieu Rheaume fe567c36c0 servo: Merge #7559 - Remove 'get_*' on getters as per RFC 0344 on canevas, compositing, devtools, gfx, layout, net, profile, servo and webdriver_server (from ddrmanxbxfr:RFC-0344-Work); r=nox
Hi guys,

I just gave a big pass of RFC-0344 as per issue #6224 .

Pretty much renamed all the get_* fn that were used to fetch values.

I hope I didn't rename too much.

As said in the issue discussion, I didn't touch at the scripts folder so we keep the unsafe ones pretty explicit.

I've ran the whole pass of test, everything seems to be still working right :).

Please give feedback on this PR.

Thanks for looking into it.

Source-Repo: https://github.com/servo/servo
Source-Revision: b05f4aa3aa3085e65cb75433ae37bf272216d033
2015-09-12 18:29:56 -06:00
Bryan Bell 6a96bf0eb9 servo: Merge #7527 - Use SIMD in fast path for advance_for_char_range (from bjwbell:simd_advance_for_char_range); r=metajack
In advance_for_char_range add a fast SIMD code path for the the common
case where there are no detailed glyphs.


r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: c83825938346f794790bcd1343b7375e9e34f443
2015-09-09 16:55:16 -06:00
Bryan Bell 754f4baf13 servo: Merge #7577 - gfx: Fix bug with 1px width borders disappearing (from bjwbell:borders_pixel_rounding_bug); r=mbrubeck
In to_nearest_azure_rect when rounding to pixel coordinates, maintain
the invariant of rect non-overlap (if before rounding two rects don't overlap).

The previous code rounded the rect top left corner to the nearest pixel with
the size rounded to the nearest pixel multiple which can violate the
non-overlap condition, e.g.
10px×9.60px at (0px,6.6px) & 10px×9.60px at (0px,16.2px)
would round to
10px×10.0px at (0px,7.0px) & 10px×10.0px at (0px,16.0px), which overlap.

Instead round each corner to the nearest pixel.

For rects that dont need to satify the non-overlap condition and with
width or height between 0.5px and 1px, rounding each rect corner to the
nearest pixel can yield an empty rect e.g.
10px×0.6px at 0px,28.56px -> 10px×0px at 0px,29px.

For this scenario a new function to_nearest_non_empty_azure_rect
rounds the rect top left corner to the nearest pixel and the rect size
to the nearest pixel multiple. It's possible for non-overlapping rects
after this rounding to overlap.

This should fix https://github.com/servo/servo/issues/7184 "rounding ...borders not to be visible", without breaking https://github.com/servo/servo/issues/7152 "Underlines less than 1px high sometimes invisible".

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: f29ddb4b5d5eed595df37fa989511d2cb3aa8dfd
2015-09-09 13:30:41 -06:00
Martin Robinson 9546305f71 servo: Merge #7563 - Layerize StackingContexts that are on top of layers (from mrobinson:layerize-stacking-contexts); r=pcwalton
StackingContexts that should be painted on top of StackingContexts that
are already layerized should automatically get their own layer. This
will ensure proper painting order.

Source-Repo: https://github.com/servo/servo
Source-Revision: c0381c732569b9abe6282c6c750533bc271a2019
2015-09-09 10:52:56 -06:00
Eli Friedman 4875f833cb servo: Merge #7523 - Fix up some unnecessary uses of `unsafe` (from eefriedman:unnecessary-unsafe); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: be9a9ffda10fa2c50b13f79dabd49255f29f12f6
2015-09-09 00:05:17 -06:00
Bryan Bell 26e99fe98c servo: Merge #7502 - gfx: Add elliptical border radius support (from bjwbell:elliptical-borders); r=pcwalton
TODO: Add code for parsing shorthand border-radius e.g. "border-radius: 10px 5% / 20px".

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 5bad6b1b6e149246e8949fd42059e777d1cbd9e3
2015-09-04 18:46:24 -06:00
Martin Robinson f2bbff72b6 servo: Merge #7487 - Have PaintLayers own StackingContexts instead of the opposite (from mrobinson:paint-layer-upgrade); r=pcwalton
Previously, StackingContexts might have a PaintLayer. We switch the
ownership, for several reasons:

   * We want PaintLayers to potentially contain something other
     than a StackingContext soon.
   * We want to delay the creation of PaintLayers until the last
     minute, so that we can synthesize new layers for sandwiched
     content.

This commit also implements the second goal. Instead of creating
PaintLayers during layout itself, wait until we are sorting and
layerizing a completed DisplayList.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8e0b010117889550effa3ad793e7ee8f9b692b40
2015-09-04 17:31:54 -06:00
Manish Goregaokar cf0446c9f9 servo: Merge #7536 - More clippy fixes (from Manishearth:clippyfix); r=Ms2ger
Elided almost all the lifetimes and removed needless returns. Mostly done by sed + manual fixes.

r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: c2c2646d37614ece5869af861993c3d619f6e003
2015-09-04 07:59:04 -06:00
Matt Brubeck 2393e84084 servo: Merge #7443 - Implement get_table_for_tag on FreeType (from mbrubeck:get_table); r=pcwalton
Updates freetype to pick up servo/rust-freetype#37

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 0ad284766b3f12097dce1e5858b5d07e870478eb
2015-09-03 14:37:38 -06:00
Brandon Fairchild 506a0fb2e2 servo: Merge #7499 - Improve style nit check for space after a comma (from nerith:style); r=metajack
Fixes #7345.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3424e234c8c86e787edfce6dc63ed155617e0e85
2015-09-02 12:05:58 -06:00
Simon Sapin ea7357b400 servo: Merge #7509 - Upgrade to rustc 1.4.0-dev (cb9323ec0 2015-09-01) (from servo:rustup_2015-09-01); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: f49615ca7b5d98ee603cf42f705073fbe4d414fb
2015-09-02 01:31:23 -06:00
Patrick Walton 1c17f3c07c servo: Merge #7313 - layout: Make overflow calculation take relative percentages into account (from pcwalton:position-relative-percentage-overflow); r=mbrubeck
This necessitated changing overflow to be calculated by the parent flow
if relatively positioned children are present. That is because the
overflow regions cannot be calculated without knowing relative offsets,
which themselves cannot be calculated without knowing the parent size
(because of percentages). To accomplish this without sacrificing
parallelism in the non-relative case, this patch splits overflow into
"early" and "late" computation. Late overflow computation cannot be
parallelized across children, while early overflow computation can.

Makes the "Apple Music" text show up over the full-bleed promotional
background on apple.com.

r? @SimonSapin -- would appreciate a look over the iframe test case that was changed.

Source-Repo: https://github.com/servo/servo
Source-Revision: dcaf66397a06246b9b4fdca3a10af1508a11f1e8
2015-09-01 12:33:07 -06:00
erneyja c4747f6c7e servo: Merge #7468 - Making test-tidy check that = have space after them (from JoshTheGoldfish:Issue7460); r=jdm
For issue #7460. Need to ensure compatibility with #7390.

Source-Repo: https://github.com/servo/servo
Source-Revision: 15de679f115f06a8ce33625d77e820b049730d4b
2015-09-01 08:33:02 -06:00
Bryan Bell c95fdd3382 servo: Merge #7370 - gfx: Border radius support for asymmetric sized borders (from bjwbell:bugfix-unequal-borders); r=pcwalton
When the border-top/right/bottom/left-widths are not equal, the angle on the border corner arc separating the borders isn't PI/4.

For instance if the top border width is much larger than the left border width then most of the border corner should be drawn using the top border color.

This change adds support for calculating the correct angle in the border
corner arc for switching from one border to another e.g. the left border
to the top border.

It supports elliptical border radii for when elliptical border radii are
added.

A ref test is also included.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: afc2c381db9c85eba3c10e87966351f77678dc6e
2015-08-31 14:58:33 -06:00
wilmoz 29f74a2734 servo: Merge #7475 - Make test-tidy check that braces have spaces before or after them (from wilcus:checkBracesSpaces); r=jdm
https://github.com/servo/servo/issues/7413
Posible future/past bug fixed in components/script/timers.rs

Source-Repo: https://github.com/servo/servo
Source-Revision: 60c72f601c4dd7cfbc8a4a983099a4b323f1516a
2015-08-31 13:18:23 -06:00
Matt Brubeck b58fd6468e servo: Merge #7434 - Remove unused font shaping code and flags (from mbrubeck:drop-table); r=pcwalton
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 108251bece897b96a8b205df22e7d3e790979331
2015-08-31 12:20:49 -06:00
Martin Robinson f531c59492 servo: Merge #7392 - Split out layered child stacking contexts in display lists (from mrobinson:layered-separate); r=pcwalton
This patch is in preparation for more dynamic layerization of the
pieces of display lists. It also prevents having to sort the children
by z-index multiple times.

Source-Repo: https://github.com/servo/servo
Source-Revision: fa5ad1c6b4faa2c43ff79e77962b94034a4f2bd0
2015-08-26 11:38:34 -06:00
Patrick Walton f9b32545e1 servo: Merge #7369 - layout: Fix calculation of overflow for stacking contexts that contain `position: relative` fragments (from pcwalton:relative-layer-overflow); r=glennw
Fixes placement of the header on espn.go.com.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: a1cd27e6a3b961129fd4710513cc29e4f7c9cc67
2015-08-25 17:16:34 -06:00
Johann Tuffe 5c3a5a67f5 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 e9541341ea servo: Merge #7292 - gfx: Sort layers according to their Z-index value before handing them off to the compositor (from pcwalton:layer-sorting); r=glennw
Closes #7166.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: c328b76459f34dfe33570d686452e08b7718b4bd
2015-08-19 18:34:58 -06:00
João Oliveira 3436fe7092 servo: Merge #7257 - Replace uses of `for foo in bar.iter()`, (from jxs:master); r=Ms2ger
and `for foo in bar.iter_mut(), and for foo in bar.into_iter()
(continuation of #7197)

Source-Repo: https://github.com/servo/servo
Source-Revision: 0d6d6a05009606dfbbfc9765d7dc2c745c18f6a5
2015-08-18 02:46:46 -06:00
Patrick Walton 098b50f43d servo: Merge #7222 - gfx: Paint dashed borders with nonzero radii the same way Gecko does (from pcwalton:dashed-border-radius); r=glennw
It's not ideal, but it was easy to implement and will do for now.

Closes #7157.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: f4b526cfb4ea1ef263ff029650c74ff50a74d5db
2015-08-17 16:53:58 -06:00
João Oliveira ee51120556 servo: Merge #7245 - replace len() !=0 with !is_empty() (from jxs:master); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: d90907cb5f7399196b76b3117e19ff4d1b775a96
2015-08-17 02:33:28 -06:00
Josh Matthews 6a81d499fc 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 8410286b02 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
João Oliveira f0a3f70810 servo: Merge #7208 - replace .len() == 0 with is_empty() (from jxs:master); r=Ms2ger
closes #7198

Source-Repo: https://github.com/servo/servo
Source-Revision: 85022a4c347dca3f5d28cec3010f7e9410217df4
2015-08-14 00:51:59 -06:00
Glenn Watson d78464281a servo: Merge #7206 - Fix "'PaintWorker' panicked at 'index 0 and/or 4 in `*` do not lie on… (from glennw:fix-debug-panic); r=pcwalton
… character boundary" when printing display list.

This whole piece of code seems a bit fragile, but it fixes the immediate problem for now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7a9458e530a3bd7a679cb21dec8586710cf4a416
2015-08-13 20:07:56 -06:00
Glenn Watson 7bd4cf89e8 servo: Merge #7186 - Enable item clipping on normal transform layers. Fixes rounded corners on layers with 2d transforms (from glennw:rounded-clip); r=pcwalton
Needed for #6643.

Source-Repo: https://github.com/servo/servo
Source-Revision: c1cc2c1a27cb6887934ab5088cccdb33434a680b
2015-08-13 01:53:44 -06:00
Corey Farwell a038876aad servo: Merge #6867 - Utilize match guard; make methods more similar (from frewsxcv:match-guard-and-similar); r=jdm
Make the structure for the `stretchiness` and `boldness` methods more
similar

Source-Repo: https://github.com/servo/servo
Source-Revision: 55a9abdf358dd8f05b06849f0d39b4e8ca8f6ba3
2015-08-12 22:13:16 -06:00
Patrick Walton 05e3c47b79 servo: Merge #7024 - layout: Rewrite whitespace stripping (from pcwalton:whitespace-stripping); r=mbrubeck
This patch makes Servo unconditionally strip whitespace before text run
scanning (assuming that the `white-space` property allows it). Whitespace
stripping during reflow is now only used for handling whitespace at the ends of
lines; reflow now never attempts to handle ignorable whitespace.

Many CSS tests pass now. There are some new failures, however.

The following reference tests now fail due to a pre-existing bug whereby
whitespace is used to calculate the position of inline hypothetical boxes for
elements with `display: inline; position: absolute`:

* `absolute-replaced-height-036.htm`
* `vertical-align-sub-001.htm`
* `vertical-align-super-001.htm`

The following reference tests fail due to a pre-existing bug whereby we don't
handle `font-size: 0` properly in inline reflow:

* `font-size-zero-1.htm`
* `font-size-zero-2.htm`

The following reference test fails due to the fact that it relied on our
incorrect insertion of whitespace to make room for the black background:

* `inline-formatting-context-007.htm`

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 7dc83e7820df43b1b617ae8dcf661398b0bd0842
2015-08-11 12:57:02 -06:00
Patrick Walton 81fce89118 servo: Merge #7137 - layout: Make absolutely-positioned elements with `z-index: auto` not stacking contexts (from pcwalton:absolute-stacking-contexts); r=glennw
Improves many sites.

Closes #7069.

r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 7ce47266acc7c23de537905746b274b4a75424fa
2015-08-11 12:22:14 -06:00
Matt Brubeck 6ad3db2453 servo: Merge #7161 - Snap rectangles to nearest pixels consistently (from mbrubeck:underline); r=pcwalton
Snapping the top-left and bottom-right corners separately can cause a rectangle to change size or even become empty when offset by a subpixel amount.  Instead, this patch snaps the top-left corner, then snaps the size to a whole pixel amount, so any rectangle of a given original size will always have the same snapped size.

Fixes #7152. r? @pcwalton or @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c528c6382ee4355f42824a7caad217c4eb8a3b0
2015-08-11 11:31:32 -06:00
Patrick Walton a95ad541cf 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
Glenn Watson 756e30a366 servo: Merge #7141 - Update rust-layers to get 2d transform + clipping support (from glennw:2d-clipping-update); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 5af93e9ca3500a75f845614f17323d258ee72d71
2015-08-10 20:23:42 -06:00
Patrick Walton 6025b53803 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
Glenn Watson 3a22e086fc servo: Merge #7021 - Fix display list optimization on retina displays. Fixes #7018 (from glennw:fix-7018); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 50a30121bfbb842067b980815fbe6d6e385e996a
2015-08-06 23:26:24 -06:00
Manish Goregaokar f5870d2f32 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
Matt Brubeck 037b9c0ec4 servo: Merge #7052 - Rollup of 2 pull requests (from mbrubeck:rollup); r=mbrubeck
- Successful merges: #7014, #7015
- Failed merges:

Source-Repo: https://github.com/servo/servo
Source-Revision: b21584c862f8831dfb40e9cf0495bf04bc6ae1b5
2015-08-06 16:13:12 -06:00
Glenn Watson 691b0941e2 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 9e97a6f17d servo: Merge #6983 - Support transforms for display list optimization. Prevents clipping in #6643 (from glennw:tf2); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 315c4f5ed7be91951b83b9bbec372bc4bf8f3507
2015-08-05 12:50:36 -06:00
Patrick Walton eec46242dc servo: Merge #6981 - gfx: Fix Core Text font instantiation for Web fonts on Mac (from pcwalton:github-font-fallback); r=metajack
r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: 11acfbc29fd3412c18b6bf62e51faef5c2435fd3
2015-08-05 06:11:36 -06:00
Josh Matthews 7a2b43ae8d servo: Merge #6959 - Fix warnings (from servo:warnings_); r=jdm
Adds on top of #6949.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0d8825c25c6eed4dc22b10e668b03fc79056702b
2015-08-05 03:44:22 -06:00
David Zbarsky aa9a39b034 servo: Merge #6954 - Implement strokeRect with zero-width or zero-height rects (from dzbarsky:stroke_rect); r=glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: eecd9752093540220eb52308b8fb3ceba0939e3c
2015-08-04 16:38:57 -06:00
Matt Brubeck 02442b6fc1 servo: Merge #6937 - Store Harfbuzz callback functions in a static var (from mbrubeck:hb_funcs); r=glennw
r? gw

Source-Repo: https://github.com/servo/servo
Source-Revision: d77f9415c5c64d18f31a1af45d2a9197373daa38
2015-08-03 22:40:35 -06:00
Matt Brubeck 9312160d09 servo: Merge #6721 - Implement the unicode-bidi CSS property (from mbrubeck:unicode-bidi); r=pcwalton
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 5922ac606c63b91fdbd8c84fd0abb35450bee547
2015-08-03 15:37:12 -06:00
Patrick Walton f08bfd6445 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 3b92de7a22 servo: Merge #6586 - script: Make the resource task communication use IPC channels (from pcwalton:resource-task-ipc); r=jdm
This change makes Servo use serialized messages over IPC channels for resource loading. The goal is to make it easier to make Servo multiprocess in the future. This patch does not make Servo multiprocess now; there are many other channels that need to be changed to IPC before that can happen. It does introduce a dependency on https://github.com/serde-rs/serde and https://github.com/pcwalton/ipc-channel for the first time.

At the moment, `ipc-channel` uses JSON for serialization. This is because serde does not yet have official support for bincode. When serde gains support for bincode, I'll switch to that. For now, however, the JSON encoding and decoding will constitute a significant performance regression in resource loading.

To avoid having to send boxed `AsyncResponseTarget` trait objects across process boundaries, this series of commits changes `AsyncResponseTarget` to wrap a sender only. It is then the client's responsibility to spawn a thread to proxy calls from that sender to the consumer of the resource data. This only had to be done in a few places. In the future, we may want to collapse those threads into one per process to reduce overhead. (It is impossible to continue to use `AsyncResponseTarget` as a boxed trait object across processes, regardless of how much work is done on `ipc-channel`. Vtables are fundamentally incompatible with IPC across mutually untrusting processes.)

In general, I was pretty pleased with how this turned out. The main changes are adding serialization functionality to various objects that `serde` does not know how to serialize natively—the most complicated being Hyper objects—and reworking `AsyncResponseTarget`. The overall structure of the code is unchanged, and other than `AsyncResponseTarget` no functionality was lost in moving to serialization and IPC.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2eb122f394651232abd683fc576a5c4288bf277f
2015-07-31 16:06:36 -06:00
Patrick Walton a214f0c03f 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
Huon Wilson f1c5de846f servo: Merge #6852 - Avoid undefined behaviour by allocating with align 1 (from huonw:fix-alignment); r=pcwalton
The allocation APIs require that the alignment is a power-of-two;
meaning 1 is the "I don't care" alignment, not 0.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3792bd7611df7343c1bad6119a07bd14296c9ba6
2015-07-30 12:35:26 -06:00
Martin Robinson 83736a2c39 servo: Merge #6842 - Update to the latest skia (from mrobinson:preserve-gl); r=pcwalton
Now GLRasteizationContexts require having an active GLContext. This will
allow preserving GLContexts and possibly framebuffers between
rasterization sessions, improving GL Rasterization performance.

Linux Before:
+ Painting Per Tile    4.5559    4.3392  1.6920  18.5548 74
Painting             170.1554  151.8353  0.0008 350.1093 28

Linux After:
+ Painting Per Tile    3.8726    3.1299  1.5848  12.6732 62
Painting              13.5480   10.8947  0.0029  39.1198 23

Source-Repo: https://github.com/servo/servo
Source-Revision: ccd341cc68f034df675ffaf80673a1bece078e08
2015-07-30 07:29:38 -06:00
Glenn Watson e3f983ae30 servo: Merge #6801 - Accumulate and invert stacking context transform for hit tests (from glennw:hit-test-transforms); r=pcwalton
This makes hit tests work on stacking contexts with transforms.

Ref #6643.

Source-Repo: https://github.com/servo/servo
Source-Revision: fff104bb41dea0ba64fdca312de7b4c0d76277c8
2015-07-28 23:09:08 -06:00
Patrick Walton d4fd20dc7c 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 939c609e32 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
Martin Robinson 54512c17f4 servo: Merge #6679 - Have BufferMap store NativeSurfaces and rename to SurfaceMap (from mrobinson:surface-cache); r=pcwalton
We currently store LayerBuffers, because previously NativeSurfaces did
not record their own size. Now we can store NativeSurfaces directly,
which saves a bit of space in the surface cache and allows us to create
LayerBuffers only in the PaintTask.

This also means that instead of sending cached LayerBuffers, the
compositor can just send cached NativeSurfaces to the PaintTask.

Source-Repo: https://github.com/servo/servo
Source-Revision: 590cb33bb7ae9f4713a7c2ee8bfe1076c180e392
2015-07-24 17:59:45 -06:00
Matt Brubeck a442c0ee7e 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
Akos Kiss b185c71656 servo: Merge #6718 - Add aarch64-unknown-linux-gnu support (from akosthekiss:aarch64-support); r=jdm
* Adding dependencies
* Replacing `i8` with `libc::c_char` to build properly on platforms
  where char is unsigned.

Source-Repo: https://github.com/servo/servo
Source-Revision: b386d7ae444af868907b9faff44e8432469160bd
2015-07-23 17:17:18 -06:00
Bogdan Cuza c3f07a520b 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
Nicholas Nethercote 7151a2c1c9 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
Bogdan Cuza 5e266ea18c 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 45366270f1 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
Patrick Walton f2de86fd3c 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
Michael Tremel 575264771d servo: Merge #6630 - Remove unused mut (from mt2d2:remove_unused_mut); r=metajack
rustc complains about unneeded mut; remove this instance.

Source-Repo: https://github.com/servo/servo
Source-Revision: da5f1abaa7dad8f0f6530b0578d006fab118ee35
2015-07-14 17:37:43 -06:00
Martin Robinson f7a684b3a0 servo: Merge #6591 - Upgrade to rustc 1.3.0-dev (fddfd089b 2015-07-10) (from servo:rustup_2015-07-10); r=larsbergstrom
Depends on https://github.com/jgraham/webdriver-rust/pull/12.

Fixes #6020.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9af229b83095f2f8cfe7b61003b85ddf781f4ea7
2015-07-14 13:40:22 -06:00
Matt Brubeck 3a30805259 servo: Merge #6626 - Remove dead code from gfx/text (from mbrubeck:gfx-dead); r=glennw
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 27d7f942547fa2091828d358c239dd9a2ed08885
2015-07-14 09:40:52 -06:00
Ms2ger 2fa4baeb5d 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
Glenn Watson 0a5cf5ac60 servo: Merge #6606 - Use atoms for font template structures (from glennw:font-atoms); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: c3fc943c6627b0248e1e61b106a964131209cb6d
2015-07-12 10:29:33 -06:00
Martin Robinson 17cdbf9af6 servo: Merge #6530 - Move LayerBuffer cache to the compositor (from mrobinson:move-cache); r=pcwalton
Now that NativeDisplay can be shared between the compositor and the
paint task, we can move the LayerBuffer cache to the compositor. This
allows surfaces to be potentially reused between different paint tasks
and will eventually allow OpenGL contexts to be preserved between
instances of GL rasterization.

Source-Repo: https://github.com/servo/servo
Source-Revision: 10b0d8c537c226400a617d28e8a060f9ca53d242

--HG--
rename : servo/components/gfx/buffer_map.rs => servo/components/compositing/buffer_map.rs
2015-07-08 03:14:21 -06:00
Patrick Walton 973311f4cb 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
Patrick Walton 0141dfbe06 servo: Merge #6487 - gfx: Use a pattern instead of tiling images manually (from pcwalton:background-tiling); r=glennw
r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: ae01e97efa31a180374dc0fd623ff03a650f7878
2015-07-07 05:42:07 -06:00
Glenn Watson 0686325db5 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 b54f8e97dd 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
Martin Robinson 94211ab952 servo: Merge #6525 - Update to latest rust-layers (from mrobinson:simplify-display); r=glennw
The compositing context, painting context and display metadata have all
been collapsed into a single NativeDisplay class.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4674afe846df6720882da28cbd2c3087c17d0b22
2015-06-30 17:02:26 -06:00
Martin Robinson 6b40c4ff1e servo: Merge #6493 - Update to latest rust-layers (from mrobinson:new-rust-layers); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 9c5eb162ae29b6653918406a9dc1c4aa1147d040
2015-06-27 01:30:33 -06:00
Ms2ger 8e614a31b9 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
Ms2ger 99cf771646 servo: Merge #6464 - Use Box::into_raw rather than boxed::into_raw (from Ms2ger:into_raw); r=saneyuki
The latter is deprecated.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9eb3cc2a241dff4df57d644fa5257fcf3a52325f
2015-06-26 04:50:54 -06:00
Ms2ger 18fd8097a2 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
Glenn Watson 5cd9134a2e 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
ecoal95 b32a9cd993 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
Hyowon Kim 8d982b374e servo: Merge #6402 - Fill and stroke for all pattern types and check the zero size gradient (from hyowon:canvas_fill_stroke); r=pcwalton
Depends on servo/rust-azure#170 which has been already merged.
So this patch contains the update of rust-azure.
r? @nox
cc @yichoi

Source-Repo: https://github.com/servo/servo
Source-Revision: e1b28d893e54601bf497d0d5b83d77658ca16bac
2015-06-17 13:32:25 -06:00
Simon Sapin 1fe2355ac7 servo: Merge #6396 - Use html5ever and string-cache from crates.io (from SimonSapin:crates.io-html5ever); r=Ms2ger
r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: 4435e6f42a1b57a3e6a0cfbb1033525fef5db174
2015-06-16 00:42:36 -06:00
Corey Farwell 711c6ca962 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 679452a543 servo: Merge #6309 - Instrument FreeType allocations (from nnethercote:instrument-freetype); r=glennw
This will allow reporting of memory usage by FreeType instances, which
are measured in the MiBs for LayoutWorker threads.

This change also makes FreeType allocations happen with jemalloc instead
of the system malloc, which is a good thing.

Finally, the change documents some dubiousness involving
FontContextHandle.

Source-Repo: https://github.com/servo/servo
Source-Revision: fdeebf86a1424e9fffa122efa08fe397f6e7cd7d
2015-06-10 16:53:55 -06:00
Glenn Watson 172144e575 servo: Merge #6331 - Updates for changes in rust-geom and rust-layers (from glennw:remove-generic-again); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 752e03a502413f21cfb30e55d68110c50e034da6
2015-06-10 16:05:20 -06:00
Patrick Walton bab79d9ff9 servo: Merge #6330 - Revert "Updates for changes in rust-geom and rust-layers" (from servo:revert-6329-remove-generic)
Source-Repo: https://github.com/servo/servo
Source-Revision: 93a45c91d16c0ae2c6b7e507f66a7267206772ac
2015-06-10 14:15:01 -07:00
Glenn Watson 119937c831 servo: Merge #6329 - Updates for changes in rust-geom and rust-layers (from glennw:remove-generic)
Source-Repo: https://github.com/servo/servo
Source-Revision: 053296e1319239fbfe2842edb31bbf46eb8f28d7
2015-06-10 14:14:24 -07:00
Corey Farwell f95f1555cf 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
Mátyás Mustoha 86df863d26 servo: Merge #6324 - Add ARM build support (from mmatyas:arm_build); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 9df13b906902fa298264816e0c3c88aea64c77df
2015-06-10 06:46:13 -06:00
Corey Farwell a869e68c38 servo: Merge #6316 - Utilize `if let` instead of `match` in a few places (from frewsxcv:if-let); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 6e0d0072b83bade910a6c2a0dee06d94f6f9fb17
2015-06-10 03:11:13 -06:00
Manish Goregaokar 3a4ae3831a 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
Jack Moffitt 279afd6ff8 servo: Merge #6295 - Clean up dependencies (from metajack:cargo-cleanup); r=frewsxcv
Overlaps a bunch with #6288. Putting this here so @frewsxcv can take a look and we can figure out how to merge our work together.

Source-Repo: https://github.com/servo/servo
Source-Revision: 96311aa9b71abb31fd8e4283de9e1b58813108a3
2015-06-07 13:15:20 -05:00
Eduard Burtescu 1ef27572ef 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
Corey Farwell ff75ac488c servo: Merge #6286 - Bump rust-url version: 0.2.16 → 0.2.35 (from frewsxcv:bump-url); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ad5846f2e14ac15aca9f561975ae9476d0f13244
2015-06-04 16:34:40 -05:00
Manish Goregaokar 96973b6240 servo: Merge #6188 - Add plugin for autoderiving HeapSize (from Manishearth:sizeof); r=nnethercote
Fixes #5914

r? @nnethercote for the gfx changes

r? @kmcallister or @jdm for the plugin

Source-Repo: https://github.com/servo/servo
Source-Revision: 2ca606aaba432741ce4e8274835f26db3a3581fc
2015-06-02 23:48:03 -05:00
Glenn Watson 983c939c6a 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
Corey Farwell 2196fc505a servo: Merge #6230 - Remove `get_` prefix on getters (from frewsxcv:getters-get); r=nox
Part of #6224

I certainly didn't remove all of them; I avoided `unsafe` areas and also `components/script`

Source-Repo: https://github.com/servo/servo
Source-Revision: f6fe1953343a417b62fb310a380af7c6973849b0
2015-06-02 08:17:03 -05:00
Nicholas Nethercote 346d1ef22d servo: Merge #6199 - Measure paint task buffer maps in the memory profiler (from nnethercote:instrument-paint-task-buffer-map); r=pcwalton
Example output from the memory profiler:

```
|       1.04 MiB -- url(http://en.wikipedia.org/wiki/Main_Page)
|          0.26 MiB -- display-list
|          0.78 MiB -- paint-task       # new output line
|             0.78 MiB -- buffer-map    # new output line
```

The buffer maps aren't huge, but they're worth measuring, and it's good
to get the memory profiler plumbing into PaintTask.

Source-Repo: https://github.com/servo/servo
Source-Revision: 10127d6b5a71ee8927413ab746300e32a54b079d
2015-05-28 22:45:34 -05:00
Mátyás Mustoha 5f241b25b2 servo: Merge #6065 - Enable antialiasing for the canvas (from mmatyas:canvas_antialias); r=jdm
This patch turns on antialiasing for the canvas, and updates the painting code to use the updated Azure DrawOptions defined in servo/rust-azure#158.

Source-Repo: https://github.com/servo/servo
Source-Revision: c97c0a9f94208828c617cbd99efd8e3e410c69ee
2015-05-28 14:59:36 -05:00
Nicholas Nethercote e5ec07f5a0 servo: Merge #6202 - Freetype fixes (from nnethercote:freetype-fixes); r=jack
Because #6198 wasn't quite right.

Source-Repo: https://github.com/servo/servo
Source-Revision: dddd222d2967bcf29dbb29856ddd7265c83e4d08
2015-05-28 09:04:08 -05:00
Jinwoo Song aafaa7ed0d servo: Merge #6198 - Use FT_Done_Library instead of FT_Done_Freetype (from Jinwoo-Song:freetype); r=metajack
It is recommended to use FT_Done_Library with FT_New_Library
from freetype document.

Fixes #6191.

r? @jdm @nnethercote
cc @yichoi

Source-Repo: https://github.com/servo/servo
Source-Revision: af81db54790efbeb86ee03e6ca63fb9046c6111a
2015-05-27 21:06:12 -05:00
Simon Sapin c4ddaa287d servo: Merge #6186 - Use harfbuzz bindings from crates.io (from SimonSapin:harfbuzz-crates.io); r=Manishearth
https://github.com/servo/rust-harfbuzz/issues/39
https://www.mail-archive.com/dev-servo@lists.mozilla.org/msg01289.html

r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 54afa01dd665b8facbbba7d49974ac5532e3b83f
2015-05-26 15:16:40 -05:00
Corey Farwell 333cc6c59d servo: Merge #6174 - Reduce max line length from 150 to 120 characters (from frewsxcv:cleanup-long-lines); r=SimonSapin
Part of https://github.com/servo/servo/issues/6041

Source-Repo: https://github.com/servo/servo
Source-Revision: 542519ebfd073662bc9421ac5fa0aa01ebc0d6fe
2015-05-24 18:27:26 -05:00
Patrick Walton eccdc2ade1 servo: Merge #5607 - layout: Implement per-glyph font fallback (from pcwalton:per-glyph-font-fallback); r=mbrubeck
This improves numerous pages, for example Wikipedia and Ars Technica.

Built on #5493.

Closes #177.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7561f7b83f27811683c1e724d75a935573a72813
2015-05-22 19:16:54 -05:00
Glenn Watson de0de69bad servo: Merge #6152 - Fix document load event firing after pipeline is closed (from glennw:runnable-panic); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1060cfde68c8d355b54a271923c9682721c5ed19
2015-05-20 20:01:32 -05:00
ecoal95 9dbd03da1c 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

--HG--
rename : servo/components/gfx/color.rs => servo/components/gfx_traits/color.rs
2015-05-20 15:42:06 -05:00
Michael Wu 6b72c7862a servo: Merge #6143 - Avoid selecting bitmap fonts from fontconfig (from michaelwu:truetype-only); r=pcwalton
I have a number of pcf fonts installed. One of them is Adobe Helvetica, and it turns out many websites try to use Helvetica. This crashes servo.

Source-Repo: https://github.com/servo/servo
Source-Revision: 165bfd6d5f901ef2e2619dbcc010166106cebd0b
2015-05-20 02:36:43 -05:00
Glenn Watson a6f3ad40b3 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 b776a7f734 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

--HG--
rename : servo/tests/html/lipsum.html => servo/tests/html/lipsum-large.html
2015-05-19 19:40:36 -05:00
Patrick Walton 5a4865ead0 servo: Merge #6055 - gfx: Implement paint flashing, which will be useful for debugging invalidation (from pcwalton:paint-flashing); r=mbrubeck
r? @mbrubeck (or whoever)

Source-Repo: https://github.com/servo/servo
Source-Revision: 74ef5d6aa89eb138f029ab6aeb9ce0bbf8befede
2015-05-14 18:00:52 -05:00
Glenn Watson cb90da747c servo: Merge #5890 - Various fixes for cleaning up iframes, compositor layers, pipelines and threads (from glennw:iframe-cleanup); r=jdm
This allows most of the jquery test suite to run without exhausting thread resources.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7e022b25a8ab87897180dcf1b6aff8d9b57adcb4
2015-05-13 22:34:59 -05:00
Glenn Watson 86c7655c62 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
Patrick Walton c918f5d92e servo: Merge #5911 - layout: Allow inline elements to be containing blocks for absolutely-positioned elements (from pcwalton:absolute-inline-containing-blocks); r=mbrubeck
r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: c0ee952a2a7054dcc7e97990a625c281322dd526
2015-05-13 14:27:21 -05:00
Glenn Watson 982b1e9a6c servo: Merge #6013 - Fix a compositor race condition that can result in the most recent buffer not being painted (from glennw:compositor-race); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 606ab1df448368fdffd531f4c66f1f069b942eac
2015-05-12 20:44:19 -05:00
Patrick Walton c767f5b0a4 servo: Merge #6012 - layout: Draw elements with `position: relative; z-index: auto` over ordinary content per CSS 2.1 Appendix E (from pcwalton:position-relative-painting-order); r=mbrubeck
Improves Talking Points Memo.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: dc27f8020e6c9e6347368af949c213c4ac233fdd
2015-05-12 19:55:44 -05:00
Ms2ger ca69a28ef0 servo: Merge #5967 - Remove unused imports (from Ms2ger:warnings); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 0ec6d80b6ed61c6950b8e5f50d04f994f0021101
2015-05-07 03:50:17 -05:00
Simon Sapin da599fc5b9 servo: Merge #5951 - Clean up the `Au` API (from SimonSapin:au-cleanup); r=mbrubeck
Fix #5943.

r? @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: 1721cf45ed59306a69f3ade08feca065804c3804
2015-05-05 15:08:12 -05:00
Simon Sapin 95c8716656 servo: Merge #5935 - Upgrade Rust (from servo:rustup_2015-04-25); r=Ms2ger
r? everybody

Source-Repo: https://github.com/servo/servo
Source-Revision: 49aed6555dbc008c1a378c5cbb303f5467232b6b
2015-05-05 09:11:30 -05:00
Ms2ger bd8631ac9a servo: Merge #5916 - Prepare for the rustup (from servo:prepare-rustup); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 2f0b805fad2419518f0d80e90cf322fbd507a916
2015-05-01 14:44:19 -05:00
Glenn Watson 44de6bcde1 servo: Merge #5913 - Various fixes to getClientBoundingRect() (from glennw:bounding-rect); r=pcwalton
* Fix queries involving stacking contexts
 * The code was double accumulating stacking context origins.
* Handle queries of inline elements.
 * The node addresses being compared were incorrect (CharacterData vs. Span)
* Handle ScriptQuery reflows correctly.
 * The layout task was skipping the compute absolute positions traversal, so failed before window.onload.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5f6a740190e1e5912d84162c92c6b79365df165a
2015-05-01 13:15:23 -05:00
Nicholas Nethercote f6d34641fc servo: Merge #5912 - Add a `profile_traits` crate to reduce compile times (from nnethercote:profile_traits); r=Manishearth
A rebuild after touching components/profile/mem.rs now takes 48 seconds (and
only rebuilds `profile` and `servo`) which is much lower than it used to be.
In comparison, a rebuild after touching components/profile_traits/mem.rs takes
294 seconds and rebuilds many more crates.

This change also removes some unnecessary crate dependencies in `net` and
`net_traits`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 77f653da2c4120ea7ac1a946d97fc70059d513d4

--HG--
rename : servo/tests/unit/gfx/lib.rs => servo/components/profile_traits/lib.rs
2015-04-30 20:02:33 -05:00
Ms2ger 33e1b9c8ab servo: Merge #5888 - Prepare for the rustup (from Ms2ger:prepare-rustup); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: ab2d07db1fabd7ad9590aa7296038bbc91806c3f
2015-04-28 17:52:49 -05:00
Simon Sapin 524056a01d servo: Merge #5870 - layout: Implement most of `border-collapse` per CSS 2.1 § 17.6.2 (from SimonSapin:border-collapse); r=SimonSapin
Fixes #5300, which it is a rebase of.

Known issues:

* Collapsed borders do not correctly affect the border-box of the table
  itself.

* The content widths of all cells in a column and the content height of
  all cells in a row is the same in this patch, but not in Gecko and
  WebKit.

* Corners are not painted well. The spec does not say what to do here.

* Column spans are not handled well. The spec does not say what to do
  here either.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8a4555cc53bc1bbb21a08eb6f010cb1215034419
2015-04-27 12:29:15 -05:00
Ms2ger 374d18472e servo: Merge #5827 - Use as_slice less (from Ms2ger:slice); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 79be3b967668e46a4289f4fc8fce2b4f457cab23
2015-04-24 12:12:53 -05:00
Glenn Watson 835b3be20c servo: Merge #5767 - Refactored image cache task - details below (from glennw:image-cache); r=larsbergstrom,jdm
* Simpler image cache API for clients to use.
 * Significantly fewer threads.
   * One thread for image cache task (multiplexes commands, decoder threads and async resource requests).
   * 4 threads for decoder worker tasks.
 * Removed ReflowEvent hacks in script and layout tasks.
   * Image elements pass a Trusted<T> to image cache, which is used to dirty nodes via script task. Previous use of Untrusted addresses was unsafe.
   * Image requests such as background-image on layout / paint threads trigger repaint only rather than full reflow.
 * Add reflow batching for when multiple images load quickly.
   * Reduces the number of paints loading wikipedia from ~95 to ~35.
 * Reasonably simple to add proper prefetch support in a follow up PR.
 * Async loaded images always construct Image fragments now, instead of generic.
   * Image fragments support the image not being present.
 * Simpler implementation of synchronous image loading for reftests.
 * Removed image holder.
 * image.onload support.
 * image NaturalWidth and NaturalHeight support.
 * Updated WPT expectations.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac0645c2363b5a6ea3930b0857b3a27f1b6d033f
2015-04-22 19:16:46 -05:00
Ms2ger 7b37ef8efe servo: Merge #5801 - Stop using the deprecated range function (from Ms2ger:range); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 43e664cda1dd562935fe5e4fdd92e5abcf6fb8f9
2015-04-22 18:24:21 -05:00
Adenilson Cavalcanti 40c24662cd servo: Merge #5787 - Using helper color function (less verbose and clearer to understand) (from Adenilson:colorWhite01); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: f9a50c9be0ea8d941c0065ff23758fd460cc5eaa
2015-04-22 17:04:41 -05:00
Adenilson Cavalcanti 17ce190a9f servo: Merge #5728 - Allow dumping the optimized display list (DL) (from Adenilson:optimDL01); r=metajack
This DL is created at paint time, per tile. To dump, pass -Z dump-display-list-optimized at startup.

Source-Repo: https://github.com/servo/servo
Source-Revision: ca8c0f353c2a13f6dbf7c4597a742d684c84c0d9
2015-04-17 15:33:06 -05:00
Patrick Walton 278e89a7f9 servo: Merge #5706 - layout: Clip the immediate fragments of block flows that establish stacking contexts properly (from pcwalton:absolute-clipping-of-own-contents); r=glennw
r? @glennw

Source-Repo: https://github.com/servo/servo
Source-Revision: f7bfea58798a07d993ba7bc7d9c76f62be19ea4f
2015-04-15 21:04:59 -05:00
Adenilson Cavalcanti f4443ed188 servo: Merge #5546 - Implementing Blur filter (from Adenilson:blurFilter01); r=pcwalton
See discussion on #5190 and #5496.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1fd6a48cca1ff951e60c9345e988f5489cb56f61
2015-04-15 18:56:49 -05:00
Aneesh Agrawal 750e000989 servo: Merge #5642 - Switch Arc<Box<Image>> to Arc<Image> for perf boost (from aneeshusa:arc-box-image-to-arc-image); r=Ms2ger
Image used to be a trait, but no longer is, so boxing it is no longer
necessary. Fixes #5639.

Source-Repo: https://github.com/servo/servo
Source-Revision: b7f59a36461e6c9eb08b8e48760168d3cb26a400
2015-04-14 01:57:07 -05:00
Glenn Watson 1907792b09 servo: Merge #5629 - Remove unneeded assert (code below handles it) and a warning. Fixes #5230 (from glennw:glyph-count); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: db4609d722039e9477848c5e53e45ff214cb84c4
2015-04-09 21:01:06 -05:00
Ms2ger 3837dc8fef servo: Merge #5604 - Remove recently introduced int/uint use in gfx (from Ms2ger:int); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: acadb2b0c56d3a89174a4b0834142762f3ab6ca8
2015-04-08 20:33:17 -05:00
Patrick Walton 6146e9b4fd servo: Merge #5493 - layout: Simplify and improve the correctness of whitespace stripping in text layout, and unify the inline layout paths for pre- and normally-formatted text (from pcwalton:jumpiness); r=mbrubeck
This fixes a lot of "jumpiness" and removes the `new_line_pos` stuff.

Closes #2260.

r? @mbrubeck
cc @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: d3478954fd8e3a8374104984efb91a918b5dbb7e
2015-04-08 17:13:36 -05:00
Josh Matthews 8be8eb016b servo: Merge #5571 - Remove int_uint feature from gfx (from jdm:gfx_uint); r=Ms2ger
r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 83d9ab3ba5c6a725632a954cf2b9f65832f89832
2015-04-08 03:06:09 -05:00
Simon Sapin 5b41ccfb98 servo: Merge #5574 - Move unit tests to their own crates, cut time by 96% (from servo:unit-tests); r=jack
On my laptop, running `./mach test-unit` goes from about 11 minutes to 22 seconds, when run after `./mach build`.

Fix #5291.

Source-Repo: https://github.com/servo/servo
Source-Revision: 017d1053617f6769d7f355e4a97d52ae67e53d1c

--HG--
rename : servo/components/net/test.jpeg => servo/tests/unit/net/test.jpeg
rename : servo/components/script/tests.rs => servo/tests/unit/script/size_of.rs
2015-04-07 21:16:49 -05:00
Manish Goregaokar ab1238f36e servo: Merge #5465 - Split out shared networking code into net_traits crate (from gilles-leblanc:issue-4476-b); r=jdm
Fixes #4476

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

--HG--
rename : servo/components/net/image/test.jpeg => servo/components/net/test.jpeg
rename : servo/components/net/image/base.rs => servo/components/net_traits/image/base.rs
rename : servo/components/net/image/holder.rs => servo/components/net_traits/image/holder.rs
rename : servo/components/net/local_image_cache.rs => servo/components/net_traits/local_image_cache.rs
2015-04-03 13:00:46 -06:00
Bryan Bell feb3f90385 servo: Merge #5470 - Show tabs in pre elements (from bjwbell:tab-in-pre); r=mbrubeck
Display tab characters as 4 spaces for pre and other elements that don't
compress whitespace.

Fixes https://github.com/servo/servo/issues/4651

@pcwalton r?

Source-Repo: https://github.com/servo/servo
Source-Revision: 40fab8e362305a87f0d83f786a27cfa2abfe2fba
2015-04-03 04:18:42 -06:00
Ms2ger c64ea30626 servo: Merge #5486 - Stop using int/uint in layout (from Ms2ger:int); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: d999fb9db0d572f63165fa8aa2e24023903b6332
2015-04-02 08:06:41 -06:00
Josh Matthews 8b327814f4 servo: Merge #5477 - Warning patrol (from jdm:warnfix); r=kmcallister
Source-Repo: https://github.com/servo/servo
Source-Revision: 3294778b371799f6594ba6e39986685c001b017c
2015-04-01 17:30:41 -06:00
dhneio b1a7a48af5 servo: Merge #5472 - Fix is_simple_advance check. Fixes #4614 (from jdm:advance); r=jdm
Rebased from #5035.

Source-Repo: https://github.com/servo/servo
Source-Revision: e65e881e1b37c37b6f921c73910ff3b3ec554fda
2015-04-01 16:45:40 -06:00
Patrick Walton 550beef758 servo: Merge #5278 - gfx: Perform more aggressive caching in `FontContext::get_layout_font_group_for_style()` (from pcwalton:font-group-caching); r=glennw
There are several optimizations here:

* We make font families atoms, to allow for quicker comparisons.

* We precalculate an FNV hash of the relevant fields of the font style
  structure.

* When obtaining a platform font group, we first check pointer equality
  for the font style. If there's no match, we go to the FNV hash. Only
  if both caches miss do we construct and cache a font group. Note that
  individual fonts are *also* cached; thus there are two layers of
  caching here.

15% improvement in total layout thread time for Facebook Timeline.

r? @glennw (since you last worked on `get_layout_font_group_for_style()` IIRC)

Source-Repo: https://github.com/servo/servo
Source-Revision: ba0d28e0023fce2003d64b9caf97fcdbeb7cdb28
2015-04-01 10:00:52 -06:00
Patrick Walton c9e2901806 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 a866f2e1e2 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 7f03c21505 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 f9758aa688 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

--HG--
rename : servo/components/util/time.rs => servo/components/profile/time.rs
2015-03-24 03:15:49 -06:00
Ms2ger 176d45569b servo: Merge #5314 - Update some feature gates (from Ms2ger:warnings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 4c2ec083e855d52eeb77f25e00190b8beb820742
2015-03-23 03:24:50 -06:00
Ms2ger ed37ff9cb6 servo: Merge #5303 - Update some code that's feature-gated under core (from Ms2ger:core); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 43f3f6c897916aea75773f74060ec84a338834d0
2015-03-21 12:57:46 -06:00
Ms2ger 75737c51cb servo: Merge #5297 - Replace most usage of std::old_io::File (from Ms2ger:fs); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: ec60f29203c75b46d59253c7cbb4005fce7e4ad4
2015-03-20 17:00:44 -06:00
Glenn Watson 83c49f2b56 servo: Merge #5270 - Fix hit testing with stacking contexts (apparent since transforms landed) (from glennw:hit-test-stacking-context); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: fef439726aea26ef631f414c4852fa4cb49fff15
2015-03-19 15:18:53 -06:00
Matt Brubeck 60f829a1da servo: Merge #5266 - Rename DList to LinkedList everywhere (from mbrubeck:linked_list); r=metajack
Fixes deprecation warnings.  Also removes a workaround for a fixed bug in Rust.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2346c9b94055f84a536808e40ad0b596ee21fbf4

--HG--
rename : servo/components/util/dlist.rs => servo/components/util/linked_list.rs
2015-03-18 16:28:09 -06:00
Simon Sapin 79a6daaf67 servo: Merge #5262 - Fix some post-rustup warnings (from servo:fix-warnings); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: 124a78fb2e4d324a7d0ed54da1cca17839d406b7
2015-03-18 15:21:49 -06:00
Adenilson Cavalcanti 2af371c83d servo: Merge #5209 - Adding geometric information on DisplayList items while dumping (from Adenilson:displayListGeom01); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: a5217556072390131f41a7a4cd07e8eb5a671d06
2015-03-18 14:09:56 -06:00
Ms2ger 66cb126a50 servo: Merge #5256 - Upgrade rustc to d3c49d2140fc65e8bb7d7cf25bfe74dda6ce5ecf/rustc-1.0.0-de (from servo:rustup_20150311); r=jdm
...v.

Relies on:
* https://github.com/servo/rust-geom/pull/72
* https://github.com/servo/rust-glx/pull/10
* https://github.com/servo/gleam/pull/15
* https://github.com/servo/rust-mozjs/pull/137
* https://github.com/servo/rust-core-text/pull/35
* https://github.com/servo/rust-io-surface/pull/28

Source-Repo: https://github.com/servo/servo
Source-Revision: 99cf9dbfc107bacb84dfe5afa9539a0ede3beac2
2015-03-18 11:25:00 -06:00
Patrick Walton 7758f76d8a servo: Merge #5134 - layout: Implement 2D CSS transforms per CSS-TRANSFORMS § 5, 6, 7, and 8 (from pcwalton:transforms); r=SimonSapin
r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 203240c1d82b780ce49261d8b47e6cbe6af50950
2015-03-17 13:39:51 -06:00
Nicholas Nethercote 97460a4cdd 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
Connor Jennings c520b12d17 servo: Merge #5222 - Retain buffer for CGDataProviderCreateWithData. Fixes #5084 (from cojennin:mac-font-face); r=metajack
CGDataProviderCreateWithData just wraps the underlying buffer. The
underlying buffer needs to be kept around until the data provider is
freed. Adding the buffer to the FontTemplateData struct ensures it
sticks around.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4f32596cc65ee75b700089ebe4c6c5a9789559f6
2015-03-15 13:30:56 -06:00
Mikko Perttunen 31631d420c servo: Merge #5153 - Handle font load errors in FontContext (from cyndis:check-font-result); r=jdm
Thread font load errors from platform font loading code to
FontContext::get_layout_font_group_for_style, and cache the failure
result, instead of panicing the thread when a font fails to load.

Before this patch, a failed font load would panic a LayoutTask,
causing a cascade of panics, eventually aborting the whole engine
during a panic within panic.

On my Arch Linux machine almost every page would crash in this manner,
including e.g. reddit.com and cnn.com. Mosf of the requested fonts would
load fine but some single variant of Helvetica would fail always. Not sure
how to create a test for this as it seems pretty system-specific.

Cheers,
cyndis

Source-Repo: https://github.com/servo/servo
Source-Revision: 4bd5aed5005b1a8dba828a178ea9af4277d0d4a7
2015-03-06 10:31:05 -07:00
Simon Sapin 4578a773a4 servo: Merge #5133 - layout: Implement `image-rendering` per CSS-IMAGES-3 § 5.3 and (from servo:background-size); r=SimonSapin
`background-size` per CSS-BACKGROUNDS § 3.9.

Nearest neighbor interpolation is used for `crisp-edges`, like Firefox.
A note has been added that we could do better if we wanted to.

Multiple backgrounds are not yet supported.

Rebase of #4368. Fixes #4368.

Source-Repo: https://github.com/servo/servo
Source-Revision: e1a50c771973fe3223cf98feea5d570375d68fa9
2015-03-03 11:48:54 -07:00
Glenn Watson f7ffceeeaa servo: Merge #5121 - Fix hover state on elements with transparent background colours (from glennw:transparent-hover); r=mbrubeck
Move culling of transparent display items to paint task rather than display list builder, so that hit testing detects mouse over on transparent background elements.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac4a690e8fa98da4e4f7adbc2d888a94c6d99e0e
2015-03-02 19:42:49 -07:00
Patrick Walton 8d21fbc4f5 servo: Merge #4475 - layout: Implement `text-shadow` per CSS-TEXT-DECORATION-3 § 4 (from pcwalton:text-shadow); r=mbrubeck
r? @mbrubeck

Depends on servo/rust-geom#64.

Source-Repo: https://github.com/servo/servo
Source-Revision: 93d1f40a96df69eb9d38890df96c621e180d78cc
2015-03-02 14:54:52 -07:00
Adenilson Cavalcanti 06295cffa8 servo: Merge #5072 - Clean compilation warnings (from Adenilson:cleanWarnings01); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: a8b55e821a10c5ed8e5942e88e88eb20d08ad43c
2015-02-25 22:48:50 -07:00
Adenilson Cavalcanti 3fe1f46565 servo: Merge #5062 - Implements a DisplayList dumper (from Adenilson:printDisplayList01); r=pcwalton
This patch will iterate through the DisplayList after the reflow is done and print its elements (as also any sub-lists associated to a child node stacking context).

Source-Repo: https://github.com/servo/servo
Source-Revision: 67b78983db31128604339e2fd7f391e878cf9f9b
2015-02-25 20:15:56 -07:00
Ms2ger 9c6ed590bc servo: Merge #5000 - Move gfx to libc from crates.io (from Ms2ger:libc-gfx); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: bc5eeb00a1874c7211d6a656871000f9352c2f40
2015-02-21 06:51:50 -07:00
Patrick Walton 150bdee4d8 servo: Merge #4994 - layout: Add an option to visualize parallel layout (from pcwalton:layout-tinting); r=pcwalton
r? @metajack

Source-Repo: https://github.com/servo/servo
Source-Revision: d26345f868e4261760ce204bdc383941e8f14621
2015-02-20 23:06:48 -07:00
Andreas Gal e3a7b4c06d servo: Merge #4977 - Use cleaner StrokeOptions interface (from andreasgal:master); r=jdm
The new interface will be added by https://github.com/ser...vo/rust-azure/pull/145 (has to be merged first).

Source-Repo: https://github.com/servo/servo
Source-Revision: 991b47953197ef5311300145e7b3d6f249a3f6b5
2015-02-20 21:00:55 -07:00
Jack Moffitt aaef4c20a3 servo: Merge #4969 - Added overlay for demoing parallel painting (from servo:parallel-paint-demo); r=glennw
You can enable this with `-Z show-parallel-paint`. The output looks like this:

![screenshot 2015-02-19 13 21 12](https://cloud.githubusercontent.com/assets/28357/6275199/7bd6e788-b83a-11e4-89cb-a74f360272f2.png)

Source-Repo: https://github.com/servo/servo
Source-Revision: 49ff6b2ccc43ab657814a1b4584122411a4b2acb
2015-02-19 16:21:57 -07:00
Ms2ger 057d7cb476 servo: Merge #4947 - Use rustc-serialize rather than the built-in deprecated serialize (from Ms2ger:serialize); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: afb152a8569953f730df564be2745c5a6302bf6f
2015-02-17 07:30:50 -07:00
Adenilson Cavalcanti 4a6230be7e servo: Merge #4903 - Companion single Color patch (from Adenilson:singleColor02); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: b5749e9855b68636d5366450602cd73397a6f219
2015-02-13 15:51:50 -07:00
Ms2ger c1db4c4e1b servo: Merge #4924 - Fix some warnings (from servo:warnings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 9c476a290aa493404a8e5953d0e813cb68c4c434
2015-02-13 07:36:50 -07:00
Ms2ger b019c7ef30 servo: Merge #4922 - Fix some warnings (from servo:warnings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 66f4faf44fbc6e8703d4336219a20dd3b19fb493
2015-02-13 05:33:49 -07:00
Matt Brubeck c7d0095a59 servo: Merge #4904 - Replace util::dlist code with new collections::DList methods (from mbrubeck:dlist); r=pcwalton
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 26aee53c827c4db517171cd89786d894b1ceb76c
2015-02-12 16:39:53 -07:00
Simon Sapin da87abc762 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

--HG--
rename : servo/ports/gonk/build.rs => servo/support/rust-task_info/build.rs
2015-02-11 17:24:45 -07:00
Ms2ger e80f986397 servo: Merge #4887 - Import net as net rather than servo_net (from Ms2ger:servo_net); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e3a4d493117ffd09ce75270b36012845ebb9c08c
2015-02-10 05:15:45 -07:00