This also adds `GeckoView.setAutofillEnabled()`, which is enabled by
default. Apps can disable this if they don't want to use the Android
autofill service. This will allow them to set their own
`AutofillDelegate` on the `GeckoSession` and provide their own
autofill implementation.
Differential Revision: https://phabricator.services.mozilla.com/D47483
--HG--
extra : moz-landing-system : lando
This is an alternative to `GeckoSession.provideAutofillVirtualStructure()`
that does not rely on the `ViewStructure` class. This is necessary to
support autofill functionality on older devices or without involving
the Android autofill service.
This patch also moves the existing autofill tests into
AutofillDelegateTest.kt and converts them to use this new API
instead of the `ViewStructure` one. This allows us to test on devices
lower than SDK 26 (which includes automation). In addition to the API
changes, some tests also needed some greening up.
Differential Revision: https://phabricator.services.mozilla.com/D47482
--HG--
extra : moz-landing-system : lando
This also moves `autofill()` and `provideAutofillVirtualStructure()`
into `GeckoSession`.
Differential Revision: https://phabricator.services.mozilla.com/D47481
--HG--
extra : moz-landing-system : lando
There is a duplicate setting for a pref in raptor's user.js file. This patch removes the duplicate.
Differential Revision: https://phabricator.services.mozilla.com/D48204
--HG--
extra : moz-landing-system : lando
During path building, mozilla::pkix filters out candidate certificates provided
by trust domains where the subject distinguished name does not match the issuer
distinguished name of the certificate it's trying to find an issuer for.
However, if there's a problem decoding the candidate issuer certificate,
mozilla::pkix will make a note of this error, regardless of if that certificate
was potentially a suitable issuer. If no trusted path is found, the error from
that unrelated certificate may ultimately be returned by mozilla::pkix,
resulting in confusion.
Before this patch, NSSCertDBTrustDomain could cause this behavior by blithely
passing every known 3rd party certificate to mozilla::pkix (other sources of
certificates already filter on subject distinguished name). This patch adds
filtering to 3rd party certificates as well.
Differential Revision: https://phabricator.services.mozilla.com/D48120
--HG--
extra : moz-landing-system : lando
This is a partial cherrypick of https://webrtc.googlesource.com/src/+/f89110d67902e787f6745ad2b52f7f09fc808512.
The cropping changes in that revision are problematic on our version of webrtc.org and
result in distorted video, which looks as though there is a stride problem. This takes
the change to try to use PW_RENDERFULLCONTENT and to fall back to the current code if
that fails. This fixes capturing Chrome windows and allows Firefox to properly capture
its own window.
Using PW_RENDERFULLCONTENT can adversely affect performance. Using the
CroppingWindowCapturer can avoid using the WindowCapturer in some circumstances and so
result in better performance. Bug 1586071 tracks switching to the
CroppingWindowCapturer.
Differential Revision: https://phabricator.services.mozilla.com/D48108
--HG--
extra : moz-landing-system : lando
This should fix the doc builds on Windows, as sphinx-js added Windows support in 2.3.1 and 2.4. We also now get support for variadic args, @deprecated, and @see, along with other features.
sphinx-js 2.7.1 changed the default cwd to be the one containing conf.py, so I also had to twiddle `jsdoc_config_path`.
Let some other pipenv pinnings update themselves as well, as, if I don't, they'll just update themselves the next time somebody runs `mach doc`, dirtying their tree.
I suspect this also fixes bug 1556460, whose equivalent bug in sphinx-js is https://github.com/mozilla/sphinx-js/issues/106. IOW, it should no longer break with versions of jsdoc >= 3.6.
Differential Revision: https://phabricator.services.mozilla.com/D48122
--HG--
extra : moz-landing-system : lando
The changes are just cleanup for member variables/methods that should
be private to ServiceWorkerManager.
Depends on D48179
Differential Revision: https://phabricator.services.mozilla.com/D48181
--HG--
extra : moz-landing-system : lando
Also replace ServiceWorkerManager shutdown logic's normal for-loops with
range-based for-loops.
Depends on D43170
Differential Revision: https://phabricator.services.mozilla.com/D48179
--HG--
extra : moz-landing-system : lando
Due to limitations in the test harness, the "serviceworker_e10s" (for mochitest
and xpcshell) and "sw-e10s" (for WPT) values will match mozinfo's "nightly_build"
value, unless overridden by "--setpref dom.serviceWorkers.parent_intercept=..."
provided at the CLI.
Differential Revision: https://phabricator.services.mozilla.com/D43170
--HG--
extra : moz-landing-system : lando
- Listen for observer topics in the parent-process when in parent intercept mode
- Remove an extra postMessage call (and the corresponding message handler)
Differential Revision: https://phabricator.services.mozilla.com/D44513
--HG--
extra : moz-landing-system : lando
Environment should be bytes on Python 2 (to avoid Windows errors) and text on
Python 3. The 'ensure_subprocess' env utility function handles this.
Differential Revision: https://phabricator.services.mozilla.com/D48115
--HG--
extra : moz-landing-system : lando
Because it's possible to have the IPC fail when checking if MediaKeySystemAccess
should be allowed, we should gracefully handle the IPC failure case. If we don't
gracefully handle here, closing the tab during requestMediaKeySystemAccess can
result in crashing the content process.
Differential Revision: https://phabricator.services.mozilla.com/D48116
--HG--
extra : moz-landing-system : lando
Instead of using the list of FxA devices from the Sync clients engine,
we now fetch the list of Send Tab devices from FxA. This works like
this:
* `FxAccountsDevice#getDeviceList` has been split up into
`recentDeviceList` and `refreshDeviceList`.
* `recentDeviceList` synchronously returns the last fetched list, so
that consumers like Send Tab can use it right away.
* `refreshDeviceList` is asynchronous, and refreshes the last fetched
list. Refreshes are limited to once every minute by default, matching
the minimum sync interval (Send Tab passes the `ignoreCached` option
to override the limit if the user clicks the "refresh" button).
Concurrent calls to `refreshDeviceList` are also serialized, to
ensure the list is only fetched once.
* The list is flagged as stale when a device is connected or
disconnected. It's still kept around, but the next call to
`refreshDeviceList` will fetch a new list from the server.
* The Send Tab UI refreshes FxA devices in the background. Matching FxA
devices to Sync client records is best effort; we don't do it if Sync
isn't configured or hasn't run yet. This only impacts the fallback
case if the target doesn't support FxA commands.
Differential Revision: https://phabricator.services.mozilla.com/D47521
--HG--
extra : moz-landing-system : lando
This commit contains no functional changes, just moving code around to
make the next patch in this series easier to write.
Differential Revision: https://phabricator.services.mozilla.com/D47520
--HG--
extra : moz-landing-system : lando
This test was originally written to test HTTPResponseProcessSelection before it
was hooked up into the process switch machinery. It hooks into some parts of the
process switch process which should probably be removed in the future (such as
overriding the child listener component registration), and is broken under
fission anyway.
Differential Revision: https://phabricator.services.mozilla.com/D47313
--HG--
extra : moz-landing-system : lando
This delays when the DocumentChannelChild is canceled during a process switch to
be after the switch has been completed, to prevent the load event firing too
early in the original content process.
Differential Revision: https://phabricator.services.mozilla.com/D47312
--HG--
extra : moz-landing-system : lando
This patch changes when the original HttpChannelChild gets canceled during a
process switch to be after when the process switch is completed. This is needed
to prevent the load event firing too early in the original content process.
Differential Revision: https://phabricator.services.mozilla.com/D47311
--HG--
extra : moz-landing-system : lando
This flips the direction in which the BrowserBridge actor is generally created
such that it is generally created in the parent and sent down to a child
process.
This is done by making the decision about what kind of switch to perform in the
parent, and sending messages down to child processes async to orchestrate these
process changes.
Process launching is changed to use an async `MozPromise`-returning API in this
patch, though the actual process launching still occurs synchronously. A future
patch will enable performing async process launching through the
NewOrUsedBrowserProcess mechanism.
I know of at least a few timing issues which exist with the new logic,
especially around the state of the BrowsingContext during the process
transition. I decided to not try to fix all of these issues in this patch, as
many are complex and will require changing how we manage the lifecycle of
BrowsingContext substantially. I do, however, think that the new logic is more
reliable and has fewer timing issues than the previous logic.
Differential Revision: https://phabricator.services.mozilla.com/D47310
--HG--
extra : moz-landing-system : lando
This is useful in part 3, where the initialization will need to be called from
multiple places.
Differential Revision: https://phabricator.services.mozilla.com/D47308
--HG--
extra : moz-landing-system : lando
See https://groups.google.com/forum/#!topic/mozilla.dev.platform/vwAkuZIEhnY
* Introduce a new preference option to disable menclose's "radical" notation.
* Disable the notation in Nightly and when running WPT tests.
* Enable the notation in other channels together with a counter and
deprecation warning.
* Update WPT test legacy-menclose-radical-notation.html
- Fix test: "radical" should be equivalent to "", which is not the same as
the default value "longdiv".
See https://github.com/mathml-refresh/mathml/issues/144
- Add a test "box radical" which should be equivalent to "box".
- Remove failure expectation.
* Enable the radical notation for MathML reftests testing it.
Differential Revision: https://phabricator.services.mozilla.com/D46721
--HG--
extra : moz-landing-system : lando
This avoids an intermittent test failure when other parts of Firefox set experiments active while this test is running
Differential Revision: https://phabricator.services.mozilla.com/D47961
--HG--
extra : moz-landing-system : lando
This test fails intermittently on geckoview; when it fails, many later-running
tests fail also, causing some confusion in bug classification.
Differential Revision: https://phabricator.services.mozilla.com/D47932
--HG--
extra : moz-landing-system : lando
This test was skipped on Android for a long time, then recently enabled by
bug 1582884. Current failures are infrequent, but let's avoid them anyway.
Differential Revision: https://phabricator.services.mozilla.com/D47795
--HG--
extra : moz-landing-system : lando
This can happen if we need to use gfxFontGroup::GetDefaultFont() during stylo traversal,
but we initially failed to create the required font because the font list is stale.
In this case, use a "last-resort" default font entry as a stopgap until the font list
update is completed.
Differential Revision: https://phabricator.services.mozilla.com/D47637
--HG--
extra : moz-landing-system : lando