Commit graph

6319 commits

Author SHA1 Message Date
Bobby Holley
441c84d75d Pass the document instead of the documentElement to reflow. 2015-10-27 12:41:16 -07:00
Bobby Holley
630b9f8fa0 Implement Hash and Eq for JS<T> and LayoutJS<T>. 2015-10-27 12:41:14 -07:00
bors-servo
d1295e9e7d Auto merge of #8040 - froydnj:codegen-arg-info, r=jdm
generate JIT argument type information for methods

This enhances `CodegenRust.py` to output `JSTypedMethodJitInfo` structures where appropriate.  This brings a notable speedup to tests like Dromaeo's `dom-attr/getAttribute`, which improves by several orders of magnitude with these patches applied.

If there are tricks for addressing the XXX comments, I would appreciate hearing them.

I think this addresses all of #6904.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8040)
<!-- Reviewable:end -->
2015-10-28 01:06:06 +05:30
Nathan Froyd
4f649ac6dd generate JIT argument type information for methods
Fixes #6904.
2015-10-27 15:09:32 -04:00
Nathan Froyd
dd74572dc0 add CGMemberJITInfo.{getJSArgType,getSingleArgType}
These are copied directly from Gecko's Codegen.py, with two changes:

- We need to use ArgType:: to qualify the enums rather than plain
  JSJitInfo::

- Given Rust's stronger notion of enums, we need to treat everything as an
  i32 so we can bitwise-or things together.
2015-10-27 15:07:55 -04:00
bors-servo
a6e2c138db Auto merge of #8217 - wenderen:8211-remove-documentprogresstask, r=Manishearth
remove DocumentProgressTask enum

for #8211

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8217)
<!-- Reviewable:end -->
2015-10-27 00:12:02 -05:00
David Zbarsky
a63c98c24a Implement HTMLCanvasElement#toDataURL 2015-10-26 21:24:21 -07:00
Rohan Prinja
6b42a7366a remove DocumentProgressTask enum 2015-10-27 10:24:37 +09:00
bors-servo
704c5ef25a Auto merge of #7979 - tschneidereit:script-loading-fixes, r=jdm
Improve spec-compliance of script loading and execution during document startup

Including proper support for async and deferred scripts.

r? @jdm

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7979)
<!-- Reviewable:end -->
2015-10-26 15:48:23 -05:00
Till Schneidereit
a0c5d47910 Improve spec-compliance of script loading and execution during document startup
Including proper support for async and deferred scripts.
2015-10-26 21:35:09 +01:00
bors-servo
6c051ce828 Auto merge of #8201 - KiChjang:add-missing-htmlpreelement, r=jdm
Add missing htmlpreelement

Fixes #7995. My tests came out pretty weird, with additional crashes and timeouts.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8201)
<!-- Reviewable:end -->
2015-10-26 14:07:50 -05:00
Keith Yeung
1fc50af8d3 Add HTMLPreElement type to xml and plaintext DOM nodes 2015-10-26 10:22:04 -07:00
bors-servo
2091aafcfb Auto merge of #8206 - Ms2ger:dlb-canvas, r=jdm
Cleanup layout interaction with canvas elements. 



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8206)
<!-- Reviewable:end -->
2015-10-26 10:27:47 -05:00
bors-servo
af8a1cb8a0 Auto merge of #8178 - frewsxcv:label, r=nox
Implement a couple attributes for <label> elements



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8178)
<!-- Reviewable:end -->
2015-10-26 09:51:56 -05:00
bors-servo
6b95c3957b Auto merge of #8097 - wenderen:8090-partialeq-for-mutheap, r=nox
implement PartialEq for MutHeap<JS<T>> and MutNullableHeap<JS<T>>

for #8090

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8097)
<!-- Reviewable:end -->
2015-10-26 06:08:01 -05:00
Ms2ger
b1f4bf617d Pass all the data layout needs from canvas elements at once. 2015-10-26 11:43:23 +01:00
Rohan Prinja
c1abb4fdb2 clean code as per code review 2015-10-26 03:52:05 +09:00
Ms2ger
54d3462fa5 Use the new define_methods and define_properties functions from js. 2015-10-25 19:50:10 +01:00
Axel Solis Trompler
5542f87400 Refactor document.createEvent(touchevent) 2015-10-25 16:36:16 +01:00
Corey Farwell
98a6fc07e2 Implement 'htmlFor' attribute for <label> elements 2015-10-25 08:06:44 -04:00
Corey Farwell
f97d1d148b Implement 'control' attribute for <label> elements 2015-10-25 08:06:31 -04:00
Tetsuharu OHZEKI
04967ed97e script: Element.webkitMatchesSelector()
spec:
9ac9c15486
2015-10-25 15:27:20 +09:00
Dongie Agnir
b5e991c89e Replace if-else with match. 2015-10-24 19:10:52 -10:00
bors-servo
bb88832c07 Auto merge of #8073 - eefriedman:root-lint, r=Manishearth
Make unrooted_must_root a bit more aggressive.

Basically, instead of trying to check for specific kinds of statements,
just check the types of all local variables.

Also included are some commented-out proposals for some slightly more
aggressive lints which might be useful (but trigger a little too
frequently at the moment).

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8073)
<!-- Reviewable:end -->
2015-10-24 20:20:04 -05:00
Corey Farwell
48ea5959c7 Remove unnecessary allocation with getElementById 2015-10-24 17:50:42 -04:00
Dongie Agnir
ea21db6a0f Move cast into if block. 2015-10-23 13:59:02 -10:00
Dongie Agnir
663801ed79 ask for reset and pick on option insert. 2015-10-23 13:16:52 -10:00
Dongie Agnir
6e9e1465bf Implement pick_option. 2015-10-23 13:12:06 -10:00
bors-servo
354e75a447 Auto merge of #8171 - Ms2ger:reflector, r=jdm
Remove the default implementation of Reflectable::init_reflector.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8171)
<!-- Reviewable:end -->
2015-10-23 17:49:28 -05:00
Dongie Agnir
b1d6b0f797 Implement ask_for_reset for HTMLSelectElement.
Fixes #7774
2015-10-23 11:47:20 -10:00
Eli Friedman
a9ef40c716 Don't allow unrooted values in function arguments. 2015-10-23 14:44:19 -07:00
Eli Friedman
81ecf7824c Make unrooted_must_root a bit more aggressive.
Basically, instead of trying to check for specific kinds of statements,
just check the types of all local variables.

Also included are some commented-out proposals for some slightly more
aggressive lints which might be useful (but trigger a little too
frequently at the moment).
2015-10-23 14:43:44 -07:00
bors-servo
ff2c7bb47b Auto merge of #8137 - romankl:gh/8126, r=nox
Remove unnecessary rooting from `CSSStyleDeclaration`

This commit will replace calls to `self.owner.root()` with `self.owner` to avoid unnecessary rooting of JS elements objects.

Ref.- Issue: #8126

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8137)
<!-- Reviewable:end -->
2015-10-23 16:38:24 -05:00
bors-servo
e3bcf7bab7 Auto merge of #8091 - nox:cleanup-range, r=eefriedman
Remove Rc<T> usage from Range

I initially used this to correctly handle ranges when their respective containers
are mutated, to get weak references of Range objects. I now realise that the weak
references should be handled at a lower level, closer to the JS-managed object.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8091)
<!-- Reviewable:end -->
2015-10-23 16:00:00 -05:00
Roman Klauke
fe2401c566 Remove unnecessary rooting from CSSStyleDeclaration
This commit will replace calls to `self.owner.root()` with `self.owner`
to avoid unnecessary rooting of JS elements objects.

Ref.- Issue: #8126
2015-10-23 20:27:15 +02:00
Rohan Prinja
fe59b62db7 make changes according to code review (#8097) 2015-10-24 01:42:22 +09:00
Ms2ger
970b8aa8bc Remove the unused default implementation of Reflectable::init_reflector. 2015-10-23 17:21:04 +02:00
Ms2ger
9be52dc41a Implement GlobalRef::reflector as an inherent method.
Reflectable is meant for actual DOM objects, not for references to them.
2015-10-23 17:20:17 +02:00
Ms2ger
8361d54a6e Cleanup some code in htmlcanvaselement.rs. 2015-10-23 16:55:12 +02:00
Axel Solis Trompler
2cb6972d14 Implement document.createEvent(TouchEvent) 2015-10-23 15:30:26 +02:00
bors-servo
4d737b51bb Auto merge of #8155 - Ms2ger:join, r=jdm
Remove Window::layout_join_port.



<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8155)
<!-- Reviewable:end -->
2015-10-23 04:50:38 -06:00
Anthony Ramine
a1b15d36c9 Remove Rc<T> usage from Range
I initially used this to correctly handle ranges when their respective containers
are mutated, to get weak references of Range objects. I now realise that the weak
references should be handled at a lower-level, closer to the JS-managed object.
2015-10-23 11:12:02 +02:00
Matt Brubeck
316802e206 Implement Document.createTouch 2015-10-22 10:49:30 -07:00
Matt Brubeck
fe7460f34d Dispatch touch events and perform default touch actions.
This is currently limited to simple single-touch actions. It does not include
momentum scrolling or pinch zooming.
2015-10-22 10:37:03 -07:00
Matt Brubeck
4ed15a8853 Add bindings for TouchEvent DOM interfaces 2015-10-22 10:35:11 -07:00
Ms2ger
1608450e4e Remove Window::layout_join_port.
It is only used in Window::force_reflow.
2015-10-22 16:12:59 +02:00
Ms2ger
2456ddf4ba Remove Window::handle_reflow_complete_msg and ScriptTask::handle_reflow_complete_msg.
Code on the script thread can only observe self.layout_join_port being Some()
between the time it is set in force_reflow, and the join_layout call later in
that function, and no significant code is called in that code.

Since these functions do nothing useful if layout_join_port is None, there is
no point in keeping them.
2015-10-22 16:12:58 +02:00
Ms2ger
7cd3870977 Inline Window::join_layout into its only caller.
I do not know if the FIXME comment is correct; I just copied it.
2015-10-22 16:12:57 +02:00
Ms2ger
9d739cf684 Remove layout_is_idle.
Code on the script thread can only observe self.layout_join_port being Some()
between the time it is set in force_reflow, and the join_layout call later in
that function, and no significant code is called in that code.

This implies that layout_is_idle will always return true, so there is no
reason for the function to exist.
2015-10-22 16:12:56 +02:00
Ms2ger
af448374f9 Remove pointless join_layout calls.
Code on the script thread can only observe self.layout_join_port being Some()
between the time it is set in force_reflow, and the join_layout call later in
that function, and no significant code is called in that code.

As join_layout does nothing when called if self.layout_join_port is None,
these two calls are useless.
2015-10-22 16:12:55 +02:00