`JS<T>` belongs on the heap, and only on the heap. This is a collection of fixes so that code uses either `Root<T>` or `&T` to pass around garbage-collected pointers.
Ideally, we could completely ban constructing a `JS<T>` outside of constructor functions, but we aren't quite there yet.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7c7dbde0f4372037aac3635b8d81531ca9cdced3
Flags links to the single-page WHATWG specification and suggests the URL
for the multi page one.
Fixes#7998
Source-Repo: https://github.com/servo/servo
Source-Revision: 36998cd5b1ab8da63b6ec82c7d45b5dc08b5d42a
It holds a function pointer to the HeapSizeOf::heap_size_of_children()
implementation corresponding to that IDL interface.
This removes the need for a clumsly TypeId-based match expression in the
former heap_size_of_eventtarget() function.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5a0a91eba794af027723051c7f039cb22088aa65
…g of an image.
A `url` can be very large, in particular if it is a data: url, so using it as a key for lookups whenever we load a few bytes is not a very good idea. This patch introduces an intermediate `LoadKey` (internally, an u64) that makes hashmap lookups faster. Somewhere along the way, we also get rid of a few calls to `url.clone()`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4f767430a4460760fb1307fa577048308f3a7610
Includes build script updates to support Rust linking to static libs on ARM systems as well as some changes to ODROID Smart Power and RAPL energymon implementations.
Source-Repo: https://github.com/servo/servo
Source-Revision: 35d1b13b724a751dbbc795e8b25570306c019f06
Still need to finish the rust-mozjs update and make cargo use it, but it's close enough that I don't expect much to change on the servo side.
Some changes here
- bools are properly translated now
- char16_t is handled as u16 now
- JS_GlobalObjectTraceHook isn't mangled now
- JSJitInfo has been adjusted
- A const fn is used to generate bitfields in JSJitInfo
- Manually generating handles now requires calling an unsafe function. It's not actually required, but it's too much of a hassle to generate them manually now due to bindgen++ adding base classes now.
Source-Repo: https://github.com/servo/servo
Source-Revision: b34fd5bd7e55be1d577df5cf70b41af8a6cc716b
This frees us forever from caring about maintaining these enums. The last commit removes their use from the initialisation of interface objects derived from Node.
Source-Repo: https://github.com/servo/servo
Source-Revision: 32daa17d5cbcad02db0713e21e52410cdc60480e
This allows me to do stuff like this.
![this](https://cloud.githubusercontent.com/assets/40204/9701150/58d593ae-541d-11e5-9f57-8d379f5c9ceb.png)
Those are two compositors rendered on the same OpenGL context, I need this so I can split windows and render them without getting mad with textures and framebuffers, it will also allow me to render the proper parts of the chrome as different web pages without involving dozens of framebuffers and textures.
If I recall correctly I did talk to @glennw about this on IRC some time ago.
This pull request requires https://github.com/servo/gleam/pull/39 to be merged first tho.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8db8a86ab1e943b5102a05d6d31800579fdb7875
@jdm Hi, very eager for my first pull request to Servo. Please review the changes.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8dff3be956e7c4d8bc129491e1dfb5295c0027f1
Implement deleteRow and insertRow for <table> element
Continued from #6936
Source-Repo: https://github.com/servo/servo
Source-Revision: 292dbfe809ddf048065f790071ea2022406536d7
I wasn't aware one could specify options like `sudo` and `services` on a per build-environment basis. Since the container-based builds are faster than normal builds, we should utilize it for test-tidy
Source-Repo: https://github.com/servo/servo
Source-Revision: 9c1cb9f61e3d7a34fa49355d28d9edc236c0690f
I have a feeling that converting `Option<&T>` to `*const libc::c_void` could be less explicit.
Was there any way to do it shorter?
Source-Repo: https://github.com/servo/servo
Source-Revision: 9cccd98254191b1663dcaee9010eee63fa8074a3
We don't need regex matching since ": &Vec<" doesn't
contain any special character.
New code reads better.
Fixes#7914.
Source-Repo: https://github.com/servo/servo
Source-Revision: 1192efed505ca19a395f22cd5e5733e8c57a6e82
Layers that are composed of several stacking contexts that need to be
rendered on top of other layered content need synthesized layers.
Previously, these layers were placed into a stacking context that was
the same size as their parent. This patch creates a new type of
PaintLayer which simply holds a display list. The layer is sized to the
bounds of the DisplayList and its children are positioned relative to
the parent stacking context.
This will also be useful in the future, when items outside of
StackingContexts are given their own layer for render order purposes.
Source-Repo: https://github.com/servo/servo
Source-Revision: 6d52bdf4ffd5479780df4a3fb0ff07bd7378720e
The script crate currently has a build script, and Cargo will consider all files
in the script crate as inputs to the build script as it otherwise doesn't know
[what the input files are][cargo-1162]. This means that if any file in the
source tree of the script crate changes (or is created) then Cargo will think it
needs to re-run the build script and rebuild the crate.
[cargo-1162]: https://github.com/rust-lang/cargo/issues/1162
The build script of the script crate is invoking python, and consequently Python
is generating some bytecode files in the source tree. On the second build of
Servo, Cargo will see these new files, think that something has changed, and
will re-run the build script of the script crate.
This change passes the `-B` flag to python to avoid generating these bytecode
files, which should avoid tampering with the source tree and appease Cargo by
ensuring that it doesn't get rebuilt.
---
As a helpful tip to if this comes up again, this was discovered by using the
changes in rust-lang/cargo@c447e9d plus the change in rust-lang/cargo#2044. Once
`RUST_LOG` was set to `cargo::ops::cargo_rustc::fingerprint=info`, the second
run of `./mach build` printed out:
```
precalculated components have changed:
1444364448.000000000s (/build/servo/components/script/dom/bindings/codegen/parser/WebIDL.pyc) !=
1444364235.000000000s (/build/servo/components/script/document_loader.rs)
```
Which should help easily diagnose these kinds of problems in the future!
Source-Repo: https://github.com/servo/servo
Source-Revision: bc5444067f7614ab7e3c83d8e131800d0db817b2
This should fix#7858. An empty `USVString` is now used when `data` is `None`.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8c81d9ab28132cff1d792b5c99e98bea6f7870bd
Refactor .get().map(Root::from_rooted)
and .get().map(|foo| foo.root())
to .get_rooted() on MutNullableHeap objects.
First part done mechanically with the following comand:
sed -i s/"get().map(Root::from_rooted)"/"get_rooted()"/g *.rs
Second part done manually after finding them with
git grep ".get().map("
Fixes#7929.
Source-Repo: https://github.com/servo/servo
Source-Revision: 96356a4b339af07831dec79e0084079328b43b53
This adds -servo-left and -servo-right to complement -servo-center.
~~This intentionally doesn't try to address issue #7301.~~ Commit added to address #7301.
Source-Repo: https://github.com/servo/servo
Source-Revision: ab42ca42967354cba08d1dca83aa99a637bd7a6b
I accidentally omitted this when I added the dump-layer-tree option
initially.
Fixes#7926.
Source-Repo: https://github.com/servo/servo
Source-Revision: a8ad990c6d619bc199ee25edd5bfd12e9846eb33
When reference tests crash it is difficult to debug the issue, because
the stacktrace and any other output is discarded by the test harness.
Instead of discarding it, write the output to text files in the test
results directory which will make it easier to debug crashing tests.
Source-Repo: https://github.com/servo/servo
Source-Revision: d15ea83938059a5ba754796545834930a9c0df1a
Unify all compositor shutdown code paths into two methods, one which
starts the shutdown and the other that finishes it. This simplifies the
way the compositor shuts down and prevents "leaking" pixmaps when
exiting in uncommon ways.
Source-Repo: https://github.com/servo/servo
Source-Revision: 26dd1233103eb75c2e94fcc2ba34c18fa4432afc
This makes use of the new functionality that allows iframes to generate their own pipeline IDs in order to remove any knowledge of subpage ids from the compositor.
(This is the first of several commits removing subpage from parts of servo).
Source-Repo: https://github.com/servo/servo
Source-Revision: 1d617f332edd0036ca4cbc3890f1f44f57597906
The structure of this function was confusing, so move some parts out into the
caller where they seem like a more natural fit and add documentation of the
functions
Source-Repo: https://github.com/servo/servo
Source-Revision: e7f73fdfd822fc2f0d3c239a428c739232bdfd12
The previous code would skip calling clear_all_tiles(), which led to a
panic in rust-layers. ("You should have disposed of the pixmap properly
with destroy()! This pixmap will leak!")
Ran into this messing around with pdf.js; no minimized testcase.
Maybe related to #7895.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 217c7da41304142ffaf7c02a3eb888b0f150c59d
Factor out FormDatum collection for `<input>`
Improve early return logic for getting the FormDatum from an `<input>`
Condense element type patterns
Proposed to close#7851
Source-Repo: https://github.com/servo/servo
Source-Revision: 94dc98717b79c12cdac6b1eba72227199850ac31
Previously, the IDL attribute would incorrectly set the `size` attribute
for `<font>` elements as `AttrValue::String`. Now it correctly sets it
as `AttrValue::Length`. Also included is a regression test.
Source-Repo: https://github.com/servo/servo
Source-Revision: 60a77defe5f3ed9420b818db1875bc726b6b6a4c
get_size method appeared to be never used so I removed it.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a12c2c06199bc0a11982949b0cb43ee8500c001
Only supported in WebRender (with my upcoming PR) for now.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 5eb1c04e7854d932c0d63f9e5ed4d54ee43deb9b
This fixes an issue whereby normal text would intermittently be rendered as
small-caps and vice versa.
Source-Repo: https://github.com/servo/servo
Source-Revision: c0b397db77b87f02d1742efd71f526ba6e89197b
This documents their intended usage and prevents script callers from using
them.
Source-Repo: https://github.com/servo/servo
Source-Revision: 50db64a20ec8a5dac6e98c4ab654ab0ceb5f8e82
This doesn't change any functionality, but it's the first step towards removing SubpageId.
Adding this change now will allow us to gradually change over code referencing subpage id rather than in one massive PR.
Introduces a namespace for pipeline ID generation - there is a namespace for the constellation thread, and one per script thread.
Source-Repo: https://github.com/servo/servo
Source-Revision: 098bdb5f22500a6e856b085a1140090f63ef8645
StackingContexts are added to layers when it is necessary to maintain
their ordering on top of other layered StackingContexts. Instead of
tracking the information about a layer scattered around into different
structs, combine it all into LayerInfo. LayerInfo will be used in the
future to hold layer information for DisplayItems that are layerized
independently of StackingContexts.
Source-Repo: https://github.com/servo/servo
Source-Revision: 27d468b6674b81c396aa0a13d8fe9eb410c12d6e
The data field is currently not used (no reads/ writes). This commit
removes this temp. field.
Ref.-Issue: #7859
Source-Repo: https://github.com/servo/servo
Source-Revision: 94816bb3b42e50127db56e64086843b14614ca88
This picks up a fix for a warning that will become an error in the future.
Source-Repo: https://github.com/servo/servo
Source-Revision: c775068be477a2ee58ac61b5e405f0b9089c5f74
This is part of a long-term plan to ensure layout never has access to
unwrapped pointers to DOM objects. The remaining methods on the
RawLayoutElementHelpers trait are harder to move, because of the lifetimes in
their signatures.
Source-Repo: https://github.com/servo/servo
Source-Revision: a350b215cc3e943985a66f1485c7eac7f4b9832e
Interfaces with no descendant need neither a Base trait nor upcast functions, and interfaces with no ancestors neither a Derived trait nor downcast functions.
Source-Repo: https://github.com/servo/servo
Source-Revision: 243647d15a48b2b7008657d321dead9912347d03
'thead' and 'tfoot' now create instances of HTMLTableSectionElement
HTMLTableSectionElement.rows has been implemented
Source-Repo: https://github.com/servo/servo
Source-Revision: 9eb0effaf674da0f24eb5e0ae8e290c9648598de
Fixes#7803. As @eefriedman pointed out, RFC 2397 says:
> If <mediatype> is omitted, it defaults to text/plain;charset=US-ASCII. As a shorthand, "text/plain" can be omitted but the charset parameter supplied.
Source-Repo: https://github.com/servo/servo
Source-Revision: f30f40b12d2910f52e2274659e3762d9cd991649
I didn't include some dependencies that come "by default" (e.g. bzip2).
Not sure whether there might be some additional deps that I have on my system, but aren't listed.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8f4f172ef66a9804ed26f9361e3c90b2c9c28970
Continuous non-transient notifications, common in workflows involving
many syntax errors, can completely take over the message tray. Making
Linux build notifications transient prevents them from stacking up in
Gnome Shell without having to click them individually.
Source-Repo: https://github.com/servo/servo
Source-Revision: 03f6415eb49656fd1ce8b4de8c8b083e97a4f9d7
Upgrade Cargo to get https://github.com/rust-lang/cargo/pull/1828, and use it for unit tests. This allows Cargo to get some more parallelism when compiling the test crates’ dependencies.
`touch components/util/lib.rs && mach test-unit` on my machine goes from 149 seconds to 124.
Source-Repo: https://github.com/servo/servo
Source-Revision: ba2714f4f607da77bd7200f88cfa16c1d10da9cd
r? @SimonSapin
* Allow reftest harness to take 0 or more testname arguments.
* Change `mach test-ref` parameter from `--name` to `--include`. This is consistent with other test suites, and also fixes a bug in `mach test` caused by a conflicting keyword parameter in `Registrar.dispatch`.
* Allow `mach test-ref` to take any number of `include` arguments.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9488013b59e54f9a39cc89362ee6b84f89cc8ed0
Depends on servo/rust-azure#201 and pcwalton/ipc-channel#10.
Closes#7422.
r? @mbrubeck (don't r+ until the upstream dependencies have landed)
cc @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e2048d57c4c0602c5a6b82db8cb76e6c3e5467fa
Translate <meta name=viewport> as according to [CSS Device Adaption § 9](http://dev.w3.org/csswg/css-device-adapt/#viewport-meta)
Note: as the PR currently stands, handling `<meta name=viewport>` elements always occurs. This is probably not desired for some contexts (e.g. desktop), but I'm unsure of how to conditionally handle elements based on that.
Source-Repo: https://github.com/servo/servo
Source-Revision: a7743052cad0387733c90940fa91733ede32772c
This may mitigate race conditions like #7730. r? @mrobinson
Source-Repo: https://github.com/servo/servo
Source-Revision: 9b37de965c9e7b2b906685e2f0ee915f1c901fb5
Fixes#7618.
Allows running a specific Rust test with one of:
```
./mach test tests/unit/net/http_loader.rs
./mach test-unit tests/unit/net/http_loader.rs
./mach test-unit tests/unit/net/http_loader
./mach test-unit net/http_loader
```
Allows running a whole package's tests with one of:
```
./mach test tests/unit/net
./mach test-unit tests/unit/net
```
Source-Repo: https://github.com/servo/servo
Source-Revision: 5d04f8dc8e59fea8ef49beb89af26089421ef748
The trait is now implemented for HTMLFooElement instead of
&HTMLFooElement and does no longer require an impl body.
Suggested by @Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 94e85a5226fe5b18bde40a2d5f6727b717bd148f
Have Fragment::create_stacking_context understand which stacking
contexts need layers and which do not. This simplifies the way it is
called and eliminates a bunch of code.
Source-Repo: https://github.com/servo/servo
Source-Revision: bb7742eecf00dd4cb5bfcbafcae36d928a5b8b89
It was added in commit ecf02a3656d60d4197e7cfc53beaedbc5e1019c0.
Source-Repo: https://github.com/servo/servo
Source-Revision: 61be58a87ff78be6278173d65e8933413041bd00
This will allow us to hit test into DisplayLists that are not directly
contained in StackingContexts, but instead are children of PaintLayers.
It also makes things slightly simpler.
Source-Repo: https://github.com/servo/servo
Source-Revision: b1d9f438b79743e03cb5b81a0e36f336943e940e
Allows running WPT tests in the tests/wpt/mozilla/ directory by using commands such as:
```
./mach test tests/wpt/mozilla/tests/mozilla/union.html
```
Fixes#7772.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a4eb565c4a423ed1278a5e28ad06775695861da
The old code that attempted to do this during layout wasn't able to work
for multiple reasons: it couldn't know where the iframe was going to be
on the page (because of nested iframes), and at the time it was building
the display list for a fragment it couldn't know where that fragment was
going to be in page coordinates.
This patch rewrites that code so that only the size of an iframe is
determined during layout, and the position is determined by the
compositor. Layout layerizes iframes and marks the iframe layers with
the appropriate subpage ID so that the compositor can place them
correctly.
Closes#7377.
Source-Repo: https://github.com/servo/servo
Source-Revision: a0cb657fe80859dd8862361631268479d1045432
Depends on servo/rust-harfbuzz#53 and introduces a dependency on the new servo/unicode-script crate. r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: a144d086d911375f8d5674ac90ff55a9dcaf0cda
Partial #4576
I am really unsure of how things would look like, so would really appreciate some feedback on this.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0fc9410f10c1122a05cd36bdf8b7faff12c39555
This adds form getters for fieldset, label, object, output, select and
textarea elements.
Source-Repo: https://github.com/servo/servo
Source-Revision: a72d7a4f5222d029a34b2b4a7da21ebe095fde53
This is split out from #6900.
`size_hint()` in `utf16_units()` seems busted, so we do it ourselves.
r? @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 7a3d2c8cb405f776117044986ab9fb93a6b7776e
Since mach now puts everything into a virtualenv, we need to set the bundle identifier to allow sending notifications.
Source-Repo: https://github.com/servo/servo
Source-Revision: a1fb8cfbb0be8d0a73bc1e3b63eb704f48098b8f
Radio button groups with missing or empty names are always the only element of their respective radio button group.
Source-Repo: https://github.com/servo/servo
Source-Revision: 37ce248f316ba3cb5a2cfb0b4bb95918c1c45828
(#[cfg(debug)] is false in every normal servo configuration, and the
code in question doesn't compile.)
Source-Repo: https://github.com/servo/servo
Source-Revision: d4f5948294545860a88d6a266acaa4cf9b9ea1c6
The content attributes and presentational hints were implemented in
the #4289 pull request. This just implements the relevant IDL
attributes.
Source-Repo: https://github.com/servo/servo
Source-Revision: 500d5098655032465bdca5c6167f681078df0fc3
This involved some refactoring of the 2d context code, which lead to some more test passed there.
Source-Repo: https://github.com/servo/servo
Source-Revision: 0f8c1b460100f226df954a3924598434f3dda9b2
When one border is 0px and the other is >0px then the border corner
drawing code panics when computing the values to use in drawing the
border corner arcs.
This fixes that bug and makes the `draw_corner` function more robust
by explicitly passing an enum, `BorderCorner`, naming which corner is
being drawn e.g. `BorderCorner::TL`.
Add a ref test,
`border_radius_zero_sizes_a.html/border_radius_zero_sizes_ref.html`.
Fixes https://github.com/servo/servo/issues/7700.
r? @pcwalton or @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 4d1be2f56cd7a37c4c803ba12733fca55b57d4de
This fixes a crash resulting from a race between loading an initial
document and navigating to a subsequent document. If the navigation
happens before the initial document has had a chance to create its
root page, we crash trying to unwrap a None. Note that the are likely
further similar timing issues with more complex sequences of navigation
and history manipulation.
Source-Repo: https://github.com/servo/servo
Source-Revision: 30ffd09eb3daf4b0bc55627c281016f8f246fd6f
There were two problems here:
(1) The animation state update function was only called when nodes were dirty or there were new animations.
(2) When all animations for a node expired, the entry from the hash table was not removed.
The result was that once an animation began, the compositor would be running as fast as it can forever.
Fixes#7721.
Source-Repo: https://github.com/servo/servo
Source-Revision: b4b3cedc10cec47d95880bfbe55f2dbc37cd910e
This will be useful when PaintLayers that contain DisplayLists instead
of StackingContexts need to draw themselves. This is a simple
preparatory refactoring and doesn't change any behavior.
Source-Repo: https://github.com/servo/servo
Source-Revision: 09b970af4aeba749146a9a9215e346653016672b
This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!
Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
This is a follow up of issue : Tidy has an off-by-one error #7686
It allows to raise the max length error when line is over than 120 not at 120 specifically.
Thanks for looking into it.
Source-Repo: https://github.com/servo/servo
Source-Revision: 8f1469eb08a437bcc6cfb510334be2b6430b4a8f
Changed to_string calls to to_owned calls
where was a need.
Source-Repo: https://github.com/servo/servo
Source-Revision: d588ce8d8503bf0b340abfb13e2bd6a228cab900
This PR is in reference to #7630
I've added a simple try catch around our use of subprocess.check_all when trying to invoke and use python's
- virtualenv
- pip
Upon failure, I use sys.exit with an error message for the user. Exit seemed appropriate as anything beneath those dependencies will fail to execute and result in a non friendly error message
Source-Repo: https://github.com/servo/servo
Source-Revision: 44de9173cc968957e4441c14f57014111a2b847e
This is a naive implementation of `window.location.reload()`.
I'd appreciate any feedback.
I was wondering if it'd be better to implement `ConstellationMsg::Reload` instead of using `load_url`.
Also, what kind of test should I write?
Source-Repo: https://github.com/servo/servo
Source-Revision: 4dc986bca35f986e2f15f1591f120e1cef2810da
According to @Ms2ger, the 'creator' attribute was merged into 'setter'
Source-Repo: https://github.com/servo/servo
Source-Revision: 291fa888326e743a1e59aa7c06d5288a0643cbb7
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