Commit graph

11136 commits

Author SHA1 Message Date
Xidorn Quan
446ee7bcc3 Make regen_atoms.py work by itself 2016-12-10 00:33:41 -10:00
Xidorn Quan
1cefd1bef0 Do build-time bindgen
Majority of build_gecko.rs is just the straightforward conversion from
regen.py. There are two differences that:
1. Side in whitelist is changed to mozilla::Side
2. std::atomic__My_base is added to opaque types for Windows
2016-12-10 00:33:41 -10:00
bors-servo
6dd4b4822f Auto merge of #14535 - servo:property-id, r=mbrubeck
Introduce a PropertyId enum and use it instead of strings of property names

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

* `LonghandId` and `ShorthandId` are C-like enums
* `Atom` is used for the name of custom properties.
* `PropertyDeclarationId` is the identifier for `PropertyDeclaration`,
  after parsing and shorthand expansion. (Longhand or custom property.)
* `PropertyId` represents any CSS property, e.g. in CSSOM.
  (Longhand, shorthand, or custom.)

CC @upsuper

---
<!-- 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/14535)
<!-- Reviewable:end -->
2016-12-10 01:16:26 -08:00
Simon Sapin
9856c617df Add PropertyId::from_nscsspropertyid 2016-12-09 17:06:53 -10:00
Simon Sapin
dbc9fcc2de Use PropertyId in per-property CSSStyleDeclaration accessors. 2016-12-09 17:06:52 -10:00
Simon Sapin
433c33c4df Match on PropertyId (not strings) to parse a declaration. 2016-12-09 17:06:51 -10:00
Simon Sapin
58d452fa4e Use PropertyId instead of Atom for CSSStyleDeclaration::get_computed_style 2016-12-09 17:06:50 -10:00
Bobby Holley
80460cc549 Make Restyle tracking more granular.
The primary idea of this patch is to ditch the rigid enum of Previous/Current
styles, and replace it with a series of indicators for the various types of
work that needs to be performed (expanding snapshots, rematching, recascading,
and damage processing). This loses us a little bit of sanity checking (since
the up-to-date-ness of our style is no longer baked into the type system), but
gives us a lot more flexibility that we'll need going forward (especially when
we separate matching from cascading). We also eliminate get_styling_mode in
favor of a method on the traversal.

This patch does a few other things as ridealongs:
* Temporarily eliminates the handling for transfering ownership of styles to the
  frame. We'll need this again at some point, but for now it's causing too much
  complexity for a half-implemented feature.
* Ditches TRestyleDamage, which is no longer necessary post-crate-merge, and is
  a constant source of compilation failures from either needing to be imported
  or being unnecessarily imported (which varies between gecko and servo).
* Expands Snapshots for the traversal root, which was missing before.
* Fixes up the skip_root stuff to avoid visiting the skipped root.
* Unifies parallel traversal and avoids spawning for a single work item.
* Adds an explicit pre_traverse step do any pre-processing and determine whether
  we need to traverse at all.

MozReview-Commit-ID: IKhLAkAigXE
2016-12-09 14:46:40 -10:00
bors-servo
882d5512bb Auto merge of #14508 - servo:determine_request_referrer, r=jdm,frewsxcv
Rewrite determine_request_referrer() to explicitly limit it to the checks it can do.

Checks for the Client value should reside in the script thread.

I also noted some other issues in this 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/14508)
<!-- Reviewable:end -->
2016-12-09 13:13:27 -08:00
Simon Sapin
fdc40592de Use rust-phf to map strings to property IDs 2016-12-09 10:56:23 -10:00
Simon Sapin
137e30b825 Introduce enums for identifying CSS properties.
* `LonghandId` and `ShorthandId` are C-like enums
* `Atom` is used for the name of custom properties.
* `PropertyDeclarationId` is the identifier for `PropertyDeclaration`,
  after parsing and shorthand expansion. (Longhand or custom property.)
* `PropertyId` represents any CSS property, e.g. in CSSOM.
  (Longhand, shorthand, or custom.)

Using these instead of strings avoids some memory allocations and copies.
2016-12-09 10:56:22 -10:00
Simon Sapin
97344b150d cow_to_ascii_lowercase() 2016-12-09 10:56:20 -10:00
bors-servo
e5f995e7c4 Auto merge of #14532 - frewsxcv:remove-unused-trait, r=Wafflespeanut
Remove unused `ExpandToPixelBoundaries` trait from `util`.

<!-- 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/14532)
<!-- Reviewable:end -->
2016-12-09 12:19:49 -08:00
Corey Farwell
17295dc566 Alphabetize document.createEvent match list.
Makes it easier to see what hasn't been implemented with regards to the
spec.
2016-12-09 09:24:18 -10:00
Corey Farwell
586d46decd Make unnecessarily public function private. 2016-12-09 08:38:15 -10:00
Corey Farwell
d2f59bf435 Remove unused ExpandToPixelBoundaries trait from util. 2016-12-09 08:30:50 -10:00
Jansen Jan
55f0e56224 Add support for fullscreen #10102 2016-12-09 11:45:50 +01:00
Ms2ger
b8aab5d115 Remove some redundant code around XMLHttpRequest::document_response(). 2016-12-08 20:25:17 -10:00
bors-servo
5b389a228c Auto merge of #14510 - frewsxcv:comment, r=Ms2ger
Fix doc comment syntax.

<!-- 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/14510)
<!-- Reviewable:end -->
2016-12-08 16:10:08 -08:00
bors-servo
da2f41ba13 Auto merge of #14502 - servo:filter-map, r=frewsxcv
Replace an unidiomatic use of filter_map().

<!-- 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/14502)
<!-- Reviewable:end -->
2016-12-08 15:12:42 -08:00
Corey Farwell
371d287f5d Fix doc comment syntax. 2016-12-08 12:40:18 -10:00
bors-servo
fffdcc1d7d Auto merge of #14501 - servo:LoadError, r=Manishearth
Remove LoadError.

<!-- 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/14501)
<!-- Reviewable:end -->
2016-12-08 14:22:17 -08:00
Ms2ger
fb456402b0 Replace an unidiomatic use of filter_map(). 2016-12-08 12:13:53 -10:00
Ms2ger
12aa4694cb Rewrite determine_request_referrer() to explicitly limit it to the checks it can do.
Checks for the Client value should reside in the script thread.

I also noted some other issues in this code.
2016-12-08 12:05:44 -10:00
bors-servo
b192ae9db7 Auto merge of #14495 - frewsxcv:reflectable-domobject, r=jdm
Rename `Reflectable` to `DomObject`.

Fixes https://github.com/servo/servo/issues/8473.

<!-- 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/14495)
<!-- Reviewable:end -->
2016-12-08 12:41:08 -08:00
Ms2ger
87979ef65e Remove LoadError. 2016-12-08 10:25:23 -10:00
bors-servo
1e3d4d272d Auto merge of #14496 - servo:option-refpol, r=KiChjang
Stop handling a None referrer policy in determine_request_referrer().

<!-- 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/14496)
<!-- Reviewable:end -->
2016-12-08 11:52:35 -08:00
Ms2ger
3a27fda368 Stop handling a None referrer policy in determine_request_referrer(). 2016-12-08 09:39:41 -10:00
Corey Farwell
449f6337d4 Rename Reflectable to DomObject.
Fixes https://github.com/servo/servo/issues/8473.
2016-12-08 08:50:35 -10:00
Cameron McCormack
3d881f3622 Regenerate bindings. 2016-12-08 00:29:55 -10:00
Cameron McCormack
8310962b90 Update regen.py for recent mozilla-central and rust-bindgen. 2016-12-08 00:29:08 -10:00
Emilio Cobos Álvarez
e09bc36347 stylo: Update bindings with servo/rust-bindgen#325 2016-12-08 00:27:32 -10:00
Emilio Cobos Álvarez
5832507e56 stylo: Whitelist some stuff to work-around bindgen generating too many tests. 2016-12-08 00:27:32 -10:00
Emilio Cobos Álvarez
f7d64c66da stylo: Regenerate bindings. 2016-12-08 00:27:32 -10:00
Emilio Cobos Álvarez
eafa13c724 stylo: Use proper namespaces in bindings.
This allows us to incrementally remove both bindgen hacks and stylo hacks.
2016-12-08 00:27:32 -10:00
bors-servo
0fe94a6724 Auto merge of #12862 - servo:layout-new, r=emilio
added dom obj counting to decide sequential/parallel layout (#10110)

This is a rebased version of #11713

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #10110 (github issue number if applicable).
- [X] There are no tests for these changes because it's an optimization with no visible behavioral 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/12862)

<!-- Reviewable:end -->
2016-12-07 14:32:20 -08:00
bors-servo
8dfaed2183 Auto merge of #14464 - canaltinova:cssom-test, r=Manishearth
Write tests for CSSOM Interfaces

<!-- Please describe your changes on the following line: -->
ToCss implementation was wrong about Keyframe percentage values, it was writing values between 0-1. I had to fix it. Wrote some tests about CSSKeyframesRule, CSSNamespaceRule, CSSRuleList, CSSStyleSheet, StyleSheetList interfaces.
CSSFontFaceRule and CSSViewportRule looks like not implemented yet. I didn't write one for them.
Also name attribute in CSSKeyframesRule isn't implemented yet. Is there any complication about it? If not, I can implement it.

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

<!-- 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/14464)
<!-- Reviewable:end -->
2016-12-07 13:38:50 -08:00
bors-servo
4e0638b9b7 Auto merge of #14479 - asajeffrey:script-htmliframeelement-more-debugging, r=jdm
Added debugging to htmliframeelement.rs.

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

Add some debugging to iframe elements.

---
<!-- 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 they're just used in debugging

<!-- 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/14479)
<!-- Reviewable:end -->
2016-12-06 22:18:15 -08:00
bors-servo
900cb3b142 Auto merge of #14475 - mrobinson:backrounds-borders-scrolling-div, r=pcwalton
Don't scroll background and borders of overflow:scroll blocks

<!-- 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: -->
- [x] 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. -->

We want them to be children of the parent scrolling root instead of the
scrolling root of the particular block they belong to. Also, we adjust
the scroll root to only include the content region.

<!-- 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/14475)
<!-- Reviewable:end -->
2016-12-06 21:22:58 -08:00
bors-servo
b5a96e6054 Auto merge of #14471 - heycam:blockification, r=emilio
adjust display style fixup to handle more Gecko cases

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

This tweaks the display property fixup we do when restyling to:

* handle the display values that Gecko supports that Servo doesn't
* blockify grid items (like we do flex items)
* skip the fixup for NAC

And while I'm in the area, this sets `nsStyleDisplay::mOriginalDisplay` too.

r? @bholley cc @SimonSapin

---
<!-- 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/14471)
<!-- Reviewable:end -->
2016-12-06 20:19:21 -08:00
bors-servo
55248aeb2b Auto merge of #14468 - szeged:blocklist-allowed-services, r=jdm
Move allowedService and blocklist checks into caching functions

<!-- Please describe your changes on the following line: -->
Move allowedService and blocklist checks into caching functions in `bluetooth/lib.rs`, to avoid caching not allowed services and blocklisted services, characteristics and descriptors.

---
<!-- 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] There are tests for these changes

<!-- 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/14468)
<!-- Reviewable:end -->
2016-12-06 19:26:50 -08:00
bors-servo
32c121b6ff Auto merge of #14473 - nox:raf-safety, r=Ms2ger
Clean up JSTraceable and how we use it

<!-- 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/14473)
<!-- Reviewable:end -->
2016-12-06 18:31:46 -08:00
Alan Jeffrey
97ae51cf45 Added debugging to htmliframeelement.rs. 2016-12-06 15:52:40 -10:00
bors-servo
b54cfc9f25 Auto merge of #14429 - szeged:syntax-to-type-error, r=jdm
Replace Syntax with TypeError in bluetoothuuid.rs

<!-- Please describe your changes on the following line: -->
1. Replacing `SyntaxError` with `TypeError` in `bluetoothuuid.rs` due to the specification change.
This indicates changes in the existing tests.
The error strings are from the chromium implementation.
2. We missed out a `$` character from the end of the `VALID_UUID_REGEX` global variable.

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

<!-- 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/14429)
<!-- Reviewable:end -->
2016-12-06 17:30:40 -08:00
Martin Robinson
f090d00c09 Don't scroll background and borders of overflow:scroll blocks
We want them to be children of the parent scrolling root instead of the
scrolling root of the particular block they belong to. Also, we adjust
the scroll root to only include the content region.
2016-12-06 14:08:17 -10:00
Anthony Ramine
535765907d Introduce jsmanaged_array 2016-12-06 13:15:18 -10:00
Anthony Ramine
f20361179d Remove generics from unsafe_no_jsmanaged_fields 2016-12-06 13:15:16 -10:00
Anthony Ramine
291a131dd8 Properly trace HashSet<T> 2016-12-06 13:15:15 -10:00
Anthony Ramine
b40681e231 Make the impl of JSTraceable for LayoutRPC sound with a Send bound 2016-12-06 13:15:14 -10:00
Anthony Ramine
e8c9c12b6e Remove usage of FnBox for animation frame callbacks (fixes #14416) 2016-12-06 13:15:09 -10:00