Commit Graph

755 Commits

Author SHA1 Message Date
Mukilan Thiyagarajan
0f497e555c servo: Merge #3941 - Allow passing arguments to setTimeout/setInterval callbacks (from mukilan:timeout-arguments); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 43b452f3b874c4bf0392ceaec27a0e40f18b5e34
2014-11-15 11:09:32 -07:00
Ms2ger
dc76d0473b servo: Merge #3979 - Use {Cell,RefCell}::as_unsafe_cell (from Ms2ger:as_unsafe_cell); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d3b76c60d2d5bd61cf6b48d09d769df77af293d
2014-11-14 15:48:35 -07:00
Tomasz Kołodziejski
f0af189f86 servo: Merge #3953 - Add contentDocument support for HTMLIFrameElement. Fixes #3808 (from neojski:implement-HTMLIFrameElement.contentDocument); r=jdm
Because of #2122 I cannot write test for this right now because it will be failing randomly due to that iframe issue. However, if it doesn't fail due to that issue a test like this:

```html
<html>
  <head>
    <meta charset="utf8" />
    <script src="harness.js"></script>
    <title>Iframe contentDocument test.</title>
  </head>
  <body>
    <iframe src="test_iframe_contentDocument_inner.html" id="iframe"></iframe>
    <script>
      waitForExplicitFinish();

      var timeout = 100;
      var iframe = document.getElementById('iframe');
      function test_contentWindow() {
        if (!iframe.contentWindow) {
          // Iframe not loaded yet, try again.
          // No load event for iframe, insert bug number here.
          setTimeout(test_contentWindow, timeout);
          return;
        }
        is(iframe.contentDocument.getElementById('test').textContent, 'value');
        finish();
      }
      test_contentWindow();
    </script>
  </body>
</html>
```
where inner is simply:
```html
<html><body><div id="test">value</div></body></html>
```
passes.

I have added `SameOrigin` method to the `UrlHelper`. I wanted to reuse it in [`constellation.rs` same_script check](f0184a2d01/components/compositing/constellation.rs (L625)) but I it didn't want to compile saying

```
error: unresolved import `dom::urlhelper::UrlHelper`. Maybe a missing `extern crate dom`?
```

So I didn't include it in this PR for now.

There is more discussion about the cross origin iframes in [another issue](https://github.com/servo/servo/issues/3939). In this PR I just added same origin check.

Source-Repo: https://github.com/servo/servo
Source-Revision: 85a2f0b66a32cfd6022b3e6cec6ec06f3b59baf1
2014-11-13 23:54:28 -07:00
Manish Goregaokar
3c672569d6 servo: Merge #3973 - Don't overwrite redirected URL in script_task (fixes #3970) (from Manishearth:301-fix); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 10cd7728ff0daa7d2e5e13d002d008b5049f389b
2014-11-13 17:45:29 -07:00
Josh Matthews
82582a7847 servo: Merge #3585 - Implement single-line text input (from jdm:input); r=gw
This attempts to implement a bunch of the DOM Level 3 Events spec by implementing the KeyboardEvent interface, the document focus context, and dispatching keyup/keydown/keypress events appropriately. There's also some support for multiline text input that's untested.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2ffa845cf463b14b19322d477a77ffd20efa89a9
2014-11-13 10:57:33 -07:00
Glenn Watson
71f726977a servo: Merge #3948 - Rust upgrade to rustc hash b03a2755193cd756583bcf5831cf4545d75ecb8a (from servo:rustup-20141105_2); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: c5e1b0d32e17fad29799023c85e2e73ac89c3af7
2014-11-12 20:48:31 -07:00
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
Shing Lyu
a2432737ac servo: Merge #3915 - Extract the script task handlers code into separate methods (from shinglyu:bug3811); r=jdm
This is a fix for bug #3811 , thank you.

Source-Repo: https://github.com/servo/servo
Source-Revision: fc62243f81ba4c5a3585b2a80c859fad16083557
2014-11-09 20:24:31 -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
Ms2ger
282a286436 servo: Merge #3912 - Remove the glob import from the HTML parser (from Ms2ger:parser-glob); r=jdm
Glob imports are frowned upon, and after the removal of
build_element_for_tag, only a few types are actually used.

Source-Repo: https://github.com/servo/servo
Source-Revision: 44fa9f9b18a042e50367b1580528fc94587f0a15
2014-11-06 06:27:31 -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
Keegan McAllister
08c870e1aa servo: Merge #3900 - Only print HTML parse errors with RUST_LOG=script::parse (from kmcallister:parse-error); r=Ms2ger
r? @ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 390e1115375fc887912961baff0ad626e7192cf8
2014-11-05 12:21:42 -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
Josh Matthews
10c654fd65 servo: Merge #3803 - Add an optional --debug-mozjs argument to mach build that enables a no (from jdm:mozjsdebug); r=mbrubeck
...n-optimized, debug build of mozjs and rust-mozjs. Update the Cargo snapshot to enable new feature support.

Source-Repo: https://github.com/servo/servo
Source-Revision: e100a1834f40599952a790d2537d2b1262585e82
2014-10-24 14:39:33 -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