bors-servo
2c259f477c
auto merge of #4057 : jdm/servo/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.
2014-12-29 11:57:45 -07:00
Josh Matthews
9a7cd31134
Force all messages to worker tasks to send a TrustedWorkerAddress along with the ScriptMsg. This ensures that the main-thread Worker object is rooted for as long as there are events in flight or being processed.
2014-12-29 13:53:49 -05:00
Josh Matthews
2f059c15e7
Allow refcounting arbitrary DOM objects in concert with the GC to enable safe, asynchronous/cross-task references to pinned objects.
2014-12-29 13:53:48 -05:00
Bruno de Oliveira Abinader
ab618dd9c7
Add support for named deleter
...
Closes #4469 .
2014-12-29 12:58:48 -04:00
ProgramFOX
18d8ee6ce0
Added readonly flag for CSSStyleDeclaration
2014-12-28 17:39:07 +01:00
bors-servo
56d1b16d1b
auto merge of #4173 : Manishearth/servo/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.
2014-12-27 22:12:45 -07:00
Ms2ger
0031498e6b
Remove some transmute calls.
2014-12-27 17:07:32 +01:00
Manish Goregaokar
e9d1740e19
script: to_string() -> into_string()
2014-12-27 14:48:36 +01:00
Manish Goregaokar
50c246bdc5
Fix warnings post-upgrade
2014-12-27 03:28:35 +05:30
Manish Goregaokar
21a888341d
Ensure that Reflectors are the first field
2014-12-27 02:53:36 +05:30
Manish Goregaokar
d761877ef6
Add inheritance-checking lint
2014-12-27 02:53:35 +05:30
Manish Goregaokar
7d65673561
Remove extra spaces
...
Command: `find . -maxdepth 1 -type f -print0 | xargs -0 sed -z -i "s/}\\n\\n\\n/}\\n\\n/"`
2014-12-27 02:53:35 +05:30
Manish Goregaokar
552db382d6
Remove manual impls of Reflectors (autogen)
...
Obtained via:
`find . -maxdepth 1 -type f -print0 | xargs -0 sed -z -i "s/\\nimpl Reflectable for[^{]*{[^}]*}[^}]*}\\n//"`
`find . -maxdepth 1 -type f -print0 |xargs -0 grep -lZ dom_struct | xargs -0 grep -LZ "reflector()\\|Reflector::new" |xargs -0 sed -z -i "s/use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};/use dom::bindings::utils::reflect_dom_object;/"`
followed by semi-automated removal of leftover imports
2014-12-27 02:52:33 +05:30
Bruno de Oliveira Abinader
5afcf3ef65
Implement DOMTokenList.toggle
2014-12-26 14:55:27 -04:00
Bruno de Oliveira Abinader
2cfb4648ce
Implement DOMTokenList.remove
2014-12-26 14:55:27 -04:00
Bruno de Oliveira Abinader
aa29dc195d
Implement DOMTokenList.add
2014-12-26 14:55:27 -04:00
Bruno de Oliveira Abinader
08e7cf24cd
DOMTokenList::check_token_exceptions now returns an Atom
2014-12-26 14:55:26 -04:00
Bruno de Oliveira Abinader
51fac3d2cc
Added Element::get_tokenlist_attribute
2014-12-26 14:55:26 -04:00
Bruno de Oliveira Abinader
8859286a99
Added AttrValue::from_atomic_tokens & Element::set_atomic_tokenlist_attribute
2014-12-26 14:55:26 -04:00
Bruno de Oliveira Abinader
c5f7e553e4
Avoid duplicated tokens in AttrValue::from_serialized_tokenlist
2014-12-26 13:08:20 -04:00
Bruno de Oliveira Abinader
eb3678fa28
AttrValue's s/from_tokenlist/from_serialized_tokenlist/
2014-12-26 13:08:20 -04:00
bors-servo
0e6304dcf7
auto merge of #4467 : servo/servo/dataset, r=Ms2ger
2014-12-25 02:27:43 -07:00
Matt McCoy
bdb75c2146
This fixes #4166 . throw_dom_exception will take the GlobalRef by value, and all generated code will pass it by value.
2014-12-24 17:16:48 -05:00
Ms2ger
919f2217f0
Implement dummy getOwnPropertyNames and enumerate traps.
2014-12-24 17:17:40 +01:00
thiagopnts
eacbe331c9
Replace bool attribute in Element::update_inline_style with a descriptive enum
2014-12-24 13:23:58 -02:00
bors-servo
194ce20969
auto merge of #4474 : thiagopnts/servo/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.
2014-12-24 03:45:44 -07:00
thiagopnts
271aa277e9
Replace XHR events for generic ones in ScriptTask
...
fixup! Replace XHR events for generic ones in ScriptTask
fixup! Replace XHR events for generic ones in ScriptTask
2014-12-23 23:53:38 -02:00
Adam Sunderland
674fe910c1
Add GetPropertyPriority to CSSStyleDeclaration
...
Tweak getPropertyPriority to match recommendations
Adding Tests for Style Priority
Use else if
Adding Content Test for GetPropertyPriority
Revert "Adding Tests for Style Priority"
This reverts commit 8666a37f833b06c3e43f27acd8a9678e94425e55.
2014-12-23 11:41:33 -06:00
ProgramFOX
07d37af37e
Implemented CSSStyleDeclaration.setPropertyPriority
...
Implemented CSSStyleDeclaration.setPropertyPriority, resolves #4433
2014-12-23 17:14:45 +01:00
Bruno de Oliveira Abinader
57c520d8cf
Implement HTMLElement.dataset ( fixes #2974 ).
2014-12-23 14:24:06 +01:00
Bruno de Oliveira Abinader
285a06ff59
Implement Element::set_custom_attribute.
2014-12-23 14:23:30 +01:00
Bruno de Oliveira Abinader
63ed36cfce
Factor out the name handling in Element::{Get,Set,Remove}Attribute.
2014-12-23 14:23:30 +01:00
Bruno de Oliveira Abinader
e0bab08754
Correct the generated code for NamedSetter calls.
2014-12-23 14:23:22 +01:00
Bruno de Oliveira Abinader
ade0b7be8e
Use the custom defineProperty trap when it exists.
2014-12-23 14:22:30 +01:00
Bruno de Oliveira Abinader
c82eb3b1a4
Call the NamedGetter method from the get trap in proxy bindings.
2014-12-23 13:02:52 +01:00
Ms2ger
dc63735ca7
Revert PR #4038 for causing WPT failures.
2014-12-23 09:53:12 +01:00
bors-servo
a773bd5c45
auto merge of #4454 : amwatson/servo/global_update, r=jdm
...
Changed fn_wrap argument in reflect_dom_object() and reflect_node() to pass GlobalRef by value rather than by reference. Fixes #4165
2014-12-20 17:51:44 -07:00
bors-servo
6efa7eedbc
auto merge of #4452 : Ms2ger/servo/_obj_toString, r=jdm
2014-12-20 17:24:44 -07:00
Amanda Watson
582ba9d796
GlobalRef passed by value in reflect_dom_object, reflect_node #4165
2014-12-20 16:20:53 -08:00
bors-servo
b4025f167f
auto merge of #4451 : Ms2ger/servo/bytestring-doc, r=jdm
2014-12-20 16:57:43 -07:00
Ms2ger
8b3d64f8e3
Reindent _obj_toString.
2014-12-20 16:44:24 +01:00
Ms2ger
ef3901fceb
Simplify _obj_toString by using JS_NewStringCopyN.
2014-12-20 16:40:20 +01:00
bors-servo
661144d285
auto merge of #4450 : Ms2ger/servo/domrefcell-doc, r=jdm
2014-12-20 08:36:43 -07:00
Ms2ger
ca2ce8e5b8
Require documentation for ByteString.
2014-12-20 16:12:13 +01:00
bors-servo
1f74e54bb2
auto merge of #4038 : brunoabinader/servo/dataset, r=Ms2ger
...
Spec: https://html.spec.whatwg.org/multipage/dom.html#dom-dataset
Closes #2974 .
2014-12-20 08:06:44 -07:00
Ms2ger
7ec11b22b4
Document DOMRefCell.
...
Based on the RefCell documentation.
2014-12-20 15:11:20 +01:00
Ms2ger
0274978a08
Remove the unused DOMRefCell::unwrap method.
2014-12-20 15:03:11 +01:00
Ms2ger
96180ec3ad
Move unwrap_jsmanaged and related machinery to conversions.rs.
2014-12-20 14:51:14 +01:00
Ms2ger
73c236ce3b
Use unwrap() when finalizing.
...
This allows us to duplicate a little less code.
2014-12-20 14:07:23 +01:00
Ms2ger
b8c2573f4d
Remove the proto_{id,depth} arguments from unwrap_jsmanaged.
...
Instead, we infer them from the type we're unwrapping into. This will prevent
any mismatches between the type we return and the type we check for.
2014-12-20 13:48:21 +01:00