Commit graph

124 commits

Author SHA1 Message Date
Manish Goregaokar
ee56b45a8c Use Traceable for primitive types and DOMString 2014-06-16 21:59:01 +05:30
bors-servo
c0576108c5 auto merge of #2585 : ebalint/servo/2530, r=jdm 2014-06-13 14:04:45 -04:00
Edit Balint
94ec3cde8a Split Page code out of script_task.rs #2530 2014-06-13 19:28:57 +02:00
Ms2ger
e09ed14362 Remove Reflectable::mut_reflector. 2014-06-13 19:19:58 +02:00
Manish Goregaokar
e21faaaba7 Don't fail on clearing nonexistant timeouts 2014-06-13 16:54:24 +05:30
Ms2ger
e9b64dc361 Use internal mutability for Window::{active_timers, next_timer_handle}. 2014-06-11 19:51:07 +02:00
Ms2ger
07c67a1d5a Use internal mutability for Window::browser_context. 2014-06-11 19:51:07 +02:00
Ms2ger
9acba1477c Use internal mutability for EventTarget. 2014-06-11 19:51:06 +02:00
Ms2ger
6308ed914c Support GlobalEventHandlers.onclick. 2014-06-08 18:50:27 +02:00
Jack Moffitt
629c4c6afe Upgrade Rust. 2014-06-05 09:58:59 -06:00
Tetsuharu OHZEKI
884346030c Remove needless '&mut self' from WindowMethods. 2014-06-04 00:55:23 +09:00
Ms2ger
97efd122a3 Rename BindingDeclarations to Bindings. 2014-06-02 19:48:42 +02:00
Ms2ger
c1d2d700c5 Remove not-yet-implemented APIs, and update MouseEvent to specification. 2014-06-02 12:32:09 +02:00
Ms2ger
33e64c95d3 Include modules with only callbacks in BindingDeclarations.
This commit also includes improvements to the 'use' order in some of the
touched files.
2014-05-31 18:58:04 +02:00
Tetsuharu OHZEKI
1f8eda957d Use Cell/RefCell for interior mutability of Window. 2014-05-30 03:54:24 +09:00
Josh Matthews
003e5bcd46 Port modern callback handling code from Gecko, and copy related WebIDL parser bits too. 2014-05-27 20:43:52 +02:00
Josh Matthews
2d6153772c Add stubs for inline event handler manipulation. 2014-05-27 20:43:48 +02:00
Ms2ger
d5cb4377ef Use *mut T for the T* pointers in SpiderMonkey. 2014-05-26 18:19:44 +02:00
Tetsuharu OHZEKI
46d31632e0 Initial spec-incompliant implementation of default click action for anchor elements.
This is cherry-picked from https://github.com/mozilla/servo/pull/1688:

  * Initial spec-incompliant implementation of default click action for anchor elements.
  * Add documentation; gut the new document URL loading method
    and move it all into the new Window method.
  * Add test for default event prevention.

Original developer: Josh Matthews <josh@joshmatthews.net>
2014-05-23 23:30:09 +09:00
Ms2ger
eaedeb07cb Update Rust. 2014-05-22 16:36:40 -06:00
Ms2ger
44fb9eb28f Avoid unnecessary Rc clone in Window::new. 2014-05-14 12:26:24 +02:00
Tetsuharu OHZEKI
facffe0966 Move Window helper methods to a WindowHelpers trait 2014-05-14 13:14:29 +09:00
Ms2ger
ab5bf80447 Drop the pointless indirection in Window::active_timers. 2014-05-12 17:15:35 +02:00
Ms2ger
30055d9820 Move debug functions to Window IDL.
This is a cleaner way to expose those functions, and makes it possible to
remove a significant amount code in rust-mozjs.

The assert() function is no longer exposed, as it was unused and not very
useful.
2014-05-09 14:44:07 +02:00
Gulshan Singh
fb0c433b70 Add Performance object to Window and implement Performance::Now() 2014-05-07 17:30:33 -04:00
Ms2ger
243814022e Replace all ~"" with "".to_owned(). 2014-05-03 22:17:45 +02:00
Josh Matthews
0f2d0b1dc3 Address review comments. 2014-05-03 14:18:31 -04:00
Josh Matthews
a09a4bd297 Root Temporary values for the duration of their lifetime. 2014-05-03 14:18:31 -04:00
Josh Matthews
522d3f167b s/Unrooted/Temporary/g 2014-05-03 14:18:31 -04:00
Josh Matthews
7daa97c7e5 Remove abstract_self. 2014-05-03 14:18:30 -04:00
Josh Matthews
76783b029e Move WebIDL methods to traits implemented by JSRef types. 2014-05-03 14:18:30 -04:00
Josh Matthews
d7b96db33c Implement safe rooting strategy via Unrooted, Root, JSRef, and JS. 2014-05-03 14:18:30 -04:00
Josh Matthews
ffdc3f5b32 Turn on GC all the time. Fix rooting errors during parsing and storing timers. Fix borrow errors during tracing. 2014-05-03 14:18:30 -04:00
Tetsuharu OHZEKI
78856c87a4 Remove the 'pub use self::BindingDeclarations::*;' export. 2014-05-01 18:49:16 +09:00
Ms2ger
3ecfb9197f Remove unused support for passing extra arguments for timers. 2014-04-28 23:06:25 +02:00
Lars Bergstrom
948daf2422 This batch of changes upgrades Servo to work with the Rust upgrade as of
April 10, 2014. The main changes are to privacy, to work around the
issues with incorrect bounds on the libstd `Arc<Mutex<T>>`, and the
various API changes strewn throughout the libraries.
2014-04-27 15:46:12 -05:00
Josh Matthews
be2b983ec1 Make the I Tried star appear when a top-level page load fails for network-related reasons.
Under the hood, this requires treating the I Tried pipeline as a new load instead of a replacement, since the failure-handling code interacts poorly with the rest of the replacement code when we get a series of staggered failures over time from the various pipeline components.
2014-04-24 01:07:52 -04:00
Josh Matthews
94dffca1e1 Remove all traces of WindowProxy. Implement basic browser context concept and outerizing of inner windows. 2014-04-22 10:57:25 -04:00
Ms2ger
4f9e119334 Remove JSPageInfo::js_compartment.
A js::rust::Compartment is little more than a glorified pointer to the
reflector of a window, so there's no good reason to use it. Instead, this
commit passes a JS<Window> directly when it's necessary.

This also means that we now have to use JS_DefineFunctions rather than
Compartment::define_functions; I believe the former is clearer to the reader
than the extra indirection involved in the latter calling through three
reopsitories.

This commit also simplifies ScriptTask::load to reuse the 'cx' local that is
in scope already, rather than refetching it through js_info.
2014-04-21 13:43:18 +02:00
Josh Matthews
742f73ded5 Add transparent Traceable and Untraceable types to aid proper rooting practices, and replace ad-hoc Untraceable structs with empty Encodable implementations. 2014-04-17 17:41:09 -04:00
lpy
b7dcf62ed0 Implement Window.set/clearInterval.(fixes #2116) 2014-04-18 01:30:39 +08:00
Josh Matthews
b87d351fee Remove all traces of C wrappers for SpiderMonkey class stubs. 2014-04-08 10:15:12 -04:00
Ms2ger
31eee791dd Upgrade rust. 2014-04-04 20:10:32 +02:00
Martin Robinson
1a8a3cc271 Store Window.active_timers in a HashMap
A HashMap allows easily looking up a timer and canceling it in
Window.ClearTimeout.

Fixes #1477.
2014-03-31 15:07:50 -07:00
bors-servo
7f188500a1 auto merge of #1915 : Ms2ger/servo/wrap-return-js, r=jdm
This lets us avoid the sketchy tricks in JS::new and Window::new, where we
kept an unsafe pointer to the native object across the Wrap call that
consumed the owned pointer.
2014-03-19 19:01:48 -04:00
Josh Matthews
64c0de9fe7 Warning police. 2014-03-18 09:31:22 -05:00
Lars Bergstrom
bbac8aa5c3 Rust upgrades 2014-03-18 09:30:35 -05:00
Ms2ger
4ad3b6ccd1 Return a JS<T> from *Binding::Wrap rather than a JSObject.
This lets us avoid the sketchy tricks in JS::new and Window::new, where we
kept an unsafe pointer to the native object across the Wrap call that
consumed the owned pointer.
2014-03-14 13:06:51 +01:00
Ms2ger
a15cac53bc Don't use the Untraceable fields outside the module they're defined in.
This pattern will become illegal with the next Rust upgrade.
2014-03-12 14:30:19 +01:00
Ms2ger
84b0f45ed5 Use FooValue() functions. 2014-03-09 18:51:38 +01:00