Commit graph

160 commits

Author SHA1 Message Date
Abelardo E. Mendoza
7269bcf046 servo: Merge #14096 - 11485 make dom methods taking mut js content unsafe (from fflorent:11485-make-dom-methods-taking-mut-JSContent-unsafe); r=nox
This is a rebased version of PR #11595

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #11485

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because: no code logic was changed

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: f70fc6644ddb142627c188ebbde2cc0a0282f9b4
2016-11-17 02:44:54 -06:00
Eric Anholt
ebe823e990 servo: Merge #14081 - webgl: out-of-bounds readPixels() fixes (from anholt:webgl-readpix-negative-width); r=emilio
<!-- Please describe your changes on the following line: -->
Fix crashes in two WebGL readPixels() tests by adding framebuffer size validation.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13901

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 2601d8eb8b5988f1f72a2449b904a75f5dab0c59
2016-11-09 10:03:42 -06:00
Eric Anholt
bf218ec238 servo: Merge #13872 - webgl: Add basic support for framebuffer attachments (from anholt:webgl-fbo); r=emilio
This is by no means a complete implementation, but I've slowed down on working on it, so I think we should look at what it takes to merge the current code.  There are some major features missing, like initializing renderbuffers to 0 (uninitialized memory leak), tracking the attachments' attributes (width/height/format) for parameter requests, and lots of missing glCheckFramebufferStatus() validation.  On the other hand, this is enough to run some demos using FBOs.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13639 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: fbec79e920c0b0ddeaeeb6c0cc97b20ad85729e0
2016-10-27 21:39:15 -05:00
Eric Anholt
cd7abec72d servo: Merge #13898 - webgl: texture size validation fixes (from anholt:webgl-texture-fixes); r=emilio
<!-- Please describe your changes on the following line: -->
This pull request fixes the errors in texture-size-limit.html.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: f3973a0d3b2d12c96d0f21624fd0d6d925f34abb
2016-10-24 00:52:57 -05:00
Anthony Ramine
cf69fd522f servo: Merge #13647 - Unify all rooting traits under RootedReference (from nox:rootedreference); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: cf2a6475cb3d7d98b925e7a235ebf36f6abe883d
2016-10-11 17:00:55 -05:00
Eric Anholt
364e976b00 servo: Merge #13665 - webgl: Implement uniformMatrix*fv (from anholt:webgl-uniform-matrix-v); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

These new functions are derived from the existing uniform*fv
functions.  They get used in a lot of demo code, so it should greatly
improve our compatibility.

This regresses uniformMatrixBadArgs.html, which gets at an existing
problem in our uniform matrix support (failure to validate
that the uniform is a matrix before calling down) but previously just
failed because it only called the 'fv' variants and never the existing
'f' variants.

Source-Repo: https://github.com/servo/servo
Source-Revision: aab9d61025fe72bdcb37f13c9cc53b787a636036
2016-10-10 03:15:10 -05:00
Emilio Cobos Álvarez
fe65f0f44d servo: Merge #13305 - WebGL IDL and correctness (from emilio:webgl-idl); r=nox,KiChjang
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [x] There are tests for these changes

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

This is a change set with multiple intentions:
 * Be correct.
 * Unlock tests that are blocking @anholt.
 * Ease the transition to typed arrays once the changes by @Ms2ger start rolling
   in, since I expect the amount of test expectations to update to be
   non-trivial.

I expect having it to run on try a few times, but... r? @nox or @KiChjang

Source-Repo: https://github.com/servo/servo
Source-Revision: ddff5ce2eb635ff1c51ed7fee2d33e890c541221
2016-10-09 06:26:06 -05:00
Anthony Ramine
b95407a112 servo: Merge #13596 - Get rid of dom::bindings::global (from nox:inline); r=Ms2ger
Globals in that PR are now represented by the fake IDL interface `GlobalScope`.

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

--HG--
rename : servo/components/script/dom/webidls/ServoXMLParser.webidl => servo/components/script/dom/webidls/GlobalScope.webidl
2016-10-07 07:52:09 -05:00
Imanol Fernandez
fa1ea9c973 servo: Merge #13208 - Fix WebGL tests & Implement WebGLRenderingContext::{validateProgram, getProgramInfoLog, disableVertexAttribArray} (from MortimerGoro:programinfolog); r=emilio
<!-- Please describe your changes on the following line: -->
Implement WebGLRenderingContext::{validateProgram, getProgramInfoLog} and improve WebGL testcase to show shader link and validation errors.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13199 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: fc251384a76547167c027d69c28deae8c410c626
2016-10-03 16:54:51 -05:00
Ofek
975aea7d1e servo: Merge #13337 - Implement WebGLRenderingContext::isEnabled (from ofekd:implement-webgl-isEnabled); r=emilio
Implemented WebGLRenderingContext::isEnabled

- Please note the return value of the implementation, not sure about returning `false` on `InvalidEnum`.
- the `webgl/conformance-1.0.3/conformance/state/gl-enable-enum-test.html` wpt test is disabled on linux but was enabled on my machine and run to validate expectations.
- the `/webgl/conformance-1.0.3/conformance/context/methods.html` test is disabled everywhere. Enabling and running on my machine showed incorrect expectations beyond `isEnabled`. The test was temporarily edited to test just for `isEnabled` and it ran successfully.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13040

- [X] There are tests for these changes (please read details above)
- [ ] These changes do not require tests because _____

Source-Repo: https://github.com/servo/servo
Source-Revision: f09595e8af6cd480238d29559579434d94f868cc
2016-09-22 11:05:55 -05:00
Glenn Watson
93c1ffc0ec servo: Merge #13309 - webgl: FBO support preparation (from anholt:webgl-fbo-prep); r=emilio
<!-- Please describe your changes on the following line: -->
Sending this PR now so that we can get the webrender patches merged.  This is prep for the webgl-fbo series, with one small fix for some conformance tests.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 7c0dfd07ad5149406b389ca893d51f6fa442e98e
2016-09-20 19:19:21 -05:00
UK992
f8cb9971b7 servo: Merge #13205 - Tidy: Fix ordering use statements with braces (from UK992:tidy-sort); r=Wafflespeanut
This hack fixes https://github.com/servo/servo/issues/7412 and matches behavior with rustfmt.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3117787fd2a8b7748cfde1e9b8c5be3c00f2c599
2016-09-08 22:19:19 -05:00
Anthony Ramine
1c0d09c584 servo: Merge #13100 - Use Option<T> to return from getters (from nox:better-getters); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 3649a356c8ddd04d3beebff9978b1bffa407c307
2016-08-31 04:10:42 -05:00
Eric Anholt
e6de2536bf servo: Merge #13102 - webgl: Add isProgram() support (from anholt:webgl-is-program); r=emilio
<!-- Please describe your changes on the following line: -->
webgl: Add isProgram() support.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

There's one failure still, where a deleted program should still be
considered to be a program until it's unbound.  However, I recently
made it so that we unbind at delete time, and we may need to partially
back that change out.

Source-Repo: https://github.com/servo/servo
Source-Revision: d37d4d697ae8c8897384213be82f25a51a4aa835
2016-08-28 21:23:59 -05:00
Eric Anholt
4c169f0d81 servo: Merge #13060 - webgl: Do validation of glScissor/glViewport(width, height) on the DOM side (from anholt:webgl-invalid-passed-params); r=emilio
<!-- Please describe your changes on the following line: -->
webgl: Do validation of glScissor/glViewport(width, height) on the DOM side

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Avoids testcase CRASHes due to unexpected GL errors.

Source-Repo: https://github.com/servo/servo
Source-Revision: 11e8e42fd855c1078364c70926dfb1c888bdb7bb
2016-08-28 20:10:47 -05:00
Eric Anholt
daa29f2156 servo: Merge #12934 - webgl: object deletion and bindings (from anholt:webgl-deletion-and-bindings); r=emilio
<!-- Please describe your changes on the following line: -->
This PR brings in some fixes to the wpt object-deletion-and-behaviour.html testcase.

The test still has many failures, but some of the things that were really getting in the way are fixed.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 969aefe01f347060c10e0729e3429113018e4ed1
2016-08-27 00:05:54 -05:00
Eric Anholt
12e38a2dba servo: Merge #13052 - webgl: Fix validation of drawElements()'s type argument (from anholt:webgl-drawelements-types); r=nox
<!-- Please describe your changes on the following line: -->
webgl: Fix validation of drawElements()'s type argument.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Fixes crash due to unexpected GL errors in gl-drawelements.html.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3b11c5ea2d3d6e68d4f9609e5e2a81056bfb27d0
2016-08-26 06:24:39 -05:00
Eric Anholt
c788046d08 servo: Merge #12857 - Implement GL_FRAMEBUFFER_BINDING (and fix a VertexAttrib1fv typo) (from anholt:webgl-framebuffer-binding-2); r=emilio
<!-- Please describe your changes on the following line: -->
This PR fixes many webgl conformance test failures due to missing support for a getParameter() call in the webgl test utils.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #12852

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 8472699885fe81957dc9d183c209f3aa31f4c4c2
2016-08-14 04:46:17 -05:00
Eric Anholt
20d4a31940 servo: Merge #12794 - webgl: Validate that depthRange near <= far (from anholt:webgl-depthrange-validate); r=emilio
<!-- Please describe your changes on the following line: -->

Add a check for one of the subcases of webgl-specific.html.

I added a longer comment citing the spec than is common in the file -- we've found these kinds of citations really useful in Mesa, but if we want to keep it to the spec link, I could change it.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Fixes a subtest of webgl-specific.html.

Source-Repo: https://github.com/servo/servo
Source-Revision: f2b861fb24e2322d21c1a990ef25e49d2965b0ce
2016-08-10 05:40:19 -05:00
Anthony Ramine
cc183b15a7 servo: Merge #12224 - Remove some stuff from util (from nox:die-util-die); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 3b0dadda529a5ba45a8a0dc394187f43a66e7c1f

--HG--
rename : servo/components/util/print_tree.rs => servo/components/gfx_traits/print_tree.rs
rename : servo/components/util/workqueue.rs => servo/components/style/workqueue.rs
2016-07-04 12:57:00 -07:00
Eduard Burtescu
da092febcb servo: Merge #11872 - Replace return_address usage for rooting with stack guards and convenience macros (from eddyb:back-to-roots); r=Ms2ger
The existing `Rooted` and `RootedVec` users were migrated the the following two macros:
```rust
let x = Rooted::new(cx, value);
// Was changed to:
rooted!(in(cx) let x = value);
// Which expands to:
let mut __root = Rooted::new_unrooted(value);
let x = RootedGuard::new(cx, &mut __root);
```
```rust
let mut v = RootedVec::new();
v.extend(iterator);
// Was changed to:
rooted_vec!(let v <- iterator);
// Which expands to:
let mut __root = RootableVec::new();
let v = RootedVec::new(&mut __root, iterator);
```

The `rooted!` macro depends on servo/rust-mozjs#272.
These APIs based on two types, a container to be rooted and a rooting guard, allow implementing both `Rooted`-style rooting and `Traceable`-based rooting in stable Rust, without abusing `return_address`.

Such macros may have been tried before, but in 1.9 their hygiene is broken, they work only since 1.10.

Sadly, `Rooted` is a FFI type and completely exposed, so I cannot prevent anyone from creating their own, although all fields but the value get overwritten by `RootedGuard::new` anyway.
`RootableVec` OTOH is *guaranteed* to be empty when not rooted, which makes it harmless AFAICT.

By fixing rust-lang/rust#34227, this PR enables Servo to build with `-Zorbit`.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix rust-lang/rust#34227
- [x] These changes do not require tests because they are not functional changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 80cb0cf8214fd52d2884724614c40cb278ee7575
2016-07-04 11:03:35 -07:00
Anthony Ramine
82df62fcd8 servo: Merge #11892 - Use wrappers for GL IDs (from nox:webgl-wrappers); r=emilio
See https://github.com/servo/webrender_traits/pull/62.

Source-Repo: https://github.com/servo/servo
Source-Revision: dca85ae98d620723eb7466615d11a032c58d5ca3
2016-06-28 13:13:44 -05:00
Emilio Cobos Álvarez
3100c8274d servo: Merge #11724 - webgl: Refactor texture validations to take advantage of rust type system (from emilio:webgl-refactor); r=jdm
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] These changes do not require tests because refactoring.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

This commit introduces the `WebGLValidator` trait, and uses it for multiple
validations in the texture-related WebGL code, to move that logic out of the
already bloated `webglrenderingcontext.rs` file.

It also creates a type-safe wrapper for some WebGL types, removing all the
`unreachable!`s there, and introduces a macro for generating them conveniently.

This partially addresses #10693, pending refactor more code to use this
infrastructure, and (possibly?) introducing an `AsGLError` trait for the errors
to make the error handling happen in `WebGLContext`.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 80680764562bd4a46bd72a426b8157d59f6a6fd0
2016-06-25 15:16:48 -05:00
Daosheng Mu
9a01da77bb servo: Merge #11168 - Implement WebGL TexSubImage2D (from daoshengmu:texSubImage2D); r=emilio
Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data:
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

Either:
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because I have run the wpt test of texSubImage2D.html, and it works.

Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process.

I have implemented ```TexSubImage2D``` follow [the spec](https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8). This is my first version of implementation, and I notice I can reuse the code from ```TexImage2D```. Therefore, I would like to discuss make ```validate_tex_image2D_from_buffer``` and ```validate_tex_image2D_from_source``` to remove duplicate code.

Part of #10209

Source-Repo: https://github.com/servo/servo
Source-Revision: 5e8ab6c0ff3eb8504c977f16dfc9507e36853e71
2016-06-09 19:49:08 -05:00
Daniel
95d70551db servo: Merge #11426 - Implement IsBuffer, IsFramebuffer and IsRenderbuffer for WebGLRenderingContext (from DDEFISHER:master); r=emilio
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy --faster` does not report any errors
- [X] These changes fix #11357
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: b11648903bb07a31ec93f3030058ed41b3472b17
2016-05-29 20:03:56 -05:00
Cullen Rhodes
2bd22f97ce servo: Merge #11329 - Report use statements that use {} with only one entry (from c-rhodes:11320); r=jdm
Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data:
- [X ] `./mach build -d` does not report any errors
- [X ] `./mach test-tidy --faster` does not report any errors
- [X ] These changes fix #11320  (github issue number if applicable).

Either:
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f9796fa696e9514280777398467696dd4f004b3
2016-05-27 07:11:17 -05:00
Kosov Eugene
0960027607 servo: Merge #11458 - add log2(u32) and use it to prevent casting to and from float to int (from kevgs:log2); r=Manishearth
<!-- Please describe your changes on the following line: -->
PR for #11440
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: f2f2987e74e23bbb01549e6c06ab71513692d9ab
2016-05-27 03:56:51 -05:00
Anthony Ramine
5aa3cb5ed3 servo: Merge #11326 - Move DOMString back to script (from nox:non-geckolib); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 6abcd793d780369767385b01b02ee725d6b10585
2016-05-24 02:07:29 -07:00
Daniel Robertson
7fba47fcab servo: Merge #11147 - Impl copyTexImage2D and copyTexSubImage2D (from danlrobertson:webgl-tex); r=emilio
- [X] `./mach build` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes

Implement copyTexImage2D and copyTexSubImage2D for WebGLRenderingContext. Feedback would be appreciated. I did my best to follow the [spec](https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8). Please let me know if I missed anything. I couldn't find tests for this. Let me know if I should create one. I'm more than happy to do so. As always any feedback, comments,or critiques are very welcome 😄

Part of #10209

Source-Repo: https://github.com/servo/servo
Source-Revision: 846517342b8c72da483318b5260e74ad8de35f86
2016-05-23 20:07:52 -07:00
David Zbarsky
5213796900 servo: Merge #11324 - Implement SampleCoverage (from dzbarsky:sample_coverage); r=nox
Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data:
- [X] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy --faster` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

Either:
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5454cfb36967a81681389df78eb06653d6367a60
2016-05-23 16:52:28 -07:00
Ms2ger
c69abc638b servo: Merge #11270 - Remove ConstellationChan (from servo:ConstellationChan); r=asajeffrey
Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data:
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy --faster` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

Either:
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because _____

Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process.

It's a pointless abstraction that propagates the obsolete chan terminology,
swaps the order in which the sender and receiver are returned, and hides a
source of panics.

Source-Repo: https://github.com/servo/servo
Source-Revision: 27c25e859a45c3d79c85e96b85ec5226a3231e10
2016-05-19 12:38:26 -07:00
David Zbarsky
ad975caa5a servo: Merge #10776 - Implement GetVertexAttrib (from dzbarsky:getVertexAttrib); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: fe116b4bd70def7beb22ca7264476e3ab0f5932c
2016-05-18 14:40:32 -07:00
David Zbarsky
a4eeafae15 servo: Merge #10668 - Implement WebGLRenderingContextBase::readPixels() (from dzbarsky:read_pixels); r=emilio
@emilio
Anything obviously wrong stick out to you? Haven't had a chance to debug why tests/wpt/web-platform-tests/webgl/conformance-1.0.3/conformance/programs/gl-bind-attrib-location-long-names-test.html and co. get the wrong results from ReadPixels.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7bede60272a79fe094ea81979044b4d6eceeada4
2016-05-14 14:13:44 -07:00
Daniel
bb11573405 servo: Merge #11072 - Implement IsShader fn and IsTexture fn for WebGLRenderingContext (from DDEFISHER:master); r=emilio
fixes #11064

Source-Repo: https://github.com/servo/servo
Source-Revision: f45a99c9fe5a4b05dd0d27f129d53ed1f75ea8ff
2016-05-10 03:16:20 -07:00
Patrick Walton
25cd84fdc2 servo: Merge #11000 - compositing: Send mouse events to the right pipeline when using WebRender (from pcwalton:wr-pipeline-relative-events); r=glennw
Fixes mouse events in browser.html.

Requires servo/webrender_traits#47 and servo/webrender#272.

r? @glennw
cc @paulrouget

Source-Repo: https://github.com/servo/servo
Source-Revision: 97dfcedbcfe781dc07661e4cfe886cc8edff7785
2016-05-04 14:55:09 -07:00
Keith Yeung
d27d3c60eb servo: Merge #10670 - Implement stencil fns for WebGLRenderingContext (from KiChjang:webgl-stencils); r=emilio
Depends on servo/webrender#261.

Closes #10659.

Source-Repo: https://github.com/servo/servo
Source-Revision: 78041737def89de90cba20ea29afe4e107008117
2016-04-24 12:40:59 -07:00
Emilio Cobos Álvarez
a30e4d95de servo: Merge #10443 - webgl: Implement the pending texImage2D overload, and add more validation (from emilio:webgl-teximage2d-overload); r=jdm
This is a large-ish refactor of the Texture2D code, but it should be
easier to read and of course more correct.

I tried to annotate every error condition with a spec paragraph.

I made just a reftest to ensure this works as intended, since I expect #10373 to land pretty soon.

Source-Repo: https://github.com/servo/servo
Source-Revision: f1defb446e8cd4e36231acae77f11c72c74964b0
2016-04-22 11:25:29 -07:00
David Zbarsky
433de7f243 servo: Merge #10652 - Prevent use of reserved names in BindAttribLocation (from dzbarsky:reserved); r=dzbarsky
(Depend on the WebGL tests landing)

Source-Repo: https://github.com/servo/servo
Source-Revision: 82b952c03f94c0b8433a9fccbe9b66aa7e704924
2016-04-19 09:17:24 +05:01
Adrian Utrilla
d9ccc49a05 servo: Merge #10436 - Added Uniform{2i, 2iv, 2fv, 3f, 3i, 3iv, 3fv} (from autrilla:uniform2); r=emilio
@emilio r?

Source-Repo: https://github.com/servo/servo
Source-Revision: 7845d670d0c0af7c4782c547e62c4b737e345fad
2016-04-14 17:12:12 +05:01
David Zbarsky
7243084069 servo: Merge #10379 - Implement GetActiveAttrib (from dzbarsky:getActiveAttrib); r=emilio
@emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 376980fb570c8f68c04eaed0b22e9046856aaaa0
2016-04-12 14:49:28 +05:01
Emilio Cobos Álvarez
7f3c31c248 servo: Merge #10224 - webgl: Add attribute validations and other nits (from emilio:shader-type-validations); r=jdm
Fixes https://github.com/servo/servo/issues/9958

Depends on a bunch of prs, and needs a test.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: f0014bd9cd5ac5db3e5a2f9fa8eafeb992df309a
2016-04-12 04:49:49 +05:01
Saurav Sachidanand
a69ed64e97 servo: Merge #10433 - Implement WebGLRenderingContext.getActiveUniform() (from saurvs:pr3); r=emilio
Fixes https://github.com/servo/servo/issues/10397

Source-Repo: https://github.com/servo/servo
Source-Revision: 4cc241c858ce8ee7894495d082a3bfc6233d80e8
2016-04-07 03:30:01 +05:01
Adrian Utrilla
436b0a1ead servo: Merge #10432 - Added Uniform{1iv, 2f, 2fv} (from autrilla:uniform); r=emilio
The remaining ones need changes to webrender_traits, so I'll have to open a PR there too.

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: a5bc74be2fc2b1ab43d5809d776a5056ac8f35c7
2016-04-07 02:09:03 +05:01
Ar13mis
3251d911d8 servo: Merge #10356 - WebGL: add Uniform2f (from this-jacob:add_uniform2f); r=emilio
Currently blocked on servo/webrender_traits#30

Source-Repo: https://github.com/servo/servo
Source-Revision: 95c410830c2cebcad2cf187c44e00343486e6e46
2016-04-05 07:01:42 +05:01
Adrian Utrilla
001f9b367f servo: Merge #10369 - Issue #10368: Implemented Uniform4iv and Uniform4i (from autrilla:Uniform4iv); r=emilio
Uniform4iv can make use of Uniform4i, so I implemented both.

Source-Repo: https://github.com/servo/servo
Source-Revision: 88d29e537cb3e92cc39804eabca7cb347c1417e9
2016-04-03 11:19:47 +05:01
Connor Brewster
d0bd2f8d97 servo: Merge #10215 - WebGL: Finish, Flush, DetachShader, GenerateMipmap (from cbrewster:webgl_finish); r=emilio
Implements #10212 and #10213

r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 8b32e63db843b4ac534c33a87ed53a4acf9b6da7
2016-04-02 23:39:47 +05:01
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
Ms2ger
74212c63cb servo: Merge #6477 - Stop using Vec::from_raw_buf (from Ms2ger:vec_from_raw_buf); r=metajack
Source-Repo: https://github.com/servo/servo
Source-Revision: aed11dc22c5b56081ddae8f5be29a22afcb488c8
2015-06-26 16:01:23 -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
ecoal95
b32a9cd993 servo: Merge #6423 - Use euclid from crates.io (from emilio:euclid); r=glennw
Sorry for not doing it yesterday, I couldn't.

cc @metajack @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 4ebb95ccd8e034007eacb447a054919ef4af2bf7
2015-06-18 20:50:22 -06:00
Simon Sapin
ab51eb3db1 servo: Merge #6388 - Remove usage of String::from_str, deprecated in #6377 (from SimonSapin:from_str); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 91cae119311064cab7f20ff898c1d885054907b5
2015-06-15 09:23:22 -06:00