This avoids the need for numerous 8-to-16-bit and 16-to-8-bit string
conversions.
The patch also introduces a higher-order macro, FOR_EACH_CSP_KEYWORD, which
defines all the stuff about the keywords in a single place and makes the code
nicer.
This patch introduces a stub gBrowser object which allow a WebExtensions options_ui page
to open a tab modal using alert/prompt/confirm.
The about:addons page is defined at toolkit level but the TabModalPromptBox is defined
at browser level, and so to be able to provide a TabMobalPromptBox from the about:addons
page this patch uses the implementation provided by the window that contains the
about:addons tab, if any.
MozReview-Commit-ID: m6khgJyMs
Webextension-formatted langpacks now store their list of chrome
registry resources in startupData so that those resources can be
registered early in startup.
MozReview-Commit-ID: 80eOiPKLlWu
If a non-null value is stored in this property, its contents (which
must be json serializable) are stored in addonStartup.json and are
then passed to the addon's bootstrap startup() method. This is meant
for data that must be available synchronously during browser startup.
Of course addonStartup.json is read synchronously during startup so
this should be used sparingly.
MozReview-Commit-ID: ALS1CcYbH92
By using the PartialConfigEnvironment, the clients of buildconfig will
depend on config.statusd/ files instead of config.status directly.
Clients can access substs and defines using buildconfig.substs['FOO'] or
buildconfig.defines['BAR'], and then collect file-level dependencies for
make using buildconfig.get_dependencies(). All GENERATED_FILES rules
already make use of this because file_generate.py automatically includes
these dependencies (along with all python modules loaded).
As a result of this commit, re-running configure will no longer cause
the world to be rebuilt. Although config.status is updated, no build
steps use config.status directly and instead depend on values in
config.statusd/, which are written with FileAvoidWrite. Since those
files are not official targets according to the make backend, make won't
try to continually rebuild the backend when those files are out of date.
And since they are FileAvoidWrite, make will only re-run dependent steps
if the actual configure value has changed.
As a result of using JSON to load data from the config.statusd
directory, substs can be unicode (instead of a bare string type).
generate_certdata.py converts the subst manually to a string so the
value can be exported to the environment without issue on Windows.
Additionally, patching the buildconfig.substs dict no longer works, so
the unit-symbolstore.py test was modified to patch the underlying
buildconfig.substs._dict instead.
The other files that needed to be modified make use of all the defines
for the preprocessor. Those that are used during 'mach build' now use
buildconfig.defines['ALLDEFINES'], which maps to a special
FileAvoidWrite file generated for the PartialConfigEnvironment.
MozReview-Commit-ID: 2pJ4s3TVeS8
This patch adds a hidden pref 'privacy.resistFingerprinting.block_mozAddonManager',
which is false by default. When this is true, the navigator.mozAddonManager will
be blocked even the website is AMO.
The purpose of this pref is for Tor browser can disable navigator.mozAddonManager
through this.
MozReview-Commit-ID: Lf37gHXETCz