Commit Graph

339 Commits

Author SHA1 Message Date
Jonathan Almeida 9078139e40 Close #18774: Migrate mutli-selection to store
Removes the recyclerview-selection library and replaces it with the
SelectionHolder/SelectionInteractor with a Store.

This is an implementation that's similar to what we have in other UI
lists (library).
2021-04-07 19:14:54 +04:00
Jonathan Almeida 9ce4adaa32 Close #18443: Use recyclerview-selection for multi-select mode in tray
Add multi-select mode to the BrowserTabsAdapter. It has the
functionality to:
 - Enable multi-select mode on long-press.
 - Enable multi-select mode when changed by an external function.
 - Only works for normal tabs (as we currently have it).

Co-authored-by: "codrut.topliceanu" <codrut.topliceanu@softvision.ro>
2021-03-27 03:42:34 +04:00
Gabriel Luong 35bae17e86 For #18408 - Add a lazy getter for AutofillCreditCardsAddressStorage 2021-03-16 13:30:43 -07:00
Sebastian Kaspari 8856a3c1d7 Integrate Android Autofill support into Nightly and debug builds. 2021-03-15 10:28:38 +01:00
Arturo Mejia 0e8dc6164d Target Android 11 2021-02-24 14:26:08 -05:00
rxu c9ed8a5b92 Add MOZILLA_ONLINE_ADDON_EXCLUSIONS for Mozilla Online builds 2021-02-22 10:00:57 -05:00
Arturo Mejia e3b6f060ae For #12822 - Opt-in of scoped storage 2021-02-02 12:58:44 -05:00
Jonathan Almeida 66b94ced14 Close #1340: Add support for WebAuthnFeature 2021-01-29 22:57:49 +04:00
Jonathan Almeida 81e08b2e7f Close #15979: Add MOZILLA_OFFICIAL flag for release builds
When we build release APKs on Mozilla infrastructure, we want a way to
know this in code for features that would only work on them.
2021-01-29 10:51:33 +04:00
William Durand 0537594810 Add new BuildConfig variables to support AMO non-production envs 2021-01-21 17:42:55 -05:00
isabelrios d8584ed632
Changes to run tests on beta builds (#16786)
* Changes to run tests on beta builds

* remove dontoptime and fix bookmarks tests

* fix ktlint and smokeTest

* add variable for package name

* rebase and fix conflicts

* add yml files and modify script to run tests

* fix yml file indentation

* changes in kind file and add try_task

* fix error kind file

* fix error kind file 2

* fix error kind file 3

* fix reviewer comments

* remove mockwebserver implementation as per reviewer comment

* run beta tests only on releases branches

* reg exp for master branch

* reg exp for master branch2

* modify try_task with release branch

* remove try file

* let's start by running only one test

* address latest reviewers comments

* double check correct tasks for release branch

* remove try file after confirming beta build run

Co-authored-by: isabel rios <isabelrios@MBP-de-isabel-2.home>
2021-01-14 15:47:36 +01:00
Sebastian Kaspari 1b6cebf4d4 Switch to new SessionStorage / session restore API. 2021-01-05 17:11:57 +01:00
Sebastian Kaspari 2cada405d8 Update Android Components to 69.0.20201207103252. 2020-12-07 15:21:08 +01:00
Elise Richards 77f061c362 Closes #8791: Use A-C tab counter and upgrades to A-C 69.0.20201203202830
Upgrades to A-C 69.0.20201203202830 and addresses breaking changes:
- Upgrades androidx workmanager to 2.4.0 in line with A-C.
- RecordingDevicesNotificationFeature was removed
- SearchUseCases accept parent session ID instead of session itself
2020-12-03 17:45:01 -05:00
jhugman ea9f692007
Nimbus-SDK-119 Get Nimbus server endpoint at build time. (#16682)
This PR builds on [AC##9024][1], and implements setting the Nimbus endpoints from [a secret set at build time][2].

For production use, this requires a secret named `nimbus_url` to be put into CI.

Note: Nimbus is currently behind a feature flag.

If developers wish to use a Nimbus server for local development, you can set the url by adding an entry into local.properties, e.g.:

```
nimbus.remote-settings.url=https://settings.stage.moz4ws.net
```

Without setting server, Nimbus will be able to function, except no experimental definitions will be fetched, and features under experiment will be configured as if not enrolled in the experiment.

[1]: https://github.com/mozilla-mobile/android-components/pull/9024
[2]: https://groups.google.com/a/mozilla.com/g/android-components-team/c/lAGVKQy8aiA/m/rY3uGAwhBAAJ
2020-12-03 16:30:20 +00:00
Sebastian Kaspari 23edda5f65 Introduce build flag for configuring test build type. 2020-11-30 18:54:20 +01:00
Sebastian Kaspari 0a419efa92 Introduce build flag for disabling optmization. 2020-11-30 18:54:20 +01:00
jhugman 9cdfb6db4a
Nimbus Global Opt Out (#16543) r=gl 2020-11-19 11:17:25 +00:00
Sebastian Kaspari 5530e102f1
For #16302 - Use larger heap size when running unit tests and fork new process after every 80 test classes. (#16526) 2020-11-12 11:09:27 -05:00
Sebastian Kaspari baaa85db80 Closes #16256: Introduce build flag for "Mozilla Online" variant.
This patch introduces a build flag that can be used on demand on the command line (`./gradlew -PmozillaOnline [..}`) or
permanently when added to local.properties (`mozillaOnline`).

At runtime `Config.channel.isMozillaOnline` will return `true` if the flag was set at build time.
2020-11-03 10:34:25 +01:00
Sebastian Kaspari 2da24cd91d
Update Android Components, Kotlin, Gradle plugin (#16021)
* Closes #13262: Update AGP to 4

* Update to Mozilla Android Components 63.0.20201019090011.

* Update Kotlin to 1.4.10 and Coroutines to 1.3.9.

* Fix new compiler warnings.

* Fix compilation of lint rules module.

* Pin JNA version.

* Fix new lint errors.

Co-authored-by: Tiger Oakes <toakes@mozilla.com>
2020-10-19 14:07:47 -04:00
Christian Sadilek f59cfd961c Configure M5 AMO collection for all builds 2020-10-19 11:19:47 -04:00
ekager d208ffe002
For #7345 - Update new shield icons, remove lottie (#15909) 2020-10-16 16:01:38 -07:00
Michael Comella 341a92a10e For #15280: add current ConstraintLayout warnings to lint baseline. 2020-10-14 15:20:28 -07:00
Mugurell dd83130d9f For #15890 - Ensure app locale switcher works for Windows builds
A hardcoded unix file separator prevented us from building a proper list of
locales for which we actually have packaged translations.
2020-10-14 15:34:39 +02:00
Jonathan Almeida 23d9951e78 Upgrade to Android Component 62.0.20201006190820 with breaking changes 2020-10-07 20:01:35 -04:00
Michael Comella f690f8736d No issue: replace LintUnitTestRunner with detekt implementation.
This should be more performant and easier to maintain.
2020-10-01 16:06:53 -07:00
Christian Sadilek 81aaacda61 Configure M5 AMO collection for Nightly/Debug 2020-09-25 11:18:07 -04:00
Christian Sadilek 601e847094 Configure M4 AMO collection for all builds 2020-09-22 19:01:37 -04:00
ekager 09fbb43f80 For #2486 - Adds Recently Closed Tabs 2020-09-11 12:02:30 -07:00
Christian Sadilek a2368e2a1e Configure M4 AMO collection for Nightly/Debug 2020-09-02 18:25:23 -04:00
Tiger Oakes d762dea49d Gradle configuration avoidance 2020-09-01 18:58:52 -07:00
Jeff Boek ff805e53ed For #14318 - Use old API to try to fix startup crash without GPS 2020-08-28 13:04:22 -07:00
Elise Richards e96eb25682 Allow play store in app review to be shown to users 2020-08-26 21:02:02 -07:00
Gabriel Luong 04dcfa5cab
For #8312 - Show Top Sites in a ViewPager (#14116) 2020-08-24 19:52:33 -04:00
Kainalu Hagiwara c119070e21 For #13030 - Use material design animation values for swipe to switch tabs. 2020-08-18 14:59:05 +03:00
Gilbert Gilb's 2743c37b40 Add custom Activity to show libraries licenses.
As Google's library for showing licences isn't open-source, this commit
reimplements its main Activity. This is in prevision to having an OSS
flavor of fenix.

We chose to not introduce dependencies to third-party libraries
such as AboutLibraries for now, and we'll stick to using Google's gradle
plugin for the dependencies extraction.

Fixes #7584

See also #162
2020-08-17 19:18:22 -07:00
Sebastian Kaspari c93a29f89a Simplify build variants to just: debug, nightly, beta and release.
Co-authored-by: Johan Lorenzo <jlorenzo@mozilla.com>
2020-08-06 11:52:10 +02:00
Michael Comella f319b457bf For #4132: remove raptor property and isRaptorEnabled manifest placeholder.
afaict, this is only used for BrowserPerformanceTestActivity, which is
being removed in this PR.
2020-08-05 10:15:46 -07:00
Tiger Oakes c1c7de5c1a
For #13262: Update gradle (#13263) 2020-08-05 09:17:30 -07:00
Tiger Oakes f3f470a977
For #13140: Use concept-menu for saved logins menu (#13143) 2020-08-02 18:48:10 -07:00
Ankur Khandelwal ddfb3dfa72
Renamed Deps.mozilla_ui_publicsuffixlist to Deps.mozilla_lib_publicsuffixlist (#13201) 2020-08-02 17:23:39 -04:00
Tiger Oakes d8ff6179fe
For #7992: Use favicon style from AC (#12608) 2020-07-30 11:21:17 -07:00
Jonathan Almeida 53a4f63393 For #12983: Fix deep link scheme for nightly builds
When we simplified our variants, our deep link scheme for nightly was
lost.
2020-07-28 08:31:12 -04:00
Tiger Oakes 6ea94fd9af Add concept-menu dependency 2020-07-25 19:38:35 -04:00
Tiger Oakes 8c1d3dc827
For #12871 - Use local TWA DAL API (#12872) 2020-07-24 13:08:24 -07:00
Kainalu Hagiwara e7dc5580b2 For #3481 - Implement swipe on toolbar to switch tabs. 2020-07-22 11:26:15 -07:00
Johan Lorenzo 7e7d69cb8e
Bug 1652979 - Stop producing fennecNightly, fenixNightly and fenixBeta (#12225) 2020-07-21 16:42:08 +02:00
Tiger Oakes 667261f511 Closes #12493: Remove kapt plugin 2020-07-16 10:38:03 -04:00
ekager 9ed85510ae For #7094 - Adds save login exceptions 2020-07-14 14:47:37 -04:00
Michael Comella 0df234cf76 For perf-frontend-issues#44: add local property to autosign release builds. 2020-07-10 10:55:32 -07:00
Tiger Oakes c99a8f5cfa
Fixes #9832 - Change targetSdkVersion to Android 10 (#11014) 2020-07-09 10:50:51 -07:00
Christian Sadilek 27c608d956 Update built-in extensions for new AC/GV API
New API (installBuiltIn/ensureBuiltin) requires
- Gecko IDs and new permissions
- Extension will only be re-installed if it has a new version

This includes a gradle task to automatically generate a
new version in manifest.json for every build so we don't
forget to update the version and end up with changes that
are never applied.
2020-07-07 18:41:12 -04:00
Johan Lorenzo 4bc1cb94c5
Bug 1649400 - part 1: ship org.mozilla.fenix as a nightly product (#12127) 2020-07-01 11:03:10 +02:00
Christian Sadilek 665857ade8
Configure M3 AMO collection for all builds (#12055) 2020-06-29 11:16:06 -07:00
Jonathan Almeida b7d989a588 Fix breaking API in WebNotificationFeature 2020-06-26 19:59:57 -04:00
Marc Leclair ff5d00362b Added A-C version 48.0.20200626213814 2020-06-26 19:59:57 -04:00
Tiger Oakes c958cc048a Update customtabs service 2020-06-24 23:26:49 -04:00
Christian Sadilek 773f4295bf Configure M3 AMO collection for Nightly/Debug 2020-06-24 21:55:57 -04:00
Tiger Oakes ccb532bb77
For #11534 - Don't check lastUsed mode for screenshots (#11827) 2020-06-22 17:38:58 -07:00
Jonathan Almeida e6da2bd910 Fix breaking APIs in TabsAdapter and ViewHolder 2020-06-13 16:02:31 -04:00
Tiger Oakes f0295048fa Remove Mockito 2020-06-10 21:19:50 -04:00
Dennis Schubert e41fc7841a Bug 1643132 - Add WebCompat Reporter feature. 2020-06-04 18:23:11 -04:00
Sawyer Blatz 42f58a1984 For #9488: Add experimentation support 2020-06-04 14:10:22 -07:00
Vishwa Patel 4da22c605a For #10834 - Adding Sync Tabs Feature in Fenix 2020-06-01 16:52:40 -04:00
Gabriel Luong 63e529ac2b Added BrowserThumbnails dependencies 2020-05-29 18:19:06 -04:00
Jan-Erik Rediger 88fe3fbf82 Dump `proguard-android-optimize.txt` into local configuration for later modification
This was achived by:

* Adding `-printconfiguration r8.txt` to `proguard-rules.pro`
* Copying the part from start of `r8.txt` to before the `-printconfiguration` line into its own file.

This gets us exactly what was used in the bundled version.
2020-05-29 10:25:27 -07:00
Grisha Kruglov 0e47f55c24 Only set real BUILD_DATE for non-debug builds
This avoids BuildConfig modifications between local dev builds,
and speeds up the builds by avoiding running tasks that depend on BuildConfig.

Locally, depending on exact build circumstances, this saves about 5% of build runtime
for simple code changes, and about 90% of build runtime for no-op builds.
2020-05-25 22:13:05 -07:00
Michael Comella b0b2f87ab4 For #10757: remove no-op Experiments code and dependency.
We were supposed to have removed Experiments for performance purposes.
However, I find some code dangling in the tree.

Experiments.initialize is no longer called so I suspect
Experiments.withExperiment is a no-op. I verified that the lambda
function provided to it never ran in my local geckoBetaDebug on startup.
Assuming experiments behavior doesn't change in other build types, this
change appears safe.
2020-05-18 15:38:38 -07:00
Christian Sadilek 87c95a64d3 Configure M2 AMO collection for all builds 2020-04-27 18:33:31 -04:00
David Walsh 6f5f48c30e
For #10148 - Add basic tab tray implementation without exposing to rest of app (#9934) 2020-04-23 15:38:35 -05:00
Roger Yang 40550e88de
Close #9960: Launch URI in Fenix if failed to launch in custom tab (#9964) 2020-04-17 16:24:20 -04:00
Michael Comella f0464b9e72
For #9644: restrict deps to specific repositories (#9649)
* For #9644: remove unnecessary leanplum maven repository.

The docs say it is [1] "only needed for Android SDK versions below 4.3.0".
That is API 18 and our min SDK is 21.

[1]: https://docs.leanplum.com/reference#android-setup

* For #9644: move buildscript block from :app to root project.

This will reduce the amount of duplication we need in specifying
restricted dependencies and centralize repository definitions. Since
we're a one project app, it shouldn't have a significant impact on
performance.

* For #9644: restrict dependencies following FFTV config.

However, there is a resolution error to be fixed in the next commit.

This is verbatim from FFTV except I removed the no-op "improve security
if code is refactored incorrectly" lines: these lines rarely changed and
I'm not that concerned. It might be better to simplify the
configuration.

Source:
  62a2fa680c/buildSrc/src/main/java/org/mozilla/gradle/Dependencies.kt (L7)
  62a2fa680c/build.gradle (L31)

* For #9644: restrict firebase deps to google repo.

This fixes the resolution error from the previous PR.
2020-04-15 10:54:36 -07:00
Christian Sadilek 152642d98d Configure M2 AMO collection for Nightly/Debug 2020-04-13 10:42:39 -04:00
Michael Comella 4437ddd536 No issue: Move Do and OpenClass to utils pkg.
They were both in their packages by themselves, which feels unnecessary.
Unfortunately, a utils pkg is discouraged by kotlin but we don't have a
better place for them right now. Maybe an annotations/ pkg for the
latter?
2020-04-08 12:39:22 -07:00
Michael Comella 9305331a56 For #9631: remove assertk dependency. 2020-04-06 16:56:40 -07:00
Michael Comella b60a21c08d For #9605: Add LintUnitTestRunner gradle task.
This will prevent us from regressing on adding older versions of the
unit test runner.
2020-04-03 09:27:49 -07:00
Sebastian Kaspari 045b4a5715 Use same configuration for "forPerformanceTest" builds like we do for "fennec" flavor builds. 2020-04-01 17:51:32 -07:00
ekager 414e905b76 Closes #8944 - Adds custom lint checks 2020-03-27 13:59:51 -07:00
Christian Sadilek 5e9d5dd545 Closes #9414: Make AMO collection configurable 2020-03-26 17:26:20 -04:00
Jonathan Almeida 40ba43311e For #7661: Add deeplink schemas for fennec variants 2020-03-25 15:39:44 -04:00
Christian Sadilek d184b99649 Closes #9333: Prevent compression of omni.ja to improve startup time
Co-authored-by: Markus Stange <mstange@themasta.com>
Co-authored-by: Agi Sferro <agi@sferro.dev>
2020-03-24 16:10:11 -07:00
Ryan Kelly a0f8be25b6 Add support for application-services autoPublish local dev workflow. 2020-03-19 10:51:08 +02:00
Jonathan Almeida ffd4cdd970 For #7661: Add variant-specific schemas for deep links
In order to target specific variants of Fenix, we're adding schemas that
are specific that app in order to avoid collisions with the other
variants and with other forks of fenix that may have the same schemas.

The current schema for variants:
 - Fenix Nightly: `fenix-nightly://`
 - Fenix Beta: `fenix-beta://`
 - Everything else: `fenix://`
2020-03-17 17:21:09 -04:00
Sebastian Kaspari 34144fd254 Use pinned Android Components Nightly version instead of snapshots. 2020-03-17 12:09:36 +01:00
mcarare 320fc4e4ae For #8788 Use Flexbox instead of Grid manager for top sites 2020-03-09 11:01:14 -07:00
Michael Droettboom bb2c009c16 1592947: Use the Glean Gradle plugin 2020-02-28 13:24:58 -08:00
Grisha Kruglov fddf77280c Remove direct A-S dependency; switch to using 'full' megazord
As far as I can tell, we never actually exercise the a-s libraries in Fenix tests currently (this was one of the presumed reasons for having a direct dependency).
In a different branch I've started work on adding end-to-end tests, but currently that's blocked on trying to figure out to load native libraries in tests (somehow, fenix's setup is different than what we have in A-C, not yet clear to me in what way).

Another reason for a direct dependency (i think) is that we needed it to configure a `fenix` megazord. This could be solved via a `support-megazord-fenix` a-c component that provides the correct transient dependencies,
but we can also just switch to use the `full` megazord instead, which is essentially what fenix megazord is at this point. A-S team wants to remove the fenix megazord, so this will help. This is what this patch does.
2020-02-25 17:30:57 -08:00
Mihai Branescu fdbf63fb97 For #4231
Added kapt plugin + dependencies in order to be able to use Room
Added recent apps to share fragment (top 6)
Extracted dimens of share_to_apps.xml in the dimens file
2020-02-19 10:36:58 -08:00
Jeff Boek a8746320d7 For #3869 - Uses RegionSearchLocalizationProvider in the search engine provider 2020-02-18 10:10:16 -08:00
Aaron Train bf7b23ab99
Closes #8316: Disable animations for instrumented tests (#8317) 2020-02-11 15:24:10 -05:00
Alessio Placitelli 99d6dbfca4 Test that 'baseline' pings are sent by Fenix
This is an initial instrumented test for Fenix
that checks if a 'baseline' ping is generated when
going to background.
2020-02-05 19:06:46 +01:00
Gabriel Luong 64a4a7f422
Provide add-on support (#8064)
Closes #5630, #6069, #6092, #6091, #6124, and #6147.

Co-authored-by: Simon Chae <chaesmn@gmail.com>
Co-authored-by: Arturo Mejia <arturomejiamarmol@gmail.com>
Co-authored-by: Christian Sadilek <christian.sadilek@gmail.com>
Co-authored-by: Gabriel Luong <gabriel.luong@gmail.com>
2020-02-04 01:41:51 -05:00
Jonathan Almeida cbcc56bbba For #373: Implement LeanPlum push messaging
Also closes #6250, since we rely solely on the SDK itself to consume the
messages straight from FCM.
2020-02-04 00:13:56 +01:00
Gabriel Luong 584b270aa4 For #6758 - Part 2: Add AC dependencies for top sites feature 2020-01-24 15:18:25 -08:00
Jonathan Almeida b89afe7b7c For #7092: Add initial Migration UI 2020-01-15 21:41:01 -08:00
Colin Lee 7baf54f566
For #5182: Loading experiments on startup is slow, remove Fretboard (#7510)
This removes Fretboard. The goal is to reduce cold startup costs associated with loading the experiments on the main thread. We currently have two experiments frameworks in use and should only require one.
2020-01-13 12:38:32 -06:00
Michael Comella c0f689a68d No issue: remove lint baseline file.
This will enable folks to see the existing warnings.
2020-01-06 18:27:51 +02:00
Mihai Branescu ea2411a88b Feature/#220 language menu (#7070)
* For #220
- Added advanced header + locale settings item in the settings fragment

* For #220
- Added locale selection page with lib state + handling of locale changes

* For #220
- Removed registering for locale changes in the manifest, allow system
to restart activity in that scenario

* For #220
- Added unit tests for locale settings page

* For #220: fixed an outdated unit test
ga-a

Co-authored-by: Severin Rudie <Baron-Severin@users.noreply.github.com>
2020-01-03 18:15:35 -08:00
Severin Rudie 9cbc3f7a4a
7410 remove rxjava (#7426)
* For #7410: rewrite updateBookmarkFromObservableInput with coroutines

* For 7410: remove RxJava from project. :(

* For 7410: converted updateBookmarkFromTextChanges to Flow per review
2020-01-03 14:37:12 -08:00