Commit graph

16155 commits

Author SHA1 Message Date
bors-servo
385e59e0f1 Auto merge of #14273 - heycam:rule-tree-stylo, r=bholley,emilio
ensure RuleNodes are dropped when Gecko drops the Stylist

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

These are the Servo-side patches from https://bugzilla.mozilla.org/show_bug.cgi?id=1318238, which already have been reviewed by @bholley and @emilio there.

<!-- 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/14273)
<!-- Reviewable:end -->
2016-11-21 08:16:36 -06:00
Ms2ger
ae1340bf50 Pass the UIProvider to FileManager::handle() as needed. 2016-11-21 10:37:26 +01:00
Ms2ger
f672bf9eab Factor out FileManager::promote_memory(). 2016-11-21 10:37:25 +01:00
Ms2ger
5ce869d58a Factor out FileManager::read_file(). 2016-11-21 10:37:24 +01:00
Ms2ger
508e6adb7e Stop cloning FileManager::store so much. 2016-11-21 10:37:23 +01:00
Ms2ger
95ccd2d08f Move the UIProvider from FileManagerStore to FileManager.
This will allow us to reduce the amount of code that needs to care about it.
2016-11-21 10:37:22 +01:00
Cameron McCormack
d92cc8ecd0 Don't assert when we do a rule tree GC and the root nodes still has strong references.
It could still have children.
2016-11-21 17:04:58 +08:00
Cameron McCormack
830cc88283 Support cursor property url() values in stylo. r=manishearth
MozReview-Commit-ID: 6herzaXUz4i
2016-11-21 14:48:59 +08:00
Cameron McCormack
c6be1a8995 Regenerate bindings.
MozReview-Commit-ID: LLZf2HKBpjF
2016-11-21 11:35:02 +08:00
Cameron McCormack
48aa7070ac GC the RuleTree when the Stylist is dropped.
We only consider doing a GC currently if the root node has a zero refcount.
But that only happens if it has no children -- even weak children keep a
strong reference to their parent.  So at the very least, we should do a
GC specifically when the RuleTree is going away.  (We probably want to add
some other GC opportunities too at some point, otherwise it's easy to
never GC a RuleTree.)
2016-11-21 09:01:19 +08:00
bors-servo
976989fc8d Auto merge of #14278 - emilio:layout-data-in-script, r=Ms2ger
style: Don't assert when the final rule tree GC happens in script.

This should silence the assertions in https://github.com/servo/servo/issues/14213.

r? @Ms2ger

<!-- 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/14278)
<!-- Reviewable:end -->
2016-11-20 14:23:39 -06:00
bors-servo
ac6a2681ae Auto merge of #14274 - stshine:servo-url-index, r=emilio
Implement range index with the Position enum on ServoUrl

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

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

r? @emilio

<!-- 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/14274)
<!-- Reviewable:end -->
2016-11-20 12:35:14 -06:00
Simon Sapin
b203ab2419 Rename selector_impl.rs to selector_parser.rs
This makes it consistent with an upcoming update of the selectors crate.
2016-11-20 15:30:37 +01:00
Simon Sapin
08066800cd Rename selector_matching.rs to stylist.rs 2016-11-20 15:29:09 +01:00
Emilio Cobos Álvarez
5c98dffea6
style: Don't assert when the final rule tree GC happens in script. 2016-11-20 14:13:18 +01:00
bors-servo
72e4c6dc21 Auto merge of #13418 - stshine:location-replace, r=KiChjang
Make document url mutable and implement location.replace()

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

<!-- Either: -->
- [X] There are tests for these changes OR

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

<!-- Reviewable:end -->
2016-11-20 02:27:54 -06:00
bors-servo
b78622bd53 Auto merge of #14256 - heycam:rn-gc-heuristic, r=emilio
GC the rule tree only when the free list gets to a certain size.

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

Use a heuristic similar to Gecko's to decide when to GC the rule tree.

r? @emilio

<!-- 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/14256)
<!-- Reviewable:end -->
2016-11-19 22:01:12 -06:00
bors-servo
7e34f4cb5b Auto merge of #14284 - nox:fnv, r=Wafflespeanut
Use FnvHasher in http_loader::load

Should help with #11100.

<!-- 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/14284)
<!-- Reviewable:end -->
2016-11-19 19:18:10 -06:00
Pu Xingyu
5287e70829 Minor fixes and update test expectations 2016-11-20 06:30:10 +08:00
Anthony Ramine
7a8c5ae8e3 Use FnvHasher in http_loader::load
Should help with #11100.
2016-11-19 14:10:37 +01:00
bors-servo
a4e26d503a Auto merge of #14227 - chenpighead:font-size-adjust-gecko, r=Manishearth
Stylo - gecko glue code for font-size-adjust.

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

Implement the gecko-side glue code for font-size-adjust.
This is a followup for #14125, which is originally filed in #13875.

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

<!-- 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/14227)
<!-- Reviewable:end -->
2016-11-19 05:07:46 -06:00
bors-servo
1e42e4d9ce Auto merge of #14272 - connorimes:fix-energy-profiling-feature, r=Manishearth
Fix energy profiling feature

<!-- Please describe your changes on the following line: -->
The `energy-profiling` feature was broken at some point when `#![deny(unsafe_code)]` was introduced to the `profile_traits` component.  This PR sets `#[allow(unsafe_code)]` on the `energy` module.
There is an additional commit (my original intention) to update the profiler logging to use the current `ProfilerCategory` enum values for (typically developer-only) performance/power analysis.

---
<!-- 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 fixes is a compile error for a feature.

<!-- 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/14272)
<!-- Reviewable:end -->
2016-11-19 02:32:00 -06:00
Manish Goregaokar
3d5b26ac26 Uplift bitfield fix for nsChangeHint 2016-11-18 21:45:12 -08:00
bors-servo
9c6f6ebf3e Auto merge of #14270 - larsbergstrom:disable_android_debugger, r=nox
Disable the debugger on Android until mio works on Android

<!-- Please describe your changes on the following line: -->
r? @nox

The recent change to `ws-rs` introduced a dependency on `mio`, which depends on `nix`, which does not build on Android (https://github.com/nix-rust/nix/issues/313). I've disabled the debugger in this change.

Fixes #14171

cc @mmatyas

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- 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/14270)
<!-- Reviewable:end -->
2016-11-18 23:40:20 -06:00
bors-servo
0c55d461f1 Auto merge of #14261 - Wafflespeanut:lon, r=SimonSapin
Prefer Either type for LengthOrNumber

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

This adds `impl GeckoStyleCoordConvertible for Either<A, B>` and makes `LengthOrNumber` prefer `Either<A, B>`.

---
<!-- 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 build-geckolib` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] These changes do not require tests because it's a refactor

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

r? @SimonSapin

<!-- 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/14261)
<!-- Reviewable:end -->
2016-11-18 22:20:04 -06:00
bors-servo
fdcf510ac8 Auto merge of #14250 - nox:write, r=SimonSapin
Make ServoParser::pending_input hold onto a BufferQueue

<!-- 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/14250)
<!-- Reviewable:end -->
2016-11-18 19:46:15 -06:00
Lars Bergstrom
d05114f66d Move build.rs along with the other Servo files from components to ports 2016-11-18 10:59:14 -06:00
Simon Sapin
dca1772086 Remove unused dependency 2016-11-18 17:16:54 +01:00
bors-servo
731264f20e Auto merge of #14238 - canaltinova:cssom-tocss, r=Manishearth
Implement ToCss serialization for CSSRules

<!-- Please describe your changes on the following line: -->
Implementation of ToCss serialization for CSSRules. It requires #14190 to merge first to uncomment `CssRule::Style` branch in CssRule's ToCss implementation.

r? @Manishearth

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

- [X] These changes do not require tests because it's serialization changes and I'm not sure there is a test for that.

<!-- 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/14238)
<!-- Reviewable:end -->
2016-11-18 10:15:52 -06:00
Simon Sapin
cf7adcdca5 Make Stylesheet.dirty_on_viewport_size_change an AtomicBool 2016-11-18 17:13:30 +01:00
Simon Sapin
236c575c50 Replace Stylesheet::set_media with a constructor argument 2016-11-18 17:12:44 +01:00
Simon Sapin
f4dcc38816 Remove unused Stylesheet::from_bytes_iter 2016-11-18 16:44:20 +01:00
Simon Sapin
8eeaef5b1c CSSOM: Add Arc<RwLock<_>> around Stylesheet.media 2016-11-18 16:44:04 +01:00
bors-servo
696b806284 Auto merge of #14249 - vvuk:wr-record, r=kvark
Add -Z wr-record

This adds `-Z wr-record`, which flips `enable_recording` to true for Webrender.

<!-- 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/14249)
<!-- Reviewable:end -->
2016-11-18 08:29:27 -06:00
Guillaume Gomez
861bcb2b79 Add missing actions in CreateContextualFragment method 2016-11-18 11:39:02 +01:00
Pu Xingyu
0818b44459 Implement range index with the Position enum on ServoUrl 2016-11-18 17:46:36 +08:00
Nazım Can Altınova
fdbadcdce2 Implement ToCss serialization for CSSRules 2016-11-18 12:17:53 +03:00
Cameron McCormack
4e52bb49b9 GC the rule tree only when the free list gets to a certain size. 2016-11-18 17:12:33 +08:00
Anthony Ramine
a3da819d10 Make ServoParser::pending_input hold onto a BufferQueue 2016-11-18 10:12:06 +01:00
Emilio Cobos Álvarez
181208a4e4 rule tree: Avoid yet another dumb assertion when dropping the rule tree. 2016-11-18 17:10:09 +08:00
Pu Xingyu
91f3d4f474 Remove redundant url clones
They are now redundant since now document.url() returns a struct rather
than a reference.
2016-11-18 12:39:22 +08:00
Pu Xingyu
fb6cc15208 Implement Location.replace 2016-11-18 12:38:12 +08:00
Pu Xingyu
9863149043 Move fragment navigation into Document object
Move the `check_and_scroll_fragment()` method into Document, make the
mothod set the fragment of url after navigation, and use the
`perform_a_scroll()` method to scroll rather than an individual
method. Also removes the broken `Window.fragment` fields.
2016-11-18 12:33:30 +08:00
Pu Xingyu
eca8f1d0b4 Make 'Document.url' field mutable
Use DOMRefCell as the type of the url field.
2016-11-18 12:29:02 +08:00
Ravi Shankar
6ac3fcbfeb Prefer Either<A, B> for LengthOrNumber 2016-11-18 09:14:09 +05:30
Ravi Shankar
73eabad1c2 Add impl GeckoStyleCoordConvertible for Either<A, B> 2016-11-18 09:08:23 +05:30
Connor Imes
263278a4dc Update profiler logging with current ProfilerCategory enum values 2016-11-17 19:36:58 -08:00
Connor Imes
889b9ad3f0 Allow unsafe code for energy module (build failure otherwise) 2016-11-17 19:33:32 -08:00
Manish Goregaokar
9fb589dfd2 Regenerate bindings 2016-11-17 17:48:28 -08:00
Lars Bergstrom
ca0078a6e1 Disable the debugger on Android until mio works on Android 2016-11-17 19:11:30 -06:00