Commit graph

64 commits

Author SHA1 Message Date
Jan-Fabian Humann
b60a127aa6 servo: Merge #10291 - #10211: Stop re-exporting webrender_traits WebGL types from canvas_traits (from jfhumann:10211); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 524a004e771b465e3de9ebbc33816e50949d6a25
2016-04-01 01:28:20 +05:01
Emilio Cobos Álvarez
98d36374a9 servo: Merge #10150 - Canvas cleanup (from emilio:canvas-cleanup); r=jdm
This PR cleans up the layerization infrastructure for canvas, which was unused, and removes unused dependencies.

It also takes in account my recent username change to update angle's dependency (offscreen_gl_context requires extra work due to webrender depending on it).

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2887623c4ae1960dfef52b14cd4afc3b279f9feb
2016-03-24 08:15:40 +05:01
Ms2ger
6bc75cd680 servo: Merge #10106 - Remove renderer ids (from Ms2ger:renderer-id); r=ecoal95
Source-Repo: https://github.com/servo/servo
Source-Revision: 767b11cd676327cfb71f21d2cbcee8c16a74e2b3
2016-03-22 08:21:28 +05:01
Glenn Watson
c6d5efc75f servo: Merge #9589 - Add WebRender integration to Servo (from glennw:webrender); r=pcwalton
WebRender is an experimental GPU accelerated rendering backend for Servo.

The WebRender backend can be specified by running Servo with the -w option (otherwise the default rendering backend will be used).

WebRender has many bugs, and missing features - but it is usable to browse most websites - please report any WebRender specific rendering bugs you encounter!

Source-Repo: https://github.com/servo/servo
Source-Revision: ab07b06823ea9748a6091aee2281495f86f00bce

--HG--
rename : servo/tests/unit/net_traits/lib.rs => servo/resources/shaders/clear.fs.glsl
rename : servo/tests/unit/net_traits/lib.rs => servo/resources/shaders/debug_color.fs.glsl
rename : servo/tests/unit/net_traits/lib.rs => servo/resources/shaders/mask.fs.glsl
2016-02-19 00:25:06 +05:01
Alexander Lopatin
6da1d8c042 servo: Merge #9543 - Fix #9508: Beautify our union enums constructors (from alopatindev:enums_constructors_codingstyle_fix); r=KiChjang
Solves #9508
@jdm Please review. Thanks!

Source-Repo: https://github.com/servo/servo
Source-Revision: 28ecb0bba3fa395ed56bb2448a21e02c3ff88c8b
2016-02-07 05:30:57 +05:01
jmr0
3dc744457c servo: Merge #9208 - Use image metadata to lay out images (from jmr0:master-img); r=asajeffrey
Fixes #7047.

cc: @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 46b3eb653579a40632f91497a3d48f1d7fbd40cc
2016-01-31 00:49:41 +05:01
Kishor Bhat
79a9a23449 servo: Merge #9348 - Remove unused imports in script (from therealkbhat:script-cleanup); r=Wafflespeanut
Fixes #9345.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7f16b4e47bf8aef035ea788d80172dfd1a11ecff
2016-01-18 00:07:34 +05:01
Emilio Cobos Álvarez
643caf9158 servo: Merge #9107 - webgl: Track the current program, implement some uniform functions, and nits (from emilio:webgl-uniforms-and-nits); r=simartin
Was done while implementing sequence arguments.

Depends on #9056.

Source-Repo: https://github.com/servo/servo
Source-Revision: c13e84010d1dd33c5532cdfa2937dddd4db4dd26
2016-01-13 21:45:59 +05:01
Chad Kimes
9899b01934 servo: Merge #9255 - Remove global fields from DOM objects (from ckimes89:remove-globalfield); r=nox
Fixes #9227

Source-Repo: https://github.com/servo/servo
Source-Revision: 53c4a782a0906c487139d4b6f3c62d9eca3f9f17
2016-01-12 18:03:37 +05:01
rohan.prinja
d440ee6a41 servo: Merge #9201 - task -> thread (from ajnirp:8512-task-thread); r=jdm
for #8512

Source-Repo: https://github.com/servo/servo
Source-Revision: d3e2f94f2024f4735f836588ed11303a0abafdf8

--HG--
rename : servo/components/canvas/canvas_paint_task.rs => servo/components/canvas/canvas_paint_thread.rs
rename : servo/components/canvas/webgl_paint_task.rs => servo/components/canvas/webgl_paint_thread.rs
rename : servo/components/compositing/compositor_task.rs => servo/components/compositing/compositor_thread.rs
rename : servo/components/gfx/font_cache_task.rs => servo/components/gfx/font_cache_thread.rs
rename : servo/components/gfx/paint_task.rs => servo/components/gfx/paint_thread.rs
rename : servo/components/layout/layout_task.rs => servo/components/layout/layout_thread.rs
rename : servo/components/net/image_cache_task.rs => servo/components/net/image_cache_thread.rs
rename : servo/components/net/resource_task.rs => servo/components/net/resource_thread.rs
rename : servo/components/net/storage_task.rs => servo/components/net/storage_thread.rs
rename : servo/components/net_traits/image_cache_task.rs => servo/components/net_traits/image_cache_thread.rs
rename : servo/components/net_traits/storage_task.rs => servo/components/net_traits/storage_thread.rs
rename : servo/components/script/script_task.rs => servo/components/script/script_thread.rs
rename : servo/components/util/task.rs => servo/components/util/thread.rs
rename : servo/tests/unit/gfx/font_cache_task.rs => servo/tests/unit/gfx/font_cache_thread.rs
rename : servo/tests/unit/net/resource_task.rs => servo/tests/unit/net/resource_thread.rs
rename : servo/tests/unit/util/task.rs => servo/tests/unit/util/thread.rs
2016-01-10 15:20:04 +05:01
Emilio Cobos Álvarez
8b61489514 servo: Merge #8970 - webgl: Make a general way to get data from a JS array buffer view (from emilio:webgl-array-buffer-data); r=jdm
This fixes an invalid length being reported from
`float32_array_to_slice` (which used the byte length), and also to
generalize getting data from a JS array buffer view, to reduce code
duplication.

The pending type safety issues, like where we could send a `UInt16Array`
where we expect a `Float32` one, should be solved by IDL bindings in
some cases, like `uniform[n]fv` or `vertexAttrib[n]fv`, and with extra
checks in others, like in the pending `texImage2D(..., ArrayBufferView)`.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 4ab1cdece6f594512a0ae9605ff5ebee630a70ca
2016-01-06 01:25:16 +05:01
Simon Martin
3106b1bea2 servo: Merge #8948 - Issue #8738: bufferSubData and texImage2D argument sanity checks (from simartin:issue_8738); r=ecoal95
Fixes https://github.com/servo/servo/issues/8738

Source-Repo: https://github.com/servo/servo
Source-Revision: c1cb9403a7bfa9720c653c333134b55fc214c746
2015-12-29 16:58:27 +05:01
David Zbarsky
b089820bd0 servo: Merge #8997 - Implement WebGL scissor method (from dzbarsky:scissor); r=dzbarsky
Source-Repo: https://github.com/servo/servo
Source-Revision: 1695c0ad27e4c9c062e26a5db154521e400ecbd9
2015-12-16 10:36:32 +05:01
David Zbarsky
fb2993ff72 servo: Merge #8761 - Implement some more WebGL functions (from dzbarsky:gl_functions); r=dzbarsky
r? @ecoal95

Source-Repo: https://github.com/servo/servo
Source-Revision: 89d9aad1e1e3cd93b12088f09aad1193e7298ba4
2015-12-14 07:56:20 +05:01
Corey Farwell
8c454ce7ad servo: Merge #8930 - Pass around event types as Atoms instead of Strings (from frewsxcv:event-type-atom); r=nox
`Event` internally stores the `type` as an `Atom`, and we're `String`s
everywhere, which can cause unnecessary allocations to occur since
they'll end up as `Atom`s anyways.

Source-Repo: https://github.com/servo/servo
Source-Revision: 99fd946130c9f06433b47c7f60241d5f7ad14a5b
2015-12-11 20:43:35 +05:01
Tomas Cernaj
18632570cd servo: Merge #8909 - Move ScriptMsg to script_traits crate, Fixes #8833 (from cnaj:msg_refactoring); r=jdm
Review of documentation that was missing needed.

Fixes #8833.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7438bc0425749989b8aab084a34ff3fff2ea6679
2015-12-10 10:55:44 +05:01
Emilio Cobos Álvarez
504c454c42 servo: Merge #8876 - WebGL nits (from emilio:webgl-nits); r=jdm
This improves support for running our triangle test (see: https://github.com/servo/servo/pull/8831), and adds missing error in `BufferSubData`

Source-Repo: https://github.com/servo/servo
Source-Revision: 9cccd34bc487f485c69dae71c5cd07ac8fabed4d
2015-12-08 03:27:52 +05:01
Simon Martin
c6b91c93fe servo: Merge #8831 - Issue #6791: Allow more array types in bufferData and bufferSubData (from simartin:ticket_6791); r=eefriedman
Fix https://github.com/servo/servo/issues/6791

Source-Repo: https://github.com/servo/servo
Source-Revision: 95e6b1d101ca1a1019b8fea1a13a5ef37430901f
2015-12-07 02:10:32 +05:01
Simon Martin
09ba3087f9 servo: Merge #8712 - Issue #8462: Add support for BufferSubData, CompressedTexImage2D and CompressedSubTexImage2D and reenable individual webgl WPT tests (from simartin:issue_8462); r=ecoal95
Fixes https://github.com/servo/servo/issues/8462

Source-Repo: https://github.com/servo/servo
Source-Revision: 5ee6fe120d43506e263cb4482b3a468d967a8386
2015-12-04 00:38:14 +05:01
Keith Yeung
5b3f4b220a servo: Merge #8530 - Split ConstellationMsg into ScriptMsg and CompositorMsg (from KiChjang:split-constellation-msg); r=jdm
Fixes #8356.

Source-Repo: https://github.com/servo/servo
Source-Revision: acbe41305230a926458596444ca955eff063d9dd
2015-11-19 04:10:20 +05:01
Alan Jeffrey
f8093754b7 servo: Merge #8477 - Opaque DOMString (from asajeffrey:opaque-domstring); r=asajeffrey
This patch makes DOMString an opaque wrapper round String (currently it's a transparent wrapper).

The changes are:

* Replacing DOMString(foo) by DOMString::from(foo).
* Replacing foo.0 by String::from(foo).
* Adding functions clear, push_str and extend for in-place mutation of DOMStrings.
* Replacing DOMString by String in other threads (devtools, storage and filereader).
* Making DOMString implement !Send.
* Removing the pub attribute from the contents of DOMString.

This enables experimenting with other string representations in the DOM.

Source-Repo: https://github.com/servo/servo
Source-Revision: 62acdd303b78951885c2c90747b31f318907d6c9
2015-11-13 06:48:30 +05:01
Ms2ger
3890fca29d servo: Merge #8428 - Update js (from Ms2ger:conversions); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: b40882093a306032d38ad02e30f0095e0a49ec21
2015-11-13 00:44:52 +05:01
Emilio Cobos Álvarez
1f31ca57ca servo: Merge #8412 - Add WebIDL sequence return values (from emilio:webidl-sequence-return); r=jdm
And use it for `WebGLRenderingContext::getSupportedExtensions`.
Part of #544

Source-Repo: https://github.com/servo/servo
Source-Revision: 12f6ba29a74029fa8c83cc7274181d441e1e52dd
2015-11-11 22:46:15 +05:01
Ms2ger
7cb2a13f43 servo: Merge #8312 - Make DOMString a newtype around String, rather than a typedef (from Ms2ger:DOMString); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: abfd1fb1bf071961bc8a581927eaa96a2d3e2cba
2015-11-04 16:18:41 +05:01
David Zbarsky
ed7fd17b12 servo: Merge #8305 - Get rid of a bunch of explicit derefs (from dzbarsky:roots); r=Ms2ger,
Source-Repo: https://github.com/servo/servo
Source-Revision: 4b9fa13f2f6a1aa38d180367426498f01f6414c9
2015-11-04 10:34:54 +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
nxnfufunezn
cba28409a5 servo: Merge #8262 - Removed JS::root #8251 (from nxnfufunezn:Remove_JS_root); r=Ms2ger
Fixes #8251

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 37c03c78165fbb77eb024f2c3376d5e33cd7e446
2015-10-31 17:55:23 +05:01
rohan.prinja
258086b9fa servo: Merge #8250 - remove get_rooted() and replace all references to it with references … (from ajnirp:8246-remove-get-rooted); r=Ms2ger
…to get()

for #8246

Source-Repo: https://github.com/servo/servo
Source-Revision: 00b60b93860d32e1c5aaf0f9b4a2ce5110880652
2015-10-30 06:08:44 +05:01
Eli Friedman
362ec775db servo: Merge #8073 - Make unrooted_must_root a bit more aggressive (from eefriedman:root-lint); r=Manishearth
Basically, instead of trying to check for specific kinds of statements,
just check the types of all local variables.

Also included are some commented-out proposals for some slightly more
aggressive lints which might be useful (but trigger a little too
frequently at the moment).

Source-Repo: https://github.com/servo/servo
Source-Revision: bb88832c078fbb14fa03c413fac1252b2b755015
2015-10-24 20:20:04 -05: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
Eli Friedman
7cf10cb041 servo: Merge #8026 - Fix uses of JS<T> as a type on the stack (from eefriedman:js-rooting); r=nox
`JS<T>` belongs on the heap, and only on the heap.  This is a collection of fixes so that code uses either `Root<T>` or `&T` to pass around garbage-collected pointers.

Ideally, we could completely ban constructing a `JS<T>` outside of constructor functions, but we aren't quite there yet.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7c7dbde0f4372037aac3635b8d81531ca9cdced3
2015-10-16 08:05:59 -06:00
Manish Goregaokar
64fbfa46fb servo: Merge #8030 - Fix unrooted_must_root lint to handle arguments/return types properly (from Manishearth:fix-lint-fn); r=frewsxcv
r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c
2015-10-15 15:00:00 -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
Emilio Cobos Álvarez
c4b09b9cb7 servo: Merge #7682 - webgl: Support texImage2D with a canvas as an argument (from emilio:webgl-texture2d); r=jdm
This involved some refactoring of the 2d context code, which lead to some more test passed there.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0f8c1b460100f226df954a3924598434f3dda9b2
2015-09-25 10:52:52 -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
Brandon Fairchild
f7fb1e4b4a servo: Merge #7662 - Check for multiple import blocks separated by whitespace (from nerith:import); r=frewsxcv
Fixes #7381.

Source-Repo: https://github.com/servo/servo
Source-Revision: a0d3c9223f09757124b1520c4f17e94fa8bbe249
2015-09-19 13:34:51 -06:00
Manish Goregaokar
cf0446c9f9 servo: Merge #7536 - More clippy fixes (from Manishearth:clippyfix); r=Ms2ger
Elided almost all the lifetimes and removed needless returns. Mostly done by sed + manual fixes.

r? @nox

Source-Repo: https://github.com/servo/servo
Source-Revision: c2c2646d37614ece5869af861993c3d619f6e003
2015-09-04 07:59:04 -06:00
Anthony Ramine
c327bc7867 servo: Merge #7416 - Make the traits for the IDL interfaces take &self (from nox:methods-ref); r=frewsxcv
Source-Repo: https://github.com/servo/servo
Source-Revision: 71b277d5675556e61a82ae9dbf3105449c3a8275
2015-08-27 15:08:41 -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
João Oliveira
d39bd47b08 servo: Merge #7361 - make dom_struct derive HeapSizeOf (from jxs:master); r=Ms2ger
closes #7357

Source-Repo: https://github.com/servo/servo
Source-Revision: 532fd19d69fd11d06bca7539c722a46fab2c4419
2015-08-27 02:35:45 -06:00
wilmoz
f245e43238 servo: Merge #7360 - Make handle_potential_webgl_error more ergonomic (from wilcus:ErgonomicSignature); r=Ms2ger
https://github.com/servo/servo/issues/7358

Source-Repo: https://github.com/servo/servo
Source-Revision: 06ba2167ba3a247c1e7473a208ee4e692f6fa30e
2015-08-26 05:21:42 -06:00
wilmoz
bdec4f07d0 servo: Merge #7362 - Forbid multiline imports (from wilcus:ForbidMultilineImports); r=jdm
https://github.com/servo/servo/issues/7356

Source-Repo: https://github.com/servo/servo
Source-Revision: 121110a52a549b44e65aa4ba0669bd75702588ea
2015-08-25 11:29:56 -06:00
ecoal95
d21c34c8ad servo: Merge #6770 - Add multiple WebGL calls and improve error detection (from emilio:webgl-again); r=jdm
Since it probably won't merge until multiprocess lands, I plan to use this PR to keep improving WebGL support until it can land.

Main TODOs are integration of tests, since it seems https://github.com/KhronosGroup/WebGL/issues/1105 is going nowhere, adding missing calls and proper painting via native surfaces instead of readback.

I can't resolve conflicts right now because of time but I will do it soon.

Source-Repo: https://github.com/servo/servo
Source-Revision: a109a333f1f95d4fc677b29e3613b2615514c080
2015-08-25 09:23:00 -06:00
Johann Tuffe
5c3a5a67f5 servo: Merge #7265 - Add alphabetical order check for use statements (from tafia:tidy-use); r=Ms2ger
close #7112

Source-Repo: https://github.com/servo/servo
Source-Revision: a5fbb2f2a6fa79755f975feff2435abb6a5dd0e9
2015-08-20 07:43:56 -06:00
Manish Goregaokar
d4e45231ec servo: Merge #7224 - Integrate clippy into Servo; cleanup some of script (from Manishearth:clippy); r=Ms2ger
The integration is off by default for now. You can try it out with `./mach build --features "script/plugins/clippy"`.

We're using a branch of clippy with some of the lints changed to Allow, either because they don't apply to us, or because they're noisy and dwarf other warnings (but still should be fixed)

After going through the rest of Servo's warnings I'll figure out which lints we should be keeping.

There's a cargo bug with optional deps that makes it hard for this to work with Cargo.lock -- so this PR contains no changes to lockfiles (and running the build with clippy on may dirty the lockfile, though it gets fixed later)

Source-Repo: https://github.com/servo/servo
Source-Revision: 50e1c967e4299c1515575f73d407f5f6b977d818
2015-08-18 08:15:51 -06:00
Bogdan Cuza
b3e4dcef5f servo: Merge #7097 - Measure heap memory usage for more types. Fixes #6951 (from boghison:memtypes); r=jdm
Also adds HeapSizeOf implementations/derive for some types. I've used "Cannot calculate Heap size" as a reason everywhere, because my imagination is rather limited. If you'd like me to change this message for specific types, please write something like this: "Trusted - Cannot calculate Heap size for Trusted" so that it would be easier for me to replace them through a script :)

Source-Repo: https://github.com/servo/servo
Source-Revision: a03616f379c255cc6c9b6e1d04dd7d98bd9926ce
2015-08-13 13:16:14 -06:00
ecoal95
5f266e5366 servo: Merge #6812 - webgl: Make context creation fallible. Fixes #6806 (from emilio:webgl-fail); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: b90fd5931dbba9cf26e3111132587ea285dbca05
2015-07-29 15:29:58 -06:00
Bogdan Cuza
e9c4da1e57 servo: Merge #6699 - Tidy check for FooMethods in components/script/dom/*.rs and color for tidy (from boghison:tidyspec); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 14ccb22e679722ed3374c8facec21adcf0f2b247
2015-07-28 08:56:39 -06:00
Patrick Walton
d4fd20dc7c servo: Merge #6616 - script: Make most of 2D canvas and WebGL run over IPC (from pcwalton:canvas-webgl-ipc); r=jdm
To actually make the multiprocess communication work, we'll need to
reroute the task creation to the pipeline or the compositor. But this
works as a first step.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 1764267379a00b96a1df89f3917299a0c6fd325c
2015-07-25 01:50:31 -06:00
ecoal95
4f37e0ba01 servo: Merge #6380 - Refactor WebGL implementation to move logic inside the DOM interfaces (from emilio:webgl-refactoring); r=jdm
This improves the encapsulation and consistency in our WebGL
implementation.

Also allows to implement new methods such as `getShaderSource()`.

It will also allow us to use `delete()` in the destructors of them (note
that we will probably want to keep track of them from the context before).

Some concerns:

**Trait method repetition**:
I'm aware that the traits `WebGL{Buffer,Renderbuffer,Framebuffer,Texture}Helpers` are basically the same, but `delete()` and `id()` methods are everywhere. I've thought something like:

```rust
pub trait WebGLIdentifiable {
    type WebGLId; // id is sometimes i32 (see WebGLUniformLocation)
    fn id(&self) -> Self::WebGLId;
}

pub trait WebGLBindable {
    fn bind(&self);
}

pub trait WebGLDeletable {
    fn delete(&self);
}
```

But I'd want to know your opinion first.

**`renderer` repetition**:
Thought of moving the field: `renderer: Sender<CanvasMsg>` to `WebGLObject`, but I think it makes it way more complicated to read, and also a bit unnecessary, at least IMO (`WebGLObject` will never interact with the field directly). It would also mean that all `WebGLObject`s should have one, which is true at this moment, but maybe not with WebGL 2, for example.

Source-Repo: https://github.com/servo/servo
Source-Revision: 0f8095b950dd144497919cfea65a1f154ed3ae9a
2015-07-06 09:12:59 -06:00