This patch won't actually build, because a few bits of code are used
for both nsIFactory::createInstance and static components, and static
components are not fixed until the next patch.
The first place is nsLoadGroupConstructor, which uses an nsIFactory
macro to create a static component constructor. (This could be worked
around by expanding the macro to the state before this patch.)
The other issue is that nsAppShellConstructor is used in an nsIFactory
on OSX, but as a static component on all other platforms. This could
be worked around by wrapping nsAppShellConstructor in an adaptor that
passes in the extra null argument to nsAppShellConstructor.
Differential Revision: https://phabricator.services.mozilla.com/D146456
blocklistchange/addon_update*.json contained incorrect values in
"version". There is a pattern in the way that these tests are
constructed, so test_blocklistchange.json was updated to generate the
update manifests, along with extra comments that explain the relation
between the various test files.
With this change, blocklistchange/ has become fully obsolete and has
been removed from the test.
As noted in the bug, "softblock5" is not used anywhere, so its
references have been removed too.
Differential Revision: https://phabricator.services.mozilla.com/D144497
The "succesful" update part of the test referenced a XPI where the
version differed from the update manifest. This is not supported,
the update manifest's version should match the version from the XPI.
As noted in the bug, addon_update1.json and addon_update2.json also
specify incorrect versions, but as the XPIs are not actually fetched
that doesn't matter in the test.
(I will address that in the next patch.)
Differential Revision: https://phabricator.services.mozilla.com/D144496
This prevents long-standing artifacts on HiDPI screens on context menus and so
on.
This is much simpler than tooltips because menupopups and panels already have
the whole set-up ready.
The searchbar.css changes are kind of annoying, but they improve the rendering
a lot (see attached screenshots).
Let me know if you want me to draw shadows on all panels on Windows like we do
on Linux, it's probably doable and cleaner over-all.
Differential Revision: https://phabricator.services.mozilla.com/D145818
nsIFactory is binary compatible with Windows COM's IClassFactory,
but nothing seems to depend on it. This patch removes the test
for compatibility, TestCOM, and removes the lockFactory
method that isn't otherwise needed.
Differential Revision: https://phabricator.services.mozilla.com/D146386
This patch also adds the capability for Policy implementations (in Policies.jsm) to have a `validate` function. If it returns `false`, the Enterprise Policy engine will consider the policy's parameter to be invalid and the policy will not be activated. This capability is used to validate the update pin policy's parameter to make sure that it takes the expected format ("X." or "X.Y.", where X is the pinned major version and Y is the pinned minor version).
Differential Revision: https://phabricator.services.mozilla.com/D143785
Currently if the pref for using content sig checks with GMP updates is missing
we will use cert pinning. I.e. the default behaviour in the absence of a pref
value is cert pinning. This changes that so that we use content sig by default.
This is done as we're moving to content signatures as default behaviour, so it
makes sense to have it be the default if the pref is missing.
Differential Revision: https://phabricator.services.mozilla.com/D146260
Given how nsIPrintSettings is passed around, stored and copied all over the
place, it's very hard to reason about where and when a RemotePrintJobChild is
needed or valid. This patch avoids all that by explicitly passing a
RemotePrintJobChild when it's needed.
Another reason to make this change is because RemotePrintJobChild really does
not belong on nsIPrintSettings. That interface is supposed to represent a
collection of settings for laying out the document that is to be printed.
Differential Revision: https://phabricator.services.mozilla.com/D146380
The function2 library is a header-only library which provides support
for defining move-only function types, similar to the proposed
std::move_only_function in C++23, but with support for additional
customization.
This appears to be the first time we've vendored code using the boost
license, so I've added it to license.html and moz_yaml.py, and have
requested review to ensure it is OK to use code with this license.
Differential Revision: https://phabricator.services.mozilla.com/D145690
The deserialize parameter is used only for getting global object, and in the JSM
context, it's the shared global. So directly passing globalThis works.
Differential Revision: https://phabricator.services.mozilla.com/D144133
For smaller paper sizes (e.g. label maker sized paper) it's possible that the defaut margins will be too large, wich results in non-obvious error state for the print dialog. In this case we want to fall back to using "None" margins to ensure the form is valid/printing is still possible.
Differential Revision: https://phabricator.services.mozilla.com/D142889
Form Autofill now supports respecting autocomplete=off if the newly added
"extensions.formautofill.creditCards.ignoreAutocompleteOff" and
"extensions.formautofill.addresses.ignoreAutocompleteOff" are set to false.
Differential Revision: https://phabricator.services.mozilla.com/D145916
In order to get better shutdown hang reporting, we want to distinguish also the last phases, namely `XPCOMShutdownThreads`, `XPCOMShutdownMainThread` and `CCPostLastCycleCollection`.
This also makes `XPCOMShutdownNotified()` obsolete and we need to slightly re-arrange the watchdog function.
Differential Revision: https://phabricator.services.mozilla.com/D145433