Commit graph

21881 commits

Author SHA1 Message Date
Eric Anholt
eaec5de184 webgl: Only update FBO status once in framebufferTexture2D().
We update it below after we send the actual FramebufferTexture2D
command to the GL.
2016-11-05 11:49:31 -07:00
Eric Anholt
5e5eb18b0b webgl: Fix out-of-bounds readpixels handling.
This fixes the crash in read-pixels-pack-alignment (which was trying
to read out of bounds).

Fixes #13901
2016-11-05 11:49:30 -07:00
Eric Anholt
9a10666941 webgl: Throw an error on readPixels(width < 0 || height < 0)
Otherwise gleam will try to allocate a negative size area for the
result, and we'll panic with oom.
2016-11-05 11:49:30 -07:00
Eric Anholt
3277c5281c webgl: Validate that framebuffer attachment sizes match.
This is required by the WebGL spec, and we need to figure out the FB
size like this for validating ReadPixels.
2016-11-05 11:49:29 -07:00
Eric Anholt
d77373654a webgl: Update FBO status when textures or RBs are reallocated.
FBO status is supposed to depend on the size of the attachments all
matching, so we need to re-check when it changes.  We don't ensure
matching yet, but this will prevent regressions when we do.
2016-11-05 10:43:12 -07:00
Martin Robinson
ef82d772c1 Don't promote all scrollable regions to stacking contexts
Instead annotate all flows with their owning ScrollRoots. When
processing the display list items into a flattened display list, we add
PushScrollRoot and PopScrollRoot to signal when scrolling regions start
and end. It is possible for content from different scrolling regions to
intersect and when they do, the stack of scrolling regions is
duplicated.  When these duplicated scrolling regions stacks reach
WebRender, it will scroll them in tandem.

The PushScrollRoot and PopScrollRoot items are currently represented as
StackingContexts in WebRender, but eventually these will be replaced
with special WebRender display items.

Fixes #13529.
Fixed #13298.
2016-11-05 18:36:45 +01:00
Eric Anholt
8e681dddc1 webgl: Don't forget to update FBO status after detaching a texture.
We had this in the renderbuffer detach process, but missed it in this
one.
2016-11-05 10:31:41 -07:00
Eric Anholt
bf5a3db745 webgl: Don't update texture attachment state if we throw an error.
If we're going to return from this function without updating the
underlying GL state because of a WebGLError, we shouldn't have updated
our shadow of the GL state.
2016-11-05 10:30:40 -07:00
Eric Anholt
59634cf78e webgl: Track the level with texture attachments.
We need this to be able to get the size of the attached texture for
completeness validation.

Signed-off-by: Eric Anholt <eric@anholt.net>
2016-11-05 10:30:15 -07:00
Stefan Schindler
d2c23942a8 Remove unneeded #allow(unsafe_code) 2016-11-05 17:42:29 +01:00
Eric Anholt
08938499a0 webgl: Add an interface for getting the size of renderbuffers.
We need this for framebuffer status checking.
2016-11-05 09:42:15 -07:00
Simon Sapin
1a18161006 rule tree: more descriptive field names 2016-11-05 17:29:56 +01:00
Simon Sapin
2dd2c9cedd Simplify rule_tree::StyleSourceGuardHandle 2016-11-05 17:29:55 +01:00
Simon Sapin
98bd99b74c rule tree: Remove unsound transmute()
RuleTreeDeclarationsIterator would yield &PropertyDeclaration
with the lifetime of the rule tree, but the reference would only
be valid as long as the iterator was holding the corresponding lock.

The lock would be released when the iterator’s `.next()` method
moves to the next rule tree node, or when  the iterator is dropped.

Also change apply_declaration to not require a `Clone` iterator
(since closures unfortunately don’t implement `Clone`).
Instead have it take a callable that returns a fresh iterator.
2016-11-05 17:29:54 +01:00
Emilio Cobos Álvarez
de4fe6e2b6 Concurrent rule tree, v1
This patch introduces infrastructure for the rule tree, and constructs it.

We don't use it yet, nor have good heuristics for GC'ing it, but this should not
happen anymore once we store the rule node reference in the node.

I haven't messed up with memory orders because I want to do a try run with it,
then mess with them.

Take down the ApplicableDeclarationsCache, use the rule tree for doing the cascade.
2016-11-05 17:29:52 +01:00
Anthony Ramine
1037fecc8b Properly expect a syntax error with :scope selectors in Element.closest 2016-11-05 16:00:25 +01:00
bors-servo
f7875dad1a Auto merge of #14060 - servo:gfx-azure, r=nox
Remove the direct azure dependencies from gfx, layout and layout_thread.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14060)
<!-- Reviewable:end -->
2016-11-05 07:26:30 -05:00
Rohit Burra
76ec3f423a Add --with-debug-assertions flag for Mach 2016-11-05 16:02:40 +05:30
gurudarshan266
e0132b98cc wpt-test for strict-origin and strict-origin-when-cross-origin referrer policy
Fixed rebase issue in ports/cef/Cargo.lock
Deleted PASSing testcases which were failing before implementation of referrer policies
2016-11-05 00:03:24 -04:00
bors-servo
516be8f85c Auto merge of #14074 - glennw:shader-hot-fix, r=pcwalton
Manually copy across a shader fix from WR.

This fix has landed in WR, but WR can't be updated right now, due
to a scroll change landing in WR without the Servo PR being ready
quite yet.

Fixes #14061.
Fixes #14073.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14074)
<!-- Reviewable:end -->
2016-11-04 19:09:35 -05:00
bors-servo
2b4a7b0b7a Auto merge of #14053 - notriddle:flow_ref_unsafe, r=pcwalton
Make `FlowRef` a newtype

This creates a sharp distinction between `Arc<Flow>`s, which may be
owned by anyone, and `FlowRef`s, which may only be owned by the
traversal code. By checking the reference count, we ensure that a `Flow`
cannot be pointed to by `Arc`s and `FlowRef`s simultaneously.

This is not a complete fix for #6503, though it is a necessary start
(enforcing the no-aliasing rule of `FlowRef::deref_mut` will require far
more work).

---

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14014 (github issue number if applicable).
- [X] These changes do not require tests because the existing tests, plus the added assertions, should be sufficient

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14053)
<!-- Reviewable:end -->
2016-11-04 16:53:38 -05:00
Glenn Watson
d62e14f8b1 Manually copy across a shader fix from WR.
This fix has landed in WR, but WR can't be updated right now, due
to a scroll change landing in WR without the Servo PR being ready
quite yet.

Fixes #14061.
Fixes #14073.
2016-11-05 07:37:26 +10:00
Michael Howell
5f320bd2ca Make FlowRef a newtype
This creates a sharp distinction between `Arc<Flow>`s, which may be
owned by anyone, and `FlowRef`s, which may only be owned by the
traversal code. By checking the reference count, we ensure that a `Flow`
cannot be pointed to by `Arc`s and `FlowRef`s simultaneously.

This is not a complete fix for #6503, though it is a necessary start
(enforcing the no-aliasing rule of `FlowRef::deref_mut` will require far
more work).

Fixes #14014
2016-11-04 13:36:04 -07:00
bors-servo
cfef68f92d Auto merge of #14047 - mskrzypkows:getElementsByTagName, r=nox
fix getElementsByTagName()

<!-- Please describe your changes on the following line: -->
Improved implementation of getElementsByTagName() in Document, properly pass 3 cases of https://dom.spec.whatwg.org/#concept-getelementsbytagname

---
<!-- 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  #11596 (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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14047)
<!-- Reviewable:end -->
2016-11-04 12:41:22 -05:00
Raghav
e0e734fa7f Remove return and resolve merge conflicts
Since last execution statement is the value which is returned, return
keyword has been removed from method strict_origin and
strict_origin_when_cross_origin.

Merge conflicts in Cargo.lock has been handled
2016-11-04 13:27:08 -04:00
Maciej Skrzypkowski
af5d109695 fix getElementsByTagName() 2016-11-04 16:58:19 +01:00
Raghav
26dac98546 Code review comments and upstream merge conflicts
Incorporated code review comments in components/net/http_loader.rs
Resolved merge conflicts in cargo.lock file. Updated ReferrerPolicy in
lib.rs
2016-11-04 11:18:22 -04:00
zakorgyula
e8c1c98a77 Return the same JS object for the same Bluetooth item. 2016-11-04 15:36:57 +01:00
fokinv
d30bcbd339 Blacklisted items are removed when calling getServices/Characteristics/Descriptors. 2016-11-04 15:36:55 +01:00
zakorgyula
dd733f6994 Update the value of the Characteristic/Descriptor when calling writeValue. 2016-11-04 15:36:50 +01:00
zakorgyula
0eeb56b549 Remove not allowed services when calling getPrimaryServices. 2016-11-04 15:36:48 +01:00
fokinv
baa024e362 Return with NotFoundError when the requested deviceName/deviceNamePrefix is longer than 29 bytes. 2016-11-04 15:36:47 +01:00
fokinv
98f2233f2d Return with NotFoundError insted of TypeError, when adapter is not found. 2016-11-04 15:36:44 +01:00
zakorgyula
4ed461c6e5 Accepting empty deviceName, when requesting a BluetoothDevice. 2016-11-04 15:36:42 +01:00
zakorgyula
2b4829b89a Removing uuids field from BluetoothDevice with the related test cases. 2016-11-04 15:22:50 +01:00
zakorgyula
b72dcf326b Check if the BluetoothDevice is connected, when calling getGATT functions. 2016-11-04 15:22:48 +01:00
zakorgyula
11dbb7120f Return with InvalidStateError if a Bluetooth id is not cached. 2016-11-04 15:22:46 +01:00
bors-servo
7c6793fc28 Auto merge of #14054 - servo:unreachable_code, r=SimonSapin
Fix unreachable_code warning.

<!-- 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: -->
- [ ] 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14054)
<!-- Reviewable:end -->
2016-11-04 08:44:48 -05:00
Simon Sapin
28b02695d9 Fix unreachable_code warning. 2016-11-04 14:17:31 +01:00
bors-servo
dae007fd16 Auto merge of #13612 - szeged:test-api-impl, r=jdm
WebBluetooth Test API and tests

<!-- Please describe your changes on the following line: -->

This patch depends on the [devices mock device support PR](https://github.com/servo/devices/pull/17).
After it lands, the Cargo files can be updated.
1. Adjust to the changes in [devices mock device support PR](https://github.com/servo/devices/pull/17).
2. WebBluetooth Test API implementation. Based on : https://webbluetoothcg.github.io/web-bluetooth/tests.html
3. Wpt tests for the already landed WebBluetooth functions.

<!-- 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] 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. -->

<!-- Reviewable:start -->
---

This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13612)

<!-- Reviewable:end -->
2016-11-04 07:44:42 -05:00
bors-servo
73c9847ef8 Auto merge of #14036 - frewsxcv:event, r=nox
A couple improvements to `EventTarget` event firing.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14036)
<!-- Reviewable:end -->
2016-11-04 06:43:56 -05:00
zakorgyula
ada0256030 WebBluetooth WPT tests 2016-11-04 12:36:25 +01:00
zakorgyula
e15d54edfd WebBluetooth Test API 2016-11-04 12:36:23 +01:00
Ms2ger
81ee81cbb0 Remove the direct azure dependencies from gfx, layout and layout_thread.
This does not cover transitive dependencies through canvas_traits, though that
should not be too hard to solve either.
2016-11-04 12:14:42 +01:00
bors-servo
be58dc36e8 Auto merge of #13816 - servo:msg-crate, r=nox
Move some types out of msg.

<!-- Reviewable:start -->

This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13816)

<!-- Reviewable:end -->
2016-11-04 05:26:27 -05:00
Ms2ger
277c6d0154 Move ReferrerPolicy to net_traits. 2016-11-04 10:43:37 +01:00
bors-servo
4c5d84d81a Auto merge of #14058 - rjgoldsborough:make-upload-nightly-put-datetimes-12128, r=Wafflespeanut
moving datetimestamping responsibilities from mach package

to CI upload, swaps semicolons for dashes

<!-- Please describe your changes on the following line: -->
This fixes #12128 by moving the datetimestamping responsibility from the python packaging script to the CI build shell script.

---
<!-- 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 #12128 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they are part of CI build

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14058)
<!-- Reviewable:end -->
2016-11-04 04:04:34 -05:00
bors-servo
651e40f33e Auto merge of #14057 - glennw:update-wr-keys, r=metajack
Update WR, add some key mappings, bind Ctrl-F12 to WR profiler.

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14057)
<!-- Reviewable:end -->
2016-11-04 03:11:32 -05:00
zakorgyula
4eec2c6ddc Apply the new device crate changes 2016-11-04 08:40:50 +01:00
Raghav
c24aa56377 Network Security : Implement StrictOrigin and StrictOriginWhenCrossOrigin
Referer policy strict-origin and strict-origin-when-cross-origin changes have been implemented. Relevant unit test cases have been added. Enum for RefererPolicy has been added to hyper codebase and v 0.9.11 of hyper contains these changes.

This commit also contains changes related to upgrade of hyper from v0.9.10 to v0.9.11. Other dependencies changed are rayon, utils, num_cpus.
2016-11-04 03:17:04 -04:00