Commit graph

35439 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
a427e4f763 style: Introduce the concept of legacy shorthands.
We need this because there's a weird mapping between these properties' values
('always' maps to 'page').

See https://drafts.csswg.org/css-cascade-4/#legacy-shorthand.

Differential Revision: https://phabricator.services.mozilla.com/D12213
2018-12-02 14:17:25 -05:00
Emilio Cobos Álvarez
d0ac1b06d1 style: Introduce break-inside, and alias page-break-inside to it.
This property has no weird value mapping, so we can just do this.

Differential Revision: https://phabricator.services.mozilla.com/D12212
2018-12-02 14:17:24 -05:00
Shubham Kumaram
67414f4002 style: Change Text Rendering constants to enum classes in nsStyleConsts.h.
Differential Revision: https://phabricator.services.mozilla.com/D12839
2018-12-02 14:17:23 -05:00
Emilio Cobos Álvarez
dca315e648 style: Prevent exponential blowup of custom properties.
Put a hard cap on the value length instead of counting substitutions, because it
works best, see the comment.

Differential Revision: https://phabricator.services.mozilla.com/D13352
2018-12-02 14:17:22 -05:00
Hiroyuki Ikezoe
f6b6825c31 style: Run background-color animations on the compositor.
Changes for nsIDOMWindowUtils.getOMTAValue is in the next commit with come test
cases.

Differential Revision: https://phabricator.services.mozilla.com/D13001
2018-12-02 14:17:21 -05:00
Emilio Cobos Álvarez
8bed8ae122 style: Remove the display: -moz-box overrides display: -webkit-box hack.
display: -moz-box is no longer exposed to content so this is not necessary.

See bug 1407701 for context.

Differential Revision: https://phabricator.services.mozilla.com/D12961
2018-12-02 14:17:21 -05:00
Emilio Cobos Álvarez
2e388e860d style: Align user-select behavior more with other UAs.
There's a few subtle behavior changes here, which I'll try to break down in the
commit message.

The biggest one is the EditableDescendantCount stuff going away. This
was added in bug 1181130, to prevent clicking on the non-editable div from
selecting the editable div inside. This is problematic for multiple reasons:

 * First, I don't think non-editable regions of an editable element should
   be user-select: all.

 * Second, it just doesn't work in Shadow DOM (the editable descendant count is
   not kept up-to-date when not in the uncomposed doc), so nested
   contenteditables behave differently inside vs. outside a Shadow Tree.

 * Third, I think it's user hostile to just entirely disable selection if you
   have a contenteditable descendant as a child of a user-select: all thing.

   WebKit behaves like this patch in the following test-case (though not Blink):

     https://crisal.io/tmp/user-select-all-contenteditable-descendant.html

   Edge doesn't seem to support user-select: all at all (no pun intended).

   But we don't allow to select anything at all which looks wrong.

 * Fourth, it's not tested at all (which explains how we broke it in Shadow DOM
   and not even notice...).

In any case I've verified that this doesn't regress the editor from that bug. If
this regresses anything we can fix it as outlined in the first bullet point
above, which should also make us more compatible with other UAs in that
test-case.

The other change is `all` not overriding everything else. So, something like:

  <div style="-webkit-user-select: all">All <div style="-webkit-user-select: none">None</div></div>

Totally ignores the -webkit-user-select: none declaration in Firefox before this
change. This doesn't match any other UA nor the spec, and this patch aligns us
with WebKit / Blink.

This in turn makes us not need -moz-text anymore, whose only purpose was to
avoid this.

This also fixes a variety of bugs uncovered by the previous changes, like the
SetIgnoreUserModify(false) call in editor being completely useless, since
presShell->SetCaretEnabled ended in nsCaret::SetVisible, which overrode it.

This in turn uncovered even more bugs, from bugs in the caret painting code,
like not checking -moz-user-modify on the right frame if you're the last frame
of a line, to even funnier bits where before this patch you show the caret but
can't write at all...

In any case, the new setup I came up with is that when you're editing (the
selection is focused on an editable node) moving the caret forces it to end up
in an editable node, thus jumping over non-editable ones.

This has the nice effect of not completely disabling selection of
-moz-user-select: all elements that have editable descendants (which was a very
ad-hoc hack for bug 1181130, and somewhat broken per the above), and also
not needing the -moz-user-select: all for non-editable bits in contenteditable.css
at all.

This also fixes issues with br-skipping like not being able to insert content in
the following test-case:

  <div contenteditable="true"><span contenteditable="false">xyz </span><br>editable</div>

If you start moving to the left from the second line, for example.

I think this yields way better behavior in all the relevant test-cases from bug
1181130 / bug 1109968 / bug 1132768, shouldn't cause any regression, and the
complexity is significantly reduced in some places.

There's still some other broken bits that this patch doesn't fix, but I'll file
follow-ups for those.

Differential Revision: https://phabricator.services.mozilla.com/D12687
2018-12-02 14:17:20 -05:00
Hiroyuki Ikezoe
2639916d7d style: Set the important rule change flag when a newly important rule is inserted.
Without this change an assertion checking IsInStyleRefresh() in
EffectCompositor::PostRestyleForAnimation will be hit when we call
FindAnimationsForCompositor from RestyleManager::DoProcessPendingRestyles
that will be introduced in a subsequent commit in this series.

I wrote a crash test which causes an assertion in KeyframeEffect::CanThrottle()
without the subsequent commit, but we need more work in display item stuff to
make the assertion won't happen (bug 1508466).

Differential Revision: https://phabricator.services.mozilla.com/D12368
2018-12-02 14:17:20 -05:00
Mats Palmgren
2ebad8de36 style: Add -webkit-appearance:textarea and make that the default for <textarea> for compatibility with other UAs.
Bug: 1507905
Reviewed-by: jwatt
2018-12-02 14:17:19 -05:00
Boris Chiou
4f7a3ae533 style: Add comments for the calculation of Procedure::Add on Scale and transform list.
Add more comments to let people know the intention of the special case.

Differential Revision: https://phabricator.services.mozilla.com/D12070
2018-12-02 14:17:18 -05:00
Boris Chiou
c81e1d82d5 style: Expand the mako code of Matrix3D and move them into transform.rs.
Although the methods of Matrix3D in animated_properties.mako.rs could be
simplified by mako, it's a little bit hard to read because they are far
from the usage and definition. Therefore, we move them to the definition of
computed::Matrix3D and expand the mako.

Differential Revision: https://phabricator.services.mozilla.com/D11961
2018-12-02 14:17:18 -05:00
Boris Chiou
7f3b23126a style: Implement ComputeSquaredDistance for individual transforms.
We manually implement ComputeSquaredDistance for Translate, Rotate, and
Scale because we have to handle mismatch cases, and actually we don't
need to implement it for specified types.

Differential Revision: https://phabricator.services.mozilla.com/D11935
2018-12-02 14:17:17 -05:00
Boris Chiou
e83f5629ff style: Move the animation code of transform into a different file.
Basically, most of the animation code of transform don't need mako, so
we could move them into values/animated/transform.rs.

However, we still use mako to generate some code to make the methods of
Matrix3D simpler, so I still leave them in animated_properties.mako.rs.

Differential Revision: https://phabricator.services.mozilla.com/D11934
2018-12-02 14:17:17 -05:00
Boris Chiou
8e47e7f134 style: Factor the mako code out from transform functions.
I'm trying to put all the mako code together, so we could move transform
code into a different file.

Differential Revision: https://phabricator.services.mozilla.com/D11933
2018-12-02 14:17:10 -05:00
Kristen Wright
149815ab3b style: Conversion from NS_STYLE_BORDER_STYLE_* macro to enum class.
Converted NS_STYLE_BORDER_STYLE_* consts to enum class. Updated corresponding
values to enum class. reduced BCCornerInfo struct values to fit StyleBorderStyle
values inside struct. Added defaults to switches that do not fully cover all
instances of StyleBorderStyle.

Bug: 1460439
Reviewed-by: emilio
2018-12-02 08:44:44 -06:00
bors-servo
d404a0cddd
Auto merge of #22351 - servo:ugh, r=SimonSapin
Fix logic error from “Don’t run warnings into errors when trying Nightly”

https://github.com/servo/servo/pull/22323

<!-- 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/22351)
<!-- Reviewable:end -->
2018-12-02 05:23:55 -05:00
Simon Sapin
6e20450247 Fix logic error from “Don’t run warnings into errors when trying Nightly”
https://github.com/servo/servo/pull/22323
2018-12-02 11:23:33 +01:00
bors-servo
d657a6c6e8
Auto merge of #22350 - servo-wpt-sync:wpt_update_01-12-2018, r=jdm
Sync WPT with upstream (01-12-2018)

Automated downstream sync of changes from upstream as of 01-12-2018.
[no-wpt-sync]

<!-- 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/22350)
<!-- Reviewable:end -->
2018-12-01 22:56:40 -05:00
WPT Sync Bot
73a776843f Update web-platform-tests to revision de9a09ab7f605aed6a4b53ed96427412bab76463 2018-12-01 22:55:47 -05:00
bors-servo
e7d11d0578
Auto merge of #22349 - paulrouget:androidlogs_update, r=jdm
Android_logger update

This adds the name of the crate to the android logs.

<!-- 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/22349)
<!-- Reviewable:end -->
2018-12-01 21:21:21 -05:00
Paul Rouget
0fa20cf195 android_logger update 2018-12-01 22:23:12 +01:00
bors-servo
f3f9303fc9
Auto merge of #22338 - Manishearth:webvrup, r=jdm
Update rust-webvr

<!-- 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/22338)
<!-- Reviewable:end -->
2018-12-01 13:15:46 -05:00
bors-servo
362a0d5e14
Auto merge of #22340 - jdm:reload, r=KiChjang
Don't filter the bodies of cross-origin cached responses

There are a few issues at play in #22330:
* loading https://servo.org followed by http://servo.org retrieves the second response from the cache (since http://servo.org is upgraded due to HSTS)
* since the request URL differs from the request origin, the response is filtered according to the rules of CORS
* since the response body is already present, there's no async response channel to wait on in `wait_for_response`
* a filtered response stores an empty response, while the real response sits inside the inner response

The effect of this combination was that the constellation's fetch listener would receive the response headers, followed immediately by a response EOF. That is no longer the case, since `wait_for_response` correctly transfers the underlying response body to the network listener.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22330

<!-- 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/22340)
<!-- Reviewable:end -->
2018-12-01 00:40:13 -05:00
bors-servo
a0116827e6
Auto merge of #22336 - jdm:image-reload, r=Manishearth
Fix missing textures on reloading three.js image content

The fundamental problem is that three.js sets the crossOrigin property of an image, which kicks off an image microtask, and then sets the src. When the image URL is in the image cache (such as when reloading a page), this causes the shortcut to be taken and the image data is made available immediately, but the queued image task is unaware of this and asks the image cache to feed the image data. The existing code then ended up in an unexpected state when trying to deal with this data, such that when three.js received the image load notification and performed the texImage2D operation on the image data, it would discover that the image element did not claim to have a URL, and it would treat this as a broken image. Ultimately, this caused the texture that three.js obtained to be completely black.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22152.

<!-- 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/22336)
<!-- Reviewable:end -->
2018-11-30 22:38:49 -05:00
bors-servo
99f457ee12
Auto merge of #22335 - asajeffrey:magicleap-duckduckgo, r=jdm
Change ML search engine to duckduckgo

<!-- 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 do not require tests because we don't test default search engine

<!-- 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/22335)
<!-- Reviewable:end -->
2018-11-30 21:10:27 -05:00
bors-servo
160f1137fb
Auto merge of #22332 - georgeroman:remove_unused_recycle_argument, r=jdm
Remove unused recycle argument from Document::unload

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

<!-- 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/22332)
<!-- Reviewable:end -->
2018-11-30 19:55:23 -05:00
Josh Matthews
0d9ab894be net: Wait for underlying response body of filtered responses. 2018-11-30 19:03:47 -05:00
bors-servo
08b67adce2
Auto merge of #22322 - ferjm:windows.extra.backslash, r=jdm
Remove extra backslash from Gstreamer info added to the PATH on Windows

<!-- 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/22322)
<!-- Reviewable:end -->
2018-11-30 17:25:00 -05:00
Manish Goregaokar
b7eafd99e5 Update rust-webvr 2018-11-30 14:04:09 -08:00
bors-servo
2e37eb6ee9
Auto merge of #22333 - asajeffrey:magicleap-mouse-pos-while-scrolling, r=jdm
Generate mouse move events as well as scroll events while scrolling

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

Generate mouse move events as well as scroll events while scrolling. This is needed for sites which have their own semantics for moving the mouse with the button down.

---
<!-- 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 it's UI 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. -->

<!-- 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/22333)
<!-- Reviewable:end -->
2018-11-30 15:44:26 -05:00
Josh Matthews
896a2de2ac Ensure that any image tasks queued before a cached image is available are ignored. 2018-11-30 14:49:37 -05:00
Alan Jeffrey
a19cd79283 Change ML search engine to duckduckgo 2018-11-30 13:12:59 -06:00
Alan Jeffrey
ce4c53bb7f Generate mouse move events as well as scroll events while scrolling 2018-11-30 11:57:12 -06:00
bors-servo
097c85e44d
Auto merge of #22085 - Eijebong:synup, r=jdm
Update syn

- https://github.com/servo/html5ever/pull/353
- https://github.com/servo/rust-cssparser/pull/229
- https://github.com/servo/webrender/pull/3264
- https://github.com/servo/media/pull/162
- https://github.com/rust-lang-nursery/rust-bindgen/pull/1409

<!-- 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/22085)
<!-- Reviewable:end -->
2018-11-30 12:34:42 -05:00
Bastien Orivel
e94de4e1bd Update syn and related dependencies 2018-11-30 17:48:41 +01:00
bors-servo
aa1b688ed8
Auto merge of #22317 - Manishearth:vr-packaging, r=MortimerGoro
Fix daydream support

Added a googlevr-flavor AndroidManifest.xml for servoapp (this gets
merged with the main one). Daydream works now.

I haven't added an oculus one since as far as I can tell we don't
support pure servo on oculus yet.

r? @jdm @paulrouget

<!-- 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/22317)
<!-- Reviewable:end -->
2018-11-30 11:26:42 -05:00
George Roman
6c458b04d2 Remove unused recycle argument from Document::unload 2018-11-30 18:08:08 +02:00
bors-servo
6a1e948ec7
Auto merge of #22316 - asajeffrey:magicleap-ui-tidying, r=jdm
Tidy up UI of magicleap app

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

Various UI changes:
* The GL viewport doesn't need to be set by libmlservo.
* Send trigger-up to servo if trigger-down happened in the viewport.
* Make the prism shorter so the app name is closer.
* Adjust the keyboard position.
* Use a custom home page.
* Draw the laser even if the cursor isn't in the viewport.
* Add a purple bevel.

---
<!-- 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 its changes to the chrome UI

<!-- 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/22316)
<!-- Reviewable:end -->
2018-11-30 09:37:00 -05:00
bors-servo
be206f3e5f
Auto merge of #22323 - servo:letitgo, r=jdm
Don’t run warnings into errors when trying Nightly

See for example https://tools.taskcluster.net/groups/bLE1RGeHTROuhEil2SmOXA/tasks/BURjOZ1JTvqafiscoEYzfQ/runs/0/logs/public%2Flogs%2Flive.log , which would otherwise require a rustup to fix.

<!-- 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/22323)
<!-- Reviewable:end -->
2018-11-30 08:21:44 -05:00
Simon Sapin
c04d1ca2a4 Don’t run warnings into errors when trying Nightly 2018-11-30 11:30:18 +01:00
Fernando Jiménez Moreno
b064665b8d Remove extra backslash from Gstreamer info added to the PATH on Windows 2018-11-30 11:22:10 +01:00
Manish Goregaokar
d11c81aff5 Remove titlebar
fixes https://github.com/servo/servo/issues/22318
2018-11-29 17:33:06 -08:00
Manish Goregaokar
731b7c472c Add daydream and cardboard intent filters 2018-11-29 14:42:43 -08:00
Alan Jeffrey
8de3f7c8f9 Tidy up UI of magicleap app 2018-11-29 15:36:44 -06:00
bors-servo
e4c80d0a88
Auto merge of #22310 - Eijebong:env_loggerup, r=ferjm
Update env_logger to 0.6

<!-- 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/22310)
<!-- Reviewable:end -->
2018-11-29 09:33:46 -05:00
Bastien Orivel
6c3af9c199 Update env_logger to 0.6 2018-11-29 12:40:24 +01:00
bors-servo
eaf073b26b
Auto merge of #22306 - Manishearth:vr-packaging, r=jdm
Improve packaging for WebVR builds

This is stuff I have to do manually each time I want to build a VR
flavor of servo; making it automatic.

<!-- 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/22306)
<!-- Reviewable:end -->
2018-11-28 21:33:51 -05:00
Manish Goregaokar
d171daa81c Automatically enable webvr for Android VR builds 2018-11-28 15:43:24 -08:00
Manish Goregaokar
6eb396874a Restructure package-specific preferences, add support for VR-only prefs 2018-11-28 15:38:19 -08:00
Manish Goregaokar
2625950ac2 Dispatch correct packaging flavor for VR builds 2018-11-28 14:22:33 -08:00