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
* 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