Commit graph

42 commits

Author SHA1 Message Date
Guillaume Gomez
e2ebe34e9f servo: Merge #8675 - Add XMLDocument object (from GuillaumeGomez:master); r=nox
Fixes #8000

(Still working on it)

Source-Repo: https://github.com/servo/servo
Source-Revision: 99223656fbf6cade8c41d161a9e61a39f58ec796
2015-11-27 19:00:04 +05:01
jsharda
a3a32430d4 servo: Merge #8278 - M1503: Integrate XML5 parser (from Ronak6892:master); r=eefriedman
Hi,

This is for NCSU fall 15 project for Mozilla.

We have included changes for initial steps in this pull request.
https://github.com/servo/servo/wiki/Integrate-xml5ever

Kindly review !

Source-Repo: https://github.com/servo/servo
Source-Revision: 65a1a28860ac8858a02be6d26b262a61d040beb1

--HG--
rename : servo/components/script/dom/webidls/ServoHTMLParser.webidl => servo/components/script/dom/webidls/ServoXMLParser.webidl
2015-11-05 08:43:44 +05:01
rohan.prinja
e8b504412b servo: Merge #8221 - move modules around (from ajnirp:8130-reorganise); r=jdm
for #8130

Source-Repo: https://github.com/servo/servo
Source-Revision: daad09d44245228fba9118316937add71bec7c58
2015-11-04 02:27:02 +05:01
Matt Brubeck
a4f7ce3218 servo: Merge #7204 - Very basic touch events and touch scrolling (from mbrubeck:touchevent); r=jdm
This implements just enough of [Touch Events](http://w3c.github.io/touch-events/) to enable scrolling on Android without regressing basic single-touch interaction like clicking on links.

Dragging a page will scroll it, unless the page calls `preventDefault` on the "touchstart" event.

Does **not** yet support pinch zooming or other multi-touch gestures or events.

Includes a `-Z convert-mouse-to-touch` command line flag for testing on non-touch platforms.  This is also enabled by default on Android because Glutin currently translates touch input to mouse events on Android.

Source-Repo: https://github.com/servo/servo
Source-Revision: dcd207f9bf15c9ecf5d043385ba93277e69201f6
2015-10-22 15:54:01 -06:00
Anthony Ramine
bb8125a3da servo: Merge #8041 - Introduce trait Castable (from nox:castable); r=jdm
Removes all those messy FooCast structures in InheritTypes.rs.

Source-Repo: https://github.com/servo/servo
Source-Revision: 674589c370d978f543e71f995d58c5b28e6e9842
2015-10-21 07:57:32 -06:00
Till Schneidereit
35d5d9d31f servo: Merge #7415 - Improve implementation of DOMRect and implement DOMRectReadOnly (from tschneidereit:dom-rect); r=nox
Passes most tests from test-css. The remaining ones should pass once we have https://github.com/w3c/csswg-test/pull/834.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 810d28a2574cd288ddfa5737ade417ea53a4b690
2015-10-17 15:17:27 -06:00
Dongie Agnir
a1c7fb0be8 servo: Merge #7990 - Add newline so code sample is parsed correctly (from dagnir:formatting-fix); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: efdaf5e7e5923d1078ed7b12b96325e2411cc3d2
2015-10-13 02:12:28 -06:00
Corey Farwell
41ad1c9129 servo: Merge #7958 - Consolidate magic number representing max unsigned long (from frewsxcv:consolidate-magic-number); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 02d889494580d2b387a42d3a94360e40dce96282
2015-10-10 15:00:39 -06:00
Emilio Cobos Álvarez
8ff28f34dd servo: Merge #7843 - webgl: Implement WebGLContextEvent and use it on context creation error (from emilio:webgl-context-event); r=jdm
spec: https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15
Source-Repo: https://github.com/servo/servo
Source-Revision: 0b6cb92d786a438cf7d9b2ca5b199172052e29bd
2015-10-07 17:04:10 -06:00
Ravi Shankar
7d512d50d1 servo: Merge #7698 - sorted the declarations in various files (from Wafflespeanut:sorting); r=frewsxcv
This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!

Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
2015-09-23 15:02:56 -06:00
Hugo Thiessard
357588437d servo: Merge #7680 - fixes #7390 : tidy now check the order of mod declarations even whith attribute (from Mylainos:Issue-#7390); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: d1b85de762c0193276010a019f931526c34c04ce
2015-09-18 14:44:48 -06:00
wilmoz
b05007f610 servo: Merge #7337 - Documentation of inheritance in type ids (from wilcus:InheritanceDocumentation); r=mbrubeck
Aditional documentation about this issue https://github.com/servo/servo/issues/7205

Source-Repo: https://github.com/servo/servo
Source-Revision: da0b9d7c0185f0898fd47f5326e8e084d08a2fc0
2015-09-04 21:18:52 -06:00
Anthony Ramine
d2ee701ee9 servo: Merge #7401 - Remove helper traits (from nox:rm-helpers); r=Manishearth
Now that `JSRef<T>` is gone, there is no need to have helper traits.

Source-Repo: https://github.com/servo/servo
Source-Revision: 909429702972d53bf02dfe9a4aa93ea0cb588cf4
2015-08-27 09:38:48 -06:00
Bogdan Cuza
fa993d4367 servo: Merge #6714 - Implement a FileList (from boghison:filelist); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b7261a2073dcb66473907dbb25282f05f9bfe3d3
2015-08-01 20:16:14 -06:00
farodin91
f8348d597e servo: Merge #6716 - Implement FileReader.{readAsText,readAsDataUrl}. Fixes #6172 (from farodin91:filereader); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e32068d17bdf6a87a63bea97b6364caa22b37e79
2015-07-23 14:37:00 -06:00
Till Schneidereit
5e560077e5 servo: Merge #6683 - Implement DOMPoint and DOMPointReadOnly (from tschneidereit:dompoint); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 658c3d05ae72b52e543342c7a33d37a345eb4374
2015-07-23 11:38:14 -06:00
Tim Taubert
0cceca72b1 servo: Merge #6505 - Implement crypto.getRandomValues() (from ttaubert:issue/4666-crypto-getRandomValues); r=Ms2ger
Didn't touch mozjs or rust-mozjs because implementing that in the code generator didn't seem too easy. I'm using the same workaround that the TextDecoder does.

Using the OsRng should be the right choice here? As the OS keeps state for us we wouldn't need to have a global rng instance to keep around.

Fixes #4666.

Source-Repo: https://github.com/servo/servo
Source-Revision: c0222628264423a67bf98775be83dcf2f85211ab
2015-07-05 22:16:19 -06:00
Anthony Ramine
7a203febfd servo: Merge #6371 - Implement URL and trivially missing URLUtils members (from nox:url); r=Ms2ger
Fixes #6322.

Still no mutation whatsoever in URLUtils.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8c784ceeea39014cdc79bb4c7f614948cc8beda1
2015-06-21 10:22:06 -06:00
Michael Wu
7512d04e93 servo: Merge #6150 - Upgrade to Spidermonkey 39 (from servo:smupgrade3); r=mbrubeck
> Here it is.
>
> ~~There's two major things that are unfinished here:~~
> - ~~Dealing with the unroot_must_root lint. I'm not sure about the value of this lint with the new rooting API.~~ Done.
> - ~~Updating the Cargo.locks to point to the new SM and SM binding.~~ Done.
>
> I also included my fixes for the rust update, but these will disappear in a rebase. A rust update is necessary to support calling `Drop` on `Heap<T>` correctly when `Heap<T>` is inside a `Rc<T>`. Otherwise `&self` points to the wrong location.
>
> Incremental GC is disabled here. I'm not sure how to deal with the incremental barriers so that's left for later.
>
> Generational GC works. SM doesn't work without it.
>
> The biggest change here is to the rooting API. `Root` was made movable, and `Temporary` and `JSRef` was removed. Movable `Root`s means there's no need for `Temporary`, and `JSRef`s aren't needed generally since it can be assumed that being able to obtain a reference to a dom object means it's already rooted. References have their lifetime bound to the Roots that provided them. DOM objects that haven't passed through `reflect_dom_object` don't need to be rooted, and DOM objects that have passed through `reflect_dom_object` can't be obtained without being rooted through `native_from_reflector_jsmanaged` or `JS::<T>::root()`.
>
> Support for `Heap<T>` ended up messier than I expected. It's split into two commits, but only because it's a bit difficult to fold them together. Supporting `Heap<T>` properly requires that that `Heap::<T>::set()` be called on something that won't move. I removed the Copy and Clone trait from `Heap<T>` so `Cell` can't hold `Heap<T>` - only `UnsafeCell` can hold it.
>
> `CallbackObject` is a bit tricky - I moved all callbacks into `Rc<T>` in order to make sure that the pointer inside to a `*mut JSObject` doesn't move. This is necessary for supporting `Heap<T>`.
>
> `RootedCollectionSet` is very general purpose now. Anything with `JSTraceable` can be rooted by `RootedCollectionSet`/`RootedTraceable`. Right now, `RootedTraceable` is only used to hold down dom objects before they're fully attached to their reflector. I had to make a custom mechanism to dispatch the trace call - couldn't figure out how to get trait objects working for this case.
>
> This has been tested with the following zeal settings:
>
> GC after every allocation
> JS_GC_ZEAL=2,1
>
> GC after every 100 allocations (important for catching use-after-free bugs)
> JS_GC_ZEAL=2,100
>
> Verify pre barriers
> JS_GC_ZEAL=4,1
>
> Verify post barriers
> JS_GC_ZEAL=11,1

Source-Repo: https://github.com/servo/servo
Source-Revision: e7808c526c348fea5e3b48af70b7f1a066652097
2015-06-19 16:46:55 -06:00
Jack Moffitt
85fd686b68 servo: Merge #6408 - Generate code into OUT_DIR (from metajack:script-outdir); r=SimonSapin
This is necessary to ensure Cargo knows when to rebuild. Normally
.gitignore would be enough to exclude these from Cargo's freshness
calculation, but https://github.com/rust-lang/cargo/issues/1729 prevents
this currently. This is the new, correct way to do these thigns, just
like the style crate does.

Source-Repo: https://github.com/servo/servo
Source-Revision: ff59e1b8de67f1988522d6b6e6c4adda957fad5b
2015-06-17 16:36:05 -06:00
ecoal95
126dc71f5c servo: Merge #6357 - Add missing WebGL interfaces, and a few gl calls (from emilio:more-webgl); r=pcwalton
See the commit descriptions for more details.

Blocked on https://github.com/servo/gleam/pull/24

Source-Repo: https://github.com/servo/servo
Source-Revision: ceaca2e2885be89d47553090a45cf9048812e3b4
2015-06-13 15:05:08 -06:00
Ms2ger
1bb7c4d069 servo: Merge #6323 - Fix a typo in the DOM documentation (from Ms2ger:typo); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: c86e461555902ad88d25163724798b333d21c0ef
2015-06-10 07:30:09 -06:00
Francesc Bautista
e5a8317929 servo: Merge #6284 - Fix #6242 testbinding add specialoperations (from fbau123:6242-testbinding-add-specialoperations); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 44a4b7886d05b6e219f71f958d913657b08eea7d
2015-06-09 17:12:43 -06:00
ecoal95
ed9a142a22 servo: Merge #6293 - Implement new WebGL interfaces and methods (from emilio:webgl-objects); r=nox
This commit implements:
* WebGLFramebuffer
* WebGLRenderbuffer
* WebGLTexture

And adds the following methods to `WebGLRenderingContext`:
* create{Texture,Framebuffer,Renderbuffer}
* bind{Texture,Framebuffer,Renderbuffer}
* destroy{Buffer,Texture,Framebuffer,Renderbuffer}

Fixes:
* WebGLUniform location shouldn't inherit from WebGLObject.

Known Issues:
* WebGL objects have to be destroyed on drop, we may want to keep a reference to the context, or maybe a clone of the renderer to achieve this

Also refactors a huge part of the current implementation, to allow
failing on creation of different WebGL objects.

Blocked on https://github.com/servo/gleam/pull/22

A reftest for most of the added functionality is not doable right now,
we need a few more functions in order to upload a texture, for example.

Source-Repo: https://github.com/servo/servo
Source-Revision: e09c555a41b0803388e54013ac8885fb789a0fa6
2015-06-09 10:06:37 -05:00
William Galliher
178b16eed9 servo: Merge #5939 - Implement incomplete opening, sending, and closing behaviour for WebSock (from jdm:websocket); r=jdm
...ets using rust-websocket.

Authors:
Shivaji Vidhale <savidhal@ncsu.edu>
William Galliher <wpgallih@ncsu.edu>
Allen Chen <achen4@ncsu.edu>
Rucha Jogaikar <rsjogaik@ncsu.edu>

Source-Repo: https://github.com/servo/servo
Source-Revision: 6d2f70a4fd275510ca90c5da27bb841dd25d39bd
2015-05-05 12:57:48 -05:00
Diego Marcos
375d769f56 servo: Merge #5820 - Implements enough WebGL spec to draw a triangle (from dmarcos:firstTriangle); r=jdm
This is WIP. still have to clean up the code a little bit but I wanted to show the progress. I got really excited when I saw my first triangle on screen ```./mach run tests/ref/webgl-context/triangle.html```

![firsttriangle](https://cloud.githubusercontent.com/assets/39342/7313736/e3fdb41e-ea11-11e4-8c63-78523cd9dcc7.png)

Source-Repo: https://github.com/servo/servo
Source-Revision: b43a2ed80714131db4c92a51c0046245aa43da11
2015-05-02 21:22:28 -05:00
Anthony Ramine
6c157bacf0 servo: Merge #5779 - Implement the CSS interface (from nox:css-escape); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 1f9de5ee2ce4dc039b01e575d60a4fee41a0b8b8
2015-04-25 05:42:41 -05:00
Diego Marcos
1406b1f10e servo: Merge #5652 - Kicking off a WebGL implementation (from dmarcos:webgl); r=jdm
@jdm @ecoal95 I'm working on making VR happen in the Browser and I want to bring to Servo the [webVR APIs](https://github.com/MozVR/webvr-spec/blob/master/webvr.idl) we already have in Gecko. Before anything happens we need a working implementation of WebGL (and also the [fullscreen API](https://fullscreen.spec.whatwg.org/)). My implementation is very basic and probably naive (I just recently started to contribute to Servo). My patch is just a starting point:

- It only implements ```clearColor``` and ```clear``` methods of the [WebGL spec](https://www.khronos.org/registry/webgl/specs/latest/).
- It uses the readback strategy that ```canvasRenderingContext2D``` is using (The webgl task paints stuff independently on it's own buffer and the compositor task request the pixels back to the webgl task when it needs them) I'm sure there are much better ways to handle this. Latency and FPS are critical in VR so we have to figure out the fastest way to push pixels to the screen. I've read something about layerizing the canvas but I'm still not sure what that even means :)
- There's an included test you can try ```./mach run tests/ref/webgl-context/clearcolor.html```

@ecoal95 I know you'll be working on this for the next three months. With a foundation in place we will be able to make quick progress in parallel. This is exciting!

Source-Repo: https://github.com/servo/servo
Source-Revision: e4b620ea54c94e03095e4108bce94ec750416bba
2015-04-20 19:29:02 -05:00
Keith Yeung
02c0bba5a2 servo: Merge #5599 - Implement TextDecoder (from servo:textdecoder); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 254f2a3b5fb0ef59eff4b24cbf0f5c6ca90c4317
2015-04-08 20:00:40 -05:00
Dave Hodder
b05e81d72a servo: Merge #5525 - Add basic HTMLDialogElement interface (from dhodder:master); r=jdm
An empty DOM interface for HTMLDialogElement

r?

Source-Repo: https://github.com/servo/servo
Source-Revision: 1fd609d198e99c87dee1a8a79e908cd1604040af
2015-04-07 02:50:04 -05:00
Ms2ger
54525fb6e1 servo: Merge #5501 - Add more documentation about the DOM bindings (from Ms2ger:docs); r=jdm
Most of this documentation is based on
<https://developer.mozilla.org/en-US/docs/Mozilla/WebIDL_bindings>.

Source-Repo: https://github.com/servo/servo
Source-Revision: 539c85f5ec1b05b29a099124c7d7b2664f67013e
2015-04-03 08:24:41 -06:00
Manish Goregaokar
3a64a833f6 servo: Merge #5430 - Allow passing a path to --userscripts (from Manishearth:userscript_path); r=kmcallister
r? @kmcallister

Source-Repo: https://github.com/servo/servo
Source-Revision: afbc51a746af79f3daf14d77002a47967ef3d38e
2015-04-01 13:15:46 -06:00
yodalee
eb0f1adfa5 servo: Merge #5469 - Implement TextEncoder (fixes #4768) (from mbrubeck:yodalee-issue4768-textencoder); r=jdm
This is a series of already-reviewed changes by @yodalee from #5025, rebased onto current servo master, with some fixups applied:

* Fixed build errors/warnings from the latest rust upgrade.
* Marked `tests/wpt/web-platform-tests/encoding/single-byte-decoder.html` as expecting CRASH.

I could not verify locally that the new test annotation is correct, since the test appears to hang rather than crash on my Linux box.  (Or maybe I just didn't wait long enough.)  If this crash isn't consistent, or if it takes a long time, maybe we should skip this test instead?

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 4846607e189a65baf8d9ac6566594b7893d07f12
2015-03-31 20:06:49 -06:00
snf
c0fb8ff049 servo: Merge #5306 - Implementing StorageEvent interface (from snf:storage_event); r=jdm
Needed for #5196

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c51d0ef53d25892be4c992fdbe131c1b641bf74
2015-03-24 12:52:00 -06:00
Chris Paris
9bbe58e675 servo: Merge #5029 - Serialize using html5ever (from ChrisParis:h5e-serialize); r=jdm
Fixes https://github.com/servo/servo/issues/3713. Depends on https://github.com/servo/html5ever/pull/100 and https://github.com/servo/html5ever/pull/101.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1236280bea969cb3e92b27868db418be016c64a5
2015-03-18 18:06:49 -06:00
Patrick Walton
c89b718f8e servo: Merge #5016 - script: Implement enough 2D canvas support to render basic SVGs such as (from jdm:canvas-for-svg); r=jdm
the tiger.

Rebased from #4623.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2e1adb3fa670504fb0fedaa517f312ba233bf67b

--HG--
rename : servo/components/script/dom/webidls/HTMLHeadElement.webidl => servo/components/script/dom/webidls/CanvasPattern.webidl
2015-02-22 20:33:45 -07:00
Edit Balint
515ef0d463 servo: Merge #5020 - Implement Canvas pixel manipulation (from jdm:canvas); r=jdm
Rebase of #4639.

Source-Repo: https://github.com/servo/servo
Source-Revision: 287f390c4a56dd8c5960df699d45653227b25d6f
2015-02-22 11:48:46 -07:00
Tetsuharu OHZEKI
da5ed8fe16 servo: Merge #4878 - [script] Merge the binding design document into inline doc comments (from saneyuki:doc); r=Ms2ger
Now, we have many documents about dom bindings as inline comments. It's better to fuse a standalone markdown document to them.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c5155a119872ccdfb614c4cd5b1379de20ab595
2015-02-10 04:33:45 -07:00
Ms2ger
ba67d303b2 servo: Merge #4875 - Document the main steps involved in adding a new DOM interface (from Ms2ger:new-dom-doc); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 1af8170037922250bbc3884f94c8a647f495eeb3
2015-02-09 11:57:50 -07:00
Ms2ger
200c888b80 servo: Merge #4836 - Implement an Unrooted smart pointer to replace JS when it is not traced (from Ms2ger:unrooted); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d32ece0bf3cdfbeb98e106ec6daca5a5f4385bc
2015-02-06 04:36:44 -07:00
Ms2ger
484ffd642c servo: Merge #4804 - Document the DOM (from Ms2ger:dom-docs); r=jdm
Please review carefully.

Source-Repo: https://github.com/servo/servo
Source-Revision: aae9bc2071966b3090e3dba96a8c5d4b6a93fc2c
2015-02-05 06:42:48 -07:00
Ms2ger
55b0fac726 servo: Merge #4797 - Create mod.rs files for the dom and dom::bindings modules (from Ms2ger:mods); r=saneyuki
This gives us a better place to put DOM documentation, which I'd like to start
adding.

Source-Repo: https://github.com/servo/servo
Source-Revision: ccdf0bd65e415eff024e034519f733eeded32812
2015-02-01 01:36:49 -07:00