Commit graph

51 commits

Author SHA1 Message Date
Ms2ger
f0af48c824 servo: Merge #8569 - Rustfmt some of script (from Ms2ger:fmt-script); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: 7a87312121a69b590b364f9b5095f3145554e24b
2015-11-18 15:15:30 +05:01
Anthony Ramine
b98af75b92 servo: Merge #8197 - Support variadic interface arguments (fixes #8159) (from nox:variadic-interface-argument); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: f03a8261c58f650eda789b1f9f5363af6e15f59c
2015-11-11 19:03:26 +05:01
Ms2ger
e3673bb2cc servo: Merge #7128 - Make BrowsingContext JS-managed (from Ms2ger:bc-root); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b4d234107e7fcc02e88915f37c06bf651842c1dd
2015-11-04 22:09:51 +05:01
David Zbarsky
ed7fd17b12 servo: Merge #8305 - Get rid of a bunch of explicit derefs (from dzbarsky:roots); r=Ms2ger,
Source-Repo: https://github.com/servo/servo
Source-Revision: 4b9fa13f2f6a1aa38d180367426498f01f6414c9
2015-11-04 10:34:54 +05:01
rohan.prinja
e8b504412b servo: Merge #8221 - move modules around (from ajnirp:8130-reorganise); r=jdm
for #8130

Source-Repo: https://github.com/servo/servo
Source-Revision: daad09d44245228fba9118316937add71bec7c58
2015-11-04 02:27:02 +05:01
Anthony Ramine
1c1210fbba servo: Merge #8060 - Implement Deref<Target=T> for JS<T> where T: Reflectable (from nox:deref-js); r=Ms2ger
We can only borrow `JS<T>` from rooted things, so it's safe to deref it.
The only types that provide mutable `JS<T>` things are `MutHeap<JS<T>>` and
`MutNullableHeap<JS<T>>`, which don't actually expose that they contain
`JS<T>` values.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1a376aa75d5de8781b17a673850860f8afd2c28f
2015-10-19 06:32:05 -06:00
Eli Friedman
7cf10cb041 servo: Merge #8026 - Fix uses of JS<T> as a type on the stack (from eefriedman:js-rooting); r=nox
`JS<T>` belongs on the heap, and only on the heap.  This is a collection of fixes so that code uses either `Root<T>` or `&T` to pass around garbage-collected pointers.

Ideally, we could completely ban constructing a `JS<T>` outside of constructor functions, but we aren't quite there yet.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7c7dbde0f4372037aac3635b8d81531ca9cdced3
2015-10-16 08:05:59 -06:00
Michael Wu
e4dfd5fc9a servo: Merge #7727 - Support the updated spidermonkey bindings (from michaelwu:update-bindings); r=jdm
Still need to finish the rust-mozjs update and make cargo use it, but it's close enough that I don't expect much to change on the servo side.

Some changes here
- bools are properly translated now
- char16_t is handled as u16 now
- JS_GlobalObjectTraceHook isn't mangled now
- JSJitInfo has been adjusted
- A const fn is used to generate bitfields in JSJitInfo
- Manually generating handles now requires calling an unsafe function. It's not actually required, but it's too much of a hassle to generate them manually now due to bindgen++ adding base classes now.

Source-Repo: https://github.com/servo/servo
Source-Revision: b34fd5bd7e55be1d577df5cf70b41af8a6cc716b
2015-10-14 14:48:44 -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
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
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
Anthony Ramine
d2ee701ee9 servo: Merge #7401 - Remove helper traits (from nox:rm-helpers); r=Manishearth
Now that `JSRef<T>` is gone, there is no need to have helper traits.

Source-Repo: https://github.com/servo/servo
Source-Revision: 909429702972d53bf02dfe9a4aa93ea0cb588cf4
2015-08-27 09:38:48 -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
Ms2ger
b664c7e546 servo: Merge #7263 - Update js (from servo:update-js); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 5b3d3514c1b6fa010a4a5905e01cd2913538a07e
2015-08-18 04:40:54 -06:00
Josh Matthews
2f1aaef81d servo: Merge #6874 - Start reporting memory usage for Window and all nodes in all DOM tree… (from jdm:domreporting); r=njn
…s for frame treese in script tasks.

This underreports by a significant amount, since only Document, Window and CharacterData (ie. text) nodes are fully represented. That being said, every HTML element in the tree is measured, but only counted as a Node. It's easy to improve this, it just requires adding the appropriate HeapSizeOf derives and increasing the granularity of `measure_memory_for_eventtarget`. google.com shows a dom-tree value of 0.24 MB for me at the moment.

r? @nnethercote

Source-Repo: https://github.com/servo/servo
Source-Revision: 84e25befdd97cf74fb00707dbe150d59d980e977
2015-08-03 21:24:41 -06:00
Manish Goregaokar
d990887177 servo: Merge #6688 - Handle type parameters in unused_must_root (from Manishearth:smarter-root-lint); r=jdm
fixes #6651

Source-Repo: https://github.com/servo/servo
Source-Revision: 8a6681ba70c4e8dc524aff7b8fbc3c71167e8745
2015-07-22 07:05:31 -06:00
Ms2ger
60dd967840 servo: Merge #6671 - Renaming browser context to browsing context (from Ms2ger:browser-context); r=jdm
That's what the spec calls it.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3a5e4335d7ff993a859bc5876243423fe4936441
2015-07-20 02:00:30 -06:00
David Winslow
b9c1f245a1 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
Ms2ger
28afc94297 servo: Merge #6446 - Fix some warnings (from Ms2ger:warnings); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: e4412be1b6c0bd5284b2e177b527a3140053f39c
2015-06-23 14:09:23 -06:00
Michael Wu
7512d04e93 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
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
Anthony Ramine
39e9571d13 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
82f444e9cd servo: Merge #5511 - Stop using int/uint in script (from Ms2ger:int); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 036b3eaa04fc4d94b8fd29a9c8e0f6020f55d23d
2015-04-03 13:54:46 -06:00
Manish Goregaokar
5dbe6eb389 servo: Merge #5296 - Replace unsafe_blocks by unsafe_code (from servo:unsafe_code); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 29a36adbe7d87fb38ba9bef3a718c6c823fb5977
2015-03-21 05:12:45 -06:00
Chris Double
76b2c425eb servo: Merge #5202 - Fix #2108 by renaming unwrap functions to native_from_reflector (from doublec:rename_unwrap); r=Ms2ger
Fix for issue #2108. That issue mentions an `unwrap_object` which doesn't seem to exist so I renamed `unwrap` to `native_from_reflector` and `unwrap_jsmanaged` to `native_from_reflector_jsmanaged`. The latter is a bit unweildy - maybe a shorter name might be better?

Source-Repo: https://github.com/servo/servo
Source-Revision: d7e9b8b96b77377fa37fd59cdb8c44fa866b5b2e
2015-03-12 01:51:49 -06:00
Josh Matthews
6ff0a01710 servo: Merge #5118 - Async document loads (from jdm:pageload); r=Ms2ger
Rebased and improved version of #4967.

Source-Repo: https://github.com/servo/servo
Source-Revision: 72f8898990f06e7f505eeaf9cfa671740c60395d
2015-03-03 16:03:45 -07:00
Glenn Watson
d93ca71608 servo: Merge #4842 - Implement window.frameElement, change window.parent to make use of it (from glennw:window-frameelement); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: d0f61f4f85acda3da2f0bbcccc5949f185f94373
2015-02-07 04:51:41 -07:00
Ms2ger
7f6a9f9591 servo: Merge #4850 - Remove the Deref implementation for Root (from Ms2ger:root-deref); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: d439c0d16d6ea1449d207858705d124e191ecc13
2015-02-05 10:51:50 -07:00
Glenn Watson
0fb02d59d2 servo: Merge #4811 - Implement window.parent for iframes (from glennw:window_parent); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 0beb070d482323889556276b122624a2b14cd08b
2015-02-04 15:24:50 -07:00
Ms2ger
03faddf314 servo: Merge #4772 - Use snake case for bindings utils functions (from Ms2ger:snake-utils); r=jdm
This is the Rust style, and there's no reason to deviate here.

Source-Repo: https://github.com/servo/servo
Source-Revision: d026457fdde615bd3185abeda0e844bd42a7805a
2015-01-29 11:45:56 -07:00
Ms2ger
23beb77c9c servo: Merge #4771 - Use snake case for proxyhandler functions (from Ms2ger:snake-proxy); r=jdm
This is the Rust style, and there's no reason to deviate here.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f351cdc3209c0be2e02b9d08fef502eb7aa04ec
2015-01-29 09:39:50 -07:00
Manish Goregaokar
0baa68ddf8 servo: Merge #4739 - Fix some warnings (from Manishearth:warning-patrol); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: d373f8dc26239310dec8d2fd66ed72385548cf6f
2015-01-28 02:27:50 -07:00
Josh Matthews
78741af324 servo: Merge #4719 - Update rustc to 00b112c45a604fa6f4b59af2a40c9deeadfdb7c6/rustc-1.0.0-dev (from servo:rustup_20150109); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 3f9012864a2cd927cf17a8e11dfa6922add1b7df
2015-01-27 18:15:50 -07:00
Tom Schuster
7f57a4451b servo: Merge #4594 - Implement most of the important WindowProxy traps (from evilpie:window-proxy); r=jdm
After this patch somebody just needs to implement the new IndexedGetter (and probably frames/length) on window to fix #4589.

Source-Repo: https://github.com/servo/servo
Source-Revision: a227faa41610cdc826da4ec8d25839c2ec3061db
2015-01-12 09:45:47 -07:00
Ms2ger
7eb4d4db43 servo: Merge #4584 - Deny unsafe blocks in script (from Ms2ger:unsafe); r=jdm
As a first start, this allows them indiscriminately where used.

Source-Repo: https://github.com/servo/servo
Source-Revision: f74d5360ba30ec7aaa12f675eb267fd11053d8a8
2015-01-09 07:15:52 -07:00
Ms2ger
3d0a04c20a servo: Merge #4526 - Move away from Root::deref (from servo:deref-1); r=Manishearth
This is a start towards fixing #3868. Not all callers have been fixed yet, so the `Deref` implementation remains for now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 141b5d038fad3c0c44a6f1b309b8ca9edea54580
2015-01-02 09:22:51 -07:00
Ms2ger
3f568d3a37 servo: Merge #4528 - Stop using ptr.is_not_null() in script (from Ms2ger:is_not_null); r=larsbergstrom
This method is deprecated in rust master; removing its users in advance will
make a future rust upgrade smoother.

Source-Repo: https://github.com/servo/servo
Source-Revision: a61417e2a87004e30e2a02f2e6ae58629062e3d5
2015-01-01 14:42:44 -07:00
Manish Goregaokar
e0c8a4271d servo: Merge #4173 - plugins: Autogeneration of Reflectable; Inheritance lint (from Manishearth:a-more-dom-struct); r=kmcallister
Now `#[dom_struct]` also generates Reflectable impls, and there's another lint to ensure that a DOM struct only contains one bare DOM field (as the first field) or a Reflector.

A lot of this was generated by sed -- each autogenerated change has its own commit for easy review; these will be squashed later.

Source-Repo: https://github.com/servo/servo
Source-Revision: 56d1b16d1b3a18d5ffa1d9c32562d3b209851711
2014-12-27 22:12:45 -07:00
Ms2ger
1d0d6c95fb servo: Merge #4467 - Implement HTMLElement.dataset (from servo:dataset); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 0e6304dcf7fd6712f4455151b55a361de857359d
2014-12-25 02:27:43 -07:00
Glenn Watson
22c4035692 servo: Merge #3948 - Rust upgrade to rustc hash b03a2755193cd756583bcf5831cf4545d75ecb8a (from servo:rustup-20141105_2); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: c5e1b0d32e17fad29799023c85e2e73ac89c3af7
2014-11-12 20:48:31 -07:00
Ms2ger
aaaf47d3f6 servo: Merge #3780 - Cleanup Document (from Ms2ger:cleanup-document); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 43b13e7548f16c0c2721120ebabd89e88ecaf17d
2014-10-23 11:36:40 -06:00
Edit Balint
052d295752 servo: Merge #3774 - Make DOM getters that return &JS<T> return Temporary<T> instead #3707 (from ebalint:3707_DOM_getters); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1bc9c049c6536bc102939fd97f4390eed3dcc2bf
2014-10-22 13:36:38 -06:00
Manish Goregaokar
4271b077f4 servo: Merge #3684 - Add #[dom_struct], inline autogenerated trace() methods (from Manishearth:dom_struct); r=jdm
This attribute implies #[jstraceable], #[privatize], and #[must_root].

Source-Repo: https://github.com/servo/servo
Source-Revision: 9af090006017747809f5f72a8870bd516b20f483
2014-10-15 23:24:20 -06:00
Tim Taubert
993d0f5a2e servo: Merge #3666 - Privatize DOM (fixes #3644) (from ttaubert:issue/3644-privatize-dom); r=Manishearth
This PR removes public fields from all (hope I didn't miss any) DOM structs. Should |Page| be privatized as well? This PR additionally introduces a #[privatize] lint to ensure nobody accidentally re-introduces a public field.

All changesets compile separately if applied in the same order. Hope that helps reviewing but I can of course squash them before merging.

Source-Repo: https://github.com/servo/servo
Source-Revision: f350879574194bb612eac88e21d0920e9827afa7
2014-10-13 22:00:37 -06:00
Tim Taubert
fc4bdae442 servo: Merge #3620 - Remove unnecessary deref()s (fixes #3586) (from ttaubert:issue/3586-remove-derefs); r=Manishearth
r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 510f8a817f8144dd5046886d4ca7c612f19a3d08
2014-10-09 07:12:37 -06:00
Manish Goregaokar
da1369f261 servo: Merge #3518 - Purge Traceable and Untraceable from Servo (from Manishearth:trace-cleanup); r=jdm
Now that we use `JSTraceable` (defined in `script`), we can create arbitrary implementations on non-`script` types (eg `Url` or `RequestHeaderCollection`) where in the past we had to rely on `Traceable` and `Untraceable` to achieve cross-crate impls of `Encodable`.

This removes the two completely. They can be reintroduced if required, though the `untraceable!` macro should suffice.

Fixes #3469

Source-Repo: https://github.com/servo/servo
Source-Revision: b34df7c343579f200d2e67e21fc566842a4e4a91
2014-10-06 10:15:33 -06:00
Manish Goregaokar
298a76a187 servo: Merge #3468 - Replace our usage our Encodable with JSTraceable; r=jdm (from Manishearth:jstraceable)
Source-Repo: https://github.com/servo/servo
Source-Revision: 95a4731c0eec0cfb2fb70af534757bc7ca63e407
2014-09-24 20:56:41 +05:01
Simon Sapin
e9f1c0bcd3 servo: Merge #3438 - Upgrade Rust (from servo:rustup)
Source-Repo: https://github.com/servo/servo
Source-Revision: 045328c8e94f5bdfcd67105c5dfa9209f4cd501c
2014-09-20 15:35:08 -07:00
Cameron Zwarich
74b96ae97e servo: Merge #3422 - First steps of &JSRef -> JSRef conversion (from zwarich:jsref)
Source-Repo: https://github.com/servo/servo
Source-Revision: e9ad87e27eb30cfacd66b575e104ee2784f95591
2014-09-19 19:28:32 -07:00
Manish Goregaokar
655b31f137 servo: Merge #3374 - Add lint for ensuring proper rooting of JS<T>; r=jdm (from Manishearth:lint_unrooted_jsmanaged)
Source-Repo: https://github.com/servo/servo
Source-Revision: 11ba79894a13ddaee4bfcdd64d23fd4b54a041f3
2014-09-17 17:48:19 +05:01