<!-- Please describe your changes on the following line: -->
Follow up for [bug 1388298](https://bugzil.la/1388298).
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
Source-Repo: https://github.com/servo/servo
Source-Revision: 122e49d516c7c22d8672e40929760b11682df272
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 4fffb9b7e1bfcf8d42de1d61ea00b58bc82db41d
Clean up and standardize Treeherder symbols for Talos and AWSY tasks:
* Stylo disabled groups include `sd`
* Stylo sequential groups include `ss`
MozReview-Commit-ID: 7cl6e0XvXNO
--HG--
extra : rebase_source : a7b4e7c78af673e204d7ff7479ce5fc87614248c
Convert all jobs that were exercising Stylo enabled to Stylo disabled instead.
Stylo enabled is now handled by the default jobs.
In Perfherder, Stylo enabled jobs will be untagged and take over the existing
Gecko series. Stylo disabled jobs will have a new `stylo-disabled` tag and
create a new series.
MozReview-Commit-ID: BMXBRg3A95j
--HG--
extra : rebase_source : 0f3a6a1f6807dbb90c00d060a3a7f220c2141c64
Make Linux Stylo Talos jobs explicit in the task list, like they are for macOS
and Windows. This way we avoid have different approaches per platform.
(This is still the Stylo enabled form. The next patch coverts to Stylo
disabled for all platforms.)
MozReview-Commit-ID: K4CcWvR9tlJ
--HG--
extra : rebase_source : 3727ddb09114e56493b5ee42df1b45a830a3a6dc
We no longer need to run unit / integration tests on Stylo sequential, but we'd
like to retain it for memory and performance checks.
In addition, we no longer need to explicitly `--enable-stylo` since it is the
default. This also drops the `stylo` tag in Perfherder.
MozReview-Commit-ID: 3OI8Y7Q5PW
--HG--
extra : rebase_source : d80103b3c7991a833dc4603d1df4a6c4b62fd6c9
Based on a patch that Dão Gottwald <dao+bmo@mozilla.com> wrote.
We used to preload about:newtab as soon as a tab had finished being opened,
which meant that the first opened tab was _never_ preloaded, and that we
risked janking the browser immediately after the user opened a new tab
(which is, arguably, the worst time to do it, since the user is probably
about to navigate that tab somewhere).
This patch makes it so that about:newtab is preloaded after:
1) 1 second of user inactivity, and
2) When we have at least 40ms of idle time to spend in an idle callback.
The 1s and 40ms thresholds were chosen arbitrarily, and we might tune them
over time.
MozReview-Commit-ID: J5xkPQvCdW6
--HG--
extra : rebase_source : 51aed2f47ee5c6a68d04036d0bdc9e6357a5fc8d
We're not lazy-loading Task.jsm in Messaging.jsm right now (despite
declaring it through XPCOMUtils.defineLazyModuleGetter) because we
unnecessarily reference `Task` when Messaging.jsm is loading. This patch
makes us load Task.jsm only when `Task` is really needed.
MozReview-Commit-ID: 9rrnLQLaW4y
--HG--
extra : rebase_source : fab1379719a9fdf75ce45b1002d03300e5dbd9e8
Standalone GeckoView doesn't make use of MDNS AFAIK (i.e. MDNS is only
used by features like casting or FlyWeb), but it takes up startup time,
so we should disable it.
MozReview-Commit-ID: CseHUos5B9I
--HG--
extra : rebase_source : 2dc6af2a360da05cf3d6ba2aaae87a64dd67c480
Lazily load AndroidLog.jsm since we only need it for debug logging, and
logging is normally turned off in GeckoView code.
MozReview-Commit-ID: 5HNzYTwujMS
--HG--
extra : rebase_source : 5ef9bbe21ff1a53bc0e805f473154e1cf60d3b08
Add a GeckoViewStartup component to consolidate tasks performed during
GeckoView startup, such as adding lazy observers and event listeners.
This enables us to not load individual GeckoView modules such as
GeckoViewPermission and GeckoViewPrompt until they are actually needed.
MozReview-Commit-ID: IsaUGwBHKbs
--HG--
extra : rebase_source : c22e71eda6ad11230046de64dc54c882be2ed555
Move AsyncPrefs initialization to inside browser.js to only load it for
Fennec. Also, delay initialization until later in startup.
MozReview-Commit-ID: 7gLaXA5UJud
--HG--
extra : rebase_source : c721bbc6c9340f65161c415405dfba16e527b962
Example output from the Obama Wikipedia page:
> ├──2,315,600 B (01.16%) -- stylist
> │ ├──1,916,928 B (00.96%) ── invalidation-map
> │ ├────228,800 B (00.11%) ── rule-tree
> │ ├────142,336 B (00.07%) ── element-and-pseudos-maps
> │ ├─────14,336 B (00.01%) ── revalidation-selectors
> │ ├──────9,648 B (00.00%) ── other
> │ └──────3,552 B (00.00%) ── precomputed-pseudos
This change requires new code to measure HashMaps, which uses the new
'malloc_enclosing_size_of' functions that can measure a heap block from an
interior pointer.
The patch changes MallocSizeOfFn to a newtype, and introduces
MallocEnclosingSizeOfFn alongside.
It also adds new traits: MallocSizeOfBox, MallocSizeOfVec, MallocSizeOfHash.
These each contain a single method that does shallow measurement of the
relevant type, which is often useful. (This is a different style to the
existing MallocSizeOf trait, which does deep measurement, but I'm moving away
from the always-deep-measurement style because it's less flexible.)
MozReview-Commit-ID: FgJCCmdw0ZF
--HG--
extra : rebase_source : c692c2073aa66020224489b97247c49de95a99a4
On top of #18375, only last commit needs review.
Source-Repo: https://github.com/servo/servo
Source-Revision: 4721ef81fd7fb6ee15546a6abe140a66ce0280e8
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 4ae2ca7c3f5142c06b900602fb49a00c8d601e4e
Currently, this only concerns setImageAs, where not running on the UI thread after a permissions prompt triggers a network-related strict mode violation and interestingly enough results in a crash (as opposed to a logcat complaint) on release builds.
There's also a permissions check in the UpdateService which runs on a (but not *the*) background thread, but since we don't prompt in that case there's no action necessary.
MozReview-Commit-ID: KKxW96AyDWH
--HG--
extra : rebase_source : db12529acc9b257930c37c2295f69a7b8e75232c
The permissions check itself is synchronous, but if we then decide to prompt the user to acquire the permission, we have to do so asynchronously and eventually continue execution on the UI thread as a result. Therefore we need to provide a counterpart of onUIThread() for operations that want their callback to stay off the UI thread in all situations.
MozReview-Commit-ID: AOCX1v69R1J
--HG--
extra : rebase_source : ed0bab9f3ae3198bf2af90eabc86fd5ddd95b3a0
The Servo_KeyframesRule_GetKeyframe binding function has been empowerd and
renamed to Servo_KeyframesRule_GetKeyframeAt in the servo side patch. In this
patch, we use Servo_KeyframesRule_GetKeyframeAt to get line and column
information for ServoKeyframeRule, so that the inspector can present Keyframe
rules on the devtool panel properly.
MozReview-Commit-ID: BGd9FFsC3Nz
--HG--
extra : rebase_source : f2b5ff73a84a3cd4e5d0b17d5e0c5ac5fd57f817
QIing to CC interfaces shows up in Speedometer profiles for a few
classes. Presumably there are many of these objects being created and
destroyed. By making these classes check first for the CC interfaces
directly, rather than going up the inheritance chain, this overhead
should be reduced.
MozReview-Commit-ID: I3sf3my8oua
--HG--
extra : rebase_source : f08884a944d5b4ed1eb1da1070de64f21fc9868a
The main purpose of defining this is to make conversion of places that
use the non-CC variant easier. There are many more places that could
be converted to use these new macros, if somebody felt motivated.
MozReview-Commit-ID: HspjcN76fjg
--HG--
extra : rebase_source : bf3baa586f90f0afbe9229c32d38cb34cc909b9b
In a number of places, there's no substantial use of maps any more
after the segue.
The ELEMENT segue tries the FragmentOrElement QI, but that is
redundant with the Element QI.
This lets me use a few higher-level macros.
MozReview-Commit-ID: Gstq3Cm8LDl
--HG--
extra : rebase_source : f0c7dbf5281ce7375b1369b49db095a211569d6c