Commit graph

21021 commits

Author SHA1 Message Date
bors-servo
2cd454f4f8
Auto merge of #23033 - Manishearth:xhr-copies, r=jdm,emilio
Stop cloning response text on every chunk in XHR

r? @jdm

<!-- 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/23033)
<!-- Reviewable:end -->
2019-03-14 09:34:00 -04:00
Manish Goregaokar
79a565930b xhr: Reserve content-length worth of space in the response if possible 2019-03-13 23:03:45 -07:00
Manish Goregaokar
f340a5bf29 xhr: Stop cloning response text every time we get a chunk 2019-03-13 15:22:38 -07:00
bors-servo
d5fb0666d1
Auto merge of #23017 - 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/23017)
<!-- Reviewable:end -->
2019-03-13 10:26:37 -04:00
Emilio Cobos Álvarez
c3f46d78a0 style: Add two commas to appease tidy. 2019-03-13 15:08:41 +01:00
Emilio Cobos Álvarez
0c01325c05 layout: Fix servo build. 2019-03-13 15:08:39 +01:00
Emilio Cobos Álvarez
a65925cb85 style: Fix servo build. 2019-03-13 15:08:39 +01:00
Emilio Cobos Álvarez
5aeab7adb1 style: Reformat recent changes. 2019-03-13 15:08:38 +01:00
violet
9a8cee2800 style: Change stroke-miterlimit restriction from GreaterThanOrEqualToOneNumber to NonNegativeNumber. 2019-03-13 15:08:37 +01:00
Emilio Cobos Álvarez
4a1f390788 style: Optimize cascading of other wide keywords if possible.
The way the copy-on-write stuff works, and the way that we have to apply
properties from most specific to less specific guarantees that always that we're
going to inherit an inherited property, or reset a reset property, we have
already the right value on the style.

Revert relies on that, so there doesn't seem to be a reason to not use that fact
more often and skip useless work earlier.

Font-size is still special of course... I think I have a way to move the
specialness outside of the style, but piece by piece.

Differential Revision: https://phabricator.services.mozilla.com/D21882
2019-03-13 15:08:36 +01:00
Emilio Cobos Álvarez
6fd17ccb35 style: Implement CSS revert keyword.
The only fishy bit is the animation stuff. In particular, there are two places
where we just mint the revert behavior:

 * When serializing web-animations keyframes (the custom properties stuff in
   declaration_block.rs). That codepath is already not sound and I wanted to
   get rid of it in bug 1501530, but what do I know.

 * When getting an animation value from a property declaration. At that point
   we no longer have the CSS rules that apply to the element to compute the
   right revert value handy. It'd also use the wrong style anyway, I think,
   given the way StyleBuilder::for_animation works.

   We _could_ probably get them out of somewhere, but it seems like a whole lot
   of code reinventing the wheel which is probably not useful, and that Blink
   and WebKit just cannot implement either since they don't have a rule tree,
   so it just doesn't seem worth the churn.

The custom properties code looks a bit different in order to minimize hash
lookups in the common case. FWIW, `revert` for custom properties doesn't seem
very useful either, but oh well.

Differential Revision: https://phabricator.services.mozilla.com/D21877
2019-03-13 15:08:35 +01:00
Emilio Cobos Álvarez
80ed070639 style: fix a typo. 2019-03-13 15:08:35 +01:00
Emilio Cobos Álvarez
18a0c9b033 style: followup: Add a comment as requested on Phabricator. 2019-03-13 15:08:34 +01:00
Emilio Cobos Álvarez
14e6875ef9 style: Use more cbindgen features.
We can get back the fancy flag syntax as soon as we get C++17 inline variables,
which I sent an email to dev-platform@ about, with no reply.

Differential Revision: https://phabricator.services.mozilla.com/D22382
2019-03-13 15:08:33 +01:00
Emilio Cobos Álvarez
e0b3e5f691 style: Derive more stuff for clip rects.
I feel a bit weird for using LenghtPercentageOrAuto to implement LengthOrAuto,
but I don't think much other code will use it so it seemed a bit better to me.

Differential Revision: https://phabricator.services.mozilla.com/D21863
2019-03-13 15:08:32 +01:00
Emilio Cobos Álvarez
e723a5b7d6 style: Make the pres context optional in the style system.
Differential Revision: https://phabricator.services.mozilla.com/D21239
2019-03-13 15:08:32 +01:00
Emilio Cobos Álvarez
4e3e4c106a style: Refactor preference stylesheet prefs to not require a pres context.
We really only have two sets of prefs, one for chrome-like documents
(stuff in chrome docshells + chrome-origin images), and one for the rest.

Differential Revision: https://phabricator.services.mozilla.com/D20946
2019-03-13 15:08:31 +01:00
Daniel Holbert
33814a9afe style: Drop css parser support for 'contain:style'.
We're not sure we're going to ship support for this value, and it's been marked
as 'at-risk' in the spec, so let's stop pretending we support it in the parser.

Spec issue:
https://github.com/w3c/csswg-drafts/issues/3280

Differential Revision: https://phabricator.services.mozilla.com/D22203
2019-03-13 15:08:29 +01:00
Emilio Cobos Álvarez
b96981f88e style: Make word-spacing, letter-spacing, and line-height use Rust lengths.
This also adopts the resolution from [1] while at it, making letter-spacing
compute to a length, serializing 0 to normal rather than keeping normal in the
computed value, which matches every other engine.

This removes the SMIL tests for percentages from letter-spacing since
letter-spacing does in fact not support percentages, so they were passing just
by chance.

[1]: https://github.com/w3c/csswg-drafts/issues/1484

Differential Revision: https://phabricator.services.mozilla.com/D21850
2019-03-13 15:08:28 +01:00
Emilio Cobos Álvarez
c16e88d229 style: Remove Options from TransformOperation.
This may or may not be part of the plan to get rid of nsCSSValue ;)

Option is not usable via FFI, and they should not be needed (we should be
following the shortest serialization principle instead). These patches also do
that, which matches the other transform properties. I think that slight change
is fine, if we can make it work, and consistent with other properties.

Alternative is adding more TransformOperation variants or such, which I rather
not do.

Differential Revision: https://phabricator.services.mozilla.com/D21862
2019-03-13 15:08:26 +01:00
Emilio Cobos Álvarez
1418ddc685 style: Use contextual_skip_if for background-size.
Also drive-by cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D21861
2019-03-13 15:08:24 +01:00
Emilio Cobos Álvarez
93d3004c17 style: Use skip_if for translate serialization.
Trivial drive-by cleanup.

Differential Revision: https://phabricator.services.mozilla.com/D21860
2019-03-13 15:08:22 +01:00
Emilio Cobos Álvarez
9b24a451f6 style: When deriving something with an output type, map preconditions as well.
Otherwise, deriving ToComputedValue and ToAnimatedValue in structs or enums with
other where clauses just doesn't work.

Differential Revision: https://phabricator.services.mozilla.com/D21859
2019-03-13 15:08:20 +01:00
Emilio Cobos Álvarez
35b8b95263 style: Implement a version of #[css(skip_if)] that takes more context.
I called it contextual_skip_if, though better names welcome.

Differential Revision: https://phabricator.services.mozilla.com/D21858
2019-03-13 15:08:19 +01:00
Emilio Cobos Álvarez
94686df11b style: Use rust lengths for the SVG lengths.
As it turns out we need this to avoid losing precision both during painting and
during serialization.

This patch also changes to serialize `context-value` if it's the computed value.

I could keep the previous behavior, but it makes no sense to serialize the
initial value. We're the only ones to support this value anyway, and I couldn't
find a definition or spec for this.

Also update tests and expectations for:

 * New unexpected passes.
 * Always serializing the unit in getComputedStyle.
 * Calc and interpolation support.

Chrome also always serializes the unit in getComputedStyle, so I'm pretty sure
this is compatible with them. Chrome is inconsistent and keeps numbers in
specified style, but that's inconsistent with itself and with other quirky
lengths, so I updated the tests instead.

Differential Revision: https://phabricator.services.mozilla.com/D21819
2019-03-13 15:08:17 +01:00
Emilio Cobos Álvarez
f1b5d5c06a style: Cleanup and fix interpolation of SVG lengths.
Instead of storing them as LengthPercentage | Number, always store as
LengthPercentage, and use the unitless length quirk to parse numbers instead.

Further cleanups to use the rust representation can happen as a followup, which
will also get rid of the boolean argument (since we can poke at the rust length
itself). That's why I didn't bother to convert it to an enum class yet.

Differential Revision: https://phabricator.services.mozilla.com/D21804
2019-03-13 15:08:15 +01:00
Emilio Cobos Álvarez
9e0d38a64f style: Make word-break: break-word behave like word-break: normal; overflow-wrap: anywhere.
Differential Revision: https://phabricator.services.mozilla.com/D21398
2019-03-13 15:08:14 +01:00
Emilio Cobos Álvarez
7d01114cbf style: Add a Zero trait that doesn't require Add, and use it in place of num_traits and IsZeroLength.
Use it to be consistent in InsetRect serialization and storage between Servo and
Gecko.

Differential Revision: https://phabricator.services.mozilla.com/D21493
2019-03-13 15:08:14 +01:00
Emilio Cobos Álvarez
4496411edc style: Fix computed value clamping.
Differential Revision: https://phabricator.services.mozilla.com/D21268
2019-03-13 15:08:13 +01:00
Hiroyuki Ikezoe
52db71c0bf style: Explicitly specify animation_value_type for scroll-padding.
Otherwise the Trait for clamping negative animation value isn't generated thus
negative animating results are exposed in computed values.

Differential Revision: https://phabricator.services.mozilla.com/D21153
2019-03-13 15:08:12 +01:00
Emilio Cobos Álvarez
197065f6bc style: Use rust lengths for border corners.
The test in https://github.com/web-platform-tests/wpt/pull/15423 hasn't been
synced over yet, but it passes with this patch of course.

Differential Revision: https://phabricator.services.mozilla.com/D20960
2019-03-13 15:08:12 +01:00
Emilio Cobos Álvarez
aad4dac5b4 style: Make the generic size not use euclid under the hood.
The euclid size is not really used for anything. Also rename it to Size2D to
avoid cbindgen conflicts with values::length::Size.

Differential Revision: https://phabricator.services.mozilla.com/D20959
2019-03-13 15:08:11 +01:00
Emilio Cobos Álvarez
ebeb7b228f style: Simplify border-radius serialization.
Differential Revision: https://phabricator.services.mozilla.com/D20958
2019-03-13 15:08:10 +01:00
bors-servo
c12e341c0c
Auto merge of #23007 - BartGitHub:remove-pipeline-visibility-checks, r=jdm
Remove pipeline visibility checks

<!-- Please describe your changes on the following line: -->
This includes the following changes/clean-ups:

- Remove ```is_visible``` field from ```Pipeline``` struct
- Remove ```SetVisible``` script message, and related message sending/handling.

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

<!-- Either: -->
- [x] These changes do not require tests because the issue description states having a passing build is enough for a pull request.

<!-- 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/23007)
<!-- Reviewable:end -->
2019-03-13 08:33:26 -04:00
Aron Zwaan
39c652ed13 Remove SetVisible message from iframe 2019-03-12 11:26:41 +01:00
bors-servo
9513544e91
Auto merge of #23008 - georgeroman:implement_webdriver_find_elem_from_elem, r=Manishearth
Implement WebDriver FindElementFromElement command

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

<!-- 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/23008)
<!-- Reviewable:end -->
2019-03-11 20:47:27 -04:00
bors-servo
90e5f6264c
Auto merge of #23013 - servo:rm-rooted-reference, r=jdm
Simplify RootedReference and make it specifically about slices

It's now called `DomSlice<T>`.

<!-- 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/23013)
<!-- Reviewable:end -->
2019-03-11 14:32:13 -04:00
bors-servo
f2ea73f360
Auto merge of #22802 - gterzian:only_run_tasks_for_fully_active_docs, r=nox
In BC event-loop, only run tasks related to fully-active documents

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

<!-- 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/22802)
<!-- Reviewable:end -->
2019-03-11 12:32:03 -04:00
Anthony Ramine
4d527b20ee Simplify RootedReference and make it specifically about slicesIt's now called DomSlice<T>. 2019-03-11 16:25:39 +01:00
bors-servo
6890347cd5
Auto merge of #22966 - Goncalerta:22962, r=jdm
Simplify VideoTrackList::set_selected

---
<!-- 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
- [x] These changes fix #22962 (GitHub issue number if applicable)
- [x] These changes do not require tests because just refactors existing code

<!-- 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/22966)
<!-- Reviewable:end -->
2019-03-11 11:21:10 -04:00
Anthony Ramine
1744a42dad Don't use RootedReference for Option<T> in codegen anymore 2019-03-10 18:24:35 +01:00
Anthony Ramine
5fe5e5d6de Remove most RootedReference uses
We can replace all uses of RootedReference for Option<T> by Option::deref calls.
2019-03-10 17:51:35 +01:00
bors-servo
169b8cf144
Auto merge of #22851 - georgeroman:make_blank_target_imply_noopener, r=cybai,jdm
Make blank target imply noopener, implement "opener" link type

<!-- 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 part of #22845

<!-- 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/22851)
<!-- Reviewable:end -->
2019-03-09 16:49:00 -05:00
George Roman
46cd0d17ee Implement WebDriver FindElementFromElement command 2019-03-09 16:56:51 +02:00
bors-servo
db29cb01b0
Auto merge of #22995 - servo:jdm-patch-28, r=nox
Remove an unnecessary synchronous full reflow.

We already reflow any nodes that are dirtied during any turn of the event loop. There is no reason to synchronously reflow the entire document, especially when we don't even modify it in this method.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22988
- [x] There are tests for these changes

<!-- 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/22995)
<!-- Reviewable:end -->
2019-03-08 13:27:10 -05:00
bors-servo
34a5a824b8
Auto merge of #23000 - jdm:invisible-webgl, r=nox
Make webgl behave better with session history

This prevents the compositor from animating pages that are not actually visible, so pages using webgl do not needlessly impact the performance of the rest of the browser. Additionally, this fixes a problem that was alluded to in [this code](b5228c098b/src/draw_buffer.rs (L282-L285)), causing Servo to delete arbitrary resources when a GC occurred in content that used three.js.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22987 and fix #22977 and fix #20934 and fix #20953 and fix #20930 and fix #20950 and fix #20924
- [x] There are tests for these changes

<!-- 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/23000)
<!-- Reviewable:end -->
2019-03-08 10:46:52 -05:00
Josh Matthews
056edbbd15 Ensure that removed contexts are made active before removal. 2019-03-08 09:49:52 -05:00
bors-servo
ac3c002138
Auto merge of #22999 - jdm:iframe-replace, r=asajeffrey,cbrewster
Fix replacement logic when navigating nested browsing contexts

These changes also fix a bug where traversing the session history in a nested browsing context did not update the iframe's contentWindow appropriately.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22996
- [x] There are tests for these changes

<!-- 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/22999)
<!-- Reviewable:end -->
2019-03-07 21:20:14 -05:00
Josh Matthews
c2ce7d72a1 Make nested browsing context navigations check the loaded status of the active document of the nested browsing context. 2019-03-07 19:01:54 -05:00
Josh Matthews
edfd15c36f Ensure iframe's contentWindow is updated when traversing the session history. 2019-03-07 18:58:53 -05:00