Commit Graph

35 Commits

Author SHA1 Message Date
Josh Matthews
b23f44d460 servo: Merge #4057 - Enable refcounting arbitrary DOM types (from jdm:refcountdom); r=Ms2ger
This replaces the specialized TrustedXHRAddress and TrustedWorkerAddress code that was used for the same purpose. A non-zero refcount pins the given DOM object's reflector and prevents it from being GCed even when there are no other outstanding references visible to SpiderMonkey. This will enable us to implement asynchronous operations that refer to particular DOM objects (such as "queue a task to fire a simple event named load at the iframe element" from the spec) safely and conveniently, and paves the way for things like asynchronous network responses.

Some concerns about the resulting size of XHR progress messages have been expressed, but I believe optimizations to reduce that can be implemented in subsequent PRs.

r? @Ms2ger - note in particular the changes to the worker lifetime code. I couldn't figure out how to achieve an identical lifetime to the previous addref/release pairing, and I also was having trouble figuring out why the existing setup was safe. The new implementation now holds the main script task Worker object alive via the TrustedWorkerAddress field in the dedicated worker global scope, which is a significant difference.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c259f477c41331e66beab8bda865971982a1ff4
2014-12-29 11:57:45 -07:00
Manish Goregaokar
2f9e35cd21 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
Manish Goregaokar
8e0ed407b9 servo: Merge #4485 - Replace most to_string calls by into_string calls (from servo:into_string); r=Ms2ger
`str::to_string()` goes through a `Formatter`, `str::into_string()` is a direct copy and is apparently 5× faster.

This is a rebase of the boring and bitrot-prone parts of #4366.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9857ea26cb9ee262654bee97322dbbf373486bff
2014-12-27 06:51:44 -07:00
thiagopnts
cc03f684ac servo: Merge #4474 - Replace XHR events for generic ones in ScriptTask (from thiagopnts:generic-msgs); r=jdm
This refs #3735. As discussed in the issue, I did it cloning when I couldn't dereference an attribute. The trait method should be on `&self` for object-safety reasons.

Source-Repo: https://github.com/servo/servo
Source-Revision: 194ce20969f04bf2d077ebed106fc1bfb5eb32ee
2014-12-24 03:45:44 -07:00
Tetsuharu OHZEKI
d32b4e13f5 servo: Merge #4434 - script: Remove glob imports added in #4405 (from saneyuki:glob_script); r=jdm
#4406

Source-Repo: https://github.com/servo/servo
Source-Revision: 803e5ef7904f2843d8e44184f9154af079eea9fa
2014-12-18 15:57:48 -07:00
Glenn Watson
636d338cf6 servo: Merge #4405 - Update rustc to revision 3dcd2157403163789aaf21a9ab3c4d30a7c6494d (from servo:rustup_20141124); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fbf42c951b2f53d91e2f32f8035484a07ea83493
2014-12-17 18:45:49 -07:00
thiagopnts
eb7182b71b servo: Merge #4374 - Add auxiliary method to EventTargetHelpers for events without target (from thiagopnts:dispatch-event); r=Ms2ger
servo/pull/4369 with the right commit.

Source-Repo: https://github.com/servo/servo
Source-Revision: 746b262ff4e23db11586f74ef1a03e98cb12bb52
2014-12-16 06:36:47 -07:00
Joseph Crail
6c02d6ca77 servo: Merge #4171 - Fix spelling mistakes in comments (from jbcrail:fix-spelling); r=jdm
I only updated comments, not strings.

Source-Repo: https://github.com/servo/servo
Source-Revision: f451005f4fe075c849de2f3766f5bf84510b8465
2014-12-12 02:12:51 -07:00
Med0paW
1b1787368c servo: Merge #4254 - Issue 4253 - Setting timeout on a sync XHR should throw InvalidAccessErr (from medopaw:settimeout-on-sync-error); r=Manishearth
fix #4253

Source-Repo: https://github.com/servo/servo
Source-Revision: 33836715a8703299b931f9f891ec6524cca160a7
2014-12-05 20:13:02 -07:00
Manish Goregaokar
08f0462c06 servo: Merge #4198 - Hyper+OpenSSL on Android (from Manishearth:hyper-droid); r=Manishearth
This is the Hyper pull request, plus the set up for OpenSSL on Android to make it merge.

Sean's commits have been reviewed in #4065 (My Android changes were reviewed by Glenn)

Source-Repo: https://github.com/servo/servo
Source-Revision: 6bd9bf979bcfa96ea14e666b59eab01a6d6c373e
2014-12-05 04:16:11 -07:00
Michael Booth
fec3728296 servo: Merge #4156 - Updated reflect_dom_object to be passed by value fixes #4122 (from Michael03:master); r=Ms2ger
This fixes issue #4122

Source-Repo: https://github.com/servo/servo
Source-Revision: ed45aa9efd6cf238a83fcae6a772886df61771f7
2014-12-02 05:24:49 -07:00
Kshitij Parajuli
4e20eea707 servo: Merge #4000 - M1456: Shared SnifferTask (from t29:mime-sniffing); r=jdm
Issue: #3144

This PR addresses the second step of the ticket. i.e. move from a 1:1 sniffer:request task model to a shared sniffer task.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1ac79c64da4b14f83fed6ca123a81417b9c0fc87
2014-11-28 10:51:44 -07:00
Jesse Tuchsen
b71070cc03 servo: Merge #4128 - Fixes #3962 (from jtuchsen:issue-3962); r=jdm
Bad HTTP responses now have a 0 status code instead of 200 OK.

Source-Repo: https://github.com/servo/servo
Source-Revision: b56bab4e407b38fa1e58d8be247ecd5f156c89bc
2014-11-27 13:42:41 -07:00
Glenn Watson
71f726977a 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
Mukilan Thiyagarajan
ba2758d4ef servo: Merge #3917 - XHR - Trigger readystatechange when transitioning from HEADERS_RECEIVED to DONE (from mukilan:xhr-status-async); r=jdm
Fixes #3877

Source-Repo: https://github.com/servo/servo
Source-Revision: 338a9c3f054db0244185c3d85b47e427b6070e37
2014-11-06 19:00:29 -07:00
Manish Goregaokar
fb1ac370f7 servo: Merge #3903 - Improve docs and #[must_root] checking in plugins crate (from Manishearth:plugin-fixes); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 57cb8a10f0f6ed445ed7ba88a3fa19d56bd7015e
2014-11-05 20:03:34 -07:00
Mukilan Thiyagarajan
990fd52b7f servo: Merge #3732 - Fix race condition in XHR and handle other abort/open scenarios (from mukilan:xhr-issue-3630); r=jdm
This fixes issue #3630
A short summary of the changes:
* Use atomic generation id to cancel inflight requests
* Handles nested calls to abort, open, send inside handlers
* Adds XHRReleaseMsg to delay freeing XHR object till all
  inflight events are processed
* Handles both timeout, errors and abort/open in a symmetric fashion
  i.e All inflight events will be cancelled for timeouts, aborts,
    errors and on calling open.
* Change the ErroredMsg enum to be more symmetric with the returned
  Error enum

I noticed a few possible changes that could make the code for fetch task simpler:
* We can remove the additional timer task and let the fetch task manage
  its own timer (or maybe the resource loader can do this.)
* The CORS related steps could also be moved into the resource loader.
* Right now upload events are not support. This requires some support
  from resource loader.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4e24e4d8e92528a5a6f7bb571c6557b5bca11ea9
2014-11-04 05:06:34 -07:00
Clark Gaebel
73be3aed6e servo: Merge #3827 - Run all task spawning through util, to allow for easy hooking (from cgaebel:use-custom-spawn); r=pcwalton
During debugging, I found it useful to hook all task creation in a
central location, and util::task was the perfect place for it.

r? @pcwalton (or maybe someone else, I'm kinda sending you a bunch of
reviews today because I don't know who better to give them to)

Source-Repo: https://github.com/servo/servo
Source-Revision: ff06be91ebe770290ba912ee71a303810aa62cea
2014-10-28 11:24:43 -06:00
Tetsuharu OHZEKI
19bfe8ebf2 servo: Merge #3776 - Macroize event handler getters and setters (from saneyuki:macro); r=jdm
Fix #3755

This doesn't convert some specialized event handlers (e.g. `HTMLBodyElement`'s ones, `HTMLElement.GetOnload()`).

Source-Repo: https://github.com/servo/servo
Source-Revision: 470d27a6681b4647de64c085654403820d48f7af
2014-10-22 22:30:29 -06:00
Tetsuharu OHZEKI
9ee50fb2d1 servo: Merge #3737 - Use DOMRefCell in script crate (from saneyuki:cell); r=jdm
#3050

Altough LayoutDataRef is touched from layout, we don't use DOMRefCell in it becasuse
it's expected to manipulate in layout task.

Source-Repo: https://github.com/servo/servo
Source-Revision: f5e8df9dac9330f2818906c471ed05f5975828c6
2014-10-22 07:54:36 -06:00
Manish Goregaokar
3bb2ca07b8 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
e87471af27 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
03e0ecf19a servo: Merge #3651 - Make Event::new take enumerated values instead of booleans (fixes #3643) (from ttaubert:issue/3643-event-new-enums); r=Manishearth
r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 293e06fd7cf3c79e377fc1ce619ee790c46f9858
2014-10-13 19:12:38 -06:00
Tim Taubert
1b867d1d8a 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
052cbff92f 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
Josh Matthews
5bcc29c13a servo: Merge #3531 - Implement MutNullableJS for mutable, nullable member pointers to DOM objects (from Ms2ger:MutNullableJS); r=Ms2ger
Extracted from #3527.

Source-Repo: https://github.com/servo/servo
Source-Revision: bae5440689c67f425f94ec27bf0f61ff955dc290
2014-10-01 09:09:28 -06:00
Simon Sapin
b3423c8393 servo: Merge #3487 - Upgrade Rust and enable style crate rustdoc (from servo:rustup-20140923); r=Ms2ger
The biggest language change is that enum variants now also reserve (for future use) a name in the type namespace, which must not collide with other types. Some things were renamed, and others qualified as `module::name`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7409685589c550ee7a9f94182f511acddab4c6fd
2014-09-29 10:45:27 -06:00
Ms2ger
7a5be2490b servo: Merge #3522 - Don't move the data when extracting the bytes in XMLHttpRequest::Send (from Ms2ger:xhr-send-uaf); r=SimonSapin
The data is used later to set the Content-Type header. Current rustc
(4d2af3861) does not detect this use-after-move, but treats the later use as
if the data was None. It will, however, detect the bug in d2b30f7d3, which we
are upgrading to.

Source-Repo: https://github.com/servo/servo
Source-Revision: a58324f25b6f87d005026d8f9405c9f0d89a1f74
2014-09-29 09:57:27 -06:00
ProgramFOX
4860dbe4ab servo: Merge #3489 - Made some DOM fields private (from ProgramFOX:issue2242-2)
Reviewed-by: jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 39b6bd9b9586d101943055202a7e06eb8d349dd8
2014-09-26 19:30:33 -06:00
Manish Goregaokar
f9ff33e0ec 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:55:41 +05:00
Simon Sapin
e245f210fb 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
60b0bd5f8d servo: Merge #3433 - More progress in the &JSRef -> JSRef conversion (from zwarich:jsref-self-helpers)
Source-Repo: https://github.com/servo/servo
Source-Revision: d6ba37c68c34a3748a789caeca225083275757e5
2014-09-20 12:55:21 -07:00
Cameron Zwarich
d6fa87d24b 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
1a1910fec1 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:47:19 +05:00
Jack Moffitt
132ee35633 servo: Merge #3230 - Cargoify servo (from servo:cargoify)
Source-Repo: https://github.com/servo/servo
Source-Revision: b1305bb7d051f83850c51bb0da0ccc86a5e07922
2014-09-09 08:18:18 -06:00