Summary:
Add autofill hint test if using Android 8+.
Depends on D12881
Reviewers: droeh
Reviewed By: droeh
Bug #: 1497682
Differential Revision: https://phabricator.services.mozilla.com/D12882
--HG--
extra : rebase_source : c4458b62d48434fe9d19f8ded04f2bc2666647ff
extra : histedit_source : 5ff01309b49965ff008e431059368ca0f05d56e6
Summary:
LastPass will fill password to all input elements which InputType is
TYPE_CALSS_TEXT and TYPE_TEXT_VARIATION_WEB_EDIT_TEXT and has no AutofillHint.
And it will fill username when InputType and AutofillHint is nothing in
<input type="text">.
Actually, current implementation of GeckoView sets InputType only for
<input type="text">, so LastPass fills password to all <input type="text">
So as workaround, we should set InputType and AutofillHint when input element
presumes username fields.
Depends on D12880
Reviewers: droeh
Reviewed By: droeh
Bug #: 1497682
Differential Revision: https://phabricator.services.mozilla.com/D12881
--HG--
extra : rebase_source : b5ab3deadf0dd67bbdb1aa7e7656fe677c6670c4
This simplifies things all around, and gets rid of one more unnecessary
component registration.
--HG--
rename : toolkit/components/extensions/extension-process-script.js => toolkit/components/extensions/ExtensionProcessScript.jsm
extra : rebase_source : 7ceb6ada0730f8241bbd5ddbd889a320da22b1b1
This makes it so that apilints lints with "GV" codes are enforced and will fail
the build.
Depends on D13882
Differential Revision: https://phabricator.services.mozilla.com/D13883
--HG--
extra : moz-landing-system : lando
Child processes cannot access textures allocated in the parent process,
which is needed by the compositor to render video elements efficiently.
Unfortunately, Android doesn't expose Sufrace buffers (sharable across
processes) in the SDK/NDK as other platforms, so we need to generate
extra texture/surface in the child process and update texture images
through the surface, which is passed to the parent process for the remote
texture to copy its contents into.
Differential Revision: https://phabricator.services.mozilla.com/D11939
--HG--
rename : mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/gfx/ISurfaceAllocator.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/gfx/SyncConfig.aidl
extra : moz-landing-system : lando
Inside the tests from testMediaControl audio focus is not immediately checked
as for the tests from testAudioFocus but nonetheless we should make sure
AudioFocusAgent is initialized before proceeding with the media tests.
Depends on D14417
Differential Revision: https://phabricator.services.mozilla.com/D14418
--HG--
extra : moz-landing-system : lando
There is a small race between actually starting the test after Gecko:Ready and
having the AudioFocusAgent that the tests depend on initialized, which is also
done after Gecko:Ready.
To avoid this situation we will wait for Gecko:Ready and then for
AudioFocusAgent to complete it's initialization.
Differential Revision: https://phabricator.services.mozilla.com/D14417
--HG--
extra : moz-landing-system : lando
Looking at Crash Stats, the most common causes of OOMs involving the RecentTabs-
Adapter happen while reading the previous session store file into memory for
parsing, respectively while stringifying the parsed data back into a flat String
for further storage.
In the former case, we give up completely, because there's nothing we can do
short of switching to a streaming JSON parser (which is out of scope for this
bug), while in the latter case, we only skip the affected tab in the hope that
at least some tabs might be small enough to not cause an OOM.
Differential Revision: https://phabricator.services.mozilla.com/D12963
--HG--
extra : moz-landing-system : lando
We just treat this like a defective session store file and first fall back to
the backup (although if the OOM is caused by a too-large file, it is likely that
the backup will be too large as well) and then turn off session restoring
completely.
We don't plug those failures into the session restore telemetry, though, because
that is supposed to only cover truly defective files.
Differential Revision: https://phabricator.services.mozilla.com/D12962
--HG--
extra : moz-landing-system : lando
This patch moves all UA Widget calls to helper functions in Element.cpp. The helper function AttachAndSetUAShadowRoot sets the shadow root in a runnable, so that it is in the same order of NotifyUAWidget* runnables.
Differential Revision: https://phabricator.services.mozilla.com/D13479
--HG--
extra : moz-landing-system : lando
This adds a task to each project called `downloadDependencies`. This task will
go through each configuration and resolve every dependency so that the gradle
cache contains a copy of every file needed for building and running tests. This
is intended to be used together with our nexus oss database but it can be used
locally too.
Note: `downloadDependencies` does not download dependencies added a runtime,
e.g. by plugins like apilint, checkstyle, findbugs... so we still need to run
those tasks to collect their dependencies.
Depends on D14516
Differential Revision: https://phabricator.services.mozilla.com/D14622
--HG--
extra : moz-landing-system : lando
There are multiple fixes contained in this patch:
- fixes for Android/mobile support
- adding extra strings to the ftl file that were never defined before, and previously the ID was just printed to the page
- update test_l10n.py to not rely on about:support anymore
- changing Troubleshoot.jsm to return and ID and args for the strings that should be displayed, so it is compatible with the Fluent API
- misc. fixes so strings that are not localized don't go through the Fluent codepath
Differential Revision: https://phabricator.services.mozilla.com/D15437
--HG--
extra : moz-landing-system : lando
* Make setters for init only fields protected.
* Remove tests that ensure that init only fields throw an error when set on the fly as this is no longer possible.
* Update tests to use builder when init-ing settings.
* Update API doc to reflect new public API.
Differential Revision: https://phabricator.services.mozilla.com/D13420
--HG--
extra : moz-landing-system : lando
Migrate existing code to use these new methods instead of the exisiting get/set<DataType>(Key, Value) methods.
This commit does not tackle making the old functions inaccessible publicly as this requires a complete refactoring of the Setting @interface in `GeckoSessionTestRule.java`. There may be a follow up commit if this is something we want to do.
Differential Revision: https://phabricator.services.mozilla.com/D13417
--HG--
extra : moz-landing-system : lando
These annotations do no need to be kept by the compiler and can be discarded.
Differential Revision: https://phabricator.services.mozilla.com/D14157
--HG--
extra : moz-landing-system : lando
skip on debug org.mozilla.geckoview.test.GeckoSessionTestRuleTest.waitForChromeJS
Differential Revision: https://phabricator.services.mozilla.com/D14190
--HG--
extra : moz-landing-system : lando
* Suppressed warnings for `GeckoMediaDrmBridgeV21` and `WebRequestError`
* `GeckoSession` was providing the arguments to `WebRequestError` in the incorrect order.
* Enforced `actions` array to be `SelectionActionDelegate.Action` types.
Differential Revision: https://phabricator.services.mozilla.com/D14162
--HG--
extra : moz-landing-system : lando
- `GeckoSurfaceTexture`: Added `@RequiresApi` annotation to contructor that uses `KITKAT` level superclass constructor it is not used incorrectly.
- `VsyncSource`: Added `@RequiresApi` annotation to `getRefreshRate` method, plus comment explaining that the `DisplayManager` class used by this method is API level 17+
- `GeckoMediaDRMBridgeV21`: Added `@TargetAPI` annotation to class definition as the entire class uses code API level 18 upwards.
- `JellyBeanAsyncCodec`: Removed brackets from around version check so the linter recognises it as a valid API check. Updated code to use `BUILD_VERSION` flag rather than hardcoded version number.
- `LollipopAsyncCodec`: Added `@TargetAPI` annotation to class definition as the entire class is API level 21 upwards.
- `MediaDrmProxy`: Suppress "NewAPI" lint warnings. Version is being done inside `isSystemSupported` method and therefore not picked up by linter. Updated `isSystemSupported` to use `VERSION_CODES` constant.
- `ContentUriUtils`: Suppress "NewAPI" lint warnings. Version is being checked from `isKitKat` variable and therefore not picked up by linter.
- `GeckoAppShell`: Update `getAudioOutputFramesPerBuffer` & `getAudioOutputSampleRate` methods to use `VERSION` and `VERSION_CODES` inside version check so it is picked up by linter.
- `GeckoSystemStateListener`: Added `@RequiresApi` annotation to `prefersReducedMotion` method, plus comment explaining that the `Settings.Global` class used by this method is API level 17+
- `SpeechSynthesisService`: Add version check to `run` to ensure that `TextToSpeech#getDefaultLanguage` is only called under the correct version.
Differential Revision: https://phabricator.services.mozilla.com/D13394
--HG--
extra : moz-landing-system : lando
To prevent the default URI reloading on app rotate, prevent `GeckoViewActivity` from restarting on orientation and screen size changes.
Differential Revision: https://phabricator.services.mozilla.com/D13065
--HG--
extra : moz-landing-system : lando
Implemented cache sanitizing for files generated by handling the content:// scheme.
Differential Revision: https://phabricator.services.mozilla.com/D11779
--HG--
extra : moz-landing-system : lando
Currently, when `about:debugging` is displaying, even if move to another URL on
Android, its update does not reflect to `about:debugging` page. Because the `DOMTitleChanged` event on message manager comes from only in case of remote browser. In this patch, get the event on even not remote browser, then notify to clients.
Differential Revision: https://phabricator.services.mozilla.com/D12094
--HG--
extra : moz-landing-system : lando
Added fallback for the cases where trying to obtain a file absolute path from
external storage was throwing an exception.
Differential Revision: https://phabricator.services.mozilla.com/D9248
--HG--
extra : rebase_source : 7f6386e0dd47e503c412e6e9b552e8bf935851c9
extra : source : 3ad6353532ad19cc566c6f44bb47eb514987cc99
Added catch for NumberFormatException that may be thrown when trying to open some downloaded files with Fennec.
Differential Revision: https://phabricator.services.mozilla.com/D12773
--HG--
extra : moz-landing-system : lando
This splits the two stage-package invocations (which are rather slow)
between Fennec and GeckoView, hopefully speeding local GV development
up a little (in the IDE).
In addition, we feed the packaged libs (and asset libs) through.
Differential Revision: https://phabricator.services.mozilla.com/D12799
--HG--
extra : moz-landing-system : lando
This uses |mach build faster| rather than a custom target, reducing
Make magic and making it easier to reason about the Gradle build. I
also took the opportunity to improve the task logging.
Differential Revision: https://phabricator.services.mozilla.com/D12797
--HG--
extra : moz-landing-system : lando
This is just an awkward feature of the FasterMake build system:
without a direct consumer, GENERATED_FILES aren't handled. We
"consume" them into a dummy directory that isn't packaged. Sadly, the
FasterMake generic rule doesn't handle relative directories smoothly,
so we have to special case that too.
Differential Revision: https://phabricator.services.mozilla.com/D12796
--HG--
extra : moz-landing-system : lando
1. Add successorTabId to the Tab type, so that it will be returned in, e.g.,
browser.tabs.get calls
2. Extend or create the following methods on the browser.tabs API:
- update: add successorTabId as an optional property on the provided
updateProperties object
- moveInSuccession: new method that manipulates tab successors in bulk
Differential Revision: https://phabricator.services.mozilla.com/D9272
--HG--
extra : moz-landing-system : lando
Add an optional previousTabId property to the onActivated event,
which is present if the previously activated tab is still open.
Differential Revision: https://phabricator.services.mozilla.com/D9271
--HG--
extra : moz-landing-system : lando
In this case the profile name will be null, situation already handled, in which
a telemetry ping about the crash will not be sent but the crash can still be
reported to crash-stats.
Differential Revision: https://phabricator.services.mozilla.com/D12741
--HG--
extra : moz-landing-system : lando
This adds a dummy `protected`, empty constructor to all field-only classes that
don't have one or can't because the constructor uses a private API. This will
allow embedders to mock our field-only classes or construct them without having
to use reflection.
Depends on D12550
Differential Revision: https://phabricator.services.mozilla.com/D12934
--HG--
extra : moz-landing-system : lando
Before, we always ran the "generate JNI wrappers" command and had the
command be smart about updating the output. Now we move the smarts to
the Gradle side to streamline the build.
Differential Revision: https://phabricator.services.mozilla.com/D12795
--HG--
extra : moz-landing-system : lando
This will be exploited later, when we start making the
`withGeckoBinaries` switch conditional on the tasks that Gradle is
going to execute.
Differential Revision: https://phabricator.services.mozilla.com/D12794
--HG--
extra : moz-landing-system : lando
I'm not sure how this ever worked in the `android-gradle-dependencies`
task -- it must have been because of `--continue`.
Differential Revision: https://phabricator.services.mozilla.com/D12793
--HG--
extra : moz-landing-system : lando
This has never been as useful as anticipated: we really aren't seeing
resource mismatches in the wild that need diagnostic aids.
Differential Revision: https://phabricator.services.mozilla.com/D12792
--HG--
extra : moz-landing-system : lando
--console=plain is critical in automation, but it's not always helpful
locally. Let's try without it for a while.
--continue tries to build additional tasks even after the first
failing task. It can be useful in automation ('cuz you might see more
errors) but it can also be confusing (because the build fails but
produces additional output). Let's try without it, too.
Differential Revision: https://phabricator.services.mozilla.com/D12791
--HG--
extra : moz-landing-system : lando
Before, we always ran the "generate JNI wrappers" command and had the
command be smart about updating the output. Now we move the smarts to
the Gradle side to streamline the build.
Depends on D12794
Differential Revision: https://phabricator.services.mozilla.com/D12795
--HG--
extra : moz-landing-system : lando
This will be exploited later, when we start making the
`withGeckoBinaries` switch conditional on the tasks that Gradle is
going to execute.
Depends on D12793
Differential Revision: https://phabricator.services.mozilla.com/D12794
--HG--
extra : moz-landing-system : lando
I'm not sure how this ever worked in the `android-gradle-dependencies`
task -- it must have been because of `--continue`.
Depends on D12792
Differential Revision: https://phabricator.services.mozilla.com/D12793
--HG--
extra : moz-landing-system : lando
This has never been as useful as anticipated: we really aren't seeing
resource mismatches in the wild that need diagnostic aids.
Depends on D12791
Differential Revision: https://phabricator.services.mozilla.com/D12792
--HG--
extra : moz-landing-system : lando
--console=plain is critical in automation, but it's not always helpful
locally. Let's try without it for a while.
--continue tries to build additional tasks even after the first
failing task. It can be useful in automation ('cuz you might see more
errors) but it can also be confusing (because the build fails but
produces additional output). Let's try without it, too.
Depends on D12790
Differential Revision: https://phabricator.services.mozilla.com/D12791
--HG--
extra : moz-landing-system : lando
Child processes cannot access textures allocated in the parent process,
which is needed by the compositor to render video elements efficiently.
Unfortunately, Android doesn't expose Sufrace buffers (sharable across
processes) in the SDK/NDK as other platforms, so we need to generate
extra texture/surface in the child process and update texture images
through the surface, which is passed to the parent process for the remote
texture to copy its contents into.
Differential Revision: https://phabricator.services.mozilla.com/D11939
--HG--
rename : mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/gfx/ISurfaceAllocator.aidl => mobile/android/geckoview/src/main/aidl/org/mozilla/gecko/gfx/SyncConfig.aidl
extra : moz-landing-system : lando
This allows us to use the same Java code for any native platform,
enabling a "fat" AAR.
Differential Revision: https://phabricator.services.mozilla.com/D11497
--HG--
extra : moz-landing-system : lando
This also uses idiomatic packaging of the native libraries, which
will allow easier downstream consumption of GeckoView.
Differential Revision: https://phabricator.services.mozilla.com/D10775
--HG--
extra : moz-landing-system : lando
JaCoCo chokes on default implementations in interfaces, so remove those
for now.
Differential Revision: https://phabricator.services.mozilla.com/D12607
--HG--
extra : moz-landing-system : lando
Even if the GeckoApp activity is destroyed, the user's tabs remain open as long
as the app process itself isn't killed.
Therefore, for users who aren't automatically restoring their previous session's
tabs on startup, there's no point in renaming the current session store file so
it appears under "Recently closed" instead of being automatically restored,
unless we're really doing a cold startup (and hence mIsRestoringActivity is
false).
This also better matches what we do when we *are* automatically restoring tabs:
We only do it when !mIsRestoringActivity, too.
Differential Revision: https://phabricator.services.mozilla.com/D11800
--HG--
extra : moz-landing-system : lando
The page loading indicator should be animated while it is visible.
Previously for controlling the animation the visibility state of the parent
Drawable - ShiftDrawable would be checked, which in all cases would return
true, so the animation would run indefinitely.
The patch modifies setVisible() in accordance with the Framework version of
DrawableWrapper to corectly set the visibility of both the wrapper and the
wrapped drawables so that isVisible() will now return the correct value which
will allow stopping the animation.
Differential Revision: https://phabricator.services.mozilla.com/D12552
--HG--
extra : moz-landing-system : lando
These styles and PluginHelper.js should’ve been removed back in bug 1381916.
contentPluginDisabled.png is not referenced anywhere so it is deleted together.
Differential Revision: https://phabricator.services.mozilla.com/D11701
--HG--
extra : moz-landing-system : lando
These styles and PluginHelper.js should’ve been removed back in bug 1381916.
contentPluginDisabled.png is not referenced anywhere so it is deleted together.
Differential Revision: https://phabricator.services.mozilla.com/D11701
--HG--
extra : moz-landing-system : lando
Currently, some "input" event dispatchers in our script dispatch "input" event
with UIEvent. This is completely wrong. For conforming to HTML spec, Event
is proper event. Additionally, for conforming to Input Events, InputEvent
is proper event only on <textarea> or <input> element which has a single line
editor.
For making us to maintain easier, this patch adds new API, "isInputEventTarget"
to MozEditableElement which returns true when "input" event dispatcher should
use InputEvent for the input element.
Finally, this makes some dispatchers use setUserInput() instead of
setting value and dispatching event by themselves. This also makes
us to maintain them easier.
Note that this does not touch "input" event dispatchers which dispatch events
only for chrome (such as URL bar, some pages in about: scheme) for making
this change safer as far as possible.
Differential Revision: https://phabricator.services.mozilla.com/D12247
--HG--
extra : moz-landing-system : lando
Leaving the Fennec process running after a swipe-to-kill puts Fennec in an unrecoverable state; this ensures we kill the process anytime a user swipes-to-kill Fennec and therefore lets us recover as usual.
This allows us to use the same Java code for any native platform,
enabling a "fat" AAR.
Differential Revision: https://phabricator.services.mozilla.com/D11497
--HG--
extra : moz-landing-system : lando
This also uses idiomatic packaging of the native libraries, which
will allow easier downstream consumption of GeckoView.
Differential Revision: https://phabricator.services.mozilla.com/D10775
--HG--
extra : moz-landing-system : lando
Summary:
Speculative fix.
initialize() is called by Gecko on it's background thread after it started.
The value for the "dom.audiochannel.mediaControl" preference also comes on a
background thread.
This both can end up registering the HeadSetStateReceiver while unregistering it
happens only on the main thread.
The patch tries to avoid the race condition by making sure Receiver's
registering and unregistering is done serially on the main thread.
Depends on D12032
Reviewers: JanH
Reviewed By: JanH
Subscribers: jya
Bug #: 1505685
Differential Revision: https://phabricator.services.mozilla.com/D12033
--HG--
extra : rebase_source : 11c6b6a78f310394d91b43c0d1408e341a827d85
extra : amend_source : 07cb38f0435b58462ca0329b8bd41f5d178ff4d1
Summary:
Executing SwitchBoard.loadConfig() on a background thread is the main purpose
of the AsyncConfigLoader so executing it immediately again in the same thread
is redundant.
Depends on D12031
Reviewers: JanH
Reviewed By: JanH
Bug #: 1505685
Differential Revision: https://phabricator.services.mozilla.com/D12032
--HG--
extra : amend_source : b8ab5400e4b0afffc918754cc2e39141c331adcf
Summary:
Speculative fix for avoiding the situation in which the initialization of Mma
and registering of the PackageAddedReceiver continues on the background thread
after BrowserApp is destroyed and calls for unregistering the receiver.
By registering the receiver on the main thread we have the benefit of
sequentially execution which would guarantee that the registration is done
before trying to unregister it.
Reviewers: JanH
Reviewed By: JanH
Bug #: 1505685
Differential Revision: https://phabricator.services.mozilla.com/D12031
--HG--
extra : rebase_source : 2f0512cc269b7e6d2ee825cc82bfcdc6f6ad00d6
extra : amend_source : eb979af1cd6fe567ab3fe7213c7f631d68d9c255
Summary:
Speculative fix.
initialize() is called by Gecko on it's background thread after it started.
The value for the "dom.audiochannel.mediaControl" preference also comes on a
background thread.
This both can end up registering the HeadSetStateReceiver while unregistering it
happens only on the main thread.
The patch tries to avoid the race condition by making sure Receiver's
registering and unregistering is done serially on the main thread.
Depends on D12032
Reviewers: JanH
Reviewed By: JanH
Subscribers: jya
Bug #: 1505685
Differential Revision: https://phabricator.services.mozilla.com/D12033
--HG--
extra : rebase_source : 97cc2d3aa8f0753e62c119a614bd8f0a7a648663
extra : histedit_source : 05f5060e9f7fd87a0f4cbce4d3f6539c3a4605d3
Summary:
Executing SwitchBoard.loadConfig() on a background thread is the main purpose
of the AsyncConfigLoader so executing it immediately again in the same thread
is redundant.
Depends on D12031
Reviewers: JanH
Reviewed By: JanH
Bug #: 1505685
Differential Revision: https://phabricator.services.mozilla.com/D12032
--HG--
extra : histedit_source : 05022137e5831b0bda948580f6879f5364771e96
Summary:
Speculative fix for avoiding the situation in which the initialization of Mma
and registering of the PackageAddedReceiver continues on the background thread
after BrowserApp is destroyed and calls for unregistering the receiver.
By registering the receiver on the main thread we have the benefit of
sequentially execution which would guarantee that the registration is done
before trying to unregister it.
Reviewers: JanH
Reviewed By: JanH
Bug #: 1505685
Differential Revision: https://phabricator.services.mozilla.com/D12031
--HG--
extra : rebase_source : a3503eae5210d285ac9834ec808cd3b008177ccb
extra : histedit_source : 281412cabb12cd615b838ccec713596cbe034d0e
Make some fixes in GeckoEditable and GeckoEditableSupport to make the
new tests pass under e10s.
Differential Revision: https://phabricator.services.mozilla.com/D11989
--HG--
extra : moz-landing-system : lando
Port over some test cases from the testInputConnection robocop test.
Tests that involve JS are not currently ported over.
Differential Revision: https://phabricator.services.mozilla.com/D11988
--HG--
extra : moz-landing-system : lando
1. Add successorTabId to the Tab type, so that it will be returned in, e.g.,
browser.tabs.get calls
2. Extend or create the following methods on the browser.tabs API:
- update: add successorTabId as an optional property on the provided
updateProperties object
- moveInSuccession: new method that manipulates tab successors in bulk
Differential Revision: https://phabricator.services.mozilla.com/D9272
--HG--
extra : moz-landing-system : lando
Add an optional previousTabId property to the onActivated event,
which is present if the previously activated tab is still open.
Differential Revision: https://phabricator.services.mozilla.com/D9271
--HG--
extra : moz-landing-system : lando
This patch introduces 2 new prefs:
- devtools.console.stdout.chrome: if true, console API writes on stdout when
used by chrome code
- devtools.console.stdout.content: console API write on stdout when used by
content code.