Commit Graph

177 Commits

Author SHA1 Message Date
Patrick Walton
09c20effcf servo: Merge #6896 - script: Use Arc::make_unique instead of Arc::get_mut when updating inline styles (from pcwalton:fix-particles-crash); r=SimonSapin
Transitions make the reasoning in the comment in the relevant sections
not true.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 0c6e271cd3d5e2a7f141cae811d92b8fd6370b18
2015-08-02 10:10:39 -06:00
Simon Sapin
c302332aab servo: Merge #6741 - Fix CSSStyleDeclaration::setPropertyPriority and some refactoring (from servo:fix-setpropertypriority); r=pcwalton
r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: c6b043582b41434c59a21eed5c9258ae3c0fb437
2015-08-01 15:00:06 -06:00
Tom Schuster
e61ba08a8a servo: Merge #5851 - Implement the HTML background attribute (from evilpie:background); r=SimonSapin
Fixes #5835

Source-Repo: https://github.com/servo/servo
Source-Revision: 58fa3b69b76387958db45bc9831ac7c79caab2ea
2015-07-29 14:37:45 -06:00
Bogdan Cuza
6e1df04706 servo: Merge #6699 - Tidy check for FooMethods in components/script/dom/*.rs and color for tidy (from boghison:tidyspec); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 14ccb22e679722ed3374c8facec21adcf0f2b247
2015-07-28 08:56:39 -06:00
Till Schneidereit
1c2b3eacf2 servo: Merge #6662 - Implement Element.client{Top,Left,Width,Height} (from tschneidereit:client-geometry); r=glennw,pcwatson
This isn't done, but contains a working implementation of at least `clientTop`. Feedback would be much appreciated: it's probably far from ideal.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: e0bd80f80715bdbdf30de1de9c79a99a41cfd99e
2015-07-27 20:45:05 -06:00
Anthony Ramine
2e8341b50d servo: Merge #6660 - Introduce VirtualMethods::children_changed() (from nox:children-changed); r=jdm
This virtual method mimics the behaviour of mutation observers and make it more viable than the older child_inserted(), which didn't cover removed nodes and was called as many times as there were inserted nodes.

A few other shortcomings where remove_child() was called directly instead of Node::remove() were also fixed while at it.

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

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 37a1e22515e98fbda93d7e856c5a67b21d9b00a4
2015-07-22 21:10:04 -06:00
David Zbarsky
56cf257a29 servo: Merge #6624 - Remove some more unnecessary let bindings (from dzbarsky:23338); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 7de4ba0f826f8239d6ac540417028265e62085c5
2015-07-14 07:21:10 -06:00
Corey Farwell
2e74eb930a servo: Merge #6617 - Complete FIXMEs related to UFCS (from frewsxcv:fixme-ufcs); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: 6a728712f9c9cbe667c1bca2465cefef6f6f657a
2015-07-14 01:30:12 -06:00
David Zbarsky
acebf6c0cf servo: Merge #6561 - Implement Node#isDefaultNamespace and Node#lookupNamespaceURI (fixes #1826) (from dzbarsky:namespace); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 52e857dd7b9b083d691efab088aeba80888c61ff
2015-07-10 06:44:25 -06:00
Simon Sapin
7e8f5555b3 servo: Merge #6548 - Upgrade to rustc 1.3.0-dev (f3b97a74a 2015-07-03) (from servo:rustup_2015-07-03); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: f5f64dab749d0851ef82be3cdc7fb2bd1cb09956
2015-07-03 21:47:02 -06:00
David Winslow
8d2daacb18 servo: Merge #6529 - Refactor #[jstraceable] to #[derive(JSTraceable)] (from dwins:master); r=Manishearth
fixes #6524.  I had to make an additional change not mentioned in the ticket - adding the `#[feature]` to enable deriving custom traits but I assume that's expected at this time.

Source-Repo: https://github.com/servo/servo
Source-Revision: bbb39082e0f640400546d2084a450a8675820a82
2015-07-01 18:27:40 -06:00
Matt Brubeck
6c5ac4a1a6 servo: Merge #6528 - Reduce dependencies of the util crate (from mbrubeck:util_deps); r=Ms2ger
Because almost all our main crates depend on util, we should keep its dependencies minimal to increase parallelism and reduce the amount of stuff rebuilt when upstream crates are changed.

Source-Repo: https://github.com/servo/servo
Source-Revision: fc1e427ff9bb0e9891053ec1eba292530ebbe91a
2015-07-01 07:54:15 -06:00
Ms2ger
c6c08acdd8 servo: Merge #6500 - Remove unused imports (from Ms2ger:warnings); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: dab4e73ee73a21e07ad73ec211b919a746a45624
2015-06-27 11:38:34 -06:00
Simon Sapin
58dd9da612 servo: Merge #6468 - Update rust-selectors (from servo:update-selectors); r=Ms2ger
r? @Ms2ger

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

Source-Repo: https://github.com/servo/servo
Source-Revision: c331db1623719774c3ead554bcdca0b9c02d90fe
2015-06-26 14:50:01 -06:00
Maciej Skrzypkowski
60ab3d178e servo: Merge #6405 - Refactoring, return an Atom from Element::parsed_name. #5774 (from mskrzypkows:element_parsed_name_refactor); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: e869e8ad08526bbbfffd390b52e423f58b8269f1
2015-06-23 03:17:46 -06:00
Simon Sapin
1024deb134 servo: Merge #6427 - Update rust-selectors (from servo:selector-traits-refactor); r=Ms2ger
https://github.com/servo/rust-selectors/pull/30

r? @Ms2ger

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

Source-Repo: https://github.com/servo/servo
Source-Revision: c119b59e82269a84925673236dd896101f27a6f3
2015-06-21 11:12:07 -06:00
Ms2ger
8561cc104b servo: Merge #6437 - Implement AttrHelpersForLayout for LayoutJS<Attr> rather than Attr itself (from Ms2ger:AttrHelpersForLayout); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: bf64e2765aeb88611e781abeae4360f69a3a6caa
2015-06-21 08:31:04 -06:00
Michael Wu
ae3ff6be00 servo: Merge #6150 - Upgrade to Spidermonkey 39 (from servo:smupgrade3); r=mbrubeck
> Here it is.
>
> ~~There's two major things that are unfinished here:~~
> - ~~Dealing with the unroot_must_root lint. I'm not sure about the value of this lint with the new rooting API.~~ Done.
> - ~~Updating the Cargo.locks to point to the new SM and SM binding.~~ Done.
>
> I also included my fixes for the rust update, but these will disappear in a rebase. A rust update is necessary to support calling `Drop` on `Heap<T>` correctly when `Heap<T>` is inside a `Rc<T>`. Otherwise `&self` points to the wrong location.
>
> Incremental GC is disabled here. I'm not sure how to deal with the incremental barriers so that's left for later.
>
> Generational GC works. SM doesn't work without it.
>
> The biggest change here is to the rooting API. `Root` was made movable, and `Temporary` and `JSRef` was removed. Movable `Root`s means there's no need for `Temporary`, and `JSRef`s aren't needed generally since it can be assumed that being able to obtain a reference to a dom object means it's already rooted. References have their lifetime bound to the Roots that provided them. DOM objects that haven't passed through `reflect_dom_object` don't need to be rooted, and DOM objects that have passed through `reflect_dom_object` can't be obtained without being rooted through `native_from_reflector_jsmanaged` or `JS::<T>::root()`.
>
> Support for `Heap<T>` ended up messier than I expected. It's split into two commits, but only because it's a bit difficult to fold them together. Supporting `Heap<T>` properly requires that that `Heap::<T>::set()` be called on something that won't move. I removed the Copy and Clone trait from `Heap<T>` so `Cell` can't hold `Heap<T>` - only `UnsafeCell` can hold it.
>
> `CallbackObject` is a bit tricky - I moved all callbacks into `Rc<T>` in order to make sure that the pointer inside to a `*mut JSObject` doesn't move. This is necessary for supporting `Heap<T>`.
>
> `RootedCollectionSet` is very general purpose now. Anything with `JSTraceable` can be rooted by `RootedCollectionSet`/`RootedTraceable`. Right now, `RootedTraceable` is only used to hold down dom objects before they're fully attached to their reflector. I had to make a custom mechanism to dispatch the trace call - couldn't figure out how to get trait objects working for this case.
>
> This has been tested with the following zeal settings:
>
> GC after every allocation
> JS_GC_ZEAL=2,1
>
> GC after every 100 allocations (important for catching use-after-free bugs)
> JS_GC_ZEAL=2,100
>
> Verify pre barriers
> JS_GC_ZEAL=4,1
>
> Verify post barriers
> JS_GC_ZEAL=11,1

Source-Repo: https://github.com/servo/servo
Source-Revision: e7808c526c348fea5e3b48af70b7f1a066652097
2015-06-19 16:46:55 -06:00
Manish Goregaokar
837d2bbaea servo: Merge #6377 - Upgrade to rustc 1.2.0-nightly (6e7fcc44a 2015-06-13) (from servo:rustup_20140614); r=SimonSapin
See #6376

r? @Ms2ger

Snaps don't exist yet, putting up the @larsbergstrom signal. The snap need not exactly match this commit, anything in the vicinity, or just master, should work really. (yay stability)


There's no particular reason behind this rustup except that I want to keep Servo running on almost-master as much as possible.

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

These indirect dependencies through the util component are unnecessary.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 35000a9b854dc0989cc473aaec0ea8c082521c66
2015-06-10 08:23:11 -06:00
Ms2ger
7a055977ed servo: Merge #6318 - Optimize lookupPrefix (from Ms2ger:optimize-lookup-prefix); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 3ece6bc166c06b1b63f417742cb30dde0e34e63e
2015-06-10 04:30:38 -06:00
Anthony Ramine
080248bb6b servo: Merge #6140 - Cleanup some gratuitous or inefficient uses of RootedVec (from nox:cleanup-rootedvec); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d0409b8421e1b0c055507acc7d784cac890f47e
2015-05-26 08:36:29 -05:00
Corey Farwell
3d43073796 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
Peter
43f66c0df3 servo: Merge #5858 - fixes #5603, added support for tabindex field (from pgonda:tabindex-focus-flag); r=jdm
Added support for the tabindex field, also added its correct defaults (-2 TODOs for things not supported in Servo yet).  Also added tabindex logic into Element::is_focusable_area.

Source-Repo: https://github.com/servo/servo
Source-Revision: fada39164cbaba3a9885f08fad6f10a2353a4838
2015-05-20 14:34:31 -05:00
Patrick Walton
44983ea106 servo: Merge #5577 - script: Implement the width and height attributes for iframes per HTML5 § 4.8.6 (from pcwalton:iframe-size-attributes); r=jdm
Improves Amazon and Ars Technica.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: ee147c164a8a13743dec2def60b13997145e7a55
2015-05-20 13:51:05 -05:00
Patrick Walton
36e1de85b6 servo: Merge #5989 - script: Implement the color attribute of the <font> element (from pcwalton:font-color); r=jdm
Improves Hacker News.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: ba340ec71bcfca8ab7b8ae04a22005e4fb860a23
2015-05-19 18:33:03 -05:00
Mukilan Thiyagarajan
190087faab servo: Merge #6043 - Fix implementation of Element::get_root_element (from mukilan:get_root_element); r=Ms2ger
The [current implementation](http://mxr.mozilla.org/servo/source/components/script/dom/element.rs#666) is wrong as it always tries to cast the furthest ancestor into an element.
When the method is invoked on an element that is in the document tree, this will be the `Document` node, which is not an element. The ```last().map(ElementCast::to_temporary)``` returns Some(None) hence the method will return ```None```, while the correct behaviour is to return the ```html``` node.

This PR interprets the line ```"furthest ancestor element node of whatever node is being discussed"``` in the spec to mean ```"find the furthest ancestor that is an element node"```.

Source-Repo: https://github.com/servo/servo
Source-Revision: 65c30224a1d3ca81d0b8a8d46538af91f07dfebf
2015-05-15 03:35:37 -05:00
Ms2ger
cf4f8c7684 servo: Merge #6019 - Move the presentational hint from table border to the new infrastructure (from Ms2ger:preshint-border); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 398e7f07fe0c5b0f0c9e8c05b8962011c83505d3
2015-05-12 14:47:49 -05:00
Ms2ger
e982e78205 servo: Merge #5988 - Move some presentational hints to the new infrastructure (from Ms2ger:preshints); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 8fa604be9dc85bfd41db7d574e236ab8b4e6d89a
2015-05-12 02:15:11 -05:00
Ms2ger
1534c40155 servo: Merge #6004 - Replace TElement::get_link() by specific methods (from Ms2ger:get_link); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: be8539af885b5d668222bbbdd677922eb75be65f
2015-05-11 06:46:17 -05:00
Ms2ger
1cdbd0dcb7 servo: Merge #5999 - Move get_attr and get_attrs into TElementAttributes (from Ms2ger:TElement); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: cf9338cb2eb1ff0c28e83d40e06b687828ab4c04
2015-05-10 11:26:25 -05:00
Anthony Ramine
08cbd0eb18 servo: Merge #5923 - Improve support of limited unsigned long attributes (from nox:limited-unsigned-long); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 19744984da58feeeab64a98839ec2936fb8fb5a0
2015-05-06 14:22:45 -05:00
Anthony Ramine
a62b53513c servo: Merge #5931 - Remove helpers that correspond to DOM methods (from nox:rm-helpers); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 16a7c792b564a6eab48391865a7060b8dba38284
2015-05-06 01:31:26 -05:00
Simon Sapin
b72bb5e7d5 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
607915e1d8 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
Ms2ger
622e167a6a 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
Anthony Ramine
17374ab21b servo: Merge #5871 - Cleanup JS traits and methods (from nox:rootable); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b8ae33e510ea30e3200834fc2f7fbc426b86701e
2015-04-28 04:23:05 -05:00
Ms2ger
61c403ae3e servo: Merge #5857 - Create a new infrastructure for presentational hints (from Ms2ger:preshints); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 1cb012fc5043dd978d118e49b2f76e9320090bba
2015-04-28 03:24:14 -05:00
Manish Goregaokar
035e4ad068 servo: Merge #5855 - Add move protection to Root and friends (from Manishearth:nomove); r=kmc,munksgaard
fixes #5724, #5737


uses https://github.com/Manishearth/rust-tenacious (can be moved in-tree if needed)

I can make it `Deny` by default too (I'll add a cargo feature to tenacious), though we might want it on
`Warn` until we get some mileage on it.

Source-Repo: https://github.com/servo/servo
Source-Revision: d7987e43c944eb9b156bf3244c08fce4cb570db4
2015-04-27 23:14:25 -05:00
Peter
bdd9fd7907 servo: Merge #5692 - Switched Element::Get_attributes to use a RootedVec (from pgonda:get_attributes-memory-safety); r=jdm
Changes Element::get_attributes to use a `&mut Rooted<JS<Attr>>` param instead of returning a `Vec<Temporary<Attr>>`, fixes  #5684.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8ecb9d681c385995b082d67874fdfa7f1e929e1f
2015-04-27 15:25:30 -05:00
Ms2ger
6a37f39778 servo: Merge #5777 - Make Attr::prefix an Atom (from tamird:ICE-attr-prefix-atom); r=jdm
Rebase of https://github.com/Ms2ger/servo/commits/ICE-attr-prefix-atom

Some of the changes weren't necessary since the internals had been refactored some in the interim. In any case, I was unable to reproduce the ICE reported in https://github.com/rust-lang/rust/issues/18957.

@Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: b0a7d1bf865eff7b6ca3bae874004a61c19b3c27
2015-04-27 14:37:38 -05:00
Anthony Ramine
4b09eab3c6 servo: Merge #5862 - Change MutNullableJS<T> to MutNullableHeap<JS<T>> (from nox:mutnullableheap); r=jdm
This is useful for union types, in cases where we need MutNullableHeap&lt;NodeOrString&gt;.

Source-Repo: https://github.com/servo/servo
Source-Revision: b0ddd8149b04db6bceba0c0b8de852acc1086838
2015-04-27 03:50:08 -05:00
Anthony Ramine
02e9fd35d0 servo: Merge #5852 - Remove unsafe transmute functions in JS and LayoutJS (from nox:rm-unsafe-transmute); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 56a7981c9c9c6df30fbb3add3d8d0085916fe313
2015-04-26 14:40:31 -05:00
Ms2ger
c7955e722b servo: Merge #5847 - Avoid as_slice() / at_mut_slice() (from Ms2ger:slice); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 1389be37823fccf4108f4e79d0a3a793f0bbe93e
2015-04-26 05:30:28 -05:00
Ms2ger
bdc596eda8 servo: Merge #5840 - Replace the Str implementation for AttrValue by a Deref implementation (from Ms2ger:attrvalue-slice); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: b22a6c8095f03fda6e8901dea768af18d474fb31
2015-04-25 08:59:26 -05:00
Maciej Skrzypkowski
0b9bc60a59 servo: Merge #5594 - Refactoring, added conversion to lowercase for get_attribute_by_name method. (fixes #5561) (from mskrzypkows:get_attribute_by_name); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: a3dafe49999d24e12b2f6b5cc74b468e58b7384a
2015-04-21 10:23:03 -05:00
Ms2ger
32965e105e servo: Merge #5741 - Use get_attr_for_layout more (from Ms2ger:attr-for-layout); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e5ec55f0d8d4ec17aab3682e6d3048c88c6f458e
2015-04-19 09:37:29 -05:00