Commit graph

21295 commits

Author SHA1 Message Date
Agustin Chiappe Berrini
75eb94afca Unify the task source and task canceller API
I moved away from the `Window` struct all the logic to handle task
sources, into a new struct called `TaskManager`. In a happy world, I'd
be able to just have there two functions, of the types:

```rust
fn task_source<T: TaskSource>(&self, name: TaskSourceName) -> Box<T>
fn task_source_with_canceller<T: TaskSource>(&self, name: TaskSourceName)
  -> (Box<T>, TaskSourceCanceller)
```

And not so much duplicated code. However, because TaskSource can't be a
trait object (because it has generic type parameters), that's not
possible. Instead, I decided to reduce duplicated logic through macros.

For reasons[1], I have to pass both the name of the function with
canceller and the name of the function without, as I'm not able to
concatenate them in the macro itself. I could probably use
`concat_idents` to create both types already defined and reduce the
amount of arguments by one, but that macro is nightly only. At the same
time, not being able to declare macros inside `impl` forces me to pass
`self` as an argument.

All this makes this solution more verbose than it would be ideally. It
does reduce duplication, but it doesn't reduce the size of the file.

[1](https://github.com/rust-lang/rust/issues/29599)
2018-11-14 06:36:44 -05:00
mandreyel
df1a3a7ea3 Update webidl of ServiceWorkerGlobalScope 2018-11-13 23:10:44 +01:00
Agustin Chiappe Berrini
14bc8ab754 Implement TaskSource for HistoryTraversal
And remove the method in window that returns it, because it isn't used
so far.
2018-11-13 14:18:51 -05:00
CYBAI
23a4d646ce Introduce rejectionhandled event 2018-11-13 22:29:45 +08:00
bors-servo
b1a2b6b5bf
Auto merge of #22173 - pyfisch:webdriver-keys, r=paulrouget
Use keyboard-types::webdriver::send_keys

This improves the quality of KeyboardEvents sent by WebDriver. Now key, code, location and modifiers are set according to spec. CompositionEvents are discarded as servo does not handle them at all.

CompositionEvent support can be added later.

Is there a good way to automatically test this?

<!-- 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/22173)
<!-- Reviewable:end -->
2018-11-12 07:51:56 -05:00
Pyfisch
2143657e03 Use keyboard-types::webdriver::send_keys
This improves the quality of KeyboardEvents
sent by WebDriver. Now key, code, location and
modifiers are set according to spec.
CompositionEvents are discarded as servo
does not handle them at all.
2018-11-11 21:57:45 +01:00
CYBAI
db008b9393 Fix wrong spec link 2018-11-11 14:26:06 +08:00
CYBAI
72ffbb7a27 Update webidl of ServiceWorkerRegistration 2018-11-11 13:42:12 +08:00
CYBAI
202d747035 Fail to construct if promise is none 2018-11-11 13:36:37 +08:00
bors-servo
19b4f35de1
Auto merge of #22167 - emilio:gecko-sync, r=emilio
style: Sync changes from mozilla-central.

See each individual commit for details.

<!-- 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/22167)
<!-- Reviewable:end -->
2018-11-10 15:43:20 -05:00
Emilio Cobos Álvarez
bd9c53c5da
style: Manually extinguish multi-line use statements. 2018-11-10 21:42:24 +01:00
Emilio Cobos Álvarez
212b3e1311
style: Revert try -> r#try change.
Since we're in an inconsistent state because mako files weren't updated, and
it's really really ugly.
2018-11-10 21:42:17 +01:00
Emilio Cobos Álvarez
155caba595
style: Cargo fix + ./mach fmt. 2018-11-10 21:11:47 +01:00
Emilio Cobos Álvarez
48ce20b6fe
layout: Fix servo build.
TextAlign now implements FromPrimitive instead of an ad-hoc method.
2018-11-10 21:11:47 +01:00
Boris Chiou
c6ead1dc0e
style: Percentage values of translate are serialized as percent for computed values.
Basically, we rewrite the type of generics::transform::Translate and its
ToCss to match the spec. Besides, we always serialize Translate by servo,
so we could drop a lot of duplicated code.

Differential Revision: https://phabricator.services.mozilla.com/D11206
2018-11-10 21:11:36 +01:00
Emilio Cobos Álvarez
d9453bc0ea
style: Remove dynamic HTML5 atoms.
Co-authored-by: Nicholas Nethercote <nnethercote@mozilla.com>

Differential Revision: https://phabricator.services.mozilla.com/D11035
2018-11-10 21:11:19 +01:00
Mats Palmgren
35c061179a
style: Add -webkit-appearance:progress-bar and make that the default for <progress> for compatibility with other UAs.
Keep our old 'progressbar' as an alias for now, but unship
'progresschunk' by restricting it to UA/chrome sheets only.
Unship 'progresschunk-vertical' by removing it since it's
not used internally for anything.

Bug: 1501506
Reviewed-by: jwatt
2018-11-10 21:11:01 +01:00
Mats Palmgren
c194f42596
style: Add -webkit-appearance:meter and make that the default for <meter> for compatibility with other UAs.
Keep our old value 'meterbar' as an alias for now, but unship 'meterchunk'
by restricting it to UA/chrome sheets only.

Bug: 1501483
Reviewed-by: jwatt
2018-11-10 21:10:42 +01:00
Emilio Cobos Álvarez
667457a16c
style: Split up push_applicable_declarations.
Introduce RuleCollector, which contains all the state we need during the
cascade, and allows to reuse a bit of code.

Differential Revision: https://phabricator.services.mozilla.com/D11233
2018-11-10 21:10:34 +01:00
Emilio Cobos Álvarez
b7cefa5814
style: Cleanup text-align.
Use derive(FromPrimitive) instead.

Differential Revision: https://phabricator.services.mozilla.com/D11332
2018-11-10 21:10:25 +01:00
Emilio Cobos Álvarez
fa764fc8e9
style: Implement overflow-wrap: anywhere.
Per https://github.com/w3c/csswg-drafts/issues/2682

Differential Revision: https://phabricator.services.mozilla.com/D11328
2018-11-10 21:10:19 +01:00
Ting-Yu Lin
087ac72f73
style: Enable CSS column-span in UA stylesheet, and update test expectations.
We use "column-span: all" in ua.css in Part 3. To be able to flip the pref
in individual wpt tests, we need column-span to be always enabled
in UA stylesheets.

Differential Revision: https://phabricator.services.mozilla.com/D5212
2018-11-10 21:10:11 +01:00
Emilio Cobos Álvarez
9845a857ce
style: Allow ::slotted()::placeholder.
Differential Revision: https://phabricator.services.mozilla.com/D11132
2018-11-10 21:10:03 +01:00
bors-servo
696816622c
Auto merge of #22164 - pyfisch:into-stops, r=emilio
Use GradientBuilder::into_stops

Avoid cloning gradient stops.

<!-- 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/22164)
<!-- Reviewable:end -->
2018-11-10 14:03:54 -05:00
Simon Sapin
b1822a39fa cargo fix --edition --features gecko 2018-11-10 17:47:28 +01:00
Simon Sapin
a15d33a10e cargo fix --edition 2018-11-10 17:47:28 +01:00
Simon Sapin
e1fcffb336 Use 2018-style paths in code generated by Mako 2018-11-10 17:47:28 +01:00
Simon Sapin
ede79a6a5d Use 2018-style paths in code generated by style_derive 2018-11-10 17:47:28 +01:00
Pyfisch
a0937023b5 Enable old glyph assertion
The assertion had a note that it should be enabled
when something like debug_assert is available.
2018-11-10 13:27:49 +01:00
Pyfisch
0e4c4971be Use GradientBuilder::into_stops
Avoid cloning gradient stops.
2018-11-10 12:43:18 +01:00
bors-servo
b60006ae11
Auto merge of #22156 - jdm:wr-scroll, r=pcwalton
Add a transparent hit-testing rectangle for scrollable block content.

This implements the strategy described at https://github.com/servo/webrender/issues/3261#issuecomment-435106998 and which Gecko uses as well. Adding a transparent rectangle below the content and above the background ensures that hit testing correctly associates the background area with the right scrolling node.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22073
- [x] These changes do not require tests because the affected codepath requires user input, and we don't support webdriver tests yet.

<!-- 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/22156)
<!-- Reviewable:end -->
2018-11-09 20:27:22 -05:00
Alan Jeffrey
08270f07fc Get the magicleap build to work in CI 2018-11-09 16:24:09 -06:00
Bastien Orivel
36c4208f22 Update uuid 2018-11-09 21:04:31 +01:00
Josh Matthews
1eee3c73eb Add a transparent hit-testing rectangle for scrollable block content. 2018-11-09 14:08:46 -05:00
Jim Berlage
1f99bf4631 Fixes panic on DOMString::strip_leading_and_trailing_ascii_whitespace 2018-11-08 16:16:28 -06:00
bors-servo
bb2c5e387f
Auto merge of #22143 - emilio:gecko-sync, r=jdm
style: Sync changes from mozilla-central.

See each individual commit for details.

<!-- 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/22143)
<!-- Reviewable:end -->
2018-11-08 16:17:09 -05:00
Emilio Cobos Álvarez
8cb5b149eb
style: Some minor formatting nits. 2018-11-08 15:22:31 +01:00
Emilio Cobos Álvarez
2ea4af1171
Fix Servo build. 2018-11-08 15:22:30 +01:00
Emilio Cobos Álvarez
175e594652
style: Format recent patches. 2018-11-08 15:22:29 +01:00
Emilio Cobos Álvarez
efa54a876a
style: Fix code style of a recent commit. 2018-11-08 15:22:29 +01:00
Boris Chiou
23f2e99e99
style: Fix the default behavior of scale:<number>{1}.
The current spec says: "If only the X value is given, the Y value
defaults to the same value.", so we should update the behavior.

Besides, we also update the serialization, so we serialization both
specified and computed value by servo. We enable the preference
for all the css-transforms, so some of them are passed now.

Differential Revision: https://phabricator.services.mozilla.com/D10638
2018-11-08 15:22:28 +01:00
Emilio Cobos Álvarez
264a679c50
style: followup post-review nit. 2018-11-08 15:22:27 +01:00
Cameron McCormack
de5584c1f6
style: Store the Rust QuotePair slice as the computed quotes value in Gecko style structs.
Depends on D10651

Differential Revision: https://phabricator.services.mozilla.com/D10652
2018-11-08 15:22:26 +01:00
Cameron McCormack
acf7b65f36
style: Make quotes property representation allocate less.
Differential Revision: https://phabricator.services.mozilla.com/D10650
2018-11-08 15:22:26 +01:00
Cameron McCormack
56fd3b786f
style: Serialize background-size: auto auto as "auto".
With this change, all of Chrome, Edge, Firefox, and Safari serialize
background-size by omitting the second "auto" if the value is "auto
auto".  Other keywords are still repeated.

Differential Revision: https://phabricator.services.mozilla.com/D10446
2018-11-08 15:22:25 +01:00
Ting-Yu Lin
68f4ad9557
style: Remove preference "layout.css.shape-outside.enabled".
shape-outside, shape-margin, shape-image-threshold have been shipped in Firefox
62. We can remove the preference.

The change in devtools/shared/css/generated/properties-db.js is generated by
"./mach devtools-css-db"

The actual shape-image CORS mode tests in file_shape_outside_CORS.html are
moved into test_shape_outside_CORS.html because we don't need the <iframe>
trick to enable the feature.

Differential Revision: https://phabricator.services.mozilla.com/D10804
2018-11-08 15:22:24 +01:00
bors-servo
dd5e5e9294
Auto merge of #22144 - Eijebong:hyperfix, r=jdm
Fix downloading huge files (broken since hyperup)

<!-- 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/22144)
<!-- Reviewable:end -->
2018-11-08 08:47:10 -05:00
Bastien Orivel
85c6eff94a Use chunk.as_ref() instead of &chunk.into_bytes() 2018-11-08 12:37:50 +01:00
Simon Sapin
9f977c5287 Remove useless use crate_name; imports.
A `crate_name::foo` path always works in 2018
2018-11-08 09:29:52 +01:00
Simon Sapin
2012be4a8b cargo fix --edition-idioms 2018-11-08 09:28:00 +01:00