Commit graph

22811 commits

Author SHA1 Message Date
Simon Sapin
c40583b644 Move replaced box used size computation to a method of ReplacedContents 2019-12-10 12:36:43 +01:00
Simon Sapin
bf96988260 Add min/max-width/height support for inline-block
(… and other non-replaced atomic inline-level boxes.)
2019-12-10 12:36:43 +01:00
Simon Sapin
999dd72895 Account for min/max-width in outer intrinsic sizing 2019-12-10 12:36:43 +01:00
Simon Sapin
ce7e84be72 Replace percent_resolved_* functions with methods 2019-12-10 12:36:43 +01:00
Simon Sapin
a2c2b294d5 Move clamp_* functions to methods of Length 2019-12-10 12:36:43 +01:00
bors-servo
03a47c803c
Auto merge of #25201 - xu3u4:25183-add-onformdata-to-global-event-handler, r=jdm
Add onformdata to GlobalEventHandlers

<!-- Please describe your changes on the following line: -->
1. Adding `onformdata` to GlobalEventHandlers interface and global_event_handlers macro.
2. Deleting related FAIL 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
- [x] These changes fix #25183 (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. -->
2019-12-10 01:30:38 -05:00
bors-servo
64c9928b2e
Auto merge of #25203 - servo:text-align, r=nox
Implement `text-align` (except `justify`)
2019-12-10 00:20:55 -05:00
bors-servo
ebe432bf58
Auto merge of #25202 - Eijebong:domtokenlist_replace, r=jdm
Return a boolean from DOMTokenList::replace to match the spec

Fixes #25129
2019-12-09 22:26:27 -05:00
bors-servo
1974c875a1
Auto merge of #24976 - Darkspirit:openssl, r=avadacatavra
Add ALPN and signature algorithms to OpenSSL config

* Updated http crate from 0.1.17 [to 0.1.20](https://github.com/hyperium/http/blob/master/CHANGELOG.md#0120-november-26-2019).
* Updated hyper from 0.12.33 [to 0.12.35](https://github.com/hyperium/hyper/compare/v0.12.33...v0.12.35).
* Updated hyper-openssl from 0.7.0 [to 0.7.1](https://github.com/sfackler/hyper-openssl/blob/master/CHANGELOG.md#v071---2019-03-01).
* Updated openssl crate from 0.10.11 [to 0.10.26](https://github.com/sfackler/rust-openssl/blob/master/openssl/CHANGELOG.md#v01026---2019-11-22).
  * Set ALPN to h2+http/1.1 for https (Enabled HTTP2) and http/1.1 for websockets.
  * Restricted signature algorithms to the same list across platforms: EdDSA at first, then ECDSA certificates, then TLS 1.3's RSA(-PSS), then classic RSA (PKCS 1.5).
Thereby we disabled the [following](https://www.ssllabs.com/ssltest/viewClient.html?name=OpenSSL&version=1.1.1c&key=165) non-web-standard signature algorithms: SHA512/ECDSA, SHA224/ECDSA, SHA1/ECDSA, SHA224/RSA, SHA224/DSA, SHA1/DSA, SHA256/DSA, SHA384/DSA, SHA512/DSA. [SHA1/RSA](https://tools.ietf.org/html/draft-ietf-tls-md5-sha1-deprecate-00) is almost dead and now only used by a few old and broken F5 load balancers: Like TLS 1.0 deprecation, we can again deprecate this some months earlier than other browsers.
  * Added Chacha20 to TLS 1.2 ciphersuite list and preferred it like Firefox and [Rustls](4b13a322c0/rustls/src/suites.rs (L377)). Removed legacy and privacy-hostile plain RSA (AES256-SHA, AES128-SHA).
Compared to [Mozilla intermediate v5](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29) we keep ECDHE-RSA-AES256-SHA and ECDHE-RSA-AES128-SHA for now, but won't reintroduce deprecated DHE.
  * Switched server-side to [Mozilla intermediate v5](https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29) in components/net/tests/main.rs. (The new `modern` would have been TLSv1.3-only, therefore only worked with OpenSSL 1.1.1 which is unfortunately not yet used on every target.)
  * Renamed `ssl_connector_builder(certs)` to the more neutral and long-term better fitting `create_tls_config(certs, alpn)` as it was done in #24764.

---
<!-- 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
2019-12-09 19:21:43 -05:00
bors-servo
86fae5894e
Auto merge of #25188 - asajeffrey:canvas-moar-gl-error-checking, r=Manishearth
Add extra debug assertions for WebGL errors

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

Add some extra debug assertions checking for GL errors, so we'll get a bit more help tracking down issues like #24788

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

<!-- 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. -->
2019-12-09 13:55:10 -05:00
bors-servo
e8d677ad26
Auto merge of #25158 - jdm:wr-spatial-panic, r=SimonSapin
Fix "Tried to use SpatialId before it was defined" layout panic

In the case where an element uses `text-overflow: ellipsis` and causes overflow, we create a TruncatedFragment that wraps the original overflowing fragment. When collecting stacking contexts for the truncated fragment, https://github.com/servo/servo/pull/18510 addressed the case where the wrapped fragment wouldn't be processed, but neglected the case where that fragment ends up creating a new stacking context. When that happens, the TruncatedFragment would be stuck with the updated scrolling/clipping information based on the new stacking context, but it would be a child of the parent stacking context. Since the new scrolling/clipping nodes do not exist in the display list until the new stacking context display item is created, this led to the observed panic.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24895 and fix #19281 and fix #22826.
- [x] There are tests for these changes
2019-12-09 08:23:10 -05:00
Josh Matthews
6dad51f570 layout: Ensure truncated fragment is updated with results of collecting inner fragment's stacking contexts. 2019-12-09 09:57:48 +01:00
bors-servo
013bb662cb
Auto merge of #25035 - szeged:wgpu-core, r=jdm
Replace wgpu-native with wgpu-core

<!-- Please describe your changes on the following line: -->
This addresses `1` form https://github.com/servo/servo/issues/24706#issuecomment-557891841.
cc @jdm @kvark @imiklos

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

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

<!-- 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/25035)
<!-- Reviewable:end -->
2019-12-08 14:38:40 -05:00
bors-servo
136366bf64
Auto merge of #25161 - paulrouget:cachedMsgs, r=jdm
devtools: save and send cached messages

@jdm the only real difference between your original patch and this PR is the removal of the `GetCachedMessages` messages that are not necessary anymore now that we directly send the message to the devtools.

---
<!-- 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 #13161 (GitHub issue number if applicable)
2019-12-08 12:12:40 -05:00
Simon Sapin
9f4b1a0f14 Implement text-align (except justify) 2019-12-07 14:31:45 +01:00
Simon Sapin
6d91d77fba Rename content_rect to rect in TextFragment and ImageFragment
Since they don’t have padding etc.
2019-12-07 14:25:16 +01:00
Simon Sapin
ce9fc3e651 Rename LineBoxes to Lines, since it contains fragments 2019-12-07 14:25:16 +01:00
Simon Sapin
fa1adf2ad3 Containing blocks contains styles rather than just a writing mode 2019-12-07 14:25:16 +01:00
xu3u4
7529591e8f Add onformdata to GlobalEventHandlers 2019-12-07 21:44:36 +09:00
Bastien Orivel
0bdab6bb50 Return a boolean from DOMTokenList::replace to match the spec
Fixes #25129
2019-12-07 13:22:10 +01:00
Simon Sapin
40ad9a722d Use the WritingMode bitflags from Stylo 2019-12-07 12:45:36 +01:00
Simon Sapin
b9adf8b7ac Don’t store computed values of logical properties in style structs
They are not used.
2019-12-07 12:45:36 +01:00
Alan Jeffrey
44db86fefd Add extra debug assertions for WebGL errors 2019-12-06 14:56:46 -06:00
Zakor Gyula
e146e6058a Replace wgpu-native with wgpu-core 2019-12-06 12:49:56 +01:00
Paul Rouget
b3b886e837 devtools: save and send cached messages 2019-12-06 10:10:43 +01:00
bors-servo
bb00a83ec4
Auto merge of #25029 - szeged:wgpu_request_device, r=jdm
Initial implementation of GPUDevice for WebGPU

Added the WebIDL bindigs for GPUDevice, GPUObjectDescriptorBase, GPUDeviceDescriptor, GPUObjectBase
Implemented the `requestDevice` function of `GPUAdapter`

<!-- 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 addresses a part of #24706

cc @jdm, @kvark, @zakorgy

<!-- 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. -->
2019-12-05 13:59:34 -05:00
Istvan Miklos
b15d2bb7d7 Initial implementation of GPUDevice for WebGPU
Added the WebIDL bindigs for GPUDevice, GPUObjectDescriptorBase, GPUDeviceDescriptor, GPUObjectBase
Implemented the `requestDevice` function of `GPUAdapter`
2019-12-05 11:50:33 +01:00
bors-servo
05922c380c
Auto merge of #25087 - bblanke:OffscreenCanvasasCanvasImageSoure, r=jdm
Support OffscreenCanvas as CanvasImageSource

Added methods to canvas_data to support drawing an offscreen canvas onto another canvas
Bug fix: Swapped OffscreenCanvas width and height parameters to match Mozilla spec
Tests: Updated metadata for 866 tests

<!-- 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 #24269 (GitHub issue number if applicable)

<!-- Either: -->
- [x] These changes do not require tests because they are covered by existing tests

<!-- 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. -->
2019-12-05 01:49:58 -05:00
Bailey Blankenship
deae103042 Addresses Issue: Support OffscreenCanvas as CanvasImageSource #24269
Added methods to canvas_data to support drawing an offscreen canvas onto another canvas
Bug fix: Swapped OffscreenCanvas width and height parameters to match Mozilla spec
Tests: Updated metadata for 866 tests
2019-12-04 18:23:28 -05:00
bors-servo
e70397d90a
Auto merge of #25033 - servo:intrinsic, r=nox
Add support for inline-block and for computing min/max-content
2019-12-04 16:23:33 -05:00
bors-servo
951dc2419a
Auto merge of #25031 - servo:2020-images, r=SimonSapin
Implement size extremums
2019-12-04 12:05:41 -05:00
Anthony Ramine
4ebdc39ecd Add some helpers to resolve percentages of box sizes 2019-12-04 17:24:45 +01:00
Simon Sapin
dd9dfc66e3 Use a new BoxContentSizes enum instead of Option<ContentSizes> 2019-12-04 15:36:05 +01:00
Simon Sapin
38e8fd1e99 Replace boolean parameters by a new ContentSizesRequest enum 2019-12-04 15:10:11 +01:00
Simon Sapin
6763e7e4ae Review nits 2019-12-04 14:22:13 +01:00
Simon Sapin
607df04849 Replace a large tuple return type with a new struct 2019-12-04 13:56:42 +01:00
Simon Sapin
038f83fbc5 Replace a pair of macros by methods 2019-12-04 13:47:59 +01:00
Simon Sapin
01034b10e1 Use Sides::inline_sum method 2019-12-04 13:47:13 +01:00
Simon Sapin
77d2c45991 Fix incorrect variable name
This was not the specified value
2019-12-04 13:37:20 +01:00
Simon Sapin
4cbbb625d0 Upgrade to rustc 1.41.0-nightly (7afe6d9d1 2019-12-03) 2019-12-04 12:29:17 +01:00
Anthony Ramine
48ceb56339 Implement size extremums 2019-12-04 10:32:58 +01:00
bors-servo
6e3c131139
Auto merge of #24977 - ridhimrastogi:async-wasm-compilation-final, r=jdm
Add StreamConsumer wrapper and methods to response

<!-- Please describe your changes on the following line: -->
Add Streamconsumer wrapper to Response

---
<!-- 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 #21476
<!-- 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. -->
2019-12-03 17:38:53 -05:00
Ridhim Rastogi
a5469f8710 Add StreamConsumer wrapper and methods to response 2019-12-03 15:59:35 -05:00
bors-servo
7ba88e8237
Auto merge of #24626 - glowe:issue-21810/improve-validation-methods, r=jdm
Issue 21810/improve validation methods

<!-- Please describe your changes on the following line: -->
This is a start at addressing #21810. I'm putting these changes out early to get some feedback on the following items:

1. I added unit tests for the validation methods mentioned in #21810, because I couldn't tell whether any of the existing WPT tests covered them. Are these tests worthwhile? Are any of them unnecessary?
2. I changed the implementation for `is_valid_floating_point_number_string` so that it passed the tests. The previous version of the function wasn't restrictive enough (it allowed certain whitespace characters before the number string).
3. I changed the catch-all condition in `htmlinputelement.rs` to account for the remaining input types that don't have a value sanitization algorithm. This last change seems good to me since we won't be able to add a new input type without adding it to the case and checking the spec for an algorithm.
---
<!-- 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 #21810

<!-- 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. -->
2019-12-03 13:11:22 -05:00
bors-servo
f31a88d85d
Auto merge of #24885 - shnmorimoto:implement_mediasession_set_positon_state, r=ferjm
Implement mediasession set positon state

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

fix #24808

> Bonus points if you want to tweak the existing UI by adding a progress bar, and the info about the current position and total duration.

I haven't implemented this yet.

---
<!-- 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 #24808 (GitHub issue number if applicable)

<!-- 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. -->
2019-12-03 12:13:06 -05:00
Shinichi Morimoto
4d215c9557 extended HostTrait with on_media_session_set_position_state 2019-12-03 23:16:43 +09:00
Simon Sapin
34e8cda801 Rename ReplacedContent::layout to make_fragments and simplify its API 2019-12-03 15:11:35 +01:00
Simon Sapin
b8db9459bc Add layout for 'inline-block' and other atomic inline-level boxes 2019-12-03 15:11:35 +01:00
Simon Sapin
46f0f7d7e2 Implement shrink-to-fit for abspos 2019-12-03 15:11:35 +01:00
Simon Sapin
efa1885e1b Remove IndependentFormattingContext::layout
Callers should handle replaced v.s. not separately
2019-12-03 15:11:35 +01:00