Commit Graph

181 Commits

Author SHA1 Message Date
Martin Robinson
814dac2156 servo: Merge #3809 - Clip display list based on frame viewport (from mrobinson:display-list-optimization); r=pcwalton
Instead of creating a display list for the entire page, only create one
for an area that expands around the viewport. On my machine this makes
incremental layout of http://timecube.com 50% faster.

Source-Repo: https://github.com/servo/servo
Source-Revision: 26045d7fcbab8851fbefe2851cd904203f8fd8dd
2014-11-12 17:36:32 -07:00
Guillaume Bort
20f0eae0a5 servo: Merge #3938 - Fix #3933 (from guillaumebort:fix/3933); r=jdm
Implement HTMLOptionElement.{label,value}

Source-Repo: https://github.com/servo/servo
Source-Revision: 668d9217d8b8d999547fd1e8b690da8c8d80ddda
2014-11-12 15:15:38 -07:00
Martin Robinson
e45e74afc7 servo: Merge #3951 - Iframes (from mrobinson:iframes); r=jdm
This is the first step to allowing incremental iframe creation and destruction. This should eliminate task failures when an iframe is added to the frame tree lazily via script.

Source-Repo: https://github.com/servo/servo
Source-Revision: ccdd2910a2df9921b22c9db74f84559d78019199
2014-11-11 18:48:34 -07:00
Guillaume Bort
bbf5c067ef servo: Merge #3934 - Close #84 (from guillaumebort:fix/84); r=jdm
Actually `<img>` elements in `<noscript>` are not prefetched anymore.

Probably because html5ever already parses the `<noscript>` content as raw
text data if `scripting_enabled` is activated.

See https://github.com/servo/html5ever/blob/servo/src/tree_builder/rules.rs#L126

Also, added a test to the images cache.

Source-Repo: https://github.com/servo/servo
Source-Revision: b94f20c7c119302754c3e47ff8e69fe6edc94af1
2014-11-11 14:30:39 -07:00
Ms2ger
cc35b902b2 servo: Merge #3942 - Remove VoidVal (from Ms2ger:VoidVal); r=jdm
There are no undefined constants in IDL.

Source-Repo: https://github.com/servo/servo
Source-Revision: 182a9a70de44cbefcaeeb0e8d19e3831a83b40b3
2014-11-09 09:09:31 -07:00
Ms2ger
a1cd2e6fb3 servo: Merge #3937 - Add missing documentation for bindings code (from Ms2ger:docs-bindings); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fe11a75f794db47a66426456e1e904cf107cc41d
2014-11-07 10:57:30 -07:00
Tom Schuster
01569a1469 servo: Merge #3935 - Implement the whole Attr interface (from evilpie:master); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: c311ceea8c875df074b1dc6386a3430c01c48e5c
2014-11-07 07:30: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
Glenn Watson
50abfe8c72 servo: Merge #3886 - Make media queries work with resize and page zoom (from glennw:mq); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: f775f12fe996718af94951c3c2457d896a213d96
2014-11-06 17:24:28 -07:00
Bruno de Oliveira Abinader
fd74d3e03a servo: Merge #3884 - Implement DOMStringMap (from brunoabinader:dataset); r=jdm
This is a sub-task for #2974.

Source-Repo: https://github.com/servo/servo
Source-Revision: 46154fb7ace37e438bddb80bf1e12f4d1f0e00a1
2014-11-06 12:36:30 -07:00
nkdalmia
ace4f67171 servo: Merge #3817 - M1450: Initial Step for Implement Window.sessionStorage and Window.localStorage (from nkdalmia:master); r=jdm
We have completed the initial step for "Implement Window.sessionStorage and Window.localStorage"
- Create and stub the Storage WebIDL interface

Source-Repo: https://github.com/servo/servo
Source-Revision: c828e8360416e61deaaf6870ebdf9ee2f0abc19b
2014-11-06 10:51:40 -07:00
Ms2ger
baf0a0ad97 servo: Merge #3914 - Implement HTMLElement#lang (from Ms2ger:lang); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 1225189a4bc46b2468b8a95f138b1d733b193093
2014-11-06 09:27:33 -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
Ms2ger
22af3b0b93 servo: Merge #3905 - Pay attention to the prefix in create_element when creating a non-HTML element (from Ms2ger:prefix-create); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 45262ec9d212088f2bafa95981099d25eaac77bb
2014-11-05 19:27:35 -07:00
Ms2ger
62ca35355a servo: Merge #3901 - Implement HTMLElement.title (from Ms2ger:title); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: c9857d49ddc80196bed1267946f37dcb8ef4807d
2014-11-05 14:33:36 -07:00
Ms2ger
57cfac7019 servo: Merge #3898 - Pass the correct argument to Element::create when cloning (from Ms2ger:prefix-clone); r=jdm
The current code calls as_slice() on the Option, yielding &[DOMString], and
then calls to_string, yielding "[prefix]".

Source-Repo: https://github.com/servo/servo
Source-Revision: 76cc006a40d7242e64c6c12f033127c569914e31
2014-11-05 12:57:37 -07:00
Ms2ger
4470164bfa servo: Merge #3897 - Re-enable reflection-forms.html and make it not crash (from Ms2ger:enable-reflection); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: fba6cb9c429d5f27a1f7520bf2c35b58b0a8f250
2014-11-05 11:12:40 -07:00
Ms2ger
dbb17f483d servo: Merge #3896 - Defer to GetAttribute in HasAttribute (from Ms2ger:attr-crash); r=jdm
The semantics of has_attribute aren't anywhere close to the ones expected for
Element#hasAttribute, and it fails an assertion when passed non-lower-case
names.

Source-Repo: https://github.com/servo/servo
Source-Revision: b27ec2b2231313055232bf9a55343d581e6ead98
2014-11-05 10:36:38 -07:00
Patrick Walton
e4fe54ce48 servo: Merge #3761 - Invert control flow, fix resizing, and improve checkerboarding significantly (from pcwalton:smooth-scrolling); r=larsbergstrom
r? @glennw @mbrubeck

Source-Repo: https://github.com/servo/servo
Source-Revision: ffae1104989c0177b483d591a482e5cd877183c2
2014-11-04 18:12:32 -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
Bruno de Oliveira Abinader
476ee671c8 servo: Merge #3881 - Various fixes to CodegenRust.py (from brunoabinader:dataset); r=jdm
Rust doesn't handle integers as bool on if statements, and defineProperty signature uses *mut instead of *const.

Source-Repo: https://github.com/servo/servo
Source-Revision: c4cfb4aae0491ca8016d3cbae9a39a6488b24739
2014-11-03 19:15:32 -07:00
Patrick Walton
24fdd1b7b3 servo: Merge #3835 - script: Implement various microoptimizations (from pcwalton:script-microoptzns); r=Ms2ger
This is a grab bag of various microoptimizations for script that I came across when profiling our performance on RoboHornet.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 69f8b46f362a828ffaefe9623355bc1ad76dc5e0
2014-11-03 15:48:34 -07:00
Martin Robinson
30e2e70d2d servo: Merge #3857 - Have ContentBox(es)Queries consult the flow tree (from mrobinson:queries); r=pcwalton
Instead of looking at the display tree, have ContentBox(es)Query consult
the flow tree. This allow optimizing away parts of the display tree
later. To do this we need to be more careful about how we send reflow
requests, only querying the flow tree when possible.

Fixes #3790.

Source-Repo: https://github.com/servo/servo
Source-Revision: c9089c45c4b7d40419233b48a192d85a8ad71c99
2014-11-03 12:03:37 -07:00
Ms2ger
04264c40df servo: Merge #3863 - Cleanup the implementation of HTMLTableElement::GetCaption (from Ms2ger:cleanup-caption); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 169e6a2297b354dddcb4639ebd982ed11b484541
2014-11-03 11:27:38 -07:00
Ms2ger
e749abd213 servo: Merge #3871 - Cleanup some code in node.rs (from Ms2ger:node-cleanup); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 1a3ff8739c2a17d61f295f213f31ddee25e0b3ae
2014-11-02 14:51:33 -07:00
Mitchell Van Der Hoeff
ce1d1edf43 servo: Merge #3870 - Initialize 'cancelable' to false in Event::new_inherited (from mvanderh:master); r=Ms2ger
Fixes #3855.

I'm not sure if this is the right place to set `cancelable`. If changing the default value in `Event::new_inherited` is not satisfactory, it will be possible to set the `Cell`'s value to `false` in `Event::new` itself.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9b2dae58fd21d1abab825de299161a2b36106076
2014-11-02 13:39:35 -07:00
Bruno de Oliveira Abinader
6817925474 servo: Merge #3864 - Node's ChildElementIterator is now peekable (from brunoabinader:node-peekable-childelement); r=Ms2ger
This change avoid using ```child_elements().count() > 0``` approach (using ```child_elements().peek().is_some()``` instead).

Source-Repo: https://github.com/servo/servo
Source-Revision: 20b2fae238f66b1ba69a3790e36448524edc428f
2014-10-31 09:42:42 -06:00
Bruno de Oliveira Abinader
6be0b23e4c servo: Merge #3859 - Cleanup Element's AttributeHandlers (from brunoabinader:element-notify-content-changed); r=Ms2ger
Remove ```notify_attribute_{changed,removed}``` in favor of a unified ```notify_content_changed```. In the future, whether we decide to specialize ```document.content_changed()```, it'll be just a matter of adding a param.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4ce185ff11e03c541587177d7e99c9d6bcf0eb82
2014-10-30 15:18:36 -06:00
Ms2ger
6d8d9ff82c servo: Merge #3856 - Format Element#tagName correctly when there's a prefix (from Ms2ger:tagname); r=Manishearth
format!("{}", atom) yields strings like "Atom('span' type=Inline)", which is
not intended here.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7de9ed5fc7a3061676d9fd02dfc788e196c7123c
2014-10-30 12:27:35 -06:00
Ms2ger
1668e628b1 servo: Merge #3853 - Move build_element_from_tag out of the HTML parser (from Ms2ger:create); r=Manishearth
This function is not particular to the parser, so should live in the DOM.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c6859937354760f2d175c60bad1daa16bd2ed22
2014-10-30 11:06:36 -06:00
Matt Brubeck
471ff598d1 servo: Merge #3721 - Synchronous script loading during HTML parsing (from mbrubeck:script-sync); r=Ms2ger
Fixes #3356.  This makes script elements fetch their source synchronously and execute immediately by default.  It also lays some groundwork for future deferred or async script loading.

(Depends on #3716 to fix a content test failure caused by running script during parsing.)

Source-Repo: https://github.com/servo/servo
Source-Revision: 272ae0cc1beb83c839d5fbd746e67f4ae746db99
2014-10-29 15:51:41 -06:00
nchinth
7a8b55f3eb servo: Merge #3718 - M1452: Initial Step of Integrate an XML parser (from juzer10:master); r=jdm
We have created parser trait and declared parse_chunk function in this trait. We are yet to implement this parse_chunk for ServoHTMLParser struct.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5858fccf873ce30896def4f58aa8c67d1ddd09f1
2014-10-29 14:36:45 -06:00
Clark Gaebel
0e8072ce5b servo: Merge #3828 - layout: Implement flow tree dumping with RUST_LOG=debug is on (from cgaebel:layout-node-dumping); r=pcwalton
r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 2d8bd10abefe5cee9b60900911d41bb47323d248
2014-10-28 13:12:52 -06: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
Mukilan Thiyagarajan
254f794623 servo: Merge #3812 - Implement [LenientThis] support and enable it in Document.webidl (from mukilan:lenient-this); r=Ms2ger
Closes issue #3760

Source-Repo: https://github.com/servo/servo
Source-Revision: 7ba02bb11d2d9275949cb7522c5fcbc4ebcd23d1
2014-10-25 11:42:38 -06:00
Keegan McAllister
8321c9c421 servo: Merge #3797 - Debug-only dynamic checks for layout and GC use of DOMRefCell (from kmcallister:domrefcell); r=jdm
r? @mbrubeck, @jdm

Alternative to #3770 and #3716.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0c12f630e6352fc2aa00b638d014b2505f68af1f
2014-10-24 18:09:27 -06:00
Ray Clanan
6becd6b208 servo: Merge #3773 - Rename untraceable!() to no_jsmanaged_fields!(). References issue #3671 (from rclanan:rename-untraceable); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 041ab13fcec726bbacc09b3be07e706091625dda
2014-10-23 19:48:28 -06:00
Josh Matthews
84d93f4a37 servo: Merge #3791 - Really fix #3738 by only processing iframe src attributes during parsing (from jdm:moreiframe); r=Ms2ger
....

Source-Repo: https://github.com/servo/servo
Source-Revision: 39d5f09350e3ec251b9f16cb55a12febeeeda4f8
2014-10-23 18:00:36 -06:00
Ms2ger
37ff1c87ed servo: Merge #3780 - Cleanup Document (from Ms2ger:cleanup-document); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 43b13e7548f16c0c2721120ebabd89e88ecaf17d
2014-10-23 11:36:40 -06:00
Josh Matthews
fc0399b718 servo: Merge #3759 - Implement Document.readyState. Prevent iframes from notifying the compos (from jdm:readystate); r=Ms2ger
...itor after the initial parse. Fixes #1720. Fixes #3738.

r? @Ms2ger or @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 2df236376a443d8d031ee7a72379f336f2cd8cc4
2014-10-23 09:18:37 -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
Edit Balint
e0046d6bcd servo: Merge #3774 - Make DOM getters that return &JS<T> return Temporary<T> instead #3707 (from ebalint:3707_DOM_getters); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1bc9c049c6536bc102939fd97f4390eed3dcc2bf
2014-10-22 13:36:38 -06:00
Bruno de Oliveira Abinader
8acaae1ca0 servo: Merge #3757 - Usage of JSRef<Attr> in before_remove_attr & after_set_attr (from brunoabinader:content_changed); r=jdm
```JSRef<Attr>``` does not require allocating a ```DOMString``` for value, which are unused in most cases. It also provides more access to ```Attr``` data.

Source-Repo: https://github.com/servo/servo
Source-Revision: 590a93120a26ab6ea787831d7ba08c47423148bc
2014-10-22 09:33:37 -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
Clark Gaebel
2a3a6dbe81 servo: Merge #3744 - More efficient preorder DOM traversals (from cgaebel:efficient-preorder-traversal); r=pcwalton
This also tackles some nearby FIXMEs. `traverse_preorder` is used in a LOT of
DOM functions..

r? @pcwalton

Source-Repo: https://github.com/servo/servo
Source-Revision: 2bc4ffe5cf331fb7bd246af34c5d12e4e03adda9
2014-10-21 13:09:38 -06:00
Gilles Leblanc
8eb8e0ead3 servo: Merge #3720 - Edits dom/bindings/DESIGN.md (from gilles-leblanc:fix-grammatical-errors); r=jdm
This corrects and improves the dom/bindings/DESIGN.md document and also
corrects a grammatical error in a tests/reftest.rs message.

Source-Repo: https://github.com/servo/servo
Source-Revision: 65856dd00a7da07ece8d3e1e63bc495943266a24
2014-10-18 00:24:25 -06:00
Gilles Leblanc
282b3a0bbb servo: Merge #3710 - Make HTMLFormElementHelpers::submit take an enumerated argument instead (from gilles-leblanc:issue-3677); r=jdm
...of a boolean

Fixes #3677

Source-Repo: https://github.com/servo/servo
Source-Revision: de2178bbc073a930ab856b216be9444a02886d70
2014-10-16 19:45:22 -06:00
Keegan McAllister
a8be3c4e6b servo: Merge #3670 - Use html5ever for HTML parsing (from kmcallister:h5e-take2); r=jdm
r? @Ms2ger, @jdm

The parser is now a JS-managed object and we use hooks in html5ever to trace its internal state.  This should be memory-safe even if arbitrary JavaScript can run during a parse.  Please let me know if you think of a reason it wouldn't be!

I think the likely outcome of a garbage collection during parsing is a dynamic `RefCell` borrow failure, but I'm going to look into that after this lands.  It should be safe to trace the parser while it's mutably borrowed, as long as it's not shared between threads, so we can probably switch to `UnsafeCell`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8d3b107568ab965b518b8003b702a5db993fa7d0
2014-10-16 14:15:21 -06:00
Ms2ger
a3e10f96d9 servo: Merge #3699 - Move jsstring_to_str and jsid_to_str to conversions.rs (from Ms2ger:jsstring_to_str); r=jdm
This appears to be a more sensible location for them.

Relevant to #433.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5be4f40bef05c749bdb5353541abae21a826f6b6
2014-10-16 08:45:19 -06:00
Tetsuharu OHZEKI
c145110d75 servo: Merge #3695 - Use DOMRefCell in the rest of dom structs (from saneyuki:cell); r=jdm
#3050

Source-Repo: https://github.com/servo/servo
Source-Revision: 1de2fb3721b8a189156f4a860009cca01d8b2fd9
2014-10-16 00:03:18 -06:00