Commit Graph

915 Commits

Author SHA1 Message Date
Peter
bdd9fd7907 servo: Merge #5692 - Switched Element::Get_attributes to use a RootedVec (from pgonda:get_attributes-memory-safety); r=jdm
Changes Element::get_attributes to use a `&mut Rooted<JS<Attr>>` param instead of returning a `Vec<Temporary<Attr>>`, fixes  #5684.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8ecb9d681c385995b082d67874fdfa7f1e929e1f
2015-04-27 15:25:30 -05:00
Ms2ger
6a37f39778 servo: Merge #5777 - Make Attr::prefix an Atom (from tamird:ICE-attr-prefix-atom); r=jdm
Rebase of https://github.com/Ms2ger/servo/commits/ICE-attr-prefix-atom

Some of the changes weren't necessary since the internals had been refactored some in the interim. In any case, I was unable to reproduce the ICE reported in https://github.com/rust-lang/rust/issues/18957.

@Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: b0a7d1bf865eff7b6ca3bae874004a61c19b3c27
2015-04-27 14:37:38 -05:00
Anthony Ramine
1704abb708 servo: Merge #5872 - Fix CanvasGradient.addColorStop() (from nox:canvasgradient); r=saneyuki
The argument should be a double.

Source-Repo: https://github.com/servo/servo
Source-Revision: eefa3eba256d48bc24189417c3bb8d3a9a77d979
2015-04-27 13:45:17 -05:00
Anthony Ramine
5eb08ed159 servo: Merge #5868 - Implement Body.bgColor and Document.bgColor (from nox:document-legacy); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 9ec2ce0decff852f24280a59c779220f243bcff6
2015-04-27 13:06:29 -05:00
Simon Sapin
e11ff55b59 servo: Merge #5870 - layout: Implement most of border-collapse per CSS 2.1 § 17.6.2 (from SimonSapin:border-collapse); r=SimonSapin
Fixes #5300, which it is a rebase of.

Known issues:

* Collapsed borders do not correctly affect the border-box of the table
  itself.

* The content widths of all cells in a column and the content height of
  all cells in a row is the same in this patch, but not in Gecko and
  WebKit.

* Corners are not painted well. The spec does not say what to do here.

* Column spans are not handled well. The spec does not say what to do
  here either.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8a4555cc53bc1bbb21a08eb6f010cb1215034419
2015-04-27 12:29:15 -05:00
Anthony Ramine
cd1d355ca7 servo: Merge #5850 - Fix generation of nullary callbacks (from nox:nullary-callbacks); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 92359c7b9addfe7ee161760aad20368bafd76c26
2015-04-27 08:42:42 -05:00
Tim Cuthbertson
b5ddf2fa72 servo: Merge #5865 - Implement implicit form submission from input elements (from timbertson:implicit-submit); r=Manishearth
With submission-blocking rules from https://html.spec.whatwg.org/multipage/forms.html#implicit-submission.

I wasn't sure if/where it would be relevant to add new tests (I couldn't find any existing tests in wpt to enable), so just let me know if this needs tests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 56105e9f2fb390b431416473a616000636ad409c
2015-04-27 08:05:25 -05:00
Ms2ger
47c7540f71 servo: Merge #5867 - Factor out a handle_parsing_complete function from ScriptTask::Load (from Ms2ger:load-end); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 0cd0abb7186c4a67458f5b3af825502a6709a21c
2015-04-27 07:28:33 -05:00
Anthony Ramine
4b09eab3c6 servo: Merge #5862 - Change MutNullableJS<T> to MutNullableHeap<JS<T>> (from nox:mutnullableheap); r=jdm
This is useful for union types, in cases where we need MutNullableHeap&lt;NodeOrString&gt;.

Source-Repo: https://github.com/servo/servo
Source-Revision: b0ddd8149b04db6bceba0c0b8de852acc1086838
2015-04-27 03:50:08 -05:00
ecoal95
eabccfe7ae servo: Merge #5863 - Refactor WebGL implementation (reopens #5769) (from emilio:webgl-refactor); r=jdm
GitHub doesn't allow me to reopen #5769, so I created this.

Sorry about the merge fail, my bad :/

cc/ @jdm @dmarcos

---

This PR uses customized GL context creation code, right now only working under Linux, so I expect the clearcolor test to fail on other platforms.

It addresses some other problems:

* Propagates context creation error to the top, returning null if not found.
* Uses GLContextAttributes, which will allow us to write WebGLContextAttributes easily.
* Doesn't allow a 2d context and a WebGL context coexist.
* Panics when resizing the context to larger dimensions (to be fixed soon, but better than blindly allowing it).
    Removes some unused dependencies

Source-Repo: https://github.com/servo/servo
Source-Revision: 9f2ad9376eaf598898387ea2c26f48c3ceb0330d
2015-04-26 21:28:35 -05:00
Jacob Taylor-Hindle
630913efbb servo: Merge #5860 - Remove #[jstraceable] annotation for the RootedVec type [Issue #5849] (from GlassAndOneHalf:remove-jstraceable); r=jdm
This PR solves Issue #5849.

Source-Repo: https://github.com/servo/servo
Source-Revision: ea00e949a45ca2e8842882b1b8a6ad7970890c00
2015-04-26 19:00:06 -05:00
Anthony Ramine
02e9fd35d0 servo: Merge #5852 - Remove unsafe transmute functions in JS and LayoutJS (from nox:rm-unsafe-transmute); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 56a7981c9c9c6df30fbb3add3d8d0085916fe313
2015-04-26 14:40:31 -05:00
Ms2ger
c7955e722b servo: Merge #5847 - Avoid as_slice() / at_mut_slice() (from Ms2ger:slice); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 1389be37823fccf4108f4e79d0a3a793f0bbe93e
2015-04-26 05:30:28 -05:00
Peter
9ac0d7f286 servo: Merge #5844 - Removed unessary poping in dispatch_event, fixes #5843 (from pgonda:removing-poping-dispatch_event); r=Ms2ger
fixes for #5843

Source-Repo: https://github.com/servo/servo
Source-Revision: aef48baeb4a67d003c8a88d91d01d3a33ac3620d
2015-04-26 02:53:45 -05:00
Ms2ger
bdc596eda8 servo: Merge #5840 - Replace the Str implementation for AttrValue by a Deref implementation (from Ms2ger:attrvalue-slice); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: b22a6c8095f03fda6e8901dea768af18d474fb31
2015-04-25 08:59:26 -05:00
Anthony Ramine
80750f3330 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
Ms2ger
f3c2bbdd16 servo: Merge #5827 - Use as_slice less (from Ms2ger:slice); r=mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 79be3b967668e46a4289f4fc8fce2b4f457cab23
2015-04-24 12:12:53 -05:00
Dhananjay Nakrani
39f210d087 servo: Merge #5823 - Implement HTMLMetaElement.{name,content} (fixes #5663) (from servo:meta); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 88d9c1b257d7519e43d36bcaef67588b9fa54c7e
2015-04-24 08:28:47 -05:00
James Graham
b71012fbc1 servo: Merge #5808 - Add script execution support via WebDriver (from jgraham:webdriver_execute_script); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 38ac11d0b8ae4244f49b59a6321a1a570ea01e03
2015-04-23 13:41:11 -05:00
Anthony Ramine
294e101ec0 servo: Merge #5806 - Implement Text.splitText() (from nox:splittext); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 1b08211a5e9ec00eeaf241b916d51dc665289825
2015-04-23 09:38:48 -05:00
Anthony Ramine
777bcadb1c servo: Merge #5768 - Implement SVG support for Document.title (from nox:document-title); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: d037187213234d6c0deb5f2c6439647b5dd1b8a4
2015-04-23 05:20:45 -05:00
Mátyás Mustoha
69ad591e1a servo: Merge #5802 - Fix some irregular indentation (from mmatyas:indentfix); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 43d666f94b9b1b8313d430785946b8d3e020fecf
2015-04-22 19:49:30 -05:00
Glenn Watson
1511f427f8 servo: Merge #5767 - Refactored image cache task - details below (from glennw:image-cache); r=larsbergstrom,jdm
* Simpler image cache API for clients to use.
 * Significantly fewer threads.
   * One thread for image cache task (multiplexes commands, decoder threads and async resource requests).
   * 4 threads for decoder worker tasks.
 * Removed ReflowEvent hacks in script and layout tasks.
   * Image elements pass a Trusted<T> to image cache, which is used to dirty nodes via script task. Previous use of Untrusted addresses was unsafe.
   * Image requests such as background-image on layout / paint threads trigger repaint only rather than full reflow.
 * Add reflow batching for when multiple images load quickly.
   * Reduces the number of paints loading wikipedia from ~95 to ~35.
 * Reasonably simple to add proper prefetch support in a follow up PR.
 * Async loaded images always construct Image fragments now, instead of generic.
   * Image fragments support the image not being present.
 * Simpler implementation of synchronous image loading for reftests.
 * Removed image holder.
 * image.onload support.
 * image NaturalWidth and NaturalHeight support.
 * Updated WPT expectations.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac0645c2363b5a6ea3930b0857b3a27f1b6d033f
2015-04-22 19:16:46 -05:00
Ms2ger
d21a740830 servo: Merge #5801 - Stop using the deprecated range function (from Ms2ger:range); r=pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 43e664cda1dd562935fe5e4fdd92e5abcf6fb8f9
2015-04-22 18:24:21 -05:00
Mátyás Mustoha
3ceb9c7bf4 servo: Merge #5757 - Canvas: implement global composition and blending (from mmatyas:canvas_globalcomposite); r=jdm
Implements https://html.spec.whatwg.org/multipage/scripting.html#dom-context-2d-globalcompositeoperation.

Source-Repo: https://github.com/servo/servo
Source-Revision: e278e5b9a27738bdca7a151b4295628e1f179e29
2015-04-22 14:15:28 -05:00
nithin murali
b553cac82d servo: Merge #5781 - Implement child reparenting and node removal during parsing (from jdm:reparent); r=Ms2ger
Fixes html5test.com.

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 9ae3cad31e6c0567afc909651ab1bcd1dc89d320
2015-04-22 13:01:32 -05:00
Mátyás Mustoha
8953c2461c servo: Merge #5773 - Canvas: add clipping path support (from mmatyas:canvas_clip); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: c4b7979450a3b884ed727e0c1d306897d255aef9
2015-04-22 10:40:10 -05:00
Ms2ger
b7f90cee85 servo: Merge #5790 - Store a Runtime object in ScriptTask (from Ms2ger:new_rt_and_cx); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 886805d76c206214047c475c6f8947c8c38c40b7
2015-04-22 07:08:41 -05:00
Avi Weinstock
effc56f690 servo: Merge #5547 - X11 clipboard support (from aweinstock314:x11-clipboard); r=jdm
Manual re-opening of #5479 (since it seems that GitHub disables re-opening with the same number after a rebase).

Source-Repo: https://github.com/servo/servo
Source-Revision: 9974ebb2f969d2de8959fe74844b7410a5acd54e
2015-04-21 14:41:32 -05:00
Anthony Ramine
c721dcf26a servo: Merge #5775 - Implement CSSStyleDeclaration.float (fixes #5101) (from nox:cssstyledeclaration-float); r=jdm
It just needs to be prefixed by an underscore.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fa1a6a42621a8bd46137b3417a7623a6b3ed2d1
2015-04-21 13:33:03 -05:00
Maciej Skrzypkowski
0b9bc60a59 servo: Merge #5594 - Refactoring, added conversion to lowercase for get_attribute_by_name method. (fixes #5561) (from mskrzypkows:get_attribute_by_name); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: a3dafe49999d24e12b2f6b5cc74b468e58b7384a
2015-04-21 10:23:03 -05:00
Mátyás Mustoha
5201431aa6 servo: Merge #5770 - Canvas: implement rectangle drawing (from mmatyas:canvas_rect); r=jdm
A simple little patch.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1d66b090a2b25203f751455d9f0f4985a77ccd64
2015-04-21 08:43:47 -05:00
Diego Marcos
00f99e2944 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
Ms2ger
6f5411f3e2 servo: Merge #5752 - Make ScriptTask::js_context immutable (from Ms2ger:cx-immutable); r=jdm
Since we drop the ScriptTask almost immediately after clearing the field,
there's little reason to do it manually.

Source-Repo: https://github.com/servo/servo
Source-Revision: ccc77caa79344a45003f1efb7184cec5b882edae
2015-04-20 13:17:43 -05:00
Ms2ger
b71bc6d55d servo: Merge #5750 - Parse attributes according to the specification in AttrValue::from_u32 (from Ms2ger:from_u32); r=jdm
This exposes another bug: "-0" failed to parse with str.parse(), and is now
successfully parsed into 0. However, input.size and textarea.{rows, cols} are
supposed to be "limited to only non-negative numbers greater than zero", so 0
is not actually supposed to be accepted.

Source-Repo: https://github.com/servo/servo
Source-Revision: b2585bee4d483f8a9ae93f3a017e97c0277421d1
2015-04-20 07:36:06 -05:00
Glenn Watson
0eccf68b72 servo: Merge #5559 - Support focus management and keyboard events for iframes (from glennw:iframe-focus); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 8b8daa24b8d25c531ea74a70b4b6e25cb3d7d58c
2015-04-19 18:13:59 -05:00
Mátyás Mustoha
958c5b446c servo: Merge #5731 - Canvas: implement context state save/restore (from mmatyas:canvas_saverestore); r=jdm
This patch enables the use of `save()` and `restore()` for the canvas context, which is used by *a lot* of sites and scripts.

Depends on servo/rust-azure#153.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c7c289acae3ea012338a5b25bc50a10e7f7074d
2015-04-19 17:40:33 -05:00
Dhananjay Nakrani
8c4cb125e1 servo: Merge #5744 - Change parse_progress() take JSRef by value. [Issue#5738] (from dhananjay92:Issue#5738); r=Manishearth
*This PR solves Issue #5738*

Source-Repo: https://github.com/servo/servo
Source-Revision: 4474321829d0a1ead7a5ba30fbc9225cd1131319
2015-04-19 17:00:56 -05:00
Ms2ger
32965e105e servo: Merge #5741 - Use get_attr_for_layout more (from Ms2ger:attr-for-layout); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e5ec55f0d8d4ec17aab3682e6d3048c88c6f458e
2015-04-19 09:37:29 -05:00
Bogdan Cuza
8a20ec7f7a servo: Merge #5567 - Make mouse_over_targets a RootedVec (from boghison:document_rootedvec); r=jdm
Fixes #5539

Source-Repo: https://github.com/servo/servo
Source-Revision: 331708f0f6d4bff8cec608e963fb24f79cf1ffca
2015-04-19 09:05:23 -05:00
Corey Farwell
7a0c4a962f servo: Merge #5729 - Don't link to specific WHATWG multipage page (from frewsxcv:whatwg-multipage-redirects); r=Manishearth
"Links to the multipage version of the specification are unfortunately
likely to break over time."
-- https://html.spec.whatwg.org/multipage/asefij.html

This commit removes all references to the specific pages when viewing
WHATWG using multipage mode. I went through all these links and they
redirect fine.

Regex used to generate this commit:

`s_whatwg.org/multipage/.*#_whatwg.org/multipage/#_g`

Source-Repo: https://github.com/servo/servo
Source-Revision: d90fe2b0889dee4eb27693aca7670969d5253424
2015-04-17 08:57:33 -05:00
Marcus Klaas
15769105c8 servo: Merge #5733 - Remove unnecessary clone in Document constructor (from marcusklaas:issue-5719); r=Manishearth
This closes issue https://github.com/servo/servo/issues/5719.

Source-Repo: https://github.com/servo/servo
Source-Revision: c3ed0fd57377c617ef877cd685d3248ce37d1710
2015-04-17 07:53:06 -05:00
Anthony Ramine
9dc8518d21 servo: Merge #5721 - Finish implementation of ChildNode and ParentNode (from nox:nodeorstring); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 4fd4370a9680f4845f05efd43ce9cb26c7433f05
2015-04-16 14:47:32 -05:00
Ms2ger
e374ed8222 servo: Merge #5717 - Fix URLSearchParams formatting (from Ms2ger:usp); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e26219828bfd71c5dfce411f93f2ea5dbb131d7a
2015-04-16 14:15:16 -05:00
Joseph Seaton
8470bbeba4 servo: Merge #5704 - Make many CSS properties animatable (from jseaton:jseaton/animation-props); r=pcwalton
Contributes towards servo/servo#5494 - includes all properties listed at http://dev.w3.org/csswg/css-transitions/#animatable-css .

Unforunately the most obvious way to support text-shadow meant making a few structures NoCopy.

Source-Repo: https://github.com/servo/servo
Source-Revision: 653b40d3e56aedbc11d6c51c5e80819231f42144
2015-04-16 13:42:16 -05:00
Md. Enzam Hossain
48f39ecb25 servo: Merge #5650 - Implement node::LookupPrefix and add test (from ienzam:issue/1826); r=jdm
Tracking issue #1826 - implemented one of the three methods.

This is follow up of #5402. Rebased and squashed and made the method iterative.

Source-Repo: https://github.com/servo/servo
Source-Revision: e3756f9e3fe8c042f5e6a02b9d4d6a2310aeda04
2015-04-16 13:07:20 -05:00
Josh Matthews
3e5cee10f5 servo: Merge #5156 - Support opt-in async network events (from jdm:asyncnet); r=pcwalton,Manishearth
This implements a framework for opting in to receiving network events asynchronously. It also converts XMLHttpRequest to use them, and paves the way for better support for synchronous XHR using on-demand, targeted event loops instead of spinning the global event loop. This gives us complete feature parity with the existing XHR implementation, using fewer threads than before in the async case.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3151497d498b001b4a783dce0595615c6fc40936
2015-04-16 11:33:06 -05:00
Mátyás Mustoha
4c0d815c42 servo: Merge #5701 - Add specification links to canvas line cap and line join (from mmatyas:canvas_linecapjoin_url); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 045831748e08f0b82ca84bd7d93844cb1c7eab60
2015-04-15 10:44:42 -05:00
Corey Farwell
1d84128a7b servo: Merge #5693 - Add/update comments with links to spec (from frewsxcv:spec-links); r=jdm
Extracted out of #5649

* add more hyperlinks to associated specification for structs/methods
* follow redirects and update links
* replace broken links
* removal of WHATWG multipage page name since the page name is not
  guaranteed to be stable

Source-Repo: https://github.com/servo/servo
Source-Revision: 3dc25af9e121db010e4385efb3863ba45b0e0bcf
2015-04-14 17:16:55 -05:00
Bogdan Cuza
3e7a81ecf3 servo: Merge #5544 - Make Metadata use ContentType (from boghison:master); r=jdm
Fixes #5538

Source-Repo: https://github.com/servo/servo
Source-Revision: 7f422e2076e7ebc9949e9fb2ffc3f09c653130c0
2015-04-14 15:11:20 -05:00