Added flags:
* `--random-pipeline-closure-probability`: probability of each event triggering a forced exit of a randomly chosen pipeline.
* `--random-pipeline-closure-seed`: seed to use for the RNG (to remove a source of intermittent failure).
These are designed for testing the hardness of the constellation.
Source-Repo: https://github.com/servo/servo
Source-Revision: dc0e541747d41a53989fd08eb88c39ceb6036d4e
This adds a new HttpState object which holds common http state(#10175). This reduces the amount of work that is required to add extra things to the Http state.
The HttpState object currently holds:
```
hsts_list: Arc::new(RwLock::new(HSTSList::new())),
cookie_jar: Arc::new(RwLock::new(CookieStorage::new())),
auth_cache: Arc::new(RwLock::new(HashMap::new())),
```
Source-Repo: https://github.com/servo/servo
Source-Revision: d82f97a9cd9f208a4f331d5991486ae7f0108c08
Fixes#9993. This does not yet allow stylesheets to set the selection colors; instead it uses a hard-coded orange background and white foreground.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: bed91b3334786970c91a47c3bc95889d8675b4d5
The old code tried to do the speculation as a single bottom-up pass
after intrinsic inline-size calculation, which was unable to handle
cases like this:
<div>
<div style="float: left">Foo</div>
</div>
<div>
<div style="overflow: hidden">Bar</div>
</div>
No single bottom-up pass could possibly handle this case, because the
inline-size of the float flowing out of the "Foo" block could never make
it down to the "Bar" block, where it is needed for speculation.
On the pages I tried, this regresses layout performance by 1%-2%.
I first noticed this breaking some pages, like the Google SERPs, several
months ago.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 1554331f06900e69f246ed9986a08aae91a0a71e
This fixes `margin-collapse-104.htm`, which is currently accidentally
passing due to lack of #10085. When that PR lands, then that will become
a representative test case.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 9b2ae3a62faafceb3149dc455fc6123de2b306f7
After #10021, `LayoutThread::repaint` no longer forced a repaint because of the `restyle_damage` check. This patch adds the correct restyle damage and fixes#10163.
r? @pcwalton
Source-Repo: https://github.com/servo/servo
Source-Revision: 8984d95a28ac1060f3c809e98434513fdf9f09b5
See the description of 6c851c8 to see which incorrect bindings remain. They're just nine types.
cc @bholley @SimonSapin @pcwalton
(I don't know who should review this actually)
Source-Repo: https://github.com/servo/servo
Source-Revision: d77c7b21aebb8996768bbf6215f0ec6b4440a2c8
Thanks to @sankha93 for the original work in #8525.
Source-Repo: https://github.com/servo/servo
Source-Revision: 59ba00ed84ca446bd121408245460d7a96ba6d71
In function Request::fetch_main, flag local_urls_only (if set)
should allow fetching local urls only. Before this change, the flag had
the inverse behaviour.
Fixes#10147.
Test with: `./mach test-unit -p net fetch::test_fetch_with_local_urls_only`
Source-Repo: https://github.com/servo/servo
Source-Revision: 38e8c923b519f488cd0614ff9409997998418cc7
Fixes#7857
Origin is omitted since it's still not available in rust-url, but since the previous PR also left it out, I'm assuming that's okay.
Please let me know if there are any style issues. There might be more concise ways to do the pattern matching that I don't know about, I guessed at the indentation style in one or two places.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a8d62286c6556fca7471f2db37f896174bc4d9e
This allows geckolib to pass gecko style structs and have the style system write to them directly, provided we implement all the traits.
Source-Repo: https://github.com/servo/servo
Source-Revision: 605842f193aedc1151ab38a99c49f693c76e5cf3
initial attempt of
- in resource_thread.rs, define an HTTP authorization cache storage (username, password, URL) and instantiate it like the cookie_storage member (inside an Arc<Rwlock<>> value, to enable sharing it between threads)
- in modify_request_headers in http_loader.rs, implement the remaining pieces of step 12(13?) of the appropriate specification using this new authorization cache.
for the NCSU student project Implement HTTP authorization UI and persistent sessions.
Source-Repo: https://github.com/servo/servo
Source-Revision: 7f944afee88bb2ab13de4f37118af14d40328f7f
The function is only used in the 'style' component, so we'll move it
there alongside other relevant parse functions.
Source-Repo: https://github.com/servo/servo
Source-Revision: f2f05869d6ccd445df9b73e2e8d038c6cfa9e687
When fetching about:blank, response body should be the empty byte
sequence.
Spec: https://fetch.spec.whatwg.org/#concept-basic-fetch
Before this change, response body would be set to `ResponseBody::Empty`,
and then fetching would result in an infinite loop at step 19 in fn
`main_fetch` (methods.rs).
r? @KiChjang
Source-Repo: https://github.com/servo/servo
Source-Revision: 446783f7b6f0b55164b3b3c3e8be90c2b392cf97
This doesn't fix the performance tab, but at least lets Firefox initialise the devtools window.
Source-Repo: https://github.com/servo/servo
Source-Revision: 5faab270c6babaaa5ee6b75fecf537e7a648d752
This PR cleans up the layerization infrastructure for canvas, which was unused, and removes unused dependencies.
It also takes in account my recent username change to update angle's dependency (offscreen_gl_context requires extra work due to webrender depending on it).
r? @jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 2887623c4ae1960dfef52b14cd4afc3b279f9feb
Fixes the issue where once a jump tag is clicked, the viewport rects are not updated. #9671
Source-Repo: https://github.com/servo/servo
Source-Revision: f1baba973f9bc788a65d77b59528b3719c198315
Rather useful.
If most people have these keys on their keyboard, I'd prefer to remove the backspace navigation handler. I've never used it on purpose, but it gets hit often by accident when an input widget isn't focused (either due to a misclick or debug build lag).
Source-Repo: https://github.com/servo/servo
Source-Revision: 771623054f467008ce6cb9bd2396517ca8e0a126
Apologize for the late PR. I see that #9977 already overlaps with some of the work. If that is accepted, then I'll change my PR to reflect just the WPT changes.
Source-Repo: https://github.com/servo/servo
Source-Revision: f3abfeeadd5c5b00b17e48c186e957ba10b6e33b
The build system needs to disable gold on arm64 slaves. Other configuration is
done through environment variables, and buildbot hosts currently don't use a
.servobuild file at all.
This change adds the `get_env_bool` function to cast an environment variable's
string contents into a Python boolean, and uses it to retrieve the optional
`SERVO_RUSTC_WITH_GOLD` setting.
I figured it's worth throwing the helper function in now in case we later want to read booleans from other env vars, but there's currently no need to make up a name for and read from an env var for every single setting.
r? @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 003fdd41769652188a5954e6499f3cb44eef6b10
This is a follow-up to #9876. It avoids clearing and rebuilding SelectorMaps
when vh and vw units need to be recomputed. Instead it just dirties all nodes,
to force elements to be re-cascaded.
Filed #10104 for later follow-up work to dirty only affected nodes.
r? @SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 41060dbdd77b2bcd02d03c7fe00663f612bac2e4
A few changes:
* Make `compute_damage` short-circuit more, by skipping comparisons if they will only set flags that are already set.
* Update some obsolete comments.
* Add a bunch of missing properties to `compute_damage`.
* Set `RECONSTRUCT_FLOW` when `text-decoration` changes, because it can affect text fragment splitting/merging.
I believe this is all of the computed properties except for the animation properties. (I wasn't sure what to do with those.) After this lands I'd like to work on moving this information into `properties.mako.rs` so that this function can be auto-generated, and so that newly-added properties can default to setting all flags instead of none.
Source-Repo: https://github.com/servo/servo
Source-Revision: d1e27eb4f4090ff891afdeb62ae29e4f2dde27e0
This is a change in the Browser API itself.
Before, on `mozbrowserlocationchange`, we would call `getCanGoBack()` and `getCanGoForward()`. Two asynchronous methods called on an event, which doesn't make much sense, especially because we already know on `mozbrowserlocationchange` if we can go back/forward. So here I'm adding 2 new properties to the event to tell if the iframe can go back/forward.
The way `event.detail` is defined also changed. Before, `event.detail` was a string (the new uri), now it's an object (`{uri:String,canGoBack:bool,canGoForward:bool}`).
This is one of the design flaw of the early Browser API: not using objects for the detail property, making it hard to extend the event payload.
So that makes this event not backward compatible. We can:
1. just don't care. It's up to the client to test if event.detail is a string or not if it needs to be compatible with Gecko
2. fix it in Gecko. The client will still have to test `event.detail` to make it compatible with older version of gecko
3. rename `mozbrowserlocationchange` to something else (`mozbrowserlocationchange2` ?)
Please advise.
Source-Repo: https://github.com/servo/servo
Source-Revision: db63aa423fcfc87e47d9250680737ef11d2c3d26
@jdm PTAL I'm not sure what is the approach of updating cargo components here, I've made a pull request https://github.com/servo/heapsize/pull/54 but it has to be landed first before merge and version bump.
Source-Repo: https://github.com/servo/servo
Source-Revision: 9a8ba23a763b2a8d272c4335974d5a68623c054c
This reduces CPU usage when mousing over simple pages (example.com). More complex pages (Wikipedia) still reflow a lot due to other bugs.
Additionally, this change causes Servo to stop painting the results of hit test queries. This is also a win for CPU usage.
This significantly improves #9999, though there's more that can be done. I'll leave it open in case @paulrouget thinks this PR isn't enough.
r? @mbrubeck
Source-Repo: https://github.com/servo/servo
Source-Revision: 9813d11f862a61a7cffb4cf2d7de0fa7d269c62a
It's almost a duplicate of HTMLCollectionElementsIter, aside from that its node_iter is a PrecedingNodeIter. We can simply use dynamic dispatch for node_iter instead of making it a concrete type.
Source-Repo: https://github.com/servo/servo
Source-Revision: 95de8b2b03c521011f3e3b9c4b7db89f108a16db
Make the script that checks for undefined Android symbols compatible
with both Python 2 and Python 3, to allow for future updates to the
default system Python on our build machines.
I'd like to land this before https://github.com/servo/saltfs/pull/249.
We currently use Ubuntu 14.04 (an LTS release); Ubuntu is aiming for Python 3 as the default Python in the next LTS release, 16.04, and I'd like to have any scripts be ready for the transition.
Do we have a Python 2/3 compatibility policy?
cc @cengizIO @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 691367745ad27ef79d67e4dc9be679eb969fdd96
Requires a patch to rust-selectors, and doesn't currently recalculate the styles correctly (which is needed to make actual toggling work correctly).
Still trying to figure out what it takes to get style recalc to do what this needs.
Source-Repo: https://github.com/servo/servo
Source-Revision: 090da52913a47e027a96d4f6a39c56e55b9db811
add a new command line flag --profile-dir [path] that stores an optional directory path in the Opts struct in opts.rs, creating the directory if it does not exist.
For the Implement HTTP authorization UI and persistent sessions student project.
Source-Repo: https://github.com/servo/servo
Source-Revision: 6dbffb621ca86bd21e83735ebd2eaafa97d1059b