Commit Graph

3245 Commits

Author SHA1 Message Date
Shing Lyu
09b780c149 servo: Merge #18183 - Enable screen.width/height/availWidth/availHeight (from shinglyu:availheight); r=asajeffrey
<!-- Please describe your changes on the following line: -->
Support screen.width/height/availWidth/availHeight using information from glutin. r?@paulrouget

Since glutin don't have `availWidth` and `availHeight` information, I let them fallback to `width` and `height`. If that's not acceptable in terms of webcompat, I can remove that part.

There are some test failures on wpt css about mutating screen.width/height should throw exception, but I can't reproduce that behavior on other major browser, so I keep them disabled. Also there are some media query issues, but I believe that's due to some test harness problem on my test machine.

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

<!-- Either: -->
- [x] There are tests for these changes in wpt cssom-view
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 504ad4de2a426c2bc70161a9190fddaa8728ead2
2017-11-13 17:06:25 -06:00
Imanol Fernandez
8b02743573 servo: Merge #19192 - Set the correct Angle GLSL output when using WebGL 2 (from MortimerGoro:webgl2_glsl); r=jdm
Set the correct Angle GLSL output  when using WebGL 2

<!-- 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: f1cf41da00b7973194104aa147f73fe55b0ad3db
2017-11-13 11:50:44 -06:00
tigercosmos
92a54af366 servo: Merge #19127 - scroll, SetScrollTop, SetScrollLeft in element.rs (from tigercosmos:overflow10); r=emilio
<!-- Please describe your changes on the following line: -->
Currently dom-element-scroll have not finished yet. (Step 10)
This PR finish the step 10 of `scroll`, `SetScrollTop`, `SetScrollLeft`

[Step 10 description](https://drafts.csswg.org/cssom-view/#dom-element-scrolltop):
> If the element does not have any associated CSS layout box, the element has no associated scrolling box, or the element has no overflow, terminate these steps.
---
<!-- 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 #19114 (github issue number if applicable).

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 37760054e2cf742c9043b96b832d2fbdf796d367
2017-11-12 17:24:33 -06:00
Fernando Jiménez Moreno
832f6d2538 servo: Merge #19180 - Fix binding generation for overloaded functions with optionals and de… (from ferjm:optional.overloaded.webidl); r=jdm
…fault values

The generated bindings for an interface like this:

```webidl
void someFunction(Foo foo, optional long a = 0, optional long b = 1);
void someFunction(Bar bar, optional long a = 0);
```
are failing to build with an error like:

```bash
    error[E0425]: cannot find function `Throw` in this scope
         --> /Users/ferjm/dev/mozilla/servo/target/debug/build/script-7b1a12ddd08207e3/out/Bindings/TestBindingBinding.rs:15395:24
          |
    15395 |                 return Throw(cx, NS_ERROR_XPC_BAD_CONVERT_JS);
          |                        ^^^^^ not found in this scope

    error[E0425]: cannot find value `NS_ERROR_XPC_BAD_CONVERT_JS` in this scope
         --> /Users/ferjm/dev/mozilla/servo/target/debug/build/script-7b1a12ddd08207e3/out/Bindings/TestBindingBinding.rs:15395:34
          |
    15395 |                 return Throw(cx, NS_ERROR_XPC_BAD_CONVERT_JS);
          |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

    error[E0425]: cannot find function `Throw` in this scope
         --> /Users/ferjm/dev/mozilla/servo/target/debug/build/script-7b1a12ddd08207e3/out/Bindings/TestBindingBinding.rs:15468:24
          |
    15468 |                 return Throw(cx, NS_ERROR_XPC_BAD_CONVERT_JS);
          |                        ^^^^^ not found in this scope

    error[E0425]: cannot find value `NS_ERROR_XPC_BAD_CONVERT_JS` in this scope
         --> /Users/ferjm/dev/mozilla/servo/target/debug/build/script-7b1a12ddd08207e3/out/Bindings/TestBindingBinding.rs:15468:34
          |
    15468 |                 return Throw(cx, NS_ERROR_XPC_BAD_CONVERT_JS);
          |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope

    error: aborting due to 4 previous errors

    error: Could not compile `script`.
```
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes

** Note that this depends** on https://github.com/servo/rust-mozjs/pull/379

Source-Repo: https://github.com/servo/servo
Source-Revision: 9d055522d355b711c7837ba5997089ba8a7641ae
2017-11-11 08:59:20 -06:00
Emilio Cobos Álvarez
12fcb22337 servo: Merge #19175 - script: Call content_and_heritage_changed from children_changed instead of add_child / remove_child (from emilio:children-changed); r=nox
add_child / remove_child aren't called when a node character data changed. This
is important for finer grained invalidation.

The only test that tests this is now wallpapered, but won't be after #19164.

Source-Repo: https://github.com/servo/servo
Source-Revision: 333c6ef7fa55bfc08e1d53025c9db452e928a8bf
2017-11-10 08:47:50 -06:00
Keith Yeung
c901cfc24a servo: Merge #18262 - Implement value sanitization on HTMLInputElement (from KiChjang:value-sanitization); r=nox
https://html.spec.whatwg.org/multipage/input.html#value-sanitization-algorithm

Source-Repo: https://github.com/servo/servo
Source-Revision: 338e2ae5206d5270a6feaf7adbb8279fe25040e2
2017-11-09 18:35:07 -06:00
Simon Sapin
c86a4ab713 servo: Merge #19128 - Upgrade to rustc 1.23.0-nightly (02004ef78 2017-11-08) (from servo:asciiext); r=nox
This fixes some new warnings, some of which (in `style`) are treated as errors. See https://users.rust-lang.org/t/psa-dealing-with-warning-unused-import-std-ascii-asciiext-in-today-s-nightly/13726

Source-Repo: https://github.com/servo/servo
Source-Revision: c46c9dc019ffe5447297140c22cd8b6ee95a9f5f
2017-11-09 10:00:38 -06:00
Alan Jeffrey
6ad07faa5b servo: Merge #19138 - Rename js crate to mozjs (from asajeffrey:script-rename-js-dependency-to-mozjs); r=jdm
<!-- Please describe your changes on the following line: -->

This PR renames the `js` dependency to `mozjs', ready for when https://github.com/servo/rust-mozjs/pull/377 lands.

---
<!-- 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 do not require tests because refactoring

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 5b36b74c06232a6436409b5fb474abf271a9e6f7
2017-11-08 11:45:05 -06:00
Keith Yeung
b89a634e0f servo: Merge #19148 - Import sequence inner types if it appears in dictionary members (from KiChjang:import-sequence-inner-types); r=jdm
Relands #19133, as it was backed out wrongly in #19143.

Source-Repo: https://github.com/servo/servo
Source-Revision: a1f733722167124eb1a63e235101a1dc40ac2aa0
2017-11-08 06:22:16 -06:00
Gregory Szorc
43b411daa9 Backed out changeset dd834d38eaab for Windows debug build bustage 2017-11-07 17:19:22 -08:00
Keith Yeung
4eaa5bff43 servo: Merge #19133 - Import sequence inner types if it appears in dictionary members (from KiChjang:import-sequence-inner-types); r=jdm
Fixes #19107.

r? nox

Source-Repo: https://github.com/servo/servo
Source-Revision: 7ae852b6731f7405a101e01881c7fa70cfb83826
2017-11-07 17:07:03 -06:00
Vijay Hebbar
5cd5befaba servo: Merge #19038 - Added implementation for itemprop and itemtype along with test files (from CJ8664:master); 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] There are tests for these changes OR

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 5227df260c601b86358e08ab88adcc9eca93be45
2017-11-06 14:17:11 -06:00
Emilio Cobos Álvarez
b2f213bdcd servo: Merge #18657 - script: Remove HTMLAppletElement (from emilio:bye-applet); r=KiChjang
It was removed from the spec, there's no reason to keep it in tree.

Source-Repo: https://github.com/servo/servo
Source-Revision: a509ebf90ccd24ef80b27737faefa340a5af8916
2017-11-06 10:46:44 -06:00
tigercosmos
019ff0e992 servo: Merge #19115 - fix overflow_y_is_visible() in element.rs (from tigercosmos:overflow); r=jdm
<!-- Please describe your changes on the following line: -->
I think the original logic of `overflow_y_is_visible()` might be wrong.
So fix it to the correct logic, and also pass more 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 41a5a8c75faa348ff7301963a7f2f6fab7423750
2017-11-06 06:50:13 -06:00
Imanol Fernandez
cd6b380851 servo: Merge #19091 - Add WebGL conformance 2.0.0 tests (from MortimerGoro:webgl2_suite); r=jdm
<!-- Please describe your changes on the following line: -->

This PR includes WebGL conformance 2.0.0 tests. For now I have disabled three folders in the new suite:
- `Conformance`: Tests WebGL 1.0 API like the current 1.0.3 suite we are using, but it includes a lot more tests and many expectations have to be updated. This is better to do in a separate PR because it will require to update github intermittent paths again and maybe detect new intermittents.
- `Conformance2\textures`: It causes a lot of timeouts because of using videos, svgs, and other complicated formats.
- `deqp`: It's a extra GPU testing suite included in the Khronos 2.0.0 suite. Disabled for now because it causes some timeouts.

So in a nutshell, it uses part of the 2.0.0 suite to test webgl 2.0 and keeps using 1.0.3 in order to test WebGL 1.0. It's good enough to enable TDD for the new WebGL 2.0 features

We can create follow-up issues for the next steps:
* deprecate 1.0.3 and use the new 'conformance' folder in 2.0.0 in order to test WebGL 1.0
* Enable `conformance2/textures` and  'deqp' tests once WebGL 2.0 implementation is more advanced or the timeouts are monitored in more detail.

---
<!-- 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 92b49010b107ffd8be9169a1c979710338dc24c4
2017-11-02 15:52:42 -05:00
Simon Sapin
26d7ab8b4a servo: Merge #19098 - Make the unrooted_must_root conditional on a default Cargo feature (from servo:minimal-plugin); r=jdm
Only http://perf.rust-lang.org/ will disable it, in order to be less subject to changes to rustc internal APIs.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7f2ac4c559a2ff99ed7571af646ecee3f33168c3
2017-11-02 09:28:13 -05:00
Henri Sivonen
91ccb03dfb servo: Merge #19096 - Avoid decoding XHR type="json" responses as UTF-16BE/LE (from hsivonen:no-utf16-json); r=avadacatavra
https://infra.spec.whatwg.org/#parse-json-from-bytes says to use
"UTF-8 decode" rather than "decode", so UTF-16BE/LE BOM should
not be honored.

CC @SimonSapin

<!-- 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: e64083ccc624cd508d4001c5456ac7e04aa049a6
2017-11-02 07:38:47 -05:00
ddh
df6b5cc392 servo: Merge #19077 - changed f64 to u64 for navigation start timing until it had to be float (from avadacatavra:floats-are-the-actual-worst); 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
- [X] These changes fix #18997 (github issue number if applicable).

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: fa319170ebb34afcdfc120b7c3e47fe5b1c21210
2017-11-01 16:56:06 -05:00
Bastien Orivel
3e7c5c517a servo: Merge #19082 - Remove a workaround for https://github.com/rust-lang/rfcs/issues/718 (from Eijebong:fixme_issue_718); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: fa93a79ed0c93f88e7fc6473da378eadaabe7b1a
2017-11-01 07:57:04 -05:00
Simon Sapin
f340158788 servo: Merge #19073 - Use encoding-rs instead of rust-encoding (from servo:encoding-rs); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 994ff4b66ee51bbfae431af0ca99497b38fb0e19
2017-11-01 06:37:54 -05:00
Imanol Fernandez
c28968ca87 servo: Merge #19040 - Add support for filtering WebGL extensions based on WebGL version (from MortimerGoro:webgl2_extensions); r=emilio
<!-- Please describe your changes on the following line: -->

Add support for filtering WebGL extensions based on WebGL version

---
<!-- 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 63af764fc5349e213c42d2007b0bff5d310b3422
2017-10-31 16:14:59 -05:00
Bastien Orivel
113ffac80e servo: Merge #18967 - Bump bitflags to 1.0 (from Eijebong:bitflags2.0); r=mbrubeck
See #18809

Still haven't had time to test it but it should fix the tests failures that appeared in m-c

Source-Repo: https://github.com/servo/servo
Source-Revision: fe4139b779b3af749ec1426ddf4e1393c7b85442
2017-10-30 18:25:45 -05:00
Imanol Fernandez
69874dd2fd servo: Merge #19028 - Kick off WebGL 2.0 implementation (from MortimerGoro:webgl2); r=emilio
<!-- Please describe your changes on the following line: -->

This PR kicks off the WebGL 2.0 implementation:

- Include WebGL2RenderingContext.webidl and comment unimplemented methods
- Create WebGL2 struct hierarchy with WebGL 1.0 backwards compatibility
- Add WebGL 2.0 entry points to canvas
- Select the correct GL Version on GLContext backends (related PR https://github.com/emilio/rust-offscreen-rendering-context/pull/108)
- Add WebGL version selection in shader compilations
- Create a WebGL 2.0 preference

I tried a complex three.js demo using canvas.getContext("webgl2") and the backwards compatibility worked great.

Next steps:

- I'll add WebGLVersion selection/filtering to WebGLExtensions and move some extensions to core in WebGL 2.0 (e.g. VAOs)
- I'll add the WebGL 2.0 conformance WPT
- I'll create a mega-issue with a the list of all TODO methods for a complete WebGL 2.0 implementation (as @emilio did with WebGL 1.0), so we can start start getting community involvement.

---
<!-- 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 will add the entire webgl 2.0 WPT in a different PR

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: d21657a9e5cfdb858c1a99a246001ceac05bb982
2017-10-27 05:56:12 -05:00
Emilio Cobos Álvarez
e5dc6a0cba servo: Merge #19024 - Introduce style::dom::TDocument (from emilio:document); r=KiChjang
The secret plan is introducing a `get_elements_with_id` for use by `querySelector` / `querySelectorAll`.

But this allows also to make some code look a bit nicer.

Source-Repo: https://github.com/servo/servo
Source-Revision: ee4e371c73b265946146947bb16042360cb2fa41
2017-10-26 07:51:21 -05:00
ddh
ae8d09c0b7 servo: Merge #18670 - added time to interactive metrics (from avadacatavra:interactive-metrics); r=jdm
<!-- Please describe your changes on the following line: -->

Added time to interactive metrics and refactored metrics/lib

I need to write tests, but wanted to submit the PR for review

---
<!-- 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: e438b094f675469b8bdbb1ab4ff84c374fc399d4
2017-10-25 15:53:57 -05:00
Keith Yeung
0201c68491 servo: Merge #18871 - Merge functionality of WebsocketConnect into Fetch (from KiChjang:websocket-fetch-integration); r=avadacatavra
Partial #14897.

Source-Repo: https://github.com/servo/servo
Source-Revision: a69e33366e4333f1de3502e5d706d79f4f843b00
2017-10-25 09:00:41 -05:00
Imanol Fernandez
00fe8a1350 servo: Merge #19007 - Fix Const IDL value compilation errors in codegen (from MortimerGoro:const_codegen); r=emilio
<!-- Please describe your changes on the following line: -->

I found that some const WebIDL values fail at rust compile time.

Example:

const long long TIMEOUT_IGNORED  = -1;

```
906 |     ConstantSpec { name: b"TIMEOUT_IGNORED\0", value: ConstantVal::DoubleVal(-1) }]
    |                                                                              ^^ expected f64, found integral variable
    |
    = note: expected type `f64`
               found type `{integer}`
```

I added a explicit cast to to fix the problem in conversions that may fail to compile.

---
<!-- 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 6449c00fc95c2aebe5b8322a70018d3664941d77
2017-10-25 06:48:43 -05:00
Keith Yeung
0249128677 servo: Merge #18981 - Merge request type and destination (from KiChjang:fold-type-destination); r=avadacatavra
Fixes #18278.

Source-Repo: https://github.com/servo/servo
Source-Revision: dcd7d2fa32aa53628a9be63a2d0ea64796cd968e
2017-10-24 17:02:18 -05:00
Manuel Hässig
ab809f195d servo: Merge #18990 - Fixed FireMouseEventType mixup (from mhaessig:mouse-event-fixup); r=KiChjang
Fix for a bug I didn't catch in #18957. Thanks to @rharel for pointing it out.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix issue #18943 and bug in PR #18957
- [X] These changes do not require tests as specified in #18943

r?@jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: d9ede4dc054ba2da322bd21af1cfa75b85e1dc65
2017-10-23 10:18:42 -05:00
CYBAI
a1557f96f3 servo: Merge #18255 - Update concept of node filter algorithm (from CYBAI:prevent-reentrancy-pr18218); r=jdm
Implement new [filter](https://dom.spec.whatwg.org/#concept-node-filter) algorithm from specification

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #18218 (github issue number if applicable).
- [X] These changes do not require tests because changes are minimal and the error was triggered by a test

Source-Repo: https://github.com/servo/servo
Source-Revision: 1667fcc16df1cf22a76ce3343437c9df8bcc4aae
2017-10-21 15:13:04 -05:00
Matt Brubeck
7adc791add servo: Merge #18972 - Remove unnecessary Result::ok calls (from mbrubeck:ok); r=emilio
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are code cleanup only

Source-Repo: https://github.com/servo/servo
Source-Revision: 338956461c60a8e000d285e1371ae3b72e7df75f
2017-10-21 11:06:08 -05:00
Matt Brubeck
2e79c8d38c servo: Merge #18971 - Use env::var_os to read paths from the environment (from mbrubeck:var); r=emilio
This avoids unnecessary UTF-8 validation on OsStrings that we just pass
back to the OS.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are code cleanup only

Source-Repo: https://github.com/servo/servo
Source-Revision: 5ab0ac162019aede12a8150118328566467fddf2
2017-10-21 08:09:22 -05:00
Imanol Fernandez
0f89011ee6 servo: Merge #18973 - Update offscreen_gl_context to v0.12 (from MortimerGoro:offscreen_v12); r=jdm
<!-- Please describe your changes on the following line: -->

Update offscreen_gl_context to v0.12. Includes:

- Support for OpenGL version selection. It's required for WebGL 2.
- Support for iOS EAGLContext. WebGL should work out of the box once Servo is fully built on iOS.

---
<!-- 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` 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: c0a6b59fdfcb0c68e73eae52e9fe257ff9d4fc68
2017-10-21 05:08:58 -05:00
Matt Brubeck
2e652d8e95 servo: Merge #18968 - Use try syntax for Option where appropriate (from mbrubeck:try); r=emilio
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are refactoring only

Source-Repo: https://github.com/servo/servo
Source-Revision: 2b03a9974c61d1481d4b40351ff1305ad0b26588
2017-10-21 03:31:21 -05:00
Manuel Hässig
774195bf6a servo: Merge #18957 - Made fire_mouse_event take an enum for event_name (from mhaessig:fire-mouse-event-enum); r=jdm
Added an enum with the mouse event options for `fire_mouse_event` and refactored the `event_name` parameter to take the enum as argument.
I also added two options (Leave and Enter) which are noted as todo in the comments.

- [x] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These Changes fix #18943.
- [X] These changes do not require tests because the issue said a clean build suffices.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1b08bfc5c0f49dabf205c9f3c32d35c21ea0042c
2017-10-20 22:14:43 -05:00
Josh Matthews
fd27220c55 servo: Merge #18952 - Do not trace Rust values when thread is shutting down (from jdm:no-leak-on-shutdown); r=nox
This addresses a paint point when using debug-mozjs builds. jonco says that it is considered a leak when objects stored in side tables in a SpiderMonkey embedding are traced right before shutting down. This PR adds a per-thread flag that controls whether to run the Rust-side trace hooks, which is automatically toggled before the final GC occurs when destroying a JS runtime.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #18948 and fix #18947.
- [x] These changes do not require tests because we don't use debug-mozjs on CI

Source-Repo: https://github.com/servo/servo
Source-Revision: a71470abe5b8b4b5c14183c6e8bf7e4eefd5c5a7
2017-10-20 20:28:03 -05:00
Nikhil Shagrithaya
ed037fb4d0 servo: Merge #18946 - Update h5e version (from cynicaldevil:update-h5e); r=nox
<!-- 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: -->
- [ ] `./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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 91077ee4185b4917f5f67bf7ebe7ea03ca3e7241
2017-10-20 08:49:09 -05:00
Sebastian Hengst
97c840e765 Backed out changeset e64e659c077d: servo PR #18809 and revendor for reftest failures, e.g. in layout/reftests/bugs/392435-1.html. r=backout on a CLOSED TREE 2017-10-19 23:23:30 +02:00
Bastien Orivel
a7068a599d servo: Merge #18809 - Update bitflags to 1.0 in every servo crate (from Eijebong:bitflags); r=nox
It still needs dependencies update to remove all the other bitflags
versions.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because it's a dependency update

Source-Repo: https://github.com/servo/servo
Source-Revision: fe16c1d5c3c9084da0ccb85af599d6ec0f8ab20b
2017-10-19 10:35:08 -05:00
Simon Sapin
95982fcd61 servo: Merge #18944 - Stop relying on linking details of std’s default allocator (from servo:jemallocator2); r=nox
We’ve been bitten before by symbol names changing: https://github.com/servo/heapsize/pull/46, and upstream is planning to stop using jemalloc by default: https://github.com/rust-lang/rust/issues/33082#issuecomment-309781465

So use the (relatively) new `#[global_allocator]` attribute to explicitly select the system allocator on Windows and jemalloc (now in an external crate) on other platforms. This choice matches current defaults.

Source-Repo: https://github.com/servo/servo
Source-Revision: 07e9794306d597afe5d90d192fd32a99572c3cc3
2017-10-19 09:15:17 -05:00
Emilio Cobos Álvarez
e0c0ac2b2c servo: Merge #18934 - style: Make MatchingContext generic over SelectorImpl (from emilio:matching-context-generic); r=xidorn,heycam
This will help Xidorn implement tree pseudos, and in general makes sense,
allowing to put specific matching data in a selectors implementation.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6268f482084179ed54e63028da038ae39c947359
2017-10-19 05:43:51 -05:00
Martin Robinson
f3385203b6 servo: Merge #18933 - Use WebRender to compute text index on click events (from mrobinson:wr-text-index); r=jdm
This is the second half of switching over to WebRender for hit testing.
Now that WebRender gives us the location of the hit tested point in the
display item, we can use that to calculate text index.

<!-- 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
- [x] These changes do not require tests because they shouldn't change behavior.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 4cf2ce66fc4f970a47ab1fb4b9aa1a55282640f7
2017-10-19 02:36:32 -05:00
Nicholas Nethercote
45f978e547 servo: Merge #18938 - Replace all uses of the heapsize crate with malloc_size_of (from nnethercote:bug-1409255); r=SimonSapin
Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`.
`malloc_size_of` is better -- it handles various cases that `heapsize` does not
-- so this patch changes Servo to use `malloc_size_of`.

This patch makes the following changes to the `malloc_size_of` crate.

- Adds `MallocSizeOf` trait implementations for numerous types, some built-in
  (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`).

- Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't
  support that operation.

- For `HashSet`/`HashMap`, falls back to a computed estimate when
  `enclosing_size_of_op` isn't available.

- Adds an extern "C" `malloc_size_of` function that does the actual heap
  measurement; this is based on the same functions from the `heapsize` crate.

This patch makes the following changes elsewhere.

- Converts all the uses of `heapsize` to instead use `malloc_size_of`.

- Disables the "heapsize"/"heap_size" feature for the external crates that
  provide it.

- Removes the `HeapSizeOf` implementation from `hashglobe`.

- Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of`
  doesn't derive those types, unlike `heapsize`.

<!-- 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1409255

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because testing is on the Gecko side.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 4c538b642e4bdfbf42c522c5a59c258a6d14546e
2017-10-18 13:56:05 -05:00
Martin Robinson
c8b72f7452 servo: Merge #18704 - Switch to using WebRender hit testing (from mrobinson:wr-hit-testing); r=jdm,glennw,mbrubeck
This trades quite a bit of complicated code in Servo for few more
messages and a significant performance improvement. In particular,
WebRender can search the entire display list at once instead of
ping-ponging down the pipeline tree. This allows us to send mouse
events to the correct pipeline immediately.

<!-- 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
- [x] These changes do not require tests because they should not change behavior.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: ca08271345f78fa881c174545f5b69a8ccb78143
2017-10-17 17:09:25 -05:00
Matt Brubeck
8cc50002a2 servo: Merge #18924 - Fix commonmark Markdown warnings in docs, part 1 (from mbrubeck:doc); r=Manishearth
Fixes warnings from rust-lang/rust#44229 when `--enable-commonmark` is passed to rustdoc.

This is mostly a global find-and-replace for bare URIs on lines by themselves in doc comments.

---

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they are doc formatting changes only

Source-Repo: https://github.com/servo/servo
Source-Revision: 0e62a5829b7c29ae2667a21a439aff1e89201bf3
2017-10-17 16:04:10 -05:00
tigercosmos
6efde14e85 servo: Merge #18919 - fix unused warning (from tigercosmos:remove); r=SimonSapin
<!-- 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
- [X] These changes fix #18916

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 7704fa086ca9b9317b004b87e809ebcb10c344f9
2017-10-17 03:27:20 -05:00
Simon Sapin
f416e45c42 servo: Merge #18875 - Remove the need for rust-mozjs to use unstable Rust features (from servo:stable-js); r=nox,jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e8a6f2862c2a6084e4f4e64ab466c89ae83cff59
2017-10-16 17:07:50 -05:00
Imanol Fernandez
0b1c03ee15 servo: Merge #18592 - Implement DOM to texture (from MortimerGoro:dom_texture); r=jdm
<!-- Please describe your changes on the following line: -->

This is a prototype of the WebGL DOMToTexture feature. The API should be fine as a privileged extension for now due to security concerns. The working group has been investigating the viability of unprivileged usage but the spec is not ready yet.

Demo video: https://www.youtube.com/watch?v=hpZqEM5hPao

---
<!-- 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 _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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: 3209d22968046b5c3d29a37b79a655497db2050a
2017-10-16 15:36:42 -05:00
Glenn Watson
775f1d28a7 servo: Merge #18890 - Update WR (details below): (from glennw:update-wr-clip-text-aa); r=jdm
* Add support for clip masks on text runs.
* Fix atomic ordering of items with multiple shadows.
* Update to bincode + ipc-channel with optimizations.
* Fix some plane splitting precision errors.
* Improve the anti-aliasing quality significantly.
* Add internal ClipChain support.
* Fix diacritic glyphs on Linux.

Source-Repo: https://github.com/servo/servo
Source-Revision: d3d2b0261a8aacd4f74e330f8c007a91f829a96e
2017-10-16 12:54:02 -05:00
Simon Sapin
9ff046fd76 servo: Merge #18900 - Remove use of unstable box syntax (from servo:box_syntax); r=emilio
http://www.robohornet.org gives a score of 101.36 on master, and 102.68 with this PR. The latter is slightly better, but probably within noise level. So it looks like this PR does not affect DOM performance.

This is expected since `Box::new` is defined as:

```rust
impl<T> Box<T> {
    #[inline(always)]
    pub fn new(x: T) -> Box<T> {
        box x
    }
}
```

With inlining, it should compile to the same as box syntax.

Source-Repo: https://github.com/servo/servo
Source-Revision: a9022be0c3e30249845ca5947ac0c0a6743c7991
2017-10-16 11:21:21 -05:00