Commit graph

5483 commits

Author SHA1 Message Date
Sylvester Willis
4adf502846 Added call to event.PreventDefault on html text inputs and textareas.
This change should prevent page scrolling when up/down buttons are pressed.
2015-11-07 20:51:16 -05:00
bors-servo
1979d0a2e6 Auto merge of #8393 - rnestler:fix_8384, r=frewsxcv
Use while let{} instead of loop{match{}}

This fixes #8384

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8393)
<!-- Reviewable:end -->
2015-11-08 01:46:21 +05:30
bors-servo
7ff3a17524 Auto merge of #8039 - tschneidereit:script-owns-stylesheets, r=jdm
Move Stylesheet loading and ownership from the layout task into HTML elements

Stylesheets for `HTMLLinkElement`s are now loaded by the resource task, triggered by the element in question. Stylesheets are owned by the elements they're associated with, which can be `HTMLStyleElement`, `HTMLLinkElement`, and `HTMLMetaElement` (for `<meta name="viewport">).

Additionally, the quirks mode stylesheet (just as the user and user agent stylesheets a couple of commits ago), is implemented as a lazy static, loaded once per process and shared between all documents.

This all has various nice consequences:
 - Stylesheet loading becomes a non-blocking operation.
 - Stylesheets are removed when the element they're associated with is removed from the document.
 - It'll be possible to implement the CSSOM APIs that require direct access to the stylesheets (i.e., ~ all of them).
 - Various subtle correctness issues are fixed.

One piece of interesting follow-up work would be to move parsing of external stylesheets to the resource task, too. Right now, it happens in the link element once loading is complete, so blocks the script task. Moving it to the resource task would probably be fairly straight-forward as it doesn't require access to any external state.

Depends on #7979 because without that loading stylesheets asynchronously breaks lots of content.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8039)
<!-- Reviewable:end -->
2015-11-08 01:11:54 +05:30
Till Schneidereit
543703e3d8 Move Stylesheet loading and ownership from the layout task into HTML elements
Stylesheets for `HTMLLinkElement`s are now loaded by the resource task, triggered by the element in question. Stylesheets are owned by the elements they're associated with, which can be `HTMLStyleElement`, `HTMLLinkElement`, and `HTMLMetaElement` (for `<meta name="viewport">).

Additionally, the quirks mode stylesheet (just as the user and user agent stylesheets a couple of commits ago), is implemented as a lazy static, loaded once per process and shared between all documents.

This all has various nice consequences:
 - Stylesheet loading becomes a non-blocking operation.
 - Stylesheets are removed when the element they're associated with is removed from the document.
 - It'll be possible to implement the CSSOM APIs that require direct access to the stylesheets (i.e., ~ all of them).
 - Various subtle correctness issues are fixed.

One piece of interesting follow-up work would be to move parsing of external stylesheets to the resource task, too. Right now, it happens in the link element once loading is complete, so blocks the script task. Moving it to the resource task would probably be fairly straight-forward as it doesn't require access to any external state.
2015-11-07 18:11:29 +01:00
bors-servo
9a465c5842 Auto merge of #8355 - Ms2ger:Exit, r=nox
Cleanup exit messages and related code.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8355)
<!-- Reviewable:end -->
2015-11-07 22:34:45 +05:30
Raphael Nestler
39aa3cfc2a Use while let{} instead of loop{match{}} in ScrollingTimer::run() 2015-11-07 16:21:33 +01:00
Till Schneidereit
068e6a8e9f Derive HeapSizeOf on more Stylesheet-related types
In preparation of storing `Stylesheet`s on nodes.
2015-11-07 16:19:23 +01:00
Till Schneidereit
f1b6c7cc99 Let Stylist compute and store viewport constraints when setting the device 2015-11-07 16:19:13 +01:00
Raphael Nestler
3985e33b43 Use while let{} instead of loop{match{}} 2015-11-07 16:08:43 +01:00
bors-servo
7c4fd5e770 Auto merge of #8387 - larsbergstrom:update_mozjs, r=Manishearth
Update mozjs

r? @Manishearth

This mainly just picks up the support for ccache. I'd like to get one module using it to land to see how it works on Travis & the builders (probably should have done this along with #8366).

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8387)
<!-- Reviewable:end -->
2015-11-07 20:29:58 +05:30
Till Schneidereit
f173504ded Make UA and user stylesheets static and shared by all Stylist instances 2015-11-07 15:45:27 +01:00
bors-servo
7ace7bc090 Auto merge of #8249 - servo:htmlinputelement-type-atom, r=nox
'type' attribute on HTMLInputElement should be stored as an Atom

Fixes #8180

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8249)
<!-- Reviewable:end -->
2015-11-07 19:07:51 +05:30
bors-servo
36cd186608 Auto merge of #8382 - Ms2ger:SharedLayoutContext-sync, r=eefriedman
Remove the unsafe Sync implementation for SharedLayoutContext.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8382)
<!-- Reviewable:end -->
2015-11-07 16:19:43 +05:30
Ms2ger
5462afaa8f Remove the unsafe Sync implementation for SharedLayoutContext. 2015-11-07 11:23:50 +01:00
Ms2ger
647232a495 Wrap SharedLayoutContext::stylist in a wrapper to make it Sync. 2015-11-07 11:23:49 +01:00
Ms2ger
e9b77628ce Wrap SharedLayoutContext::canvas_layers_sender in a Mutex. 2015-11-07 11:23:48 +01:00
Ms2ger
8fc75704c9 Wrap SharedLayoutContext::new_animations_sender in a Mutex. 2015-11-07 11:23:47 +01:00
Ms2ger
552a03fde6 Wrap SharedLayoutContext::font_cache_task in a Mutex. 2015-11-07 11:23:44 +01:00
Ms2ger
11e760d582 Remove unused Flow::remove_compositor_layers.
The caller was removed in c72d0c2ed0.
2015-11-07 11:23:43 +01:00
Ms2ger
32bb4044fd Remove unused SharedLayoutContext::constellation_chan. 2015-11-07 11:23:42 +01:00
Ms2ger
bcd541c02c Wrap SharedLayoutContext::image_cache_sender in a Mutex. 2015-11-07 11:23:41 +01:00
Ms2ger
1c11bd09df Remove unused SharedLayoutContext::layout_chan. 2015-11-07 11:23:39 +01:00
bors-servo
440d5b5d9b Auto merge of #8389 - frewsxcv:ElementContentEditable, r=Ms2ger
Add ElementContentEditable WebIDL interface

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8389)
<!-- Reviewable:end -->
2015-11-07 15:43:30 +05:30
bors-servo
3c794d0076 Auto merge of #8296 - notriddle:svg_title_prepend, r=nox
Prepend, rather than append, SVG title elements.

Fixes #8164

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8296)
<!-- Reviewable:end -->
2015-11-07 14:13:42 +05:30
bors-servo
de2d14c971 Auto merge of #8388 - ucarion:ucarion-8386, r=frewsxcv
Use Result::ok in CompositorReceiver

Fixes #8386

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8388)
<!-- Reviewable:end -->
2015-11-07 11:07:21 +05:30
bors-servo
3510cec3e5 Auto merge of #8385 - frewsxcv:compositing-iterators, r=Manishearth
Use more iterators in compositing component

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8385)
<!-- Reviewable:end -->
2015-11-07 10:33:32 +05:30
bors-servo
65c3185b20 Auto merge of #8341 - bholley:state_hint_selector_ordering, r=pcwalton
Fix restyle hints to handle non-last psuedo-selectors, and track pristine state values rather than changesets

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8341)
<!-- Reviewable:end -->
2015-11-07 09:53:19 +05:30
Corey Farwell
880a0f9478 Add ElementContentEditable WebIDL interface 2015-11-06 23:07:57 -05:00
Ulysse Carion
d366384184 Use Result::ok in CompositorReceiver 2015-11-06 20:02:14 -08:00
bors-servo
8c0f0a22d2 Auto merge of #8370 - Ms2ger:update-js, r=jdm
Update js.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8370)
<!-- Reviewable:end -->
2015-11-07 08:11:19 +05:30
Corey Farwell
606d4cf443 'type' attribute on HTMLInputElement should be stored as an Atom
Fixes #8180
2015-11-06 21:07:01 -05:00
Corey Farwell
31e6f1b4a1 Upgrade string_cache and string_cache_shared 2015-11-06 21:07:01 -05:00
Lars Bergstrom
e0fd254147 Update mozjs 2015-11-06 19:40:00 -06:00
bors-servo
faf2f34772 Auto merge of #8343 - servo:custom-properties, r=mbrubeck
Fix some custom properties bugs

Fix #7767.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8343)
<!-- Reviewable:end -->
2015-11-07 06:02:36 +05:30
Corey Farwell
649e50f15c Use more iterators in compositing component 2015-11-06 18:35:33 -05:00
Alan Jeffrey
237ddc3c0c Caching HTMCollections.
We cache the state of any live HTMLCollection, keeping track of

a) the optional cached length of the collection, and
b) an optional cursor into the collection (a node in the collection plus its index).

The cache is invalidated based on the version number of the node.

We use these caches for speeding up random access to the collection.
When returning coll[i], we search from the cursor, if it exists,
and otherwise search from the front of the collection.
In particular, both a forward for-loop and a backward for-loop
through the collection will now have each access take O(1)
time rather than O(n) time.

This gets 1000x speed-up on the relevant Dromaeo DOM query tests.
2015-11-06 17:23:17 -06:00
Alan Jeffrey
64a50bcf56 Added versioning to DOM nodes.
There is now an inclusive_descendants_version field of each node, which
increases each time the node, or any of its descendants, is dirtied.
This can be used for cache invalidation, by caching a version number
and comparting the current version number against the cached version number.
2015-11-06 17:23:16 -06:00
Alan Jeffrey
4aa6a76f57 Made QualName traceable by JS. 2015-11-06 17:23:15 -06:00
bors-servo
33bbed7dc1 Auto merge of #8359 - ben0x539:js-url-query-fragment, r=eefriedman
Append query string + fragment to javascript: url.

When loading a URL whose scheme is javascript, we should do what
https://html.spec.whatwg.org/multipage/browsers.html#javascript-protocol
says and append the URL's query and fragment components to the scheme
data, as well as percent- and utf-8-decode the whole thing, before
evaluating it as javascript.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8359)
<!-- Reviewable:end -->
2015-11-07 04:03:35 +05:30
Matt Brubeck
37bfe20986 Move first_touch_point into the TouchState machine 2015-11-06 14:33:24 -08:00
Matt Brubeck
2171683244 Move last_touch_point into the TouchState machine 2015-11-06 14:33:23 -08:00
Simon Sapin
3973085cb6 Fix double /**//**/ 2015-11-06 23:01:55 +01:00
Simon Sapin
40e6cc118e Detect var() in shorthand declarations. 2015-11-06 23:01:54 +01:00
Simon Sapin
6ed5b561df Derive more Debug impls. 2015-11-06 23:01:12 +01:00
Simon Sapin
886459de6b Fix serialization of shorthands pending var() substitution. 2015-11-06 23:01:11 +01:00
Simon Sapin
020d03b656 Custom properties: handle premature EOF correctly. 2015-11-06 23:01:10 +01:00
bors-servo
a0221b9126 Auto merge of #8330 - Ms2ger:rm-screen_size, r=larsbergstrom
Remove unused LayoutTaskData::screen_size.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8330)
<!-- Reviewable:end -->
2015-11-07 03:03:44 +05:30
bors-servo
c54558d5ef Auto merge of #8315 - asajeffrey:remove_child_dirty_parent, r=pcwalton
Dirty parent when removng a child node.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8315)
<!-- Reviewable:end -->
2015-11-07 02:04:28 +05:30
bors-servo
69e6eb4d91 Auto merge of #8304 - dzbarsky:borrowck, r=Ms2ger
Cleanup some unneeded let bindings

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8304)
<!-- Reviewable:end -->
2015-11-07 01:31:40 +05:30
bors-servo
8d8ffa8265 Auto merge of #7696 - mskrzypkows:PaintContext_Units, r=mbrubeck
Draft. Change PaintContext rects to TypedRects #7023

I created draft. I'm not sure if we need any units conversion in PaintContext. There is also strange 'clear' method, we use PagePx origin and ScreenPx size is it OK?

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7696)
<!-- Reviewable:end -->
2015-11-07 00:22:59 +05:30