This code is large and complex, and can only be called when we have an
AddonInternal object from XPIDatabase.jsm. It should live with that code.
MozReview-Commit-ID: 3ssV5aH9NUJ
--HG--
extra : rebase_source : d54474f67213420678706f04291b246ceee154de
extra : histedit_source : d1a3ca6fd05856a6675380717351e2e1d1568cf1
AddonInternal objects are only ever created after the database is loaded, so
there's no reason to load that code beforehand. More importantly, creating
the AddonWrapper class is expecially expensive, since most of their properties
are created dynamically. We should avoid doing that at startup when at all
possible.
MozReview-Commit-ID: AaRVN12e1qM
--HG--
extra : rebase_source : d5f9da1f8a54cdeecc45aa9857c6a6329821bb34
extra : histedit_source : 73c67373ad04a397bf9b2c2174c637f8ba645a95
The TelemetryEnvironment initialization process currently forces a load and
initialization of the blocklist service only to check its isLoaded flag. This
adds measurable overhead to startup, and without those checks, the service
would not be initialized until after first paint.
We should defer even checking whether the blocklist is loaded until after
startup has finished.
MozReview-Commit-ID: 73c4o5oVqze
--HG--
extra : rebase_source : f97ad4e9f2c96668b4418a1c7fb47a07bc798da7
extra : amend_source : 874240858529280e88f960e40920f009ccccfcbc
The about:memory page specified some colours using constants and others
using variables whose values can change. If those variables changed, for
example due to the desktop toolkit using a dark theme, then it could create
poor contrast with the constants in these CSS files (desktop & mobile).
This change ensures that only the Mozilla system colour extensions and
Mozilla colour preference extensions colours are used. Creating
fore/back-ground combinations that hopefully contrast well regardless of the
desktop theme.
--HG--
extra : rebase_source : f916aac0bb07c3a75ab45ece3fd58d1cdcf8bf46
extra : source : a78bc7ff3de5a0ea4aea060731253fed63a59d00
The decision task is used for everything built as part of a push (for
mozilla-central, this is firefox, devedition and fennec, as well as tasks that
aren't strictly part of any product). Thus, having `firefox` encoded as part of
the decision task doesn't make sense.
This changes the route from
index.gecko.v2.${repository.project}.latest.firefox.decision
to
index.gecko.v2.${repository.project}.latest.taskgraph.decision
while leaving the latter for backwards compatability with tools that expect it.
Differential Revision: https://phabricator.services.mozilla.com/D996
--HG--
extra : rebase_source : c4c4691bb4633225e5e37b21982b916f76353e27
extra : source : 6ef1607a3e63250eefbda5333d61fd338c23311d
BLEND_MODE and BLEND_CONTAINER wrap items so their bounds can change.
We need to account for that like we do with OPACTIY etc.
--HG--
extra : rebase_source : fbd2d79eaad5c7347335416d369c8cae37aad447
We previously did not require Python 3.5+ everywhere because we failed
to detect Python 3.5 on Windows in CI. That's because CI isn't using
start-shell.bat and it hasn't yet updated PATH to include
%MOZILLABUILD%\python3.
We shouldn't need to teach CI to have PATH contain everything in
MozillaBuild. This commit teaches moz.configure to automatically use
MozillaBuild's Python 3 if we're running in MozillaBuild.
Since we can now detect Python 3 everywhere in CI, we make Python 3.5+
required on all build configurations.
MozReview-Commit-ID: BwgWGeYMyPM
--HG--
extra : rebase_source : b52f604b01c73b0493b142f3f71aa26c99a42b91
npm-shrinkwrap.json got updated spuriously in pushing ec5e58165939 [1], which
should not have happened. This reverts that spurious change to go back to
sha-512 hashes.
[1] https://hg.mozilla.org/integration/mozilla-inbound/rev/ec5e58165939
--HG--
extra : amend_source : 2a21f05ff8bafd8ccd57e69acf81988455822aef
We can move this information into ProtocolState and save having two
virtual functions for every protocol. Moving some bits out of the
codegen'd IPC code is a nice bonus, though we keep the strange setup
where toplevel protocols have two mChannel member variables.
ProtocolName() is only used for producing error messages and annotating
crash reports. But examining actual crash reports that would have used
the result of ProtocolName() indicates that we can always tell what the
erroring protocol is due to the stack backtrace. So having this virtual
function around just provides duplicate information, and it takes up too
much space in the vtable besides. Let's get rid of it.
lower.py generates repetitious:
SetManager(...);
Register(...); // Or RegisterID.
SetIPCChannel(...);
calls, which are moderately sized, given that the above call sequence
requires virtual calls in several places. Instead of codegenning this
sequence, let's consolidate the sequence into IProtocol and change the
code generator to call into the consolidated function instead.