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
Right now, the only reason that overflow calculation works is that we
rely on script inducing extra reflows that are sent for display. This
was preventing #10021 from landing.
This change regresses layout performance by about 1% in my tests.
Fixes#7797 properly.
r? @mbrubeck
cc @glennw
Source-Repo: https://github.com/servo/servo
Source-Revision: 8120fb5c2d170d5d9838696a7a5b871a43f57bb2
as discussed in the #servo channel on IRC:
implement and use `From<bool>` for `EventBubbles` (and back direction)
implement and use `From<bool>` for `EventCancelable` (and back direction)
Source-Repo: https://github.com/servo/servo
Source-Revision: 4df7975ed3e74f1d6c491b0435bb3e751b5386a8
Converting the specified value of some properties into a computed value depends on the value of other properties. For example, the `em` unit of any length depends on the `font-size` property.
Previously, we would do a first pass over applicable declarations to build up a `values::computed::Context` struct with a number of fields for each such piece of data from other properties.
This simplies the struct by instead having it contain the set of computed values (for a given element) that is being populated and classify properties into "early" and "other", such that the only dependencies can be from "other" to "early". We iterate applicable_declarations twice, first cascading "early" properties then "other". Unfortunately, it’s not easy to check that this classification is correct.
Source-Repo: https://github.com/servo/servo
Source-Revision: 2d6283c64be8c052e6b0a06e857950d7f25db353
Adresses #9949.
This adds a function that tests whether a request should be blocked or not based on it's url's scheme and port. It also adds testing for port restriction to the `main_fetch` method. More info in eb07418c83.
@Ms2ger In https://github.com/whatwg/html/issues/841, @annevk proposes to remove port restrictions from websockets. Should we go ahead do that, given that the spec hasn't been changed yet?
Source-Repo: https://github.com/servo/servo
Source-Revision: 0008c07dc343d911be042516b32c994fc18e3900
https://github.com/servo/servo/issues/10002
./mach does not support paths with Unicode characters for now
it fail on original line 154 with exception UnicodeDecodeError
This patch handles the exception
Source-Repo: https://github.com/servo/servo
Source-Revision: 42c7472f336e687200507dafdf1087d8f0ea4d55
This avoids a flash of unstyled content, which looks especially bad in
browser.html since unstyled content is white and browser.html has a
transparent background.
Closes#9996.
r? @metajack
cc @jdm since you had some concerns
Source-Repo: https://github.com/servo/servo
Source-Revision: 84d3ba075977c55d226bd6b70d695a292b2329c9