Thanks to @asabil for the original work, I only rebased it.
Fixes#6359 and #7040.
Source-Repo: https://github.com/servo/servo
Source-Revision: d1269294e6c602c91012397c7584e3c2077e21ac
Some should have been `[SameObject]` instead of `[Constant]`. The rest of the changes are additional `[Constant]` and `[Pure]` extended attributes on many operations.
Source-Repo: https://github.com/servo/servo
Source-Revision: 61267cde63ce6c0f6433f57b3f8054886577d767
cgaebel had a TODO for a css twitter fail whale reftest, which depended on elliptical border-radius support.
I didn't see any feasible way other than a reference image for border_twitter_fail_whale_b.html.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: c91c0188f279b9d7edf706fc7ad3111948156ed6
Hi guys i've done a small pass of refactor in the MIMEClassifier implementation. (See issue #7382 )
- Moved the predicates to separate functions
- Added a mimetype enum so we can compare them easily after calling MIMEClassifier::get_media_type
I hope it follows rust good pratices (care it's my first time doing rust).
Improvements and tips are welcome :).
Thanks for looking at it.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8a8204ffc8fa287dde2321c40d12b191b51960da
Currently these both clamp to 100% in one direction and are unbounded in the other direction. This sets default zoom constraints of 10% to 800%. r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: eae3eaf97474febb2c50a7a4d392594cbc8d2da2
These styles are used during text shaping. When they change, we need to re-run shaping and construct new flows.
Fixes#6501. r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: acde10f005f9d4c2062fe5480be163b2c6dfe823
Currently pseudo-elements, like the fragments created for ::before and
::after, with layers will have the same LayerId as the body of their
owning fragments. Instead all LayerIds should be unique.
Fixes#2010.
Source-Repo: https://github.com/servo/servo
Source-Revision: cf13e806fe2f4cf5ad5f30efd16d7bd3f501f8b3
Support `var()` in shorthand properties, and fix various bugs.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 1b6d4daf85d672265824a014dba99c94c8c08814
Known issues:
* The caret doesn't show up if there's no text present, because we don't create text runs in that case. This should be a followup.
* Text runs don't support decomposing ligatures into their constituent subglyphs for advance computation, so the caret won't appear inside a ligature. This is a text run bug.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 6cd098da302db85975d0967ddee836f04eae3bd5
Use box tree characters to make DisplayLists easier to scan when
printing them out.
This is what the output looked like before:
```
#### start printing display list.
"####" Stacking context at Rect(800px×608px at (0px,0px)) with overflow Rect(800px×608px at (0px,0px)):
#### SolidColor(0,0,0,0). Rect(800px×608px at (0px,0px))
#### SolidColor(0,0,0,0). Rect(784px×0px at (8px,0px))
#### SolidColor(0,0.5019608,0,1). Rect(100px×100px at (0px,0px))
#### Child layers list length: 1
"########" Stacking context at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
######## SolidColor(1,0,0,1). Rect(100px×100px at (0px,0px))
######## Child layers list length: 1
"############" Stacking context at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
```
This is what it looks like after this patch:
```
┌ DisplayList
│ ├─ Layered StackingContext at Rect(800px×608px at (0px,0px)) with overflow Rect(800px×608px at (0px,0px)):
│ │ ├─ Block Backgrounds and Borders
│ │ │ ├─ SolidColor rgba(0, 0, 0, 0) @ Rect(800px×608px at (0px,0px)) (7f926f46f1f0)
│ │ │ └─ SolidColor rgba(0, 0, 0, 0) @ Rect(784px×0px at (8px,0px)) (7f926f46f2e0)
│ │ ├─ Layered StackingContext at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
│ │ │ ├─ Backgrounds and Borders
│ │ │ │ └─ SolidColor rgba(1, 0, 0, 1) @ Rect(100px×100px at (0px,0px)) (7f926f46f310)
│ │ │ ├─ Layered StackingContext at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
│ │ ├─ Layered StackingContext at Rect(100px×100px at (0px,0px)) with overflow Rect(100px×100px at (0px,0px)):
│ │ │ ├─ Backgrounds and Borders
│ │ │ │ └─ SolidColor rgba(0, 0.5019608, 0, 1) @ Rect(100px×100px at (0px,0px)) (7f926f46f3a0)
```
Source-Repo: https://github.com/servo/servo
Source-Revision: 4e9a888f1ac58866833418ee5e8253358918b741
...by using a 'marker file' to indicate whether we actually need to run pip.
Also a minor tweak for clarity.
Before (consistently):
```
$ time ./mach >/dev/null
real 0m0.666s
user 0m0.477s
sys 0m0.190s
```
After:
```
$ time ./mach >/dev/null # first run
real 0m0.665s
user 0m0.501s
sys 0m0.166s
$ time ./mach >/dev/null
real 0m0.121s
user 0m0.083s
sys 0m0.039s
```
Source-Repo: https://github.com/servo/servo
Source-Revision: b511004a616862394318381d7ef5ac3c59c7babe
Thanks to @Jinwoo-Song for the original commit, which I just rebased and cleaned up. Fixes#6237.
Source-Repo: https://github.com/servo/servo
Source-Revision: 6a12f00d6d392651bae10365b4c806f36d704b21
This can be used by the test framework to ensure that the correct prefs are
set for a test without restarting the browser
Source-Repo: https://github.com/servo/servo
Source-Revision: 67cf241acdeb58d05cf2150224ee7ea9e43f0669
in the end only found this case as re-writable, am i missing some?
Source-Repo: https://github.com/servo/servo
Source-Revision: e3d36bfceb21bc96bb6f791c295a7e18da6e3dc4
From my understanding, setting any of these will not affect any
presentational hints for the elements
Source-Repo: https://github.com/servo/servo
Source-Revision: 6a21bcd9c561d728bab5220bb5b9d5058c34e8c8
Hi guys,
I just gave a big pass of RFC-0344 as per issue #6224 .
Pretty much renamed all the get_* fn that were used to fetch values.
I hope I didn't rename too much.
As said in the issue discussion, I didn't touch at the scripts folder so we keep the unsafe ones pretty explicit.
I've ran the whole pass of test, everything seems to be still working right :).
Please give feedback on this PR.
Thanks for looking into it.
Source-Repo: https://github.com/servo/servo
Source-Revision: b05f4aa3aa3085e65cb75433ae37bf272216d033
Fix#7609, "error: unable to create file tests/ref/hello_a?foo#bar.html (Invalid argument)" during git checkout on Windows.
Behavior change: passing an nonexistent file name on the command line now shows a blank page (like network errors) rather than exit with an error message.
Source-Repo: https://github.com/servo/servo
Source-Revision: 815e981c69f6fe09bcbf3c1937ed817f2cd38813
Makes the Google search result links appear.
Closes#7298.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: c3f9e1813ac93d0e143397ea5df9d4e5bc452d73
Before on at least Linux the following failure is hard to root cause:
[~/servo] ./target/debug/servo -o tmp.png ./tests/html/lipsum.html
thread '<main>' panicked at 'assertion failed: res.is_ok()', .../compositor.rs:1508
thread '<main>' panicked at 'You should have disposed of the
pixmap...', .../rust-layers/.../surface.rs:166
Now:
[~/servo] ./target/debug/servo -o tmp.png ./tests/html/lipsum.html
thread '<main>' panicked at 'Error writing png: Permission
denied (os error 13)', .../compositor.rs:1508
thread '<main>' panicked at 'You should have disposed of the pixmap
properly with destroy()! This pixmap will leak!', .../rust-layers/.../surface.rs:166
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: eb556c1ce6ed52e2a71743a088860ac0e0df3e89
This is the interface where Document.getElementById() belong.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4c64c870c63bc41728ccd371e19fc4246427aa2c
In advance_for_char_range add a fast SIMD code path for the the common
case where there are no detailed glyphs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: c83825938346f794790bcd1343b7375e9e34f443
Add the energy-profiling feature. Users can compile the proper (or their own) version of energymon libraries to capture power/energy data at runtime. The results are accessed through heartbeats.
Additionally, there are a couple of python scripts to enable heartbeats for profiler categories and process the results into some visualizations to help understand how time and energy is being spent in Servo.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7b6c341900a66d1177fdc3f46705e9fb07a5b1dc
In to_nearest_azure_rect when rounding to pixel coordinates, maintain
the invariant of rect non-overlap (if before rounding two rects don't overlap).
The previous code rounded the rect top left corner to the nearest pixel with
the size rounded to the nearest pixel multiple which can violate the
non-overlap condition, e.g.
10px×9.60px at (0px,6.6px) & 10px×9.60px at (0px,16.2px)
would round to
10px×10.0px at (0px,7.0px) & 10px×10.0px at (0px,16.0px), which overlap.
Instead round each corner to the nearest pixel.
For rects that dont need to satify the non-overlap condition and with
width or height between 0.5px and 1px, rounding each rect corner to the
nearest pixel can yield an empty rect e.g.
10px×0.6px at 0px,28.56px -> 10px×0px at 0px,29px.
For this scenario a new function to_nearest_non_empty_azure_rect
rounds the rect top left corner to the nearest pixel and the rect size
to the nearest pixel multiple. It's possible for non-overlapping rects
after this rounding to overlap.
This should fix https://github.com/servo/servo/issues/7184 "rounding ...borders not to be visible", without breaking https://github.com/servo/servo/issues/7152 "Underlines less than 1px high sometimes invisible".
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: f29ddb4b5d5eed595df37fa989511d2cb3aa8dfd
StackingContexts that should be painted on top of StackingContexts that
are already layerized should automatically get their own layer. This
will ensure proper painting order.
Source-Repo: https://github.com/servo/servo
Source-Revision: c0381c732569b9abe6282c6c750533bc271a2019
Currently, ld.gold is always used for linking if found on the
system. There are some cases however when one may want to opt out
from using it. This patch adds the boolean field `rustc-with-gold`
to the `[tools]` section of `.servobuild`, which if set false,
disables the use of ld.gold.
Source-Repo: https://github.com/servo/servo
Source-Revision: 273306056428e0378ebf27a1573a783aad866b5f
The script crate had its own built-in profiling which was basically doing the same thing as the profile crate. This wraps the internal profiling around the main profile functionality. Script-related tasks are now added to the ProfilerCategory enum.
Source-Repo: https://github.com/servo/servo
Source-Revision: ca36779a7e8298918b21ae243a43a71b1520119b
Small cleanup over mutable variables in components/layout/block.rs.
Thanks for looking into it!
Source-Repo: https://github.com/servo/servo
Source-Revision: 282f9ade931342e9cd1ae72fde9dd9f88cb5b34a
Places the search icon in the right place on the Google SERPs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 0bc7ad9b08d3ae978be4a95687025f00cfcff312
Removes the long space before the site-specific drop-down in the Google SERPs.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: aeb8dce2d914808e4cdb8589d19ee9968897ed94
Previously, StackingContexts might have a PaintLayer. We switch the
ownership, for several reasons:
* We want PaintLayers to potentially contain something other
than a StackingContext soon.
* We want to delay the creation of PaintLayers until the last
minute, so that we can synthesize new layers for sandwiched
content.
This commit also implements the second goal. Instead of creating
PaintLayers during layout itself, wait until we are sorting and
layerizing a completed DisplayList.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8e0b010117889550effa3ad793e7ee8f9b692b40
Fixes the location of the gear menu on the Google SERPs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 7df4ff7572bf131aca3643d078dfe7823b3fc347
This allows for situations where there is no reasonable default
to apply for the pref value e.g. when we are just listing values
Source-Repo: https://github.com/servo/servo
Source-Revision: 9d4217990060b3d2c93a4b39fe391985f01a5979
Elided almost all the lifetimes and removed needless returns. Mostly done by sed + manual fixes.
r? @nox
Source-Repo: https://github.com/servo/servo
Source-Revision: c2c2646d37614ece5869af861993c3d619f6e003
By https://github.com/whatwg/html/pull/97, the returned type of`requestAnimationFrame()` and the argument type of `cancelAnimationFrame()` are changed to `unsigned long` WebIDL type.
Source-Repo: https://github.com/servo/servo
Source-Revision: 43e7cd5faed53802a9c2ffcac2c171f29f460cff
* The code that attempted to strip out borders that span multiple
fragments in the same element could go wrong if fragments were
stripped out due to text clumping or whitespace stripping. This patch
rewrites that code to maintain flags in the inline fragment context
specifying whether the node is the beginning or end of the element.
Not only is this easier to maintain, it's closer in spirit to what roc
originally suggested two years ago: it's isomorphic to "begin element,
end element" markers for inline layout.
* Padding and margins for spans containing inline-blocks are now
properly handled via a division of labor between the `InlineBlock`
fragment and the `BlockFlow` that represents the inline-block.
* Unscanned text fragments may not be joined together into a text run if
borders, padding, or margins separate them.
Because Servo now matches the rendering of Gecko and WebKit on the
`input_button_margins_a` reftest, I had to modify it to add some
vertical alignment.
The combined effect of all of these fixes places "Advertising" on the
right place on google.com.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 8bbace7815b489e1b87df2ec496e65e78721d929
Mesa software rendering on Ubuntu 14.04 only claims to support OpenGL 2.1,
so servo crashes on startup. It seems to work fine if an OpenGL 2.1 context
is requested.
Source-Repo: https://github.com/servo/servo
Source-Revision: 625b4938efbaf45cb4a9802796bd3e29bb9be376
(except for properties.rs)
I might add more fixes to this PR later.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: d01ab617341891bf0c91f1fba0ebcf13df9150a6
After this pull request merged:
https://github.com/servo/servo/pull/7209
the 'script' component would never enter a 'built' state. In other
words, if one calls `mach build`, lets it complete, then calls `mach
build` again, the 'script' component would rebuild even though we
supposedly just built it. This was due to the `ParserResults.pkl`
getting placed in the `components/script` directory instead of the
output directory, causing cargo to think that there were unbuilt files.
Source-Repo: https://github.com/servo/servo
Source-Revision: ded6159d48901fc814d4b4395102fdbe0d9e5817
This is #7185 with one commit added to make it build merged with master, which got support for the `ch` unit in the meantime.
Source-Repo: https://github.com/servo/servo
Source-Revision: a547ae6826cf171c42b090408a4c20d58d1829d9
Update README with note about possible problem installing dependencies on Ubuntu 14.04.
See #6158 for details.
Source-Repo: https://github.com/servo/servo
Source-Revision: dbf549ea32d23cf96b7f49e3333c068aaf050bc3
This should fix a bug where hidden iframes are not properly clipped
away from the compositor scene. This commit adds a test for this
behavior.
Fixes#6849.
Source-Repo: https://github.com/servo/servo
Source-Revision: ba2cb77c26006dc378553d757e88de8ab86c4d5b
Title sums it up. Time function in the time module of profile crate was unused.
Unless we plan to use it soon, we should clean it up
See issue #7501 related to it.
Thanks.
Source-Repo: https://github.com/servo/servo
Source-Revision: a58f71c38eb64a723cfa6f69c75c03e0d46c805e
Improves the position of the down arrows on google.com SERPs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: e46499a5dfd9189fc439c228d9a5fe23dfec0d7d
Prior to this commit, the script codegen makefile relied on an
intermediary pythonpath.py file that handled python dependencies and
incorporated a couple hacks to get the codegen building working. This
commit removes that intermediary file and attempts to make the script
codegen build process cleaner.
Source-Repo: https://github.com/servo/servo
Source-Revision: 493da96cae7cc0e3b533fc1f01cc0c5e38a27e02
This necessitated changing overflow to be calculated by the parent flow
if relatively positioned children are present. That is because the
overflow regions cannot be calculated without knowing relative offsets,
which themselves cannot be calculated without knowing the parent size
(because of percentages). To accomplish this without sacrificing
parallelism in the non-relative case, this patch splits overflow into
"early" and "late" computation. Late overflow computation cannot be
parallelized across children, while early overflow computation can.
Makes the "Apple Music" text show up over the full-bleed promotional
background on apple.com.
r? @SimonSapin -- would appreciate a look over the iframe test case that was changed.
Source-Repo: https://github.com/servo/servo
Source-Revision: dcaf66397a06246b9b4fdca3a10af1508a11f1e8
Hi,
This patch is an attempt to fix https://github.com/servo/servo/issues/7393, where the code detecting mislabeled feeds (see https://mimesniff.spec.whatwg.org/#sniffing-a-mislabeled-feed) had spurious space in the URLs we need to match.
Note that my testing (in particular rdf_rss_ko_2.xml) highlighted a flaw in "matches", that failed to check that there were more bytes in the string being checked than in the string we're checking against, which completely broke the whole step 5.2.7.
Thanks in advance for your review.
Cheers,
Simon
Source-Repo: https://github.com/servo/servo
Source-Revision: 9f85370885c84ebb58cd7f4a72a6e78948f468dc
In textinput test if the cursor is at the correct position when clearing a selection by press an arrow key.
edit_point is always at the end of the selection, should I test when it's at the beginning ?
Source-Repo: https://github.com/servo/servo
Source-Revision: 4404809e6d591ca7903e43deb693745300560d13
The fixed version is shorter, and doesn't use unstable features.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7e8b8293b051ba787e7717b6bf42655f4ee26f1a
This helps out on using the Servo API from a Rust project.
Right now I have to explicitly declare all the crates contained in `components` to use them.
Unsure about re-exporting `euclid`, `url` and `layers`, but they are required to use the API and it helps out avoiding version-collisions if you happen to use the wrong version in your own project.
Source-Repo: https://github.com/servo/servo
Source-Revision: a4d5c8ce4ade329ec61b4d211c5bc7499d1df095
When the border-top/right/bottom/left-widths are not equal, the angle on the border corner arc separating the borders isn't PI/4.
For instance if the top border width is much larger than the left border width then most of the border corner should be drawn using the top border color.
This change adds support for calculating the correct angle in the border
corner arc for switching from one border to another e.g. the left border
to the top border.
It supports elliptical border radii for when elliptical border radii are
added.
A ref test is also included.
r? @Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: afc2c381db9c85eba3c10e87966351f77678dc6e
*The goal of this PR is to get early feedback on this before I go too far down the rabbit hole. This new code path is working, and there's several tests I've written as a proof of concept. There are still some regressions that I'll be fixing in the coming days.*
I've abstracted out the request/response cycle so that it's no longer dependent on the Hyper request/response structs. Since request/response @ hyper are structs, not traits, it made mocking them for tests impossible.
Current issues/concerns:
* This relies on boxing the `HttpResponse` that gets returned from the `HttpRequester` because `HttpResponse` is unsized. I don't know if there's a more idiomatic rust-y way of doing this?
* This relies on boxing the `Read` that is now returned from `load` for the same reason.
* The devtools and resource manager channels are still passed into `load`. It might be easier to inject these as trait dependencies instead of chans as well?
* Needs more tests.
🎩#6727
Source-Repo: https://github.com/servo/servo
Source-Revision: 7dda183022f9bee8b4bdffe8b4cf31e09b885d94
Rewrite few parts of the file to use more iterators.
Note that I have **no idea** what the code is actually doing functionally, I just tried to mimic exactly what was being done. All tests are ok
Source-Repo: https://github.com/servo/servo
Source-Revision: 9708c63b9c7ae03d65c7add358a98f7213322a3d
Prior to #7416 and #7401, many of these `impl` sections were not
identical
Source-Repo: https://github.com/servo/servo
Source-Revision: 2f227a034a12158e2592b645c061d92c87c8eba6
It’s deprecated in the #6850 rustup.
The first commit changes some behavior which was previously incorrect: the spec says indices in DOM strings are UTF-16 code units, not `char` code points.
The second commit should not change behavior, unless I made a mistake.
r? @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 2ca48ca4047e83e69abf1fad6978de46ef11c3a7
I fear the category names are unimaginative; in some cases they may even be misleading or downright incorrect. Requests to rename categories as well as any other feedback are highly appreciated.
Source-Repo: https://github.com/servo/servo
Source-Revision: 6431e8da43817e8a6b1e4757afbcf45c1a629707
Solves Issue #6670.
Now `./mach grep` will not grep from minified js files or from `tests/jquery` directory.
Works only with git >= 1.9.0.
Source-Repo: https://github.com/servo/servo
Source-Revision: ae55b31a7f99633d0fad0cb78cb2043ae18ae437
Now that `JSRef<T>` is gone, there is no need to have helper traits.
Source-Repo: https://github.com/servo/servo
Source-Revision: 909429702972d53bf02dfe9a4aa93ea0cb588cf4
This patch is in preparation for more dynamic layerization of the
pieces of display lists. It also prevents having to sort the children
by z-index multiple times.
Source-Repo: https://github.com/servo/servo
Source-Revision: fa5ad1c6b4faa2c43ff79e77962b94034a4f2bd0
The vector is filled in and immediately emptied again. It is clearer to
keep the vector in the caller instead.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0e78815242440dee9bcf84e60c0a1d1fb68d67ad
Fixes for Issue #7347, though I wasn't sure how to test my code afterwards.
Source-Repo: https://github.com/servo/servo
Source-Revision: 78d72f6a9bfa6c2f4828a6e8c83265526b666f1a
Fixes placement of the header on espn.go.com.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: a1cd27e6a3b961129fd4710513cc29e4f7c9cc67
Since it probably won't merge until multiprocess lands, I plan to use this PR to keep improving WebGL support until it can land.
Main TODOs are integration of tests, since it seems https://github.com/KhronosGroup/WebGL/issues/1105 is going nowhere, adding missing calls and proper painting via native surfaces instead of readback.
I can't resolve conflicts right now because of time but I will do it soon.
Source-Repo: https://github.com/servo/servo
Source-Revision: a109a333f1f95d4fc677b29e3613b2615514c080
In #7348 `os.walk` was replaced with `os.listdir`. The latter is not
recursive, which results in only the root directory files getting linted
The changes to `ignored_files` are needed because calling `os.walk(".")`
results in `./` getting prefixed before each path
Source-Repo: https://github.com/servo/servo
Source-Revision: 842112c0f39542a4fb120ade4afad302221609d8
Refs: https://github.com/servo/servo/issues/7078
Sample output:
```
$ time ./mach test-tidy
tests/ref/background_image_a.html not used or commented out in basic.list
tests/ref/background_image_ref.html not used or commented out in basic.list
tests/ref/canvas_linear_gradient_a.html not used or commented out in basic.list
tests/ref/canvas_linear_gradient_ref.html not used or commented out in basic.list
tests/ref/canvas_radial_gradient_a.html not used or commented out in basic.list
tests/ref/canvas_radial_gradient_ref.html not used or commented out in basic.list
tests/ref/inline_border_a.html not used or commented out in basic.list
tests/ref/inline_border_b.html not used or commented out in basic.list
tests/ref/inline_text_align_a.html not used or commented out in basic.list
tests/ref/inline_text_align_b.html not used or commented out in basic.list
tests/ref/link_style_dynamic_addition.html not used or commented out in basic.list
tests/ref/link_style_dynamic_addition_ref.html not used or commented out in basic.list
tests/ref/overflow_position_abs_inside_normal_a.html not used or commented out in basic.list
tests/ref/overflow_position_abs_inside_normal_b.html not used or commented out in basic.list
tests/ref/overflow_position_abs_simple_a.html not used or commented out in basic.list
tests/ref/overflow_position_abs_simple_b.html not used or commented out in basic.list
tests/ref/position_fixed_a.html not used or commented out in basic.list
tests/ref/position_fixed_b.html not used or commented out in basic.list
tests/ref/position_fixed_simple_a.html not used or commented out in basic.list
tests/ref/position_fixed_simple_b.html not used or commented out in basic.list
tests/ref/position_fixed_static_y_a.html not used or commented out in basic.list
tests/ref/position_fixed_static_y_b.html not used or commented out in basic.list
tests/ref/style_is_in_doc.html not used or commented out in basic.list
tests/ref/style_is_in_doc_ref.html not used or commented out in basic.list
tests/ref/table_specified_width_a.html not used or commented out in basic.list
tests/ref/table_specified_width_ref.html not used or commented out in basic.list
tests/ref/text_decoration_propagation_a.html not used or commented out in basic.list
tests/ref/text_decoration_propagation_b.html not used or commented out in basic.list
tests/ref/text_shadow_multiple_shadows_a.html not used or commented out in basic.list
tests/ref/text_shadow_multiple_shadows_ref.html not used or commented out in basic.list
tests/ref/viewport_percentage_vmin_vmax_b.html not used or commented out in basic.list
tests/ref/viewport_percentage_vw_vh_b.html not used or commented out in basic.list
tests/ref/white_space_intrinsic_sizes_a.html not used or commented out in basic.list
tests/ref/white_space_intrinsic_sizes_ref.html not used or commented out in basic.list
tests/ref/fonts/takao-p-gothic/COPYING.html not used or commented out in basic.list
tests/ref/iframe/multiple_external_child.html not used or commented out in basic.list
...
```
I thought it might be helpful to say which files aren't used in `basic.list`.
`./mach test-tidy` is a second or two slower on my laptop.
Not sure if this counts as a warning or an error that should return 1.
Not sure whether unused file output should go before or after the line specific errors.
Source-Repo: https://github.com/servo/servo
Source-Revision: b1f0357fcee0b05bee79399bc96ea327b8b8dac8
Updated -sys packages to build from a local copy of the native library source rather than using git submodules.
Source-Repo: https://github.com/servo/servo
Source-Revision: abb57c357997cfdfe7349cdb8efb682e9487170a
This is #7258 with a spec link added in doc-comment.
The pseudo-class is never matched, but this can still help with stylesheets like `a:hover, a:active { color: something }` where failing to parse one pseudo-class makes the entire selector list invalid.
I filed #7333 about actually making it match.
Source-Repo: https://github.com/servo/servo
Source-Revision: fa06a96f8a880a051ad4cad2489042547dd7f455
As detailed in the explanation of `support/time`, it should be temporarily. In this case the documentation lags behind the reality. `support/time` was removed in commit e2912a855275bb468f71212b3da15f64237332de so it seems appropriate to remove it from `ORGANIZATION.md` as well.
Source-Repo: https://github.com/servo/servo
Source-Revision: 46069561208f96e7be1fc55c4256863b853c843b
This is my first patch, I hope I'm doing it right.
About the test, do you think this is enough and reliable?
Source-Repo: https://github.com/servo/servo
Source-Revision: 6e06cae44a151e252e9df5368c2a9e770fb4d3d5
This PR adds Heartbeats capability to servo. Heartbeats are used for detailed performance and power/energy profiling. We will add the power/energy readings in the future.
New dependencies are introduced which need in-depth reviews. I'm the only one who has had eyes on any of this, and I have limited resources for testing cross-platform compatibility.
* https://github.com/libheartbeats/heartbeats-simple - provides native C libraries from a shared code base:
* hbs[-static] - performance monitoring
* hbs-acc[-static] - performance with accuracy monitoring
* hbs-pow[-static] - performance with power/energy monitoring (the one we're using)
* hbs-acc-pow[-static] - performance with accuracy and power/energy monitoring
* https://github.com/connorimes/heartbeats-simple-sys provides rust wrappers for the native C libraries above - one crate for each + a common crate. These link with the *-static versions of the heartbeats libraries.
* https://github.com/connorimes/heartbeats-simple-rust provides rust abstractions over the -sys crates above - one crate for each.
The new `heartbeats` module in the `profile` crate looks for environment variables telling it to use heartbeats for each ProfilerCategory and where to put log files. (Of course, if somebody knows how to iterate over the enum instead of hardcoding each one, that would be fantastic.) If the environment variables aren't set for particular categories, heartbeats aren't created or used.
An interface change is made in the `profile_traits` crate to pass both the start and end time in a `ProfilerMsg` instead of just the elapsed time. Later we will add energy readings as well.
Source-Repo: https://github.com/servo/servo
Source-Revision: d89e4f7991a4e43f16ea57587004e3616addcc09
…so that it can be activated when we're forcing
the creation of extra layers due to positioned descendants that
themselves have layers.
The newly failing tests were tests that accidentally passed due to
incorrect stacking order.
Closes#7281.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 7945c174a6f90f3809a6d60f392a94e0ce10f021
Improves imgur.com and Fast Company articles.
This change made `min-height-106.htm.ini` fail because the thing it was testing
for never worked: we were relying on the incorrect stacking order of `position:
relative` to get the green square to show up.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 23657484adcbd93ee4fc5b274e2b5500a09107a6
* Don't display unselected `<option>` elements inside `<select>`
dropdowns.
* Use CSS triangles to give `<select>` dropdowns a down arrow in order
to make them look as intended.
* Use borders instead of `( )` and `[ ]` for radio buttons and check
boxes, respectively.
Improves facebook.com and IMDB.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: d78527feb626b72427392fac0f54d8669bc6e00f
I was going over the `ORGANIZATION.md` to learn about the servo project and I found myself looking up the directories that are mentioned. In order to facilitate this mode of exploration, I linked the various components to their corresponding directories.
Source-Repo: https://github.com/servo/servo
Source-Revision: d48f6ffbad181bbb778fab57e9229914121b3adb
This is #7154 with two additional commits (that I did rather than ask @zentner-kyle to do it because it was a bit tricky.)
r? @pcwalton for the last two commit
r=me+pcwalton in #7154 for earlier commits.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5e83a3f0a3bab226cca849ab33fa3322ef71813d
In some of these cases, files were not being closed
Source-Repo: https://github.com/servo/servo
Source-Revision: 3a48e04caffa4ba25854a4190883d1985845a359
Using this directive could cause rooting errors to be silently ignored,
so we should avoid it as much as possible
Source-Repo: https://github.com/servo/servo
Source-Revision: c84b25cc992dfc2d3b1c182d71c55159fefc4dce
Generates `SupportedPropertyNames` on DOM structs that should implement
it. Most of them are unimplemented now (which can be implemented in
later PRs), with the exception of `HTMLCollection`. Also added a couple
relevant WPT tests.
Closes#6390Closes#2215
Source-Repo: https://github.com/servo/servo
Source-Revision: d2a8c278eaa159ceacffee767523d4ad0cf83da2
(for #6924) - I took this because the confusion was actually caused by me while working on #6829
Source-Repo: https://github.com/servo/servo
Source-Revision: 0466766b2c946a781d917b3dac8f87714719369c
First PR, please tell me if anything is wrong/could use improvement.
Fixes#7194.
Source-Repo: https://github.com/servo/servo
Source-Revision: c98c1651a329d152b436d017e15546f9b922fe93
Usually, Web developers set this property on block formatting contexts
in order to avoid running into floats, and we can use this as a
speculation hint.
Fixes the width of the search box on the Google SERPs.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 19d466b06250f10169e88fc7f0b447c7f2f8209e
The integration is off by default for now. You can try it out with `./mach build --features "script/plugins/clippy"`.
We're using a branch of clippy with some of the lints changed to Allow, either because they don't apply to us, or because they're noisy and dwarf other warnings (but still should be fixed)
After going through the rest of Servo's warnings I'll figure out which lints we should be keeping.
There's a cargo bug with optional deps that makes it hard for this to work with Cargo.lock -- so this PR contains no changes to lockfiles (and running the build with clippy on may dirty the lockfile, though it gets fixed later)
Source-Repo: https://github.com/servo/servo
Source-Revision: 50e1c967e4299c1515575f73d407f5f6b977d818
There is no need to compute next_collapsed_borders_in_block_direction for all kind of flows when it's used only in the table row case. That also avoids a panic when the next child is a table colgroup (this should not happen when iterating over a table row).
Source-Repo: https://github.com/servo/servo
Source-Revision: 3d0951cf256ec07b427eaa2305b85da7a7645359
and `for foo in bar.iter_mut(), and for foo in bar.into_iter()
(continuation of #7197)
Source-Repo: https://github.com/servo/servo
Source-Revision: 0d6d6a05009606dfbbfc9765d7dc2c745c18f6a5
It's not ideal, but it was easy to implement and will do for now.
Closes#7157.
r? @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: f4b526cfb4ea1ef263ff029650c74ff50a74d5db
Several issues are addressed in this commit:
* Inline flows now bubble up their absolute descendants instead of
making the inline flow the containing block for them. (In the future,
we will need to make the inline flow *sometimes* be the containing
block for them, but for now it improves sites to unconditionally
bubble up.)
* Fragments now look at their inline fragment context to determine
whether they are positioned.
* Inline flows now push the stacking-relative position of the absolute
containing block down to their inline-block fragments.
* Inline absolute hypothetical fragments can be containing blocks.
* Fixes the logic in
`containing_block_range_for_flow_surrounding_fragment_at_index`. The
condition to determine whether fragments are positioned was inverted!
* `Descendants`/`AbsDescendants` has been refactored in order to become
more friendly to inline absolute containing blocks in the future.
Improves the inline position of the green drop-down arrow in the Google
SERPs. (The block position is still wrong.)
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: d654841288ad6c7d4f8d7da3c68d04ef7df2c241
These are caused by page_root being empty.
@jdm, I think it was #6874 that introduced these. I'm seeing them all the time when starting Servo on Reddit with memory profiling enabled. With this patch applied they go away.
Source-Repo: https://github.com/servo/servo
Source-Revision: 72fa45155b93a9763967cf215e3a9e60e3883cd9
Expands on the work by @wilmoz and cleans up the existing errors. Closes#7180. Closes#7111.
Source-Repo: https://github.com/servo/servo
Source-Revision: e74825f9fde8e222f4ba9bb24b2c2a3864c73e5f
This shaves 50 seconds off the build time on my machine.
Source-Repo: https://github.com/servo/servo
Source-Revision: a1aed50b5a2686015bc3a17ec891a56eef8c1fc9
Thanks to @michaelwu for pointing out a copy-paste error.
Source-Repo: https://github.com/servo/servo
Source-Revision: 31413f4313fb96f9d17e54157d404c7633e59fc2
This is necessary for the devtools "Start Recording Performance" button to
send a message.
(This message is not yet supported, so it leads to
'unexpected message type "startRecording" found for actor "performance4"'.)
Source-Repo: https://github.com/servo/servo
Source-Revision: 0080d0de0e0ae95f2d98d81bef9f02ff995e5dd3
... for #3734, which is also one of the oldest issues. (/cc @jdm)
Source-Repo: https://github.com/servo/servo
Source-Revision: 6a52ec94840fbaf43a29d76879e2b59542a9963d
Still needs snapshot.
Snapshot probably could also work as today's nightly (I wasn't able to download the latest one due to choppy internet), there isn't any plugins churn I know of
r? @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 13e7de482c0f58ca5af30dbca5d94e6b9cedd1cd
To handle potential overflow because mallinfo() is ancient.
Source-Repo: https://github.com/servo/servo
Source-Revision: 38c5fb80d3c6c0e08732f5bdb3f0e9f9bf192def
… character boundary" when printing display list.
This whole piece of code seems a bit fragile, but it fixes the immediate problem for now.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7a9458e530a3bd7a679cb21dec8586710cf4a416
Refs: https://github.com/servo/servo/issues/7142
Ran some basic functional tests:
```
$ ./mach run -d -Z bubble-widths,disable-canvas-aa,trace-layout tests/ref/blur_ref.html
$ ./mach run -d -Z help
Usage: /Users/greg/servo/target/debug/servo debug option,[options,...]
where options include
Options:
bubble-widths Bubble intrinsic widths separately like other engines.
disable-text-aa Disable antialiasing of rendered text.
disable-canvas-aa Disable antialiasing on the HTML canvas element.
dump-flow-tree Print the flow tree after each layout.
dump-display-list Print the display list after each layout.
dump-display-list-json Print the display list in JSON form.
dump-display-list-optimized Print optimized display list (at paint time).
relayout-event Print notifications when there is a relayout.
profile-tasks Instrument each task, writing the output to a file.
show-compositor-borders Paint borders along layer and tile boundaries.
show-fragment-borders Paint borders along fragment boundaries.
show-parallel-paint Overlay tiles with colors showing which thread painted them.
show-parallel-layout Mark which thread laid each flow out with colors.
paint-flashing Overlay repainted areas with a random color.
trace-layout Write layout trace to an external file for debugging.
validate-display-list-geometry Display an error when display list geometry escapes overflow region.
disable-share-style-cache Disable the style sharing cache.
parallel-display-list-building Build display lists in parallel.
replace-surrogates Replace unpaires surrogates in DOM strings with U+FFFD. See https://github.com/servo/servo/issues/6564
gc-profile Log GC passes and their durations.
$ ./mach run -d -Z blah
error: unrecognized debug option: blah
Servo exited with return value 1
```
Didn't check that setting debug flags actually did anything.
Haven't written much Rust so this feels more verbose than necessary.
Added `disable-canvas-aa` to debug options help.
Should DebugOptions struct derive Clone like Opts does?
Source-Repo: https://github.com/servo/servo
Source-Revision: f5e97ef1b54b7f85d9c5a55712e802dd70a89f8e
`CGAbstractMethod` takes a couple boolean parameters, among others:
* `extern`: will mark the method as `unsafe` and `extern`
* `unsafe`: will wrap the method body in an `unsafe` block
Passing both as `True` should not mark it as `unsafe` twice.
Example from a generated `HTMLCollectionBinding.rs`:
Before:
```
unsafe extern fn get_length(..) -> u8 {
unsafe {
// code here
}
}
```
After
```
unsafe extern fn get_length(..) -> u8 {
// code here
}
```
Source-Repo: https://github.com/servo/servo
Source-Revision: 289decb064b44937f570fdc299de9af961296dd6
This is sufficient to make the profiler tab show up in Firefox's devtools.
Source-Repo: https://github.com/servo/servo
Source-Revision: 07716780fc805aea63285337ee15e9e56acb47c7
Also adds HeapSizeOf implementations/derive for some types. I've used "Cannot calculate Heap size" as a reason everywhere, because my imagination is rather limited. If you'd like me to change this message for specific types, please write something like this: "Trusted - Cannot calculate Heap size for Trusted" so that it would be easier for me to replace them through a script :)
Source-Repo: https://github.com/servo/servo
Source-Revision: a03616f379c255cc6c9b6e1d04dd7d98bd9926ce