Commit Graph

3050 Commits

Author SHA1 Message Date
Manish Goregaokar
cb8af9ffe8 servo: Merge #17767 - stylo: Fuse ServoStyleContext and ServoComputedValues (from Manishearth:stylo-fuse); r=bholley
r=bholley https://bugzilla.mozilla.org/show_bug.cgi?id=1367904

Source-Repo: https://github.com/servo/servo
Source-Revision: d746abaa9e69e6cf0ad187d2b46be661bbe03a9f
2017-07-17 19:44:25 -07:00
Austin Hicks
fc33ab4fff servo: Merge #17520 - Convert node serialization to a purely iterative algorithm (from camlorn:master); r=asajeffrey
We maintain a stack of open element nodes with their children count, popping from the top of the stack and closing when the count reaches zero.

Contrary to my comment in #16696, this is a purely iterative algorithm.  I just wasn't feeling sufficiently clever with respect to finding a relatively clean way until later.

<!-- 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 #16696 (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: 66b9544d60289631638f7a07aca9da3700b99894
2017-07-17 09:54:43 -07:00
Fausto Núñez Alberro
6492be7f40 servo: Merge #16508 - Properly set origin of fetch requests (from brainlessdeveloper:fetch-set-origin); r=asajeffrey
<!-- Please describe your changes on the following line: -->

These changes aim to fix #15247

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

<!-- Either: -->
- [ ] There are tests for these changes
- [x] These changes do not require tests because cors is already tested with different origins

These changes require changes in tests, but I need help with that (see comments below).

<!-- 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: 2bb4f65100ca07e9281c8ad04cd498ff1346387f
2017-07-17 08:29:23 -07:00
Josh Matthews
d7bfd7a8c4 servo: Merge #17739 - Suppress CSS parser errors for vendor-prefixed properties (from jdm:no-vendor-prefixed-errors); r=emilio
This matches the behaviour of Gecko's CSS parser.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 38f4ae80c4b456b89ee33543c8c6699501696c9c
2017-07-17 07:10:11 -07:00
Emilio Cobos Álvarez
21b2f45c76 servo: Merge #17731 - style: Respect calc for percentages (from emilio:percentage-calc); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 2d37700cf819d901552cfb3954e948f1fbadcf78
2017-07-17 01:29:11 -07:00
Emilio Cobos Álvarez
44ec6c7983 servo: Merge #17744 - script: Move the layout_wrapper outside of script (from emilio:ensure-data); r=nox
This allows us to have ensure_data() and clear_data() functions on the TElement
trait, instead of hacking around it adding methods in random traits.

This also allows us to do some further cleanup, which I'd rather do in a
followup.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3497bbbf1d092dd8ab274e21b33b6394afa61d8a
2017-07-15 07:44:08 -07:00
bors-servo
5b540cb699 servo: Merge #17728 - Reuse bloom filter and style sharing cache across traversals (from emilio:reuse-allocs); r=bholley,emilio
This relands #17701, with a fix for the test failures.

Source-Repo: https://github.com/servo/servo
Source-Revision: f49650ce96578c200c71b0a8fa50094764a3c76d
2017-07-14 02:02:55 -07:00
Jonathan Chan
822c792dde servo: Merge #17501 - Have CharacterData call children_changed on its parent when data is set (from jyc:Text-children_changed); r=emilio
**Can't run WPT on my computer, so pushing here to run tests 😢**

Have CharacterData.SetData call children_changed on its parent when
data is set (if it is a Text node) so that HTMLStyleElement parents can
re-parse. Add variant ChildrenMutation::Text for it to use as the
mutation.

This fixes an issue where an empty <style> element's data is set but the
style is not updated. An HTMLStyleElement parent re-parses in its
children_changed implementation.

<!-- 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 are part of a series to fix #17182 (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: 559c0d1d905bf6bc1dd72d576cd4fc8287e0947b
2017-07-13 14:00:13 -07:00
Emilio Cobos Álvarez
a5af85b6ce servo: Merge #17710 - Revert "Auto merge of #17701 - bholley:reuse_allocations, r=emilio" (from emilio:revert-bloom-sharing); r=heycam
This reverts commit ebfc8f585834948f9b7564ffe382a6e266edf738, reversing
changes made to 5585ff2c440dc27c8e98e834c9c0e9d956581b8e.

Animation code can reenter and create a new TLS context from the traversal
SequentialTask, so this won't work as written, and it's making test fails.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9d74ae890b31fc45452ae60af7d89573fc52a86f
2017-07-13 01:26:34 -07:00
Martin Robinson
7b0a6b5e35 servo: Merge #17694 - Upgrade to the latest version of WebRender (from glennw:webrender-update); r=glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 173181a491f18a292ea80acbc25dd561e6e678d8
2017-07-12 21:52:27 -07:00
Bobby Holley
43f03492ac servo: Merge #17701 - reuse the bloom filter and style sharing cache across traversals (from bholley:reuse_allocations); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1380198

Source-Repo: https://github.com/servo/servo
Source-Revision: ebfc8f585834948f9b7564ffe382a6e266edf738
2017-07-12 16:48:19 -07:00
Jonathan Chan
7676f117ef servo: Merge #17538 - Implement CSSStyleRule.selectorText (from jyc:selectorText); r=Manishearth
We parse when assigning using the namespaces of the stylesheet. It isn't
clear if the spec says to do that (Firefox doesn't support the setter at
all, Chrome does, Safari doesn't); the spec issue is here:
https://github.com/w3c/csswg-drafts/issues/1511

Also fix ToCss implementation of AttrSelectorOperator to not pad with
spaces, to conform with CSSOM. This means we have to update some unit
tests that expect operators with spaces around them in attribute
selectors to roundtrip.

See the "attribute selector" section of "Serializing Selectors" here:
https://drafts.csswg.org/cssom/#serializing-selectors

CSSStyleRule.selectorText is specified here:
https://drafts.csswg.org/cssom/#dom-cssstylerule-selectortext

<!-- 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 is part of a series to fix #17182

<!-- Either: -->
I am running this to identify what tests will fail; as the other PRs in the series are merged, I believe the tests that pass will change as well.

- [ ] 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: 4b6e79337ef975e3ec752513b76ae6a6284c1199
2017-07-12 11:08:35 -07:00
Sadman Kazi
ee4f2baa67 servo: Merge #17672 - Use boxed slice instead of vec for FuntionTimerCallback (from sadmansk:heap_in_box); r=jdm
<!-- Please describe your changes on the following line: -->
Added `fn trace()` implementation for `Box<[T]>` type, and change FunctionTimerCallback to store boxed slices for heap values instead of Vector.

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

<!-- Either: -->
- [x] These changes do not require 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 749891e48ec6faa14447b299c48887754872e497
2017-07-11 18:55:18 -07:00
Alan Jeffrey
fe03dc44ca servo: Merge #17364 - Implement paint worklet properties (from asajeffrey:script-paint-worklets-properties); r=jdm
<!-- Please describe your changes on the following line: -->

This is the final PR to get basic paint worklet support. It adds support for paint worklet properties (https://drafts.css-houdini.org/css-paint-api/#paint-definition-input-properties). When a paint worklet is registered, it specifies a list of CSS properties, and is provided with their computed values when it is invoked.

This is a dependent PR:
* "Implemented paint worklets invoking worklet scripts" is #17239.
* "Implemented paint worklets rendering contexts" is #17326.

There should be tests added for this, hopefully the existing wpt houdini 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 #16839
- [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: bc44246fc682d9f2362eaca6bba07b45c293eb42
2017-07-11 16:24:18 -07:00
Josh Matthews
7a92658c09 servo: Merge #17665 - Avoid panic when postMessage targets closed window (from jdm:postmessage-panic); r=KiChjang
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #17664
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 2a575acabe50446803005db52b750405b7b7080c
2017-07-11 12:28:33 -07:00
Josh Matthews
c0e0ebee53 servo: Merge #17655 - Hook up Stylo error reporter to Firefox devtools (from jdm:stylo-error-reporter); r=emilio
Reviewed by @emilio in https://bugzilla.mozilla.org/show_bug.cgi?id=1352669.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 2ddbc92d90ec8df9e5bf4630cd3e93759da81649
2017-07-10 18:13:44 -07:00
Omar Akkila
0bbd9ba7a9 servo: Merge #17632 - Clean up HTMLImageElement::handle_event (from omakk:master); r=jdm
Reflects desired changes in #15832

<!-- Please describe your changes on the following line: -->
Cleans up `HTMLImageElement::handle_event` located in `components/script/dom/htmlimageelement.rs`

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

- [X] These changes do not require tests because this change maintains the same logic

Source-Repo: https://github.com/servo/servo
Source-Revision: 6e2e7151d84804d4d630cecb1bf0a5ea2fe70e2b
2017-07-07 11:21:16 -07:00
Wes Kocher
7125f9c617 Backed out changeset fec394734f83 (bug 17624) for build bustage a=backout CLOSED TREE
MozReview-Commit-ID: 2UtyHapbBm8
2017-07-06 14:57:36 -07:00
Josh Matthews
e2e2ae23b4 servo: Merge #17624 - Hook up Stylo error reporter to Firefox devtools (from jdm:stylo-error-reporter); r=emilio
Reviewed by @emilio in https://bugzilla.mozilla.org/show_bug.cgi?id=1352669.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 585468da9a2d7a33f41a8bebe858006305c1fce9
2017-07-06 11:44:47 -07:00
Pyfisch
1fab1488ed servo: Merge #17578 - Implement the InputEvent (from pyfisch:input-event); r=jdm
Add WebIDL, from UI Events working draft.
Implement script type for event.

Note that actually firing InputEvents is not part of this commit.

<!-- Please describe your changes on the following line: -->
As part of my effort to improve [keyboard handling](https://groups.google.com/forum/#!topic/mozilla.dev.servo/e6R7eBDjo4M) it is necessary to introduce the InputEvent. While I have a working prototype using the input event this still needs a lot of work  before it can be merged into servo.

cc @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: f18782fb0e10e150f44719d9899a62b84ecb7adc
2017-07-06 10:55:41 -07:00
Imanol Fernandez
bd3dd2aecd servo: Merge #17608 - WebVR 1.1 spec compatibility (from MortimerGoro:webvr_11); r=jdm
<!-- Please describe your changes on the following line: -->

Servo WebVR implementation started when WebVR spec 1.2 was about to be released. 1.2 API included some minor breaking changes from spec 1.1 in order to improve the support of the API in WebWorkers.

But eventually the WebVR  committee decided not to release 1.2 and make it a major version number with a lot more changes. WebVR API 2.0 is still under heavy churn.

This PR removes the WebVR changes that non-released 1.2 version introduced to support full WebVR 1.1 spec.

I pushed some GC fixes in a separate commit. See https://github.com/servo/servo/issues/17076 and https://github.com/servo/rust-mozjs/issues/351

---
<!-- 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: ddd3a15b50213931ad7c90312112275ae958d4a0
2017-07-06 07:25:57 -07:00
Omar Akkila
874417450c servo: Merge #17620 - Clean up Area::parse (#15834) (from omakk:master); r=nox
Replace mutable reference to array with direct use

Remove unnecessary clone

Replace call to unwrap()

<!-- Please describe your changes on the following line: -->
This PR refactors `Area::parse` in `component/script/dom/htmlareaelement.rs`

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it's good enough that it compiles

<!-- 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: 4a66001d2fe61bcbbf095ca6b8a275add3d01175
2017-07-06 04:37:00 -07:00
Emilio Cobos Álvarez
26af331265 servo: Merge #17590 - stylo: Fix StyleSheetInner/Stylesheet mapping (from emilio:gecko-inner); r=heycam
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1372041 and all the dependent/related issues.

Source-Repo: https://github.com/servo/servo
Source-Revision: 545a53ccadd3ca37330e1ee8ad0ca926af5c9c5a
2017-07-02 07:00:39 -07:00
Alan Jeffrey
50c87c5959 servo: Merge #17326 - Implement paint worklets rendering context (from asajeffrey:script-paint-worklets-rendering-context); r=jdm
<!-- Please describe your changes on the following line: -->

Implement the rendering context for paint worklets. They really paint things now!

---
<!-- 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 the existing reftest now passes

<!-- 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: a9fea0653a25d5f26f1115203015c5cf699f5227
2017-06-30 15:40:26 -07:00
Alan Jeffrey
fd2309a549 servo: Merge #17239 - Implemented paint worklets invoking worklet scripts (from asajeffrey:script-paint-worklets-invoke-worklet-scripts); r=jdm
<!-- Please describe your changes on the following line: -->

Implemented the "invoke a paint callback" functionality of paint worklets (https://drafts.css-houdini.org/css-paint-api/#invoke-a-paint-callback).

This PR does not implement the 2D rendering context, and just generates a placeholder image.

---
<!-- 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 can't write reftests until we have 2D rendering contexts implemented.

<!-- 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: 39da6d46742d67c94f9614212af6dabd6124e5b3
2017-06-30 01:16:09 -07:00
Matt Brubeck
894fba9dba servo: Merge #17554 - Stop using the unstable optin_builtin_traits feature (from mbrubeck:oibit); r=ManishEarth
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix part of #5286.
- [x] These changes do not require tests because they are refactoring only.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6d7fdb484b42a26f9d33217e163f157fd87b6742
2017-06-28 19:11:08 -07:00
Cameron McCormack
050f39fd27 servo: Merge #17541 - style: Make GeckoElement::traversal_children faster (from heycam:is-needed); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1372061.

Source-Repo: https://github.com/servo/servo
Source-Revision: a40e5353b32076e429c96112dab134bb3db3b728
2017-06-28 11:59:31 -07:00
Connor Brewster
72816542cf servo: Merge #17527 - Don't return window proxy if it has been discarded (from cbrewster:iframe_cycles); r=asajeffrey
<!-- 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 #17479 (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: 51dd0c65cd6799f0dc61eb380fdbd08db60c10bd
2017-06-28 01:59:16 -07:00
Jonathan Chan
7b8b04dd1f servo: Merge #17535 - Have unsafe_no_jsmanaged_fields! macro take a type as argument rather than an ident (from jyc:unsafe-no-jsmanaged-field-ty); r=jdm
We only write unsafe_no_jsmanaged_fields!(SomeType), and the
documentation says it is to be used for types.

<!-- 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 it should be checked at compile time

<!-- 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: 65ff4a399cda00c098d9f7af9c51c4278d5d94ef
2017-06-28 00:25:03 -07:00
streichgeorg
c381509299 servo: Merge #17522 - Replace ParseNodeID with ParseNodeId (from streichgeorg:master); r=emilio
<!-- Please describe your changes on the following line: -->
---
Not really much to this...
<!-- 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 #17519 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 8d9b995b344a01cf9e8fa2149afb99c4d0ad3c25
2017-06-26 22:46:27 -07:00
Corey Farwell
a8e4b94e5f servo: Merge #17515 - Merge explicit node iterator structures into single generic structure (from frewsxcv:frewsxcv-simple-node-iterator); r=KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: f740366c611d375f0bb259ae0f4d846c05ec276e
2017-06-25 00:38:23 -07:00
Connor Brewster
0a5fa1e734 servo: Merge #17381 - Custom element creation (from cbrewster:custom_element_creation); r=jdm
<!-- Please describe your changes on the following line: -->

This implements the CE-related steps when creating elements. `is` is now support by `document.createElement` and is stored on `Element`s. Only synchronously created autonomous elements are supported as async element creation and customized built-in elements both require custom element upgrade reactions.

Spec: https://dom.spec.whatwg.org/#concept-create-element

---
<!-- 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 #17191 (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: bc3ec0ce1bc0ea55ac60def8b3e75948c7085162
2017-06-23 21:08:40 -07:00
Corey Farwell
5d1fa43fbb servo: Merge #17503 - Replace iterator struct with anonymous return iterator types (from frewsxcv:frewsxcv-return-node-list-2); r=mbrubeck
Similar to https://github.com/servo/servo/pull/17488.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1d045e5c3b0f1b07fcf1f3513957c2378db0313c
2017-06-23 19:01:33 -07:00
Keith Yeung
f3991c6f53 servo: Merge #17491 - Introduce service-worker mode (from KiChjang:update-fetch); r=jdm
Bringing in the spec changes from whatwg/fetch#435.

Source-Repo: https://github.com/servo/servo
Source-Revision: e2a26e7bd0d8089a441bc3072cf15351b0ef1252
2017-06-23 14:56:00 -07:00
Corey Farwell
be5420f2d4 servo: Merge #17488 - Replace iterator struct with anonymous return iterator type (from frewsxcv:frewsxcv-return-node-list); r=jdm
```
hi servo. it's been
some time. here's a pull request.
i hope you like it.
```

Source-Repo: https://github.com/servo/servo
Source-Revision: bc5e8f89fff9bf1922638b3eb2f4c75148dcad1e
2017-06-23 12:38:02 -07:00
Jonathan Chan
5573a991b5 servo: Merge #17259 - Force HTMLStyleElement to create a new CSSStyleSheet when re-parsing (from jyc:new-CSSStyleSheet); 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 I'm pushing to find out what test results this changes; this is part of a series of PRs to fix bug #17182

Source-Repo: https://github.com/servo/servo
Source-Revision: 7e493529f0eca00b92274a047f843b990e6bd1a9
2017-06-23 11:37:23 -07:00
Pyfisch
d0d0868493 servo: Merge #17385 - Fix several bugs related to scrolling (from pyfisch:better-scroll); r=mrobinson
* scrollLeft/scrollTop returned values of parent or even document root
   Only the scroll of the node itself is returned. Otherwise 0.0.
* Scrolling via script had set viewport.
   This resulted in other nodes appearing scrolled.
   Now scroll_offsets are updated with correct node id.

These bugs caused other odd behavior like both body and
document.documentElement being scrolled or the view for scrolled
elements jumping.

Also try scrolling this [example page](https://pyfisch.org/stuff/scrolltest.html) in servo with and without this change.

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

<!-- Either: -->
- [x] There are tests for these changes (partially)

<!-- 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: 626c029623fea999fd7ea8650a6df8859ac87fcd
2017-06-23 01:50:39 -07:00
Jyotsna Prakash
6a74423b37 servo: Merge #17472 - return Option from GlobalScope::current (from moonlightdrive:globalscope-current-option); r=asajeffrey
<!-- Please describe your changes on the following line: -->
handles the case where `GlobalScope::current` calls `CurrentGlobalOrNull` and the result is null

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because: no functionality change & ./mach build -d has no 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: dd7540a5d4b81c1b7b72a2120b2ada948da7108e
2017-06-22 22:01:43 -07:00
J. Ryan Stinnett
5417317b00 servo: Merge #17481 - Stylo: Move match and cascade temporaries to CurrentElementInfo (from jryans:move-rule-node); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1370719

Source-Repo: https://github.com/servo/servo
Source-Revision: 9ba71fcd57bd8aef7977f09b0f095aa51796c1b3
2017-06-22 17:46:55 -07:00
Nazım Can Altınova
74d8dccb77 servo: Merge #17484 - Bump cssparser version to 0.16.1 in toml files (from canaltinova:upup); r=emilio
<!-- 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

Source-Repo: https://github.com/servo/servo
Source-Revision: efed75ae5a0a36006db25198961fb91386415cae
2017-06-22 16:52:00 -07:00
Nikhil Shagrithaya
47fba790fa servo: Merge #17457 - Remove target and data fields from parse_node_data (from cynicaldevil:trim-parse-node-data); r=nox
<!-- Please describe your changes on the following line: -->
`parse_node_data` does not need to store `data` and `target`, they can automatically be passed as parameters to the parser operation (`ParseOperation::CreatePI`) that we already create to be processed.

Also, this frees up `process_op` from depending on the sink's `parse_node_data` field, which will later allow for the sink to exist on the parser thread separately.

---
<!-- 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
- [ ] 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: 0fce761bb31f26f147054104c734d02d8aeb027f
2017-06-22 09:09:07 -07:00
Bobby Holley
7bc7317f26 servo: Merge #17439 - Match compound selectors left-to-right (second try) (from bholley:compound_left_to_right); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1373800

Source-Repo: https://github.com/servo/servo
Source-Revision: b211664e877a3e4d712314fa7f3002fd19cff549
2017-06-21 09:28:43 -07:00
Glenn Watson
86896c26ce servo: Merge #17398 - Improve decisions in compositor over when to draw a frame (from glennw:opt-composite); r=jdm
This patch fixes a couple of issues in the compositor:

1) Remove the delayed composition code. Previously, this would schedule
   a composite for 12ms in the future. This doesn't really make any sense
   with WR. There's no point in doing a composite unless WR has provided
   a new frame to be drawn. This fixes issues in several benchmarks where
   we were doing multiple composite / renders per rAF, which is a waste
   of CPU time. This *does* make the framerate slower in some cases (such
   as a slow rAF callback) but it's more correct - otherwise we were just
   compositing the same frame multiple times for no real benefit.

2) Inform the window of the current animation state of the compositor.
   Specifically, if an animation (or rAF) is currently active, the
   window system switches to use event polling, and does not block on
   the OS-level event loop. In the case of active animation, we just
   assume that we want to be running as the vsync interval and not
   blocking. This means the compositor thread only sleeps on vsync
   during animation, which reduces OS scheduling and results in much
   smoother animation.

Source-Repo: https://github.com/servo/servo
Source-Revision: 819a40bfb0fd2e1f4832fa3d773c266e9179ae21
2017-06-21 07:47:53 -07:00
Connor Brewster
df7a132b57 servo: Merge #17421 - Fix crash when id attribute is set via SetAttributeNode (from cbrewster:set_attribute_node_fix); r=emilio
fixes #17366

Source-Repo: https://github.com/servo/servo
Source-Revision: 82884050be02c0a72d2e2e2fa5645ecad2b9c668
2017-06-21 01:04:18 -07:00
Simon Sapin
3727d5f818 servo: Merge #17390 - Untry (from servo:untry); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 568ab550053fddf346806ed6cc2d3bfe37f3e1d0
2017-06-18 05:55:11 -07:00
Nikhil Shagrithaya
09c2eba81e servo: Merge #17037 - Added Async HTML Tokenizer (from cynicaldevil:impl-Sink); r=nox
Design: I realized having two different parsers for sync and async was wrong, because the API for both was fundamentally the same. All I needed to do was create another Tokenizer, because `ParseNode` ( representation for nodes which are yet to be created) is used by the TreeBuilder and the Sink, and the `Tokenizer` is the 'lowermost' type concerned with these two types.

Therefore, I created one and placed it in `async_html.rs`, and also created a new Sink which deals with `ParseNode`s. I changed the methods in ServoParser to take an `async` argument too, which decides which Tokenizer will be used. The Tokenizer isn't exactly *async* for now, but this PR separates action creation from execution, which allows the async behaviour to be implemented later. Right now, all actions are executed soon after they are created.

The Sink consists of two Hashmaps, `nodes`, which contains the actual nodes, with the key being their corresponding `ParseNode`'s id, and `parse_node_data`, which contains metadata about the nodes.

It's still a bit rough, (I can't figure out how to deal with `complete_script` and `is_mathml_annotation_xml_integration_point`, along with some other parts I wrote in a hurry), but I believe the overall design is sound. I'd like to hear what you think about it.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9c2dffdf72efe4274bb514407edc552b14fc0a4d
2017-06-17 02:21:19 -07:00
Josh Matthews
c1fd9b3992 servo: Merge #17360 - Hold stderr lock when using stdout through Console APIs (from servo:stderr); r=emilio
This addresses a longstanding source of intermittent test failures where the stderr and stdout outputs get interleaved and the test harness becomes confused.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: d388dc94fc849055e1ae908c77c2e8e5f70a52ca
2017-06-16 17:37:26 -07:00
Simon Sapin
494bca10cf servo: Merge #17345 - Upgrade cssparser to 0.15 (from servo:cssparserup); r=<try>
Depends on https://github.com/servo/rust-cssparser/pull/159

Source-Repo: https://github.com/servo/servo
Source-Revision: 75876a0e2220b7b95541feef4393288b195b090e
2017-06-16 06:09:52 -07:00
Simon Sapin
7279c780ac servo: Merge #17355 - Bump serde to 1.0 (from servo:serdeup); r=nox
This is a rebase of #17325 with `[replace]` entries removed, a bunch more dependencies updated, and some more compile fixes. Original work by @Eijebong, thanks a lot!

Source-Repo: https://github.com/servo/servo
Source-Revision: 66c130d55aa0d7af1104c00e93a5bf950f23a383
2017-06-16 05:03:18 -07:00
Glenn Watson
77d2c12536 servo: Merge #17352 - Update WR (CPU text optimizations, image format renames) (from glennw:update-wr-faster-text); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: e1bce241291683ee61abab042d0c808ae5396e91
2017-06-16 01:21:05 -07:00