The heuristic is that we show focus outlines for unknown or key focus, and not
for mouse / touch.
This is probably not the final heuristic we take, but this allows people to play
with it and file bugs.
Once this is mature enough we should remove :-moz-focusring in favor of
:focus-visible.
Differential Revision: https://phabricator.services.mozilla.com/D63861
--HG--
extra : moz-landing-system : lando
This commit implements the actual UI changes. A follow-up commit adds the
tests for the changes. The CSS is a little bit awkard since it uses lots of
ID selectors rather than class selectors. I wanted to be able to write quick
selects, since it's selecting across the entire browser document. I feel
a little conflicted with the approach, as I would prefer to use classes in
general.
The panel.jsm.js file collects all of the UI handling changes rather than
having everything in menu-button.jsm.js, as the latter can get loaded
at startup. I'm not sure if it's completely worth the trouble of having
two files, as most of it should be pretty light.
This commit does not handle localization for the panel, as we should be moving
to Fluent. Rather than solve that here, I will follow-up with it in Bug 1599774.
Differential Revision: https://phabricator.services.mozilla.com/D62914
--HG--
extra : moz-landing-system : lando
This was inadvertently enabled and it has memory and likely
other perf impact that we're not yet ready to evaluate.
Differential Revision: https://phabricator.services.mozilla.com/D63343
--HG--
extra : moz-landing-system : lando
The heuristic is that we show focus outlines for unknown or key focus, and not
for mouse / touch.
This is probably not the final heuristic we take, but this allows people to play
with it and file bugs.
Once this is mature enough we should remove :-moz-focusring in favor of
:focus-visible.
Differential Revision: https://phabricator.services.mozilla.com/D63861
--HG--
extra : moz-landing-system : lando
This commit implements the actual UI changes. A follow-up commit adds the
tests for the changes. The CSS is a little bit awkard since it uses lots of
ID selectors rather than class selectors. I wanted to be able to write quick
selects, since it's selecting across the entire browser document. I feel
a little conflicted with the approach, as I would prefer to use classes in
general.
The panel.jsm.js file collects all of the UI handling changes rather than
having everything in menu-button.jsm.js, as the latter can get loaded
at startup. I'm not sure if it's completely worth the trouble of having
two files, as most of it should be pretty light.
This commit does not handle localization for the panel, as we should be moving
to Fluent. Rather than solve that here, I will follow-up with it in Bug 1599774.
Differential Revision: https://phabricator.services.mozilla.com/D62914
--HG--
extra : moz-landing-system : lando
Add a pref that we can gate the EME app approval behaviour behind. If the pref
is true we'll ask app for approval via a permission request. The intended use
for this is to allow GeckoView to seek explicit approval from the embedding app.
Having this pref is also useful for testing outside of GeckoView as it allows
runtime configuration of the permission check.
Differential Revision: https://phabricator.services.mozilla.com/D56102
--HG--
extra : moz-landing-system : lando
This moves the late write checking forward to before xpcom-shutdown-threads
in Nightly, and it turns it on for after the last cycle collection on
beta/release.
Differential Revision: https://phabricator.services.mozilla.com/D63215
--HG--
extra : moz-landing-system : lando
We remove the old behaviour that if webm was disabled it would be overridden under some circumstances.
Instead we replace if with a new specialised preference (media.mediasource.vp9.enabled) that is only disabled on Android.
If this pref is disabled, vp9 will only be enabled under some conditions:
- h264 HW decoding is not supported
- mp4 is not enabled
- Device was deemed fast enough to decode VP9 via the P9Benchmark utility
- On Android, A VP9 HW decoder is present.
The primary observable result is that YouTube will serve H264 content on devices with no hardware VP9 decoder
Differential Revision: https://phabricator.services.mozilla.com/D63042
--HG--
extra : moz-landing-system : lando
We remove the old behaviour that if webm was disabled it would be overridden under some circumstances.
Instead we replace if with a new specialised preference (media.mediasource.vp9.enabled) that is only disabled on Android.
If this pref is disabled, vp9 will only be enabled under some conditions:
- h264 HW decoding is not supported
- mp4 is not enabled
- Device was deemed fast enough to decode VP9 via the P9Benchmark utility
- On Android, A VP9 HW decoder is present.
The primary observable result is that YouTube will serve H264 content on devices with no hardware VP9 decoder
Differential Revision: https://phabricator.services.mozilla.com/D63042
--HG--
extra : moz-landing-system : lando
Will send an intent. The only issues I'm aware of are serialization /
simplification ones where every browser does its own thing already, and we're
the one that behaves the closest to the spec.
Differential Revision: https://phabricator.services.mozilla.com/D63585
--HG--
extra : moz-landing-system : lando
We remove the old behaviour that if webm was disabled it would be overridden under some circumstances.
Instead we replace if with a new specialised preference (media.mediasource.vp9.enabled) that is only disabled on Android.
If this pref is disabled, vp9 will only be enabled under some conditions:
- h264 HW decoding is not supported
- mp4 is not enabled
- Device was deemed fast enough to decode VP9 via the P9Benchmark utility
- On Android, A VP9 HW decoder is present.
The primary observable result is that YouTube will serve H264 content on devices with no hardware VP9 decoder
Differential Revision: https://phabricator.services.mozilla.com/D63042
--HG--
extra : moz-landing-system : lando
***
Bug 1610402 - Use static prefs for view_source.{wrap_long_lines,syntax_highlight,tab_size} r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D63470
--HG--
extra : moz-landing-system : lando
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.
Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.
Differential Revision: https://phabricator.services.mozilla.com/D62604
--HG--
extra : moz-landing-system : lando
We remove the old behaviour that if webm was disabled it would be overridden under some circumstances.
Instead we replace if with a new specialised preference (media.mediasource.vp9.enabled) that is only disabled on Android.
If this pref is disabled, vp9 will only be enabled under some conditions:
- h264 HW decoding is not supported
- mp4 is not enabled
- Device was deemed fast enough to decode VP9 via the P9Benchmark utility
- On Android, A VP9 HW decoder is present.
The primary observable result is that YouTube will serve H264 content on devices with no hardware VP9 decoder
Differential Revision: https://phabricator.services.mozilla.com/D63042
--HG--
extra : moz-landing-system : lando
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.
Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.
Differential Revision: https://phabricator.services.mozilla.com/D62604
--HG--
extra : moz-landing-system : lando
I don't think we want to keep the ugly widget hacks forever. Let me know if
you'd rather keep the property behind a pref but I don't think there's a point
in doing that.
Differential Revision: https://phabricator.services.mozilla.com/D62649
--HG--
extra : moz-landing-system : lando
I don't think we want to keep the ugly widget hacks forever. Let me know if
you'd rather keep the property behind a pref but I don't think there's a point
in doing that.
Differential Revision: https://phabricator.services.mozilla.com/D62649
--HG--
extra : moz-landing-system : lando
When in private browsing mode and the
'browser.privatebrowsing.forceMediaMemoryCache' pref is set to 'true'
MediaCache::GetMediaCache will only return an in-memory cache to avoid
disk leakage.
Differential Revision: https://phabricator.services.mozilla.com/D22337
--HG--
extra : moz-landing-system : lando
Some IMEs such as GBoard use IME composition for prediction even if en-us
language. And it won't generate KeyEvent via InputConnection object.
Actually, we can emulate key event for this situation via
intl.ime.hack.on_any_apps.fire_key_events_for_composition, so let's turn on
this preference for release build.
Also, Chrome/Android dispatch key event on prediction, so GeckoView should
dispatch it too.
Differential Revision: https://phabricator.services.mozilla.com/D63122
--HG--
extra : moz-landing-system : lando
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.
Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.
Differential Revision: https://phabricator.services.mozilla.com/D60919
--HG--
extra : moz-landing-system : lando
Chrome does not allow nested `Document.execCommand()` calls:
https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/editing/commands/document_exec_command.cc;l=75;drc=301e5d079a1b4c29c5b17574d0470e6db7370acc
On the other hand, Safari (and Firefox) allows it. However, it's worthwhile to
follow Chrome's behavior.
This patch makes `Document::ExecCommand()` return `false` when it's called
while running another `Document::ExecCommand()` call on Nightly and early Beta.
This is exactly same behavior, and we should watch broken web apps reports
for a while before riding this on the train.
And this patch sets the pref to `true` when all crash tests under
`editor/libeditor/crashtests` which depend on nested calls of `execCommand` run
since same things may be reproducible with other DOM APIs.
Differential Revision: https://phabricator.services.mozilla.com/D62815
--HG--
extra : moz-landing-system : lando
I think this is ready. We see no late write checks coming in from this
period in telemetry, and it's early in the cycle, so I think the best
time to enable this is now.
Differential Revision: https://phabricator.services.mozilla.com/D62456
--HG--
extra : moz-landing-system : lando
Update the heuristic-based screen recording permission check to be more
reliable but still imperfect.
Add pref "media.macos.screenrecording.oscheck.enabled" (true by default) to
allow bypassing the permission check as a workaround and for testing.
i.e., when the pref is set,
nsIOSPermissionRequest::getScreenCapturePermissionState() always returns
PERMISSION_STATE_AUTHORIZED on macOS.
Differential Revision: https://phabricator.services.mozilla.com/D61909
--HG--
extra : moz-landing-system : lando
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.
Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.
Differential Revision: https://phabricator.services.mozilla.com/D60919
--HG--
extra : moz-landing-system : lando
* Behavior is behind a false-by-default pref signon.passwordEditCapture.enabled
* Responds to change events on the field (not input)
* New browser-chrome tests for doorhanger behavior when editing (non-generated) password field values
Differential Revision: https://phabricator.services.mozilla.com/D54264
--HG--
extra : moz-landing-system : lando
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.
Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.
Differential Revision: https://phabricator.services.mozilla.com/D60919
--HG--
extra : moz-landing-system : lando
I think this is ready. We see no late write checks coming in from this
period in telemetry, and it's early in the cycle, so I think the best
time to enable this is now.
Differential Revision: https://phabricator.services.mozilla.com/D62456
--HG--
extra : moz-landing-system : lando
* Behavior is behind a false-by-default pref signon.passwordEditCapture.enabled
* Responds to change events on the field (not input)
* New browser-chrome tests for doorhanger behavior when editing (non-generated) password field values
Differential Revision: https://phabricator.services.mozilla.com/D54264
--HG--
extra : moz-landing-system : lando
I arrived at these values after trying many variations within about:config until this felt closest to Chromium 82.
Differential Revision: https://phabricator.services.mozilla.com/D61868
--HG--
extra : moz-landing-system : lando
We need a way to switch it on and off to compare the performance and power usage of various test cases.
The new pref is "webrender.enable-multithreading" and does not require a restart.
Differential Revision: https://phabricator.services.mozilla.com/D61589
--HG--
extra : moz-landing-system : lando
I originally had this as a few patches, but the work to fix test
failures and get the whole thing into a complete working state
quickly tangled them up. Apologies for that. To summarize what's
going on here, however:
- We introduce two prefs: shutdown.fastShutdownStage and
shutdown.lateWriteChecksStage. The latter pref is set to 1, which
will leave the existing late write checking behavior unchanged.
However, we introduce this pref to make it simpler in the future
to bump the late write checks window earlier in the shutdown cycle.
- We introduce an AppShutdown class, which will house static methods
and a small amount of state for unifying some shutdown logic. Most
importantly, it will now manage the state for app initiated restarts,
as well as the logic for performing a safe fast shutdown.
- We refactored the existing restart code to call into the new
AppShutdown file, so that if we are configured to actually perform
a fast shutdown, we will be able to run the necessary restart logic
immediately before doing so. Previously, the restart logic occurred
later in the shutdown cycle than our late write checking, meaning
if we were to simply exit the process at that point in time, we
would never run the restart coe.
- Lastly, we updated two locations which called TerminateProcess and/or
_exit(0) to call into the AppShutdown method (DoFastShutdown).
Differential Revision: https://phabricator.services.mozilla.com/D59196
--HG--
extra : moz-landing-system : lando
This patch mainly enables the pref for SharedArrayBuffer on early Beta. (We have
already enabled that on Nightly by default)
This change causes some tests to fail. This patch handles the failures for
a mochitest and web-platform-tests.
Differential Revision: https://phabricator.services.mozilla.com/D60965
--HG--
extra : moz-landing-system : lando
Implement Crash Report for Reporting API.
The browser test will force a crash of the renderer and check that a report is
sent to the server. Because of this (intentional) crash, the verification test
fail. So we disable verification test for that test.
Differential Revision: https://phabricator.services.mozilla.com/D58053
--HG--
extra : moz-landing-system : lando
These are intended to be hidden prefs, so shouldn't show up in about:config.
Also sync current pref defaults with CubebUtils.cpp, which was out of date.
Differential Revision: https://phabricator.services.mozilla.com/D60617
--HG--
extra : moz-landing-system : lando
These are intended to be hidden prefs, so shouldn't show up in about:config.
Also sync current pref defaults with CubebUtils.cpp, which was out of date.
Differential Revision: https://phabricator.services.mozilla.com/D60617
--HG--
extra : moz-landing-system : lando
Begin collecting use counters for CSS properties and selected DOM APIs that Chrome implements that are missing in Firefox.
We've previously enabled these in prerelease channels for data collection experiments and we'd like to be able to report on these from time to time with less overhead moving forward.
Differential Revision: https://phabricator.services.mozilla.com/D60750
--HG--
extra : moz-landing-system : lando
This commit creates profiler presets for the current browser. It does not
handle remote profiling yet, as there is no UI surface for it yet. The
preset setting updates happen inside of the reducers and presets, and not
the selectors. This design was chosen so that as the presets were changed,
it would actually change the settings below, making it easy to change and
customize the settings by chosing the nearest preset.
The UI designs are still in a bit of a flux, so this UI design was the
easiest to implement for the initial pass, but we don't yet have consensus
on what the UI will look like for the final design.
Differential Revision: https://phabricator.services.mozilla.com/D58465
--HG--
extra : moz-landing-system : lando
A global instance of ZipArchiveLogger is used on multiple threads when the logging is turned on. This patch adds a lock to synchronize the access.
Differential Revision: https://phabricator.services.mozilla.com/D60537
--HG--
extra : moz-landing-system : lando
This is unaffected by the differences in font metrics between platform back-ends,
so should be safe to ship without significant risk that it'll be unstable or need
to be revised in future.
Depends on D59679
Differential Revision: https://phabricator.services.mozilla.com/D59680
--HG--
extra : moz-landing-system : lando
This is the main work of Richard Matheson's original patch, updated to current trunk code
and with the new attributes put behind prefs. Because some of the attributes may be more
stable than others (there was a move by Google to change how baselines are represented,
but then this was retracted because Safari is already shipping per the existing spec; and
we have some differences in how we handle font metrics between platforms which may affect
the font ascent/descent values), I've split this into several prefs so that we have the
possibility of enabling just the more stable (and/or more urgently requested) attributes.
(Note that this echos Google's approach per comment 30 of initially shipping part of the API.)
Depends on D59678
Differential Revision: https://phabricator.services.mozilla.com/D59679
--HG--
extra : moz-landing-system : lando
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.
The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;
Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).
Interning info is not used yet.
Differential Revision: https://phabricator.services.mozilla.com/D59975
--HG--
extra : moz-landing-system : lando
This is unaffected by the differences in font metrics between platform back-ends,
so should be safe to ship without significant risk that it'll be unstable or need
to be revised in future.
Depends on D59679
Differential Revision: https://phabricator.services.mozilla.com/D59680
--HG--
extra : moz-landing-system : lando
This is the main work of Richard Matheson's original patch, updated to current trunk code
and with the new attributes put behind prefs. Because some of the attributes may be more
stable than others (there was a move by Google to change how baselines are represented,
but then this was retracted because Safari is already shipping per the existing spec; and
we have some differences in how we handle font metrics between platforms which may affect
the font ascent/descent values), I've split this into several prefs so that we have the
possibility of enabling just the more stable (and/or more urgently requested) attributes.
(Note that this echos Google's approach per comment 30 of initially shipping part of the API.)
Depends on D59678
Differential Revision: https://phabricator.services.mozilla.com/D59679
--HG--
extra : moz-landing-system : lando
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.
The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;
Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).
Interning info is not used yet.
Differential Revision: https://phabricator.services.mozilla.com/D59975
--HG--
extra : moz-landing-system : lando
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.
The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;
Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).
Interning info is not used yet.
Differential Revision: https://phabricator.services.mozilla.com/D59975
--HG--
extra : moz-landing-system : lando
Introduce a new pref "layout.css.prefixes.columns" to guard the prefixed
aliases.
The modification to `properties-db.js` was generated by
`./mach devtools-css-db`.
Differential Revision: https://phabricator.services.mozilla.com/D59564
--HG--
extra : moz-landing-system : lando
Chrome started shipping this recently, so it's the easiest way to resolve
our dynamic-gpu switching issues for WebGL.
Differential Revision: https://phabricator.services.mozilla.com/D60094
--HG--
extra : moz-landing-system : lando
Legacy extensions are no longer loaded, so we can drop the build config for it. We
still need flags for handling experimental APIs since what we require differs between builds
and distributions.
Differential Revision: https://phabricator.services.mozilla.com/D57413
--HG--
extra : moz-landing-system : lando
So for everything but <length> and <length-percentage>, which have more complex
mechanics.
The pref is off for now of course.
Differential Revision: https://phabricator.services.mozilla.com/D60012
--HG--
extra : moz-landing-system : lando
Adds exponential acceleration to touchpad pan events to improve percieved scrolling responsiveness
Platforms affected: Linux, any using PANDELTA_PAGE
Differential Revision: https://phabricator.services.mozilla.com/D58395
--HG--
extra : moz-landing-system : lando
Since we're the only one sending data, and we're doing so infrequently, let's
get the pref value before each ping send instead of building a pref observer
right this second.
Differential Revision: https://phabricator.services.mozilla.com/D57107
--HG--
extra : moz-landing-system : lando
This patch makes `nsContentUtils::DispatchInputEvent()` dispatch `beforeinput`
event too. And also adds `onbeforeinput` event handler which is really
important for feature detection (although Chrome has not implemented this
attribute yet: https://bugs.chromium.org/p/chromium/issues/detail?id=947408).
However, we don't implement `InputEvent.getTargetRanges()` in this bug and
implementing `beforeinput` event may hit bugs of some web apps. Therefore,
this patch disables `beforeinput` event by default even in Nightly channel.
Differential Revision: https://phabricator.services.mozilla.com/D58125
--HG--
extra : moz-landing-system : lando
This patch makes `nsContentUtils::DispatchInputEvent()` dispatch `beforeinput`
event too. And also adds `onbeforeinput` event handler which is really
important for feature detection (although Chrome has not implemented this
attribute yet: https://bugs.chromium.org/p/chromium/issues/detail?id=947408).
However, we don't implement `InputEvent.getTargetRanges()` in this bug and
implementing `beforeinput` event may hit bugs of some web apps. Therefore,
this patch disables `beforeinput` event by default even in Nightly channel.
Differential Revision: https://phabricator.services.mozilla.com/D58125
--HG--
extra : moz-landing-system : lando
With the gtk fix in place is there any reason not to do this?
I'll send an intent if so. Let me know if you want to keep it on nightly /
early beta for a while, too.
Differential Revision: https://phabricator.services.mozilla.com/D57935
--HG--
extra : moz-landing-system : lando
There's no reason to have this pref anymore, as we've shipped with it
successfully for quite a while.
Differential Revision: https://phabricator.services.mozilla.com/D59767
--HG--
extra : moz-landing-system : lando
Behind a pref of course. Toggle that pref on on the loading/lazyload test
subdirectory, though there are no tests for the IDL (I guess once the spec PR
lands the existing IDL tests will be updated from the spec).
Differential Revision: https://phabricator.services.mozilla.com/D59764
--HG--
extra : moz-landing-system : lando
Do this only on nightly for now since we're about to enter the soft freeze.
(No test updates yet, as try is still running, and I need to figure out how to
import Oriol's changes into WPT, but I wanted to ensure that you were fine with
this)
Differential Revision: https://phabricator.services.mozilla.com/D54595
--HG--
extra : moz-landing-system : lando