Converts layout.animated-image-layers.enabled to a static pref and removes the nsLayoutUtils::AnimatedImageLayersEnabled() function, replacing it with the static pref.
Differential Revision: https://phabricator.services.mozilla.com/D41652
--HG--
extra : moz-landing-system : lando
Converts layers.offmainthreadcomposition.async-animations and layers.offmainthreadcomposition.log-animations to their respective static prefs. Since all IsAnimationLoggingEnabled() did was create a pref and return the variable sShouldLog, this function is removed and replaced with the static pref.
Differential Revision: https://phabricator.services.mozilla.com/D41651
--HG--
extra : moz-landing-system : lando
The patch also indents some comments within conditional blocks, which improves
readability.
Differential Revision: https://phabricator.services.mozilla.com/D41303
--HG--
extra : moz-landing-system : lando
The main part of the change is the change to ChildSHistory - make it possible to have Go() to be called asynchronously
and also let one to cancel pending history navigations. History object (window.history) can then use either the sync or
async Go(), depending on the dom.window.history.async pref.
LoadDelegate, which is used by GeckoView, needs special handling, since
it spins event loop nestedly. With session history loads and same-document loads we can just
bypass it.
To deal with same-document case, MaybeHandleSameDocumentNavigation is split to IsSameDocumentNavigation,
which collects relevant information about the request and returns true if same-document navigation should happen,
and then later HandleSameDocumentNavigation uses that information to trigger the navigation.
SameDocumentNavigationState is used to pass the information around.
referrer-policy-test-case.sub.js is buggy causing tests to pass only on Firefox with sync history API.
nested-context-navigations-iframe.html.ini is added because of https://bugzilla.mozilla.org/show_bug.cgi?id=1572932
Differential Revision: https://phabricator.services.mozilla.com/D41199
--HG--
extra : moz-landing-system : lando
This makes prefs definition simpler, more consistent, and less error-prone.
Differential Revision: https://phabricator.services.mozilla.com/D41324
--HG--
extra : moz-landing-system : lando
As a result of the expansion, position:fixed elements are attached to the
expanded layout viewport.
The expanded value is used behind a pref which is enabled by default on nightly
initially, and the pref will be fliped in bug 1571599 on other channels.
scrollbars-in-landscape-content.html still fails since the vertical overlay
scrollbar doesn't appear since we are not yet using the expanded value during
reflow to tell whether we need overlay scrollbars or not. This will be fixed
by the next commit.
Differential Revision: https://phabricator.services.mozilla.com/D40771
--HG--
extra : moz-landing-system : lando
The main part of the change is the change to ChildSHistory - make it possible to have Go() to be called asynchronously
and also let one to cancel pending history navigations. History object (window.history) can then use either the sync or
async Go(), depending on the dom.window.history.async pref.
LoadDelegate, which is used by GeckoView, needs special handling, since
it spins event loop nestedly. With session history loads and same-document loads we can just
bypass it.
To deal with same-document case, MaybeHandleSameDocumentNavigation is split to IsSameDocumentNavigation,
which collects relevant information about the request and returns true if same-document navigation should happen,
and then later HandleSameDocumentNavigation uses that information to trigger the navigation.
SameDocumentNavigationState is used to pass the information around.
referrer-policy-test-case.sub.js is buggy causing tests to pass only on Firefox with sync history API.
nested-context-navigations-iframe.html.ini is added because of https://bugzilla.mozilla.org/show_bug.cgi?id=1572932
Differential Revision: https://phabricator.services.mozilla.com/D41199
--HG--
extra : moz-landing-system : lando
`TextEditRules::mDeleteBidiImmediately` is cache of
`bidi.edit.delete_immediately` pref value at creation time of `TextEditRules`.
However, this is referred when user removes selection. So, there is no
reason to keep same behavior starting from editor creation. In other words,
it must be better to take same behavior in all editor instances.
Therefore, we should remove it and the pref value should be referred directly
when user tries to remove selection.
Differential Revision: https://phabricator.services.mozilla.com/D41400
--HG--
extra : moz-landing-system : lando
Also remove nsSVGUtils::Init(), which is no longer necessary.
Depends on D41697
Differential Revision: https://phabricator.services.mozilla.com/D41698
--HG--
extra : moz-landing-system : lando
This makes prefs definition simpler, more consistent, and less error-prone.
The patch also changes the form of the "not Android" condition to one used more
widely in all.js.
Differential Revision: https://phabricator.services.mozilla.com/D41299
--HG--
extra : moz-landing-system : lando
This makes prefs definition simpler, more consistent, and less error-prone.
Differential Revision: https://phabricator.services.mozilla.com/D41298
--HG--
extra : moz-landing-system : lando
A `CacheData` object holds two things: a VarCache/mirror variable address, and
a default value. The previous patch removed the use of the default value.
Therefore, `CacheData` now only holds an address, so there's no need for a
distinct heap object for it, and we can eliminate `CacheData` entirely and just
use the mirror variable address (a `void*`) directly.
The removal of the `CacheData` objects removes one reason for `gCacheData` to
exist (which is to have an owner for those objects). The other reason is to
detect if two or more prefs get VarCached onto a single variable. But given
that VarCaches are on the way out in favour of static prefs (bug 1448219) this
checking is no longer important. So the commit removes `gCacheData` as well.
The above changes save 20-32 KiB per process on 64-bit platforms.
The patch also removes `gCacheDataDesc`, a diagnostic thing from bug 1276488
that isn't relevant with `gCacheData` removed. This means the return type of
`InitInitialObjects` can be simplified.
Finally, the commit renames a few things, taking another step along the path of
renaming VarCache prefs as mirrored prefs, a much better name.
Differential Revision: https://phabricator.services.mozilla.com/D40906
--HG--
extra : moz-landing-system : lando
This patch changes how a VarCache pref works when deleted (in some cases) --
the VarCache variable keeps its existing value instead of being reset to a
pre-specified default.
In bug 1570212 I have made sure that no VarCache prefs exhibit this behaviour
in practice any more, so this change should not affect functionality. There is
an assertion that checks this.
The next patch will take advantage of this change by removing the need to
store the pre-specified defaults, which will save memory.
Differential Revision: https://phabricator.services.mozilla.com/D39805
--HG--
extra : moz-landing-system : lando
The patch:
- changes `privacy.resistFingerprinting.target_video_res` to a static pref;
- changes `privacy.resistFingerprinting.video_frames_per_sec` and
`privacy.resistFingerprinting.video_dropped_ratio` to code constants;
- removes the unused `RFP_TIMER_VALUE_DEFAULT` and `RFP_JITTER_VALUE_DEFAULT`
constants.
Differential Revision: https://phabricator.services.mozilla.com/D40904
--HG--
extra : moz-landing-system : lando
Fix overly-long lines, add '.' to the end of sentences, put things in a more
sensible order, etc. (No functional changes.)
Differential Revision: https://phabricator.services.mozilla.com/D40903
--HG--
extra : moz-landing-system : lando
We don't want to enable audio competing by default, so hide this feature behind a static pref.
Differential Revision: https://phabricator.services.mozilla.com/D38143
--HG--
extra : moz-landing-system : lando
Another step in the renaming of VarCache variables as mirror variables,
matching the 'mirror' field used in StaticPrefList.yaml.
Differential Revision: https://phabricator.services.mozilla.com/D40794
--HG--
extra : moz-landing-system : lando
Bindgen is no longer necessary now that Rust bindings are generated by
generate_static_pref_list.py.
Differential Revision: https://phabricator.services.mozilla.com/D40793
--HG--
extra : moz-landing-system : lando
Converts privacy.fuzzyfox.clockgrainus varcache pref to a static pref. This pref used two #define values, which I also removed.
Differential Revision: https://phabricator.services.mozilla.com/D41102
--HG--
extra : moz-landing-system : lando
Converts mozilla.widget.disable-native-theme varcache pref to a static pref and updates uses of its associated global variable with the pref. This also renames the pref to widget.disable-native-theme to group with other widget prefs.
Differential Revision: https://phabricator.services.mozilla.com/D40721
--HG--
extra : moz-landing-system : lando
Converts layout.framevisibility.amountscrollbeforeupdatevertical and layout.framevisibility.amountscrollbeforeupdatehorizontal to static prefs.
Differential Revision: https://phabricator.services.mozilla.com/D40718
--HG--
extra : moz-landing-system : lando
Converts dom.largeAllocation.testing.allHttpLoads varcache pref to a static pref.
Differential Revision: https://phabricator.services.mozilla.com/D40716
--HG--
extra : moz-landing-system : lando
Converts dom.ipc.processPriorityManager.backgroundPerceivableGracePeriodMS and dom.ipc.processPriorityManager.backgroundGracePeriodMS to static prefs and removes the initializer function they were in, as they were the last prefs initialized there.
Differential Revision: https://phabricator.services.mozilla.com/D40702
--HG--
extra : moz-landing-system : lando
(a) Substitute Cross-Origin header with COEP
(b) Forcing cors in FetchDriver is removed since COEP doesn't need to IIUC
Differential Revision: https://phabricator.services.mozilla.com/D38788
--HG--
extra : moz-landing-system : lando
test_list_json_searchdefault.js is repurposed, as the tests in the searchconfig sub-directory already check the default engine.
Differential Revision: https://phabricator.services.mozilla.com/D41035
--HG--
extra : moz-landing-system : lando
Avoiding lots of `if (isParent)` conditions reduces code size by 2016 bytes for
a local build on my Linux64 box.
Differential Revision: https://phabricator.services.mozilla.com/D40921
--HG--
extra : moz-landing-system : lando
It's defined first as false, and again later in the file as true. This patch
removes the first definition, which is currently overridden by the second.
Depends on D40919
Differential Revision: https://phabricator.services.mozilla.com/D40920
--HG--
extra : moz-landing-system : lando
security-prefs.js is #included into greprefs.js, but there's no good reason for
it to be separate from all.js. Having it separate makes it easier to overlook,
and all.js has a bunch of `security.*` prefs in it anyway.
This patch inlines it into all.js. It inlines it at the start of the file to
minimize the risk of the change, so that the prefs end up in greprefs.js in the
same order as before.
Differential Revision: https://phabricator.services.mozilla.com/D40919
--HG--
extra : moz-landing-system : lando
It's much nicer.
One nice thing about this is that the new code is subject to the existing
threadedness checking, which identified that several of these should be atomic
because they're accessed off the main thread.
Differential Revision: https://phabricator.services.mozilla.com/D40792
--HG--
extra : moz-landing-system : lando
Bindgen is no longer necessary now that Rust bindings are generated by
generate_static_pref_list.py.
Differential Revision: https://phabricator.services.mozilla.com/D40793
--HG--
extra : moz-landing-system : lando
It's much nicer.
One nice thing about this is that the new code is subject to the existing
threadedness checking, which identified that several of these should be atomic
because they're accessed off the main thread.
Differential Revision: https://phabricator.services.mozilla.com/D40792
--HG--
extra : moz-landing-system : lando
This patch introduces a new Rust crate called `static_prefs`.
It also changes generate_static_pref_list.py to generate two new files.
- StaticPrefsCGetters.cpp: contains C getters, which are just wrappers around
the C++ getters. This is included into Preferences.cpp.
- static_prefs.rs: contains declarations for the C getters, plus the `pref!`
macro which provides nice syntax for calling the C getters. This is included
into static_prefs/src/lib.rs.
The new code is only generated for prefs marked with the new `rust` field in
the YAML. It's opt-in because there's no point generating additional code for
900+ static prefs when only about 20 are currently used from Rust.
This patch only marks a single pref (`browser.display.document_color_use`) with
`rust: true`. That pref isn't accessed from Rust code in this patch, but it's
necessary because the generated Rust code is invalid if there are zero
Rust-accessed prefs. (The next patch will access that pref and others from Rust
code.
Differential Revision: https://phabricator.services.mozilla.com/D40791
--HG--
extra : moz-landing-system : lando
generate_static_pref_list currently has two functions:
- generate_header(): this checks the YAML and generates most of the code.
- emit_header(): this does a bit of additional code generation and writes the
code to file.
This patch gives it a cleaner structure:
- check_pref_list(): this checks the YAML.
- generate_code(): this generates all the code. (It calls check_pref_list()
first.)
- emit_code(): this just writes the code to file.
The patch also improves the testing in test_generate_static_pref_list.py,
so that it checks the full contents of all generated files.
All these improvements will help with the next patch, which adds two additional
generated files.
The patch also fixes a couple of minor errors in the comment at the top of
StaticPrefList.yaml.
Differential Revision: https://phabricator.services.mozilla.com/D40790
--HG--
extra : moz-landing-system : lando
We don't want to enable audio competing by default, so hide this feature behind a static pref.
Differential Revision: https://phabricator.services.mozilla.com/D38143
--HG--
extra : moz-landing-system : lando
Make use of the new DecoderBenchmark class in MediaCapabilities instead of the old Benchmark mechanism.
Differential Revision: https://phabricator.services.mozilla.com/D38315
--HG--
extra : moz-landing-system : lando
We don't want to enable audio competing by default, so hide this feature behind a static pref.
Differential Revision: https://phabricator.services.mozilla.com/D38143
--HG--
extra : moz-landing-system : lando
This removes accesibility.AOM.enabled from all.js, as the previous patch defines it in staticpreflist.yaml.
Differential Revision: https://phabricator.services.mozilla.com/D40286
--HG--
extra : moz-landing-system : lando
Converts accessibility.AOM.enabled to static pref and removes the related mirror variable and static flag used to initially generate the varcache pref
Differential Revision: https://phabricator.services.mozilla.com/D40101
--HG--
extra : moz-landing-system : lando
This can be done by changing the pref from being enable instead of disable.
Differential Revision: https://phabricator.services.mozilla.com/D40522
--HG--
extra : moz-landing-system : lando
Previously, the network.webRTCIPHandlingPolicy "disable_non_proxied_udp" only
enabled the use of WebRTC if a proxy was configured and the WebRTC service
supported TURN TCP.
This aims to match Chrome's behavior by forcing the use of a proxy if one is
configured, otherwise falling back to mode 3 (no host candidates and default
route only).
Also, remove some dead code left over from the old way of routing TURN
communications through an HTTP proxy.
Differential Revision: https://phabricator.services.mozilla.com/D37892
--HG--
extra : moz-landing-system : lando
We unconditionally clamp all times to 20us and not just performance.now()
This will consistently apply a 'safe' minimal clamping (it's not safe but
I guess it's safer than ns-level precision) to all timestamps, and remove
intermittents that are caused by comparing a clamped performance.now() to
an unclamped [something else].
Differential Revision: https://phabricator.services.mozilla.com/D38806
--HG--
extra : rebase_source : 85f42a69cc88101c460acf784962076d39813627
We now correctly handle the following cases:
- Thunderbird
- the Browser Toolbox/Console
- Two safe and common idioms
- when general.config.filename is set and userChromeJS does shenanigans
We also change the function to only crash in Debug mode, and for Release channels
we report diagnostic information in a way that does not reveal user data.
Differential Revision: https://phabricator.services.mozilla.com/D39557
--HG--
extra : moz-landing-system : lando
This commit removes `MirrorKind` by splitting the `VARCACHE_PREF` macros in
two, giving `ALWAYS_PREF` and `ONCE_PREF` macros. This is good because most of
the time the generated code is quite different for the two cases.
The commit also removes the examples of code produced by the macros in
comments. These are kind of useful, but also quite verbose and a pain to
maintain.
Differential Revision: https://phabricator.services.mozilla.com/D40166
--HG--
extra : moz-landing-system : lando
This commit:
- improves the wording of some comments;
- renames `UpdatePolicy` as `MirrorKind`, to reflect the new terminology we are
starting to use;
- does a couple of other minor clean-ups.
Differential Revision: https://phabricator.services.mozilla.com/D40161
--HG--
extra : moz-landing-system : lando
Converts content.sink.enable_perf_mode to a static pref. Also removes nsContentSink::InitializeStatics(), since this is the last varcache pref in the function.
Differential Revision: https://phabricator.services.mozilla.com/D40141
--HG--
extra : moz-landing-system : lando
Converts varcache prefs content.sink.interactive_parse_time and content.sink.perf_parse_time to static prefs.
Differential Revision: https://phabricator.services.mozilla.com/D40138
--HG--
extra : moz-landing-system : lando
Converts VarCache pref content.sink.pending_event_mode to a static pref and removes the all.js value. Since the value in all.js is only set in the `ifndef XP_WIN` condition, the pref favors that value only as needed.
Differential Revision: https://phabricator.services.mozilla.com/D40136
--HG--
extra : moz-landing-system : lando
Converts the varcache prefs 'content.sink.interactive_deflect_count' and 'content.sink.perf_deflect_count' to static prefs.
Differential Revision: https://phabricator.services.mozilla.com/D40135
--HG--
extra : moz-landing-system : lando
Converts content.notify.interval varcache pref to a static pref. Rewords the description, which referenced 'gNotificationInterval' which no longer existed.
Differential Revision: https://phabricator.services.mozilla.com/D40134
--HG--
extra : moz-landing-system : lando
Converts content.notify.ontimer varcache pref to static pref. Also adds a new pref group, 'content'.
Differential Revision: https://phabricator.services.mozilla.com/D40125
--HG--
extra : moz-landing-system : lando
This introduces a pref "toolkit.telemetry.isGeckoViewStreaming" to control
whether gecko view products (those with "toolkit.telemetry.isGeckoViewMode"
set) are of the variety that use the upcoming streaming Telemetry API.
Differential Revision: https://phabricator.services.mozilla.com/D38738
--HG--
extra : moz-landing-system : lando
Remove the pref dom.xhr.lowercase_header.enabled, as we are unaware of any actionable compat concerns now that bug 1540688 landed, and an ESR had been spun off.
Differential Revision: https://phabricator.services.mozilla.com/D39636
--HG--
extra : moz-landing-system : lando
Some double definitions would have caused C++ compile errors, but some would
not, and I'm not even sure what the runtime behaviour would have been in those
latter cases...
The patch also removes a duplicated definition of privacy.resistFingerprinting,
which snuck in recently.
Differential Revision: https://phabricator.services.mozilla.com/D39431
--HG--
extra : moz-landing-system : lando
We unconditionally clamp all times to 20us and not just performance.now()
This will consistently apply a 'safe' minimal clamping (it's not safe but
I guess it's safer than ns-level precision) to all timestamps, and remove
intermittents that are caused by comparing a clamped performance.now() to
an unclamped [something else].
Differential Revision: https://phabricator.services.mozilla.com/D38806
--HG--
extra : moz-landing-system : lando
We unconditionally clamp all times to 20us and not just performance.now()
This will consistently apply a 'safe' minimal clamping (it's not safe but
I guess it's safer than ns-level precision) to all timestamps, and remove
intermittents that are caused by comparing a clamped performance.now() to
an unclamped [something else].
Differential Revision: https://phabricator.services.mozilla.com/D38806
--HG--
extra : moz-landing-system : lando
They're infallible in practice and always `NS_OK`. (This stems from
`AddVarCacheNoAssignment()` always returning `NS_OK`.)
As a result, the commit removes lots of unnecessary checks.
Differential Revision: https://phabricator.services.mozilla.com/D39804
--HG--
extra : moz-landing-system : lando
It's an annoyingly long name that causes lots of line breaking, and it's not
exposed outside of libpref.
Differential Revision: https://phabricator.services.mozilla.com/D39803
--HG--
extra : moz-landing-system : lando
This makes it clear that these run when prefs are initialized (like
`InitVarCache()`) rather than being vanilla `set` calls that happen at any
point during runtime.
Differential Revision: https://phabricator.services.mozilla.com/D39650
--HG--
extra : moz-landing-system : lando
Lots of operations in Preferences.cpp can only occur in the parent process
and/or on the main thread. It has a bunch of assertions to enforce/document
this. This commit adds some more, because they're really useful for
understanding the code.
The commit also removes an unnecessary `XRE_IsParentProcess()` check in
`pref_SetPref()` (because that condition is always true, as the added assertion
indicates), and renames a parameter in `InitVarCachePrefs()`.
Differential Revision: https://phabricator.services.mozilla.com/D39649
--HG--
extra : moz-landing-system : lando
Converts dom.timeout.enable_budget_timer_throttling from varcache pref to static pref, removes entry from all.js, adds entry to StaticPrefList.yaml. Uses the all.js value and not the value declared in TimeoutManager.cpp. Since this removes the last varcache pref from TimeoutManager::Initialize(), I also removed the Initialize() function and its call in nsGlobalWindowInner.
Differential Revision: https://phabricator.services.mozilla.com/D39455
--HG--
extra : moz-landing-system : lando
Converts dom.timeout.budget_throttling_max_delay varcache pref to static pref, removes entry from all.js, and adds entry to StaticPrefList.yaml
Differential Revision: https://phabricator.services.mozilla.com/D39451
--HG--
extra : moz-landing-system : lando
Converts dom.timeout.foreground_budget_regeneration_rate varcache pref in TimeoutManager.cpp to static pref, removes entry in all.js, adds entry in StaticPrefList.yaml.
Differential Revision: https://phabricator.services.mozilla.com/D39436
--HG--
extra : moz-landing-system : lando
Converts dom.timeout.background_budget_regeneration_rate varcache pref in TimeoutManager.cpp to static pref, removes entry in all.js, adds entry to StaticPrefList.yaml.
Differential Revision: https://phabricator.services.mozilla.com/D39435
--HG--
extra : moz-landing-system : lando
Converts dom.disable_open_click_delay from a VarCache pref in TimeoutManager.cpp to StaticPref, removes all.js entry, and corrects a typo where the value was mentioned in nsGlobalWindowInner.cpp.
Differential Revision: https://phabricator.services.mozilla.com/D39424
--HG--
extra : moz-landing-system : lando
Converts dom.timeout.max_consecutive_callbacks_ms varcache pref in TimeoutManager.cpp to static pref, removes associated variables and all.js entry, and adds entry to StaticPrefList.yaml.
Differential Revision: https://phabricator.services.mozilla.com/D39425
--HG--
extra : moz-landing-system : lando
Converts dom.timeout.throttling_delay in TimeoutManager.cpp from varcache pref to static pref, removes entry in all.js, and adds entry in StaticPrefList.yaml. Favors the all.js value over the declared value in TimeoutManager.cpp.
Differential Revision: https://phabricator.services.mozilla.com/D39426
--HG--
extra : moz-landing-system : lando
Removes dom.min_tracking_timeout_value and dom.min_tracking_background_timeout_value, because they are never used.
Differential Revision: https://phabricator.services.mozilla.com/D39429
--HG--
extra : moz-landing-system : lando
Converts dom.min_background_timeout_value in TimeoutManager.cpp to static pref, removes entry in all.js, adds entry to StaticPrefList.yaml.
Differential Revision: https://phabricator.services.mozilla.com/D39430
--HG--
extra : moz-landing-system : lando
Converts dom.min_timeout_value varcache pref from TimeoutManager::Initialize() to a static pref, and removes its entry and associated constants from TimeoutManager.cpp and all.js
Differential Revision: https://phabricator.services.mozilla.com/D39416
--HG--
extra : moz-landing-system : lando
`AddVarCache()` has a `bool aSkipAssignment` parameter. This patch removes that
parameter by splitting the function in two: `AddVarCache()` and
`AddVarCacheNoAssignment()`. (The former calls the latter.)
There are also tons of `Add*VarCache()` functions with `aSkipAssignment`
parameters that default to `false`. These defaults are never overridden, so
this patch removes the unnecessary arguments.
Differential Revision: https://phabricator.services.mozilla.com/D39433
--HG--
extra : moz-landing-system : lando
This requires replacing inclusions of it with inclusions of more specific prefs
files.
The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.
Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.
Differential Revision: https://phabricator.services.mozilla.com/D39138
--HG--
extra : moz-landing-system : lando
Instead of generating a single `init/StaticPrefList.h`, we now generate:
- `init/StaticPrefListAll.h`;
- `StaticPrefsAll.h`;
- one `init/StaticPrefList_*.h` file for each pref group;
- one `StaticPrefs_*.h` file for each pref group.
`StaticPrefs.h` still exists -- it's equivalent to all the `StaticPrefs_*.h`
files combined -- so no `.cpp` files are changed by this commit. The next
commit will remove that file and replace inclusions of it with inclusions of
the new files.
The patch also adds checking of the type of the `do_not_use_directly` field.
Differential Revision: https://phabricator.services.mozilla.com/D39134
--HG--
extra : moz-landing-system : lando
For background information on what "cancel content JS" does, see bug 1493225.
Differential Revision: https://phabricator.services.mozilla.com/D38264
--HG--
extra : moz-landing-system : lando
Detailed page load performance measurements from Denis indicate this should be okay
on the reference hardware and now we have 10/100/1000 warm-up thresholds so there's
a nice pattern there.
Differential Revision: https://phabricator.services.mozilla.com/D39146
--HG--
extra : moz-landing-system : lando
These files exist because they were the proof-of-concept first step for
splitting the static prefs header files. Now that those header files can be
generated from a script, we need to move the `accessibility.*` prefs into the
YAML file.
Differential Revision: https://phabricator.services.mozilla.com/D39132
--HG--
extra : moz-landing-system : lando
There was a missing setter function for this combination, which hasn't been
used before.
Differential Revision: https://phabricator.services.mozilla.com/D39263
--HG--
extra : moz-landing-system : lando
Streamlined ifdefs by removing the remaining instances of PREF_VALUE. Also, changed media.eme.enabled to benefit from IS_NIGHTLY_BUILD, and removed duplicate logic in media.rdd-vorbis.enabled.
Differential Revision: https://phabricator.services.mozilla.com/D38952
--HG--
extra : moz-landing-system : lando
Defines and uses constants for patterns that commonly recur in StaticPrefList.yaml, such as #ifdef NIGHTLY_BUILD
Differential Revision: https://phabricator.services.mozilla.com/D38948
--HG--
extra : moz-landing-system : lando
Updated repetitive #ifdef RELEASE_OR_BETA pattern to use the existing constant at the top of the file. Renamed NOT_IN_RELEASE_OR_BETA_VALUE to IS_NOT_RELEASE_OR_BETA, to follow naming conventions in child revisions.
Differential Revision: https://phabricator.services.mozilla.com/D38947
--HG--
extra : moz-landing-system : lando
`sGfxLogLevel` is a global variable whose value mirrors the value of the
"gfx.logging.level" pref in the prefs table, and is kept up to date by a
prefs callback.
But "gfx.logging.level" is a static pref that already has a mirror variable,
accessible via `StaticPrefs::gfx_logging_level()`.
So we can use the latter and remove the former, and this patch does that. The
patch also removes a sentence in a comment that refers to special treatment of
LOG_DEBUG and LOG_DEBUG_PRLOG, because that sentence appears to be referring to
something (another comment?) that is no longer present.
Differential Revision: https://phabricator.services.mozilla.com/D35625
--HG--
extra : moz-landing-system : lando
Currently it's completely unclear at use sites that the getters for `once`
static prefs return the pref value from startup, rather than the current pref
value. (Bugs have been caused by this.) This commit improves things by changing
the getter name to make it clear that the pref value obtained is from startup.
This required changing things within libpref so it distinguishes between the
"base id" (`foo_bar`) and the "full id" (`foo_bar` or
`foo_bar_DoNotUseDirectly` or `foo_bar_AtStartup` or
`foo_bar_AtStartup_DoNotUseDirectly`; the name used depends on the `mirror` and
`do_not_use_directly` values in the YAML definition.) The "full id" is used in
most places, while the "base id" is used for the `GetPrefName_*` and
`GetPrefDefault_*` functions.
(This is a nice demonstration of the benefits of the YAML file, BTW. Making
this change with the old code would have involved adding an entry to every
single pref in StaticPrefList.h.)
The patch also rejigs the comment at the top of StaticPrefList.yaml, to clarify
some things.
Differential Revision: https://phabricator.services.mozilla.com/D38604
--HG--
extra : moz-landing-system : lando
This better distinguishes it from the pref name part of the getter, which uses
snake case.
Differential Revision: https://phabricator.services.mozilla.com/D38603
--HG--
extra : moz-landing-system : lando
Preferences::GetBool is not thread-safe, StaticPrefs are.
Also StaticPrefs are nicer anyway.
There's a lot of Preferences:: usage in dom/media which looks suspicious, though
I don't know if all that runs on the main thread.
Differential Revision: https://phabricator.services.mozilla.com/D38097
--HG--
extra : moz-landing-system : lando
This commit introduces StaticPrefList.yaml, which encodes the same information
as StaticPrefList.h. The .yaml file was generated with a script, which is not
part of this commit because it only needs to be used once. (I will attach it to
the bug, however.)
The commit doesn't remove StaticPrefList.h, I will do that in the next commit.
(This makes things it easier to rerun the header-to-YAML script if/when
necessary.) The commit does modify the comment at the top of StaticPrefList.h;
that modified comment can also be seen at the top of StaticPrefList.yaml.
This commit also adds a script that converts the YAML to a header file. This
script becomes part of the build.
I have done my best to verify that the conversion is correct by comparing the
original .h file with the one generated from the YAML file. They are identical,
modulo removed comments and the processing of preprocessor directives.
Differential Revision: https://phabricator.services.mozilla.com/D37526
--HG--
extra : moz-landing-system : lando
Minor things to ease the transition to StaticPrefList.yaml.
- Rename apz_touch_drag_enabled() to the correct apz_drag_touch_enabled(), and
media_mwf_low_latency_force_disabled() to the correct
media_wmf_low_latency_force_disabled().
- Change some trailing C-style comments to C++-style comments. This makes life
easier for the script I wrote to convert StaticPrefList.h to
StaticPrefList.yaml, which will be used for the next patch.
- Avoid comments on #define lines, because they aren't handled in the YAML
input.
- Convert a multi-line `#if` condition to a single line, because
Preprocessor.py doesn't handle multi-line conditions.
- Remove one unnecessary `#undef PREF_VALUE` directive.
- Move intl.charset.detector.iso2022jp.allowed to the correct section, so the
YAML processing script won't complain.
- Change an `int` pref to `int32_t`, again so the YAML processing script won't
complain.
- Change OS_OPENBSD to XP_OPENBSD, because the former isn't defined for
preprocessor.py. (It's also only defined in C/C++ when chromium-config.h is
included, which isn't always the case.)
Differential Revision: https://phabricator.services.mozilla.com/D37815
--HG--
extra : moz-landing-system : lando
This preference doesn't do anything yet but having it at this point in the
patch stack lets me untangle things a bit.
Differential Revision: https://phabricator.services.mozilla.com/D37914
--HG--
extra : moz-landing-system : lando
Preferences::GetBool is not thread-safe, StaticPrefs are.
Also StaticPrefs are nicer anyway.
There's a lot of Preferences:: usage in dom/media which looks suspicious, though
I don't know if all that runs on the main thread.
Differential Revision: https://phabricator.services.mozilla.com/D38097
--HG--
extra : moz-landing-system : lando
When we build mar, there is no reason not to build signmar as well. It
used to be optional because not all platforms were supported, but they
are now.
... except when building the newly added tools/update-packaging,
which builds the mar tool as a standalone thing, and building signmar
as well causes complications.
Differential Revision: https://phabricator.services.mozilla.com/D36992
--HG--
extra : moz-landing-system : lando
The 50 threshold for Baseline is pretty arbitrary and will likely change later.
Differential Revision: https://phabricator.services.mozilla.com/D37214
--HG--
extra : moz-landing-system : lando
Looks like some users use it, and it's not too much effort to support. This is
somewhat simpler, and IMO better than what existed before bug 1514655 because:
* It doesn't regress bidi rendering when the pref is disabled (before, the pref
would prevent plaintext.css from applying altogether).
* It's consistent with the way view-source docs work.
* It doesn't use non-standard stylesheet APIs to toggle the stylesheet
(bug 1260720).
Differential Revision: https://phabricator.services.mozilla.com/D37742
--HG--
extra : moz-landing-system : lando
Looks like some users use it, and it's not too much effort to support. This is
somewhat simpler, and IMO better than what existed before bug 1514655 because:
* It doesn't regress bidi rendering when the pref is disabled (before, the pref
would prevent plaintext.css from applying altogether).
* It's consistent with the way view-source docs work.
* It doesn't use non-standard stylesheet APIs to toggle the stylesheet
(bug 1260720).
Differential Revision: https://phabricator.services.mozilla.com/D37742
--HG--
extra : moz-landing-system : lando
Work in progress.
Add callback infrastructure to preferenceBindings to replace XUL-attributes.
Differential Revision: https://phabricator.services.mozilla.com/D32326
--HG--
extra : moz-landing-system : lando