Previously, the client authentication certificate selection dialog could show
up unexpectedly. Because it was modal, it would prevent user interaction with
the browser. It could even get in a state where the dialog couldn't be
interacted with, and neither could anything else, so the entire browser would
be locked and the user would have to quit and restart.
This patch associates a top-level outer content window ID (called "browserId"
in networking code) with each NSSSocketControl. When a peer asks for a client
authentication certificate, the NSSSocketControl can use the ID to find the
relevant tab and open a tab-modal dialog, which allows other browser UI to be
interacted with.
Some loads cannot be associated with browser tabs, and so the implementation
falls back to opening a window-modal dialog on the most recently active window.
This is still better than the previous implementation, since the dialog is
connected to a window rather than being its own separate dialog.
Differential Revision: https://phabricator.services.mozilla.com/D183775
Previously, the client authentication certificate selection dialog could show
up unexpectedly. Because it was modal, it would prevent user interaction with
the browser. It could even get in a state where the dialog couldn't be
interacted with, and neither could anything else, so the entire browser would
be locked and the user would have to quit and restart.
This patch associates a top-level outer content window ID (called "browserId"
in networking code) with each NSSSocketControl. When a peer asks for a client
authentication certificate, the NSSSocketControl can use the ID to find the
relevant tab and open a tab-modal dialog, which allows other browser UI to be
interacted with.
Some loads cannot be associated with browser tabs, and so the implementation
falls back to opening a window-modal dialog on the most recently active window.
This is still better than the previous implementation, since the dialog is
connected to a window rather than being its own separate dialog.
Differential Revision: https://phabricator.services.mozilla.com/D183775
LCovFileRewriter uses "dist/bin/browser/" for the "appdir" parameter when no value
is passed. That's correct for Firefox, but Thunderbird needs to set appdir to
"dist/bin/".
In comm-central, "appdir" will be set in the Thunderbird mozharness unittest
config file so that appdir will be set appropriately. This allows for other
products to use code-coverage in the future as well.
Drive-by fix adds a \n when logging removed records for readability.
Differential Revision: https://phabricator.services.mozilla.com/D186459
We've apparently hit a threshold in non-unified builds where there are
too many files on the command line when creating the js_static library
on Windows. The way around that is to do something similar to shared
library linking, using a response file (shared library linking has more
possibilities, but it's a different story). Unfortunately, not all
static library creation tools are equal, and while llvm-lib, GNU ar and
llvm-ar support response files, BSD ar and probably others (e.g. the one
on Solaris?) don't, so we have to try and detect whether that works.
Differential Revision: https://phabricator.services.mozilla.com/D185419
The starting point was a Deprecation warning about visit_Str. It turns
out the function used to have an enlightening comment before bug
1616920, which read:
# String nodes we got from the AST parser are str, but we want
# unicode literals everywhere, so transform them.
In other words, the sole purpose of that function was to make the
transformed code closer to python 3 even when running in python 2. It's
a no-op on python 3, and, well we don't support python 2 anymore. So the
method can just go away.
While here, it turned out that some of the code that was added in bug 1616920
can also be undone because we don't need python 2 compatibility anymore.
And while we're doing that, let's just remove the uses of six as well.
Differential Revision: https://phabricator.services.mozilla.com/D185421
The `PanelMultiView.showSubView()` method needed to be made a bit more robust
for titles set by DOM localization rather than directly.
The following messages are dropped during the migration, as they are unused:
- contentBlocking.trackersView.blocked.label
- contentBlocking.cookiesView.firstParty.empty.label
- contentBlocking.cookiesView.trackers.empty.label
- contentBlocking.cookiesView.thirdParty.empty.label
- contentBlocking.fingerprintersView.blocked.label
- contentBlocking.cryptominersView.blocked.label
Differential Revision: https://phabricator.services.mozilla.com/D178829
If replace-in-file[-regex] doesn't make any changes it throws an Exception
thinking that no match was found. In some cases the replacement could be the
same as the matched text. In this case, warn but don't raise an exception.
Non-regex patterns are escaped with re.escape() to simplify the function a bit.
Differential Revision: https://phabricator.services.mozilla.com/D184165
In bug 1839743, we made the build system prefer packed relative
relocations to elfhack when both the system libc and linker support
them. Unfortunately, while that covers most of the benefits from
elfhack, it doesn't cover bug 651892.
To cover it, we make every C++ executable contain its own copy of
the symbol, so that all relocations related to it become relative.
And because this is actually (slightly) beneficial on macos, and because
it's also an advantage to have our own abort called rather than the
system's, we apply the same to all platforms.
Differential Revision: https://phabricator.services.mozilla.com/D184068
This changes the minimum macOS target from 10.12 to 10.15 in several build
scripts and in documentation that references the minimum version
requirement.
Differential Revision: https://phabricator.services.mozilla.com/D184432
This just forces other command modules to be loaded in addition to the
'base' command. We need this so that decorators needed by the 'base'
command that are in another command module are ran during initialization
(eg: `@SettingsProvider`).
I thought about centralizing the `@SettingsProvider` decorators into one
module and always loading it, but they can depend on the
'command_handlers' in `Registrar`, so the modules they're currently in
have to be loaded for them to execute, so there wasn't a way around
this.
Differential Revision: https://phabricator.services.mozilla.com/D184852
The Github repos API can look up tags by tag name and provide the timestamp
as required.
In the case where the latest tag is unknown, there is a "tags" endpoint
that lists all known tags, latest first. Once the tag name is known, the
timestamp can be looked up as above.
This change means Github API calls are used when checking for updates and
it's no longer necessary to clone the entire repository to look for a new
version.
Differential Revision: https://phabricator.services.mozilla.com/D177333
Fixes an inconsistency caused by bug 1844659. Github releases now use the API
to find the most recent tag rather than doing a full repo clone.
Other Git providers clone and use "git log" to find the tag.
Both methods use the commit (pushed) date. Previously the "git log" method used
the authored date, which could be much earlier.
Differential Revision: https://phabricator.services.mozilla.com/D184972
In bug 1839743, we made the build system prefer packed relative
relocations to elfhack when both the system libc and linker support
them. Unfortunately, while that covers most of the benefits from
elfhack, it doesn't cover bug 651892.
To cover it, we make every C++ executable contain its own copy of
the symbol, so that all relocations related to it become relative.
And because this is actually (slightly) beneficial on macos, and because
it's also an advantage to have our own abort called rather than the
system's, we apply the same to all platforms.
Differential Revision: https://phabricator.services.mozilla.com/D184068
This will make it so that if there was a potential subcommand, but it
was not a real subcommand, the base `command`'s site is still passed
through and activated.
Differential Revision: https://phabricator.services.mozilla.com/D184837
ManifestParser will read TOML files, if present, when use_toml=True
Added tomlkit as a third_party python package
Added poetry-core and tomlkit to pypi (separately as Bug 1845383, Bug 1844787)
Adds TOML test coverage
Adds tomlkit as a dependency of mozharness (in test_archive.py)
Added tomlkit to virtualenv_modules in testing/mozharness/configs/unittests
Removes dependency on six
testing/tools/mach_test_package_initialize.py
- Corrected SEARCH_PATHS
testing/mozharness/mozharness/mozilla/testing/per_test_base.py
- moved `from manifestparser import TestManifest` into function call
to avoid harness inability to locate the internal artifact
- Removed linter warnings
testing/mozbase/manifestparser/manifestparser/manifestparser.py
- Removed linter warnings
- Updated logger usage pattern
- Simplifed _read logic, refactored get_fp_filename()
- Improve context for `include:` logging message
- Defer `import mozlog` until the point of use
testing/mozbase/manifestparser/manifestparser/toml.py
- Removed linter warnings
- Removed unused logger
- Improved readability of read_toml()
testing/mozbase/manifestparser/manifestparser/ini.py
- Removed linter warnings
- Removed unused logger
testing/mozbase/manifestparser/manifestparser/filters.py
- Removed linter warnings
testing/mozbase/manifestparser/tests/test_chunking.py
- Removed linter warnings
Bumped manifestparser version to 2.2.31
Differential Revision: https://phabricator.services.mozilla.com/D184020
Since various dependencies were moved out of the `mach` site, activating just it is no longer sufficient. Activating the `common` site solves this problem, since it has everything that was moved out of the `mach` site.
Differential Revision: https://phabricator.services.mozilla.com/D184662
Update:
- Glean to v53.1.0
- UniFFI to v0.24.1
- application-services to a recent nightly that uses the above
versions
- Updated `rusqlite` in toolkit/library/rust/shared/Cargo.toml
- Updated `uniffi-bindgen-gecko-js` to work with the new UniFFI. Also
updated it's askama version.
- Vetted new cargo dependencies
Ran `mach uniffi generate` to regenerate the code.
Differential Revision: https://phabricator.services.mozilla.com/D181872