Commit graph

23905 commits

Author SHA1 Message Date
Ms2ger
2c7c8fd2be Use an ArrayBuffer to implement readAsArrayBuffer. 2017-01-19 15:41:16 +01:00
bors-servo
2c816a2e9d Auto merge of #15108 - servo:callbackobject-drop, r=KiChjang
Don't try to get the global of an object while it's being destroyed.

Fixes #15070.
Fixes #15097.

<!-- 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/15108)
<!-- Reviewable:end -->
2017-01-19 03:05:17 -08:00
bors-servo
f4c6d00092 Auto merge of #15035 - UK992:tidy-validate-ignore, r=Wafflespeanut
Tidy: Report invalid listed ignored directories and files

r? @Wafflespeanut

<!-- 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/15035)
<!-- Reviewable:end -->
2017-01-19 01:12:06 -08:00
Ms2ger
2071e41e64 Don't try to get the global of an object while it's being destroyed.
Fixes #15070.
Fixes #15097.
2017-01-19 10:08:48 +01:00
bors-servo
b8df502491 Auto merge of #15107 - DexterHaslem:15100-convert-debug-to-traces, r=cbrewster
convert less interesting debug! logs to traces

<!-- Please describe your changes on the following line: -->
converted some debug! invocations to trace!

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

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

<!-- 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/15107)
<!-- Reviewable:end -->
2017-01-18 21:29:59 -08:00
Dexter Haslem
94f0ceb4aa squash: convert less interesting debug! logs to traces 2017-01-18 22:21:41 -07:00
bors-servo
5e888b5504 Auto merge of #15089 - Manishearth:less-vec, r=SimonSapin
Reduce allocator churn when parsing property declaration blocks

fixes #15060

cc @emilio

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/15089)
<!-- Reviewable:end -->
2017-01-18 17:41:05 -08:00
Manish Goregaokar
b5cb401aef Reduce allocator churn when parsing property declaration blocks (fixes #15060) 2017-01-18 16:31:46 -08:00
bors-servo
1a7404e38c Auto merge of #15096 - vvuk:custom-font-files, r=emilio
Implement downloadable fonts on Windows

This PR implements downloadable font support for Servo.  It depends on new changes in webrender and dwrote, and adds a dependency on the `truetype` crate for pulling out basic font information.  The original DirectWrite API does not provide an easy way to query font information direct from a `FontFace` (which is what you create from a `FontFile`).  There are new DirectWrite APIs starting with Windows 10 that allow for this, but they are Win 10+ only, and `winapi-rs` does not yet have bindings for those versions of the interfaces (specificially, `IDirectWriteFontFace3`).  The way to do this with DW is to go through a lot of pain in creating a custom collection and enumerator, add your font to your custom collection, then query the collection for its properties.

Instead, we just parse the truetype tables directly to pull out the few bits of information that we need.  The `truetype` crate is ok, but I discovered some bugs (an update needs to get pushed to crates.io before this will build).  It might be more worthwhile to just implement the tiny bit of truetype parsing that we need ourselves in Servo.

I'm guessing there are existing tests for downloadable fonts...

---
<!-- 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/15096)
<!-- Reviewable:end -->
2017-01-18 16:09:51 -08:00
ddh
1982a47450 added lets encrypt authority x3 to trusted roots pem 2017-01-18 23:28:04 +00:00
UK992
8a1aa354d6 Tidy: Report invalid listed ignored directories and files 2017-01-18 21:51:56 +01:00
bors-servo
0cca7ca85d Auto merge of #15095 - servo:debug-servourl, r=nox
Omit the 'ServoUrl()' wrapping in ServoUrl's Debug implementation.

<!-- 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/15095)
<!-- Reviewable:end -->
2017-01-18 11:17:05 -08:00
Vladimir Vukicevic
a9611c31a7 Implement downloadable fonts on Windows 2017-01-18 13:30:58 -05:00
bors-servo
b08d4a7d39 Auto merge of #14839 - Permutatrix:iss-12939, r=emilio
Make offset parent queries less buggy.

<!-- Please describe your changes on the following line: -->
Offset parent queries, which are used in the getters for HTMLElement's `offsetParent`, `offsetTop`, `offsetLeft`, `offsetWidth`, and `offsetHeight`, are pretty busted. The most egregious bug is that, as reported in #12939, inline elements are treated as if they're not present in the document. This PR fixes that and all of the other bugs I could trace directly to the offset parent query code, but `offsetTop` and `offsetLeft` are still unreliable in certain circumstances for reasons I haven't looked into (#13708). Inline elements with no content are still treated as not present due to #13982, so #13944 isn't fixed with this PR, either.

---
<!-- 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 #12939 and fix #12595

<!-- Either: -->
- [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/14839)
<!-- Reviewable:end -->
2017-01-18 10:03:37 -08:00
Permutator
400a267cf0
/css-text-3_dev/html/word-break-normal-zh-000.htm fails on Mac 2017-01-18 08:44:11 -08:00
bors-servo
ba59ee6627 Auto merge of #15053 - emilio:image-width, r=jdm
Return the intrinsic image dimension when the image is not rendered

See individual commits for details.

r? @jdm

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15053)
<!-- Reviewable:end -->
2017-01-18 08:43:19 -08:00
Simon Sapin
71fb02953c Remove usage of phf_macros.
It’s a compiler plugin that uses unstable compiler APIs
that are not on a path to stabilization.

With this changes, there is one less thing that might break
when we update the compiler. For example:
https://github.com/sfackler/rust-phf/pull/101
2017-01-18 17:25:59 +01:00
Emilio Cobos Álvarez
127da41a2a
script: Add tests for image intrinsic width when the element is not rendered. 2017-01-18 16:49:54 +01:00
Emilio Cobos Álvarez
728ce16b9d
script: Properly implement the image width and height getter.
Per https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-width:

    The IDL attributes width and height must return the rendered width and
    height of the image, in CSS pixels, if the image is being rendered, and is
    being rendered to a visual medium; or else the density-corrected intrinsic
    width and height of the image, in CSS pixels, if the image has intrinsic
    dimensions and is available but not being rendered to a visual medium; or
    else 0, if the image is not available or does not have intrinsic dimensions.
2017-01-18 16:49:53 +01:00
Emilio Cobos Álvarez
bdd7cb9753
script: Rename bounding_content_box to bounding_content_box_or_zero.
And make bounding_content_box preserve whether the element is rendered.
2017-01-18 16:49:52 +01:00
bors-servo
68fa988bf3 Auto merge of #15091 - cbrewster:frame_state_consistency, r=asajeffrey
Ensure FrameState consistency

<!-- Please describe your changes on the following line: -->
As we begin to add more state to `FrameState`, we need to make sure that when we do replacements and when we finish traversals that the state is properly updated. This also fixes an issue where we were not updating the `url` of the `FrameState` when navigating with replacement enabled (I wonder if it would be possible to write a test to detect this. The url only matters when reloading a document after it was discarded by the max session history).

---
<!-- 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/15091)
<!-- Reviewable:end -->
2017-01-18 07:47:54 -08:00
bors-servo
c1238291e9 Auto merge of #15094 - glennw:update-wr-driver-stalls, r=emilio
Update WR (driver stall workaround, shared clips, dwrote update).

<!-- 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/15094)
<!-- Reviewable:end -->
2017-01-18 06:52:04 -08:00
Ms2ger
ce496472f8 Omit the 'ServoUrl()' wrapping in ServoUrl's Debug implementation. 2017-01-18 15:43:29 +01:00
bors-servo
1755ad7b75 Auto merge of #15077 - emilio:stylo-medialist, r=heycam,Manishearth,upsuper
Media query parsing and evaluation in stylo using nsMediaFeatures

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

Reviewed in the bug.

<!-- 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/15077)
<!-- Reviewable:end -->
2017-01-18 05:39:57 -08:00
Emilio Cobos Álvarez
182e0758f7
Regenerate bindings.
MozReview-Commit-ID: 4XEaLnhGSqT
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-01-18 14:39:26 +01:00
Anthony Ramine
d5442b87fc Reindent /old-tests/submission/Opera/script_scheduling/078.html 2017-01-18 14:27:21 +01:00
Glenn Watson
d5c98ee41b Update WR (driver stall workaround, shared clips, dwrote update). 2017-01-18 23:14:53 +10:00
Anthony Ramine
fad6a3a65c Fix and reindent /old-tests/submission/Opera/script_scheduling/119.html 2017-01-18 14:04:11 +01:00
bors-servo
80c6383140 Auto merge of #15072 - nox:load-fixes, r=jdm
Refactor some things related to script loading

<!-- 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/15072)
<!-- Reviewable:end -->
2017-01-18 02:17:17 -08:00
bors-servo
90522d9379 Auto merge of #15090 - upsuper:moz-user-input, r=Wafflespeanut
Fix initial value of -moz-user-{input,focus}

<!-- 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/15090)
<!-- Reviewable:end -->
2017-01-18 01:22:00 -08:00
bors-servo
83a99f0ea5 Auto merge of #15081 - servo:interfaces.worker, r=jdm
Enable interfaces.worker.html.

I ran it 250 times, and it passed every time.

Fixes #12654.

<!-- 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/15081)
<!-- Reviewable:end -->
2017-01-17 23:58:38 -08:00
Connor Brewster
eedff27ea9 add methods to ensure frame state stays consistent 2017-01-17 22:30:51 -06:00
Xidorn Quan
0a3866cfa8 Fix initial value of -moz-user-{input,focus} 2017-01-18 13:59:50 +11:00
Pavel Potocek
8ae9bcd472 Add a test 2017-01-17 22:45:22 +01:00
bors-servo
f010fb58fd Auto merge of #15065 - Manishearth:box-calclop, r=heycam
Use Box<CalcLengthOrPercentage> in specified values to avoid bloating inline sizes

For #15061

CalcLOP is a large struct, and gets used quite often. While #15063 reduces its size a bit,
it will still be much larger than any of the other variants in the `specified::Length*` types,
so it will still bloat sizes, especially for specified values that contain many lengths.

This change boxes it in the length types, so that it just takes one word.

r? @heycam

<!-- 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/15065)
<!-- Reviewable:end -->
2017-01-17 11:49:52 -08:00
bors-servo
a73fd01f01 Auto merge of #15074 - paulrouget:removeBhtmlFromComponent, r=Ms2ger
Remove browserhtml dependency from components/servo

Fix #15066

<!-- 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/15074)
<!-- Reviewable:end -->
2017-01-17 10:56:22 -08:00
bors-servo
06f66abd4a Auto merge of #15073 - servo:always-be-updating, r=nox
Apply minor dependency updates.

<!-- 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/15073)
<!-- Reviewable:end -->
2017-01-17 10:00:46 -08:00
Pavel Potocek
0d9b4e858c Fix #14497: WeakMediaQueryListVec assumes its contents are still alive 2017-01-17 18:35:49 +01:00
bors-servo
4b3fbc0059 Auto merge of #15071 - upsuper:page-break-after, r=emilio
Fix typo in glue code for page-break-after

<!-- 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/15071)
<!-- Reviewable:end -->
2017-01-17 09:05:33 -08:00
bors-servo
b4980f9037 Auto merge of #15069 - heycam:bindgen-regex-update, r=emilio
Update geckolib build-time bindgen build script for recent regex changes.

`./mach build-geckolib --with-gecko ...` is broken due to regex's API changing a bit.

r? @Manishearth

<!-- 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/15069)
<!-- Reviewable:end -->
2017-01-17 08:13:47 -08:00
Manish Goregaokar
f59557d2f2 Box CalcLengthOrPercentage to reduce inline size of PropertyDeclaration(s) 2017-01-17 08:09:54 -08:00
Aneesh Agrawal
b4f5086305 Add a Salt bootstrapper
The Salt bootstrapper invokes Salt during `./mach bootstrap`
to install Servo's build dependencies.
It uses salt-call pinned to the same version of Salt as used in saltfs.

Currently, the implementation uses gitfs and reads directly from
the master branch of the saltfs repo;
in the future this should be changed when the relevant Salt states
are moved in-tree as part of Dockerization for TaskCluster.

We have not Salted our Windows machines, so the existing Windows
bootstrappers are retained. Currently this is only tested on
Ubuntu Trusty.

Salt uses various system python libraries,
including `python-apt` on Debian-based OSes to interact with apt.
`python-apt` does not seem to be installable via a requirements.txt
file, and the versions available on PyPI are far behind the versions
installed on actual Ubuntu machines.
Additionally, adding `python-apt` as an unconditional python dependency
would add bloat for users of other OSes, and lead to more churn
as additional OSes are supported.
However, as `python-apt` is already installed via apt on these machines,
we can allow Salt to instead use the module by using
`--system-site-packages` for the python virtualenv.
We also add the `-I` flag to `pip install` to ensure we have a local,
untouched copy of any other python packages used.
However, because this prints system-level Python packages in scope,
it slightly breaks isolation, so it is important to always pin
all dependencies in the requirements files.
2017-01-17 11:01:09 -05:00
bors-servo
3ab514302f Auto merge of #14979 - mrobinson:scroll-roots-when-necessary, r=emilio
Only create scrolling overflow regions when necessary

Only create scroll roots for overflow regions when the overflow region
is actually larger than the container size. This prevents creating
scrolling roots for elements that do not have overflow scroll as a
side-effect of the way their height and width is defined. For example,
tables should never respect overflow:scroll since their height and
width should always be large enough to prevent overflow. This also
decreases the size and complexity of the display list in many other
circumstances.

As part of this change, transformed overflow calculation is moved from
display list construction to layout. This should mean that overflow is
handled more accurately earlier.

Fixes #14574.

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

<!-- 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/14979)
<!-- Reviewable:end -->
2017-01-17 07:18:42 -08:00
Martin Robinson
44b24de60f Only create scrolling overflow regions when necessary
Only create scroll roots for overflow regions when the overflow region
is actually larger than the container size. This prevents creating
scrolling roots for elements that do not have overflow scroll as a
side-effect of the way their height and width is defined. For example,
tables should never respect overflow:scroll since their height and
width should always be large enough to prevent overflow. This also
decreases the size and complexity of the display list in many other
circumstances.

As part of this change, transformed overflow calculation is moved from
display list construction to layout. This should mean that overflow is
handled more accurately earlier.

Fixes #14574.
2017-01-17 09:47:43 -05:00
Ms2ger
1c8fcfba51 Enable interfaces.worker.html.
I ran it 250 times, and it passed every time.

Fixes #12654.
2017-01-17 15:46:11 +01:00
bors-servo
5fca03418f Auto merge of #15078 - servo:jdm-patch-1, r=Ms2ger
Disable test-unit on TravisCI.

Due to #15076, I want to make sure that the TravisCI status is meaningful as much as possible.

<!-- 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/15078)
<!-- Reviewable:end -->
2017-01-17 05:58:00 -08:00
Josh Matthews
084fa9af89 Disable test-unit on TravisCI. 2017-01-17 08:29:39 -05:00
Anthony Ramine
44fd53fd48 Reorder some steps in ServoParser::finish 2017-01-17 14:25:23 +01:00
Anthony Ramine
70ed3e7006 Remove ScriptThread::parsing_complete 2017-01-17 14:24:37 +01:00
Emilio Cobos Álvarez
3b36f4c58e
Bug 1331213: Implement the resolution override. r=heycam
MozReview-Commit-ID: LFGam2hDoh7
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-01-17 14:18:56 +01:00