Commit Graph

281 Commits (5ddce84b81a529e874db7ac64a2a1c43e9e31b93)

Author SHA1 Message Date
Christian Sadilek 773f4295bf Configure M3 AMO collection for Nightly/Debug 4 years ago
Tiger Oakes ccb532bb77
For #11534 - Don't check lastUsed mode for screenshots (#11827) 4 years ago
Jonathan Almeida e6da2bd910 Fix breaking APIs in TabsAdapter and ViewHolder 4 years ago
Tiger Oakes f0295048fa Remove Mockito 4 years ago
Dennis Schubert e41fc7841a Bug 1643132 - Add WebCompat Reporter feature. 4 years ago
Sawyer Blatz 42f58a1984 For #9488: Add experimentation support 4 years ago
Vishwa Patel 4da22c605a For #10834 - Adding Sync Tabs Feature in Fenix 4 years ago
Gabriel Luong 63e529ac2b Added BrowserThumbnails dependencies 4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
Christian Sadilek 87c95a64d3 Configure M2 AMO collection for all builds 4 years ago
David Walsh 6f5f48c30e
For #10148 - Add basic tab tray implementation without exposing to rest of app (#9934) 4 years ago
Roger Yang 40550e88de
Close #9960: Launch URI in Fenix if failed to launch in custom tab (#9964) 4 years ago
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.
4 years ago
Christian Sadilek 152642d98d Configure M2 AMO collection for Nightly/Debug 4 years ago
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?
4 years ago
Michael Comella 9305331a56 For #9631: remove assertk dependency. 4 years ago
Michael Comella b60a21c08d For #9605: Add LintUnitTestRunner gradle task.
This will prevent us from regressing on adding older versions of the
unit test runner.
4 years ago
Sebastian Kaspari 045b4a5715 Use same configuration for "forPerformanceTest" builds like we do for "fennec" flavor builds. 4 years ago
ekager 414e905b76 Closes #8944 - Adds custom lint checks 4 years ago
Christian Sadilek 5e9d5dd545 Closes #9414: Make AMO collection configurable 4 years ago
Jonathan Almeida 40ba43311e For #7661: Add deeplink schemas for fennec variants 4 years ago
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>
4 years ago
Ryan Kelly a0f8be25b6 Add support for application-services autoPublish local dev workflow. 4 years ago
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://`
4 years ago
Sebastian Kaspari 34144fd254 Use pinned Android Components Nightly version instead of snapshots. 4 years ago
mcarare 320fc4e4ae For #8788 Use Flexbox instead of Grid manager for top sites 4 years ago
Michael Droettboom bb2c009c16 1592947: Use the Glean Gradle plugin 4 years ago
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.
4 years ago
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
4 years ago
Jeff Boek a8746320d7 For #3869 - Uses RegionSearchLocalizationProvider in the search engine provider 4 years ago
Aaron Train bf7b23ab99
Closes #8316: Disable animations for instrumented tests (#8317) 4 years ago
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.
4 years ago
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>
4 years ago
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.
4 years ago
Gabriel Luong 584b270aa4 For #6758 - Part 2: Add AC dependencies for top sites feature 4 years ago
Jonathan Almeida b89afe7b7c For #7092: Add initial Migration UI 4 years ago
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.
4 years ago
Michael Comella c0f689a68d No issue: remove lint baseline file.
This will enable folks to see the existing warnings.
4 years ago
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>
4 years ago
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
4 years ago
Michael Comella 93e677e11b No issue: remove unused Anko dependencies. 4 years ago
Kadeem M e22d092f5d Added UI tests for the About Settings page (#6161) 4 years ago
Ryan Kelly 31f2e80ab0 Use feature-accounts-push, which replaces feature-sendtab. 4 years ago
Colin Lee a8f895cb5c
For #4064: Replace prerelease R8 with improved Kotlin coroutines library (#7153) 4 years ago
isabelrios 1d04736884 Re-enable Screenshots tests (#6617)
disabling setting test options due to different screen sizes

name screenshots according to robots

fix kotlin style

update settings tests with new Toolbar option

screenshots tests in different package than ui tests
5 years ago
Gabriel 56b21426eb
For #5574 - Migrate SessionControl to LibState (#6651)
* For #5574 - Part 1: Port TabAction.SaveTabGroup to TabSessionInteractor and SessionControlController. (#6651)

- Introduces the TabSessionInteractor, SessionControlInteractor and SessionControlController classes.
- Removes the TabAction.SaveTabGroup.

* For #5574 - Part 2: Port TabAction.PrivateBrowsingLearnMore to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 3: Port TabAction.ShareTabs to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 4: Remove unused TabAction.Share and TabItemMenu (#6651)

In #2205, the tab overflow button was removed which would have shown the
TabItemMenu when clicked. So, we can remove TabItemMenu since it is not
used and as a result, we can also remove TabAction.Share since there are
no consumers.

* For #5574 - Part 5: Port TabAction.PlayMedia and TabAction.PauseMedia to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 6: Port TabAction.Select to TabSessionInteractor and SessionControlController (#6651)

* For #5574 - Part 7: Port Onboarding.Finish to OnboardingInteractor and SessionControlController (#6651)

* For #5574 - Part 8: Port TabAction.Close and TabAction.CloseAll to TabSessionInteractor and SessionControlController (#6651)

- Removes TabAction

* For #5574 - Part 9: Port CollectionAction.Delete to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 10: Port CollectionAction.ShareTabs to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 11: Port CollectionAction.AddTab and CollectionAction.Rename to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 12: Port CollectionAction.RemoveTab to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 13: Port CollectionAction.OpenTab to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 14: Port CollectionAction.CloseTabs to CollectionInteractor and SessionControlController (#6651)

* For #5574 - Part 15: Introduce a HomeFragmentStore (#6651)

- We will hook up the HomeFragmentStore in later parts.
- Removes List<Tab>.toSessionBundle(context: Context) since it is unused.

* For #5574 - Part 16: Port CollectionAction.Collapse and CollectionAction.Expand to CollectionInteractor and SessionControlController (#6651)

- We assume the store is hooked up to the SessionControlController in this part,
but this work will be done in a later part.
- Removes CollectionAction.

* For #5574 - Part 20: Remove the architecture module. (#6651)

* For #5574 - Part 17:  Remove duplicate subscribeToTabCollections in BrowserFragment.kt (#6651)

There is a duplicate call of subscribeToTabCollections() in both HomeFragment and BrowserFragment.
In this patch, we remove the call in BrowserFragment to avoid passing the HomeFragmentStore to
BrowserFragment in order to dispatch the CollectionsChange event.

* For #5574 - Part 18: Delete SessionControlComponent and fix TabCollection and Tab imports (#6651)

* For #5574 - Part 19: Use the new HomeFragmentStore in the HomeFragment (#6651)

- Renames SessionControlUIView to SessionControlView

* For #5574 - Part 21: Fix white screen on home fragment (#6651)

* For #5574 - Part 22: Fix formatting in SessionControlInteractor and replace See with @see in SessionControlController (#6651)

* For #5574 - Part 23: Move to metrics.track call to the beginning of handleCollectionRemoveTab (#6651)

This ensures that the metrics.track will be called immediately before the tab is removed from the collection.

* For #5574 - Part 24: Use the sessionManager getter in SessionControlController (#6651)

* For #5574 - Part 25: Use mapNotNull in List<Tab>.toSessionBundle (#6651)

* For #5574 - Part 26: Simplify closeTab and closeAllTabs functions by assigning a deletionJob constant (#6651)

* For #5574 - Part 27: Replace listOf() with emptyList() in removeAllTabsWithUndo (#6651)

* For #5574 - Part 28: Replace the Context parameter with the HomeActivity in SessionControlController (#6651)

* For #5574 - Part 29: Add test for HomeFragmentStore, DefaultSessionControlController and SessionControlInteractor (#6651)

* For #5574 - Removes running CI against the architecture debug build varient
5 years ago
mawen7 7208ce95a5 Run lint for app module and set baseline 5 years ago
Sebastian Kaspari bb59ac6423 Issue #6622, #6688: Create a "fennecBeta" and "fennecNightly" build types. 5 years ago
Johan Lorenzo de8bc2f8a5 Split UI test 5 years ago
Jeff Boek 607c3d4c87
Adds custom search engines (#6551)
* For #5577 - Adds button to add a new search engine

* For #5577 - Adds custom engine store

* For #5577 - Creates a custom SearchEngineProvider

* For #5577 - Gives the ability to delete search engines

* For #5577 - Adds the UI to add a custom search engine

* For #5577 - Adds form to create a custom search engine

* For #5577 - Adds the ability to add a custom search engine

*  For #5577 - Adds the ability to delete custom search engines

* For #5577 - Selects the first element on the add custom search engine screen

* For #5577 - Prevents adding a search engine that already exists

* For #5577 - Styles the add search engine preference

* For #5577 - Makes the name check case-insensitive

* For #5577 - Fix bug where home screen doesnt see new search engines

* For #5577 - Moves Search URL validation to its own type

* For #5577 - Fixes linting errors

* For #5577 - Adds the ability to edit a custom search engine

* For #5577 - Allows the user to edit a serach engine even when it is the last item in the list

* For #5577 - Adds an undo snackbar when deleting a search engine

* For #5577 - Moves all of the strings to be translated

* For #5577 - Fixes bug when deleting your default search engine

* For #5577 - Puts adding search engines behind a feature flag

* For #5577 - Navigate to custom search engine SUMO article when tapping learn more

* For #5577 - Fixes nits

* For #5577 - Uses concept-fetch to validate search string

* For #5577 - Adds string resources for the cannot reach error state
5 years ago
Roger Yang f3fc532e0e Closes #6440 Integrate Web Notifications Feature 5 years ago
Tiger Oakes fdd7400ccc Use ViewModel for share fragment 5 years ago
Emily Kager c43f96096e For #5074 - Sync Logins, Uses KeySharedPreferences for Passwords Encryption Key 5 years ago
Emily Kager 3e2b88cc91 For #5547 - Add top level auth when accessing passwords 5 years ago
Jonathan Almeida 59c0fb504e Revert "For #373 - Integrate leanplum-fcm"
This reverts commit ed239ec250.

We're choosing to revert LeanPlum push messaging integration since we believe
that this has introduced a crash in Firebase push messaging. To verify
this assumption we're reverting this change, and when confirmed, we can
re-introduce Leamplum in a safer manner.

See #6250 and #6251 for related info.
5 years ago
Denys M 6290c0c826 Closes #2441. Update LeakCanary to `2.0-beta-3` version. 5 years ago
ekager f49331de55 For #5544: Bare Minimum Logins UI 5 years ago
Alessio Placitelli 47dfcc119e Pick up forUnitTest library for the Glean SDK test 5 years ago
Grisha Kruglov 9ffff79a88 Perform Fennec data migration within fennecProduction 5 years ago
Mitchell Hentges 5ce1968d67 Removes versionName check from gradle (#5934) 5 years ago
MozLando fba375135f Merge #5933
5933: Removes legacy nightly automation r=johanlorenzo a=mitchhentges



Co-authored-by: Mitchell Hentges <mhentges@mozilla.com>
5 years ago
MozLando f66b9f3e8f Merge #5633
5633: Add fxa/sync integration tests r=csadilek a=isabelrios

 Pull Request checklist
<!-- Before submitting the PR, please address each item -->
- [x] **Quality**: This PR builds and passes detekt/ktlint checks (A pre-push hook is recommended)
- [x] **Tests**: This PR includes thorough tests or an explanation of why it does not
- [-] **Screenshots**: This PR includes screenshots or GIFs of the changes made or an explanation of why it does not
- [-] **Accessibility**: The code in this PR follows [accessibility best practices](https://github.com/mozilla-mobile/shared-docs/blob/master/android/accessibility_guide.md) or does not include any user facing features

This PR tries to add new tests, sync integration tests, to check the sync process Desktop<->Fenix, first for Bookmarks and in the future for more.

Co-authored-by: Isabel Rios <isabelrios@mackbookirios.home>
Co-authored-by: isabelrios <isabelrios@gmail.com>
5 years ago
Mitchell Hentges a497d2bcd0
Removes legacy nightly automation 5 years ago
Jeff Boek ed239ec250 For #373 - Integrate leanplum-fcm 5 years ago
Isabel Rios 44f4cedefd Add fxa/sync integration tests
fixing Jenkins path to tests and clean tests

commenting future tests and adding doc with info about the tests
5 years ago
Grisha Kruglov ea3cd46133 Closes #1022: Auto-publication workflow for android-component
This patch enabled support for an auto-publication workflow for android-components.

It automates a common pattern seen in local development:

Old way:
- after every change in a-c, publish it locally with a unique version (bumping it manually)
- manually modify Fenix to consume a custom version of a-c from a mavenLocal repository

New way:
- set a flag in fenix's local.properties to enable auto-publication
- run Fenix builds after making changes to a-c. Changes in a-c will be automatically picked up.

Note that no changes are necessary to any Fenix files other than a single flag in local.properties.
Manually bumping android-components version is also not necessary.
5 years ago
Colin Lee b7647a454f
For #5599: Remove dependency on fetch_httpurlconnection (#5716)
* For #5599: Remove dependency on fetch_httpurlconnection

* For #5599: Switch Glean to GeckoViewFetchClient

* Use existing Gecko client for Glean
5 years ago
Alessio Placitelli ebd11dbca8 Add the workmanager dependency to enable testing with Glean 5 years ago
Johan Lorenzo 7d3be2a509 taskgraph: Speed up gradle calls 5 years ago
Dennis Schubert 5577470d0b No bug - Add WebCompat feature. 5 years ago
Sawyer Blatz 13146c2b2a Reverts #1151: Removes unused Flipper library 5 years ago
Jonathan Almeida fe8a8bfb0a No issue: Add Digital Asset Links token for TWAs 5 years ago
Alessio Placitelli 3fda14015c Automatically generate metrics docs using the Glean SDK (#5101) 5 years ago
Sebastian Kaspari d3679e0625 Unbreak Nightly: Get rid of fragment-testing dependency and create fragments in test manually. 5 years ago
Aaron Train 9033b8d676
Closes #5217 - fix androidx.test dep error (#5219)
See #5217
5 years ago
Emily Kager 4485b7f647 Add Tracking Protection Info Panel 5 years ago
mihai-adrian 9e83edcac5 For #4877: Restored logic for closing tabs when not on browserFragment
Added base test for CreateCollectionFragment that we can build upon later
5 years ago
Colin Lee 2b9efccfca For #3106: Granular options for clearing user data 5 years ago
Sebastian Kaspari c2db07acf8 Add browser-state component. 5 years ago
Petru Lingurar f7087e46e3 Fix #5067 - Refactor ShareController to use SendTabUseCases
Navigation between app fragments uses ShareTab as arguments. The newly used
SendTabUseCases uses TabData which is not Parcelable.
For minimal changes we'll keep both data classes and ShareController will know
how to map between the two.
Removed the `sessionId` property of ShareTab as it isn't needed anymore.
5 years ago
Sebastian Kaspari 389b85f783 Issue #4907: Link to usage of sharedUserId in Fennec code. 5 years ago
Sebastian Kaspari 3fb22a12b6 Issue #4873: Use manifest placeholder to inject sharedUserId. 5 years ago
Sebastian Kaspari 10143858cb Issue #4873: Use Fennec version code mechanism for fennecProduction build type. 5 years ago
Sebastian Kaspari 00ead7e31f Issue #4873: Only build fennecProduction build types with GeckoView Beta. 5 years ago
Sebastian Kaspari 4f51af07ae Issue #4873: Reuse Firefox application id for fennecProduction build type. 5 years ago
Sebastian Kaspari c7216d1bd7 Issue #4873: Introduce "fennecProduction" build type. 5 years ago
Tiger Oakes f740d4382a Closes #773 - Add shortcuts to homescreen (#4925) 5 years ago
Colin Lee 153af588af For #4885: D8 Build failure on attempt to execute UI test (#4903)
* For #4885: D8 Build failure on attempt to execute UI test

* Disabled screengrab tests until AndroidX fix is available
5 years ago
Sebastian Kaspari 35ff0a5110 Use version name/code override. (#4895) 5 years ago
Nick Alexander 23b9a41059 Consume new `substitute-local-geckoview.gradle` script from Bug 1533465. 5 years ago
Mitchell Hentges 6c020a0bc4 Configure either geckoview beta or nightly at compile-time (#4851)
* Remove "abi" product flavor and introduce "engine" product flavor.

This patch will allow us to build Fenix against GeckoView Nightly and GeckoView Beta by
introducing a new flavor dimension: engine = [geckoNightly, geckoBeta].

In addition to that it adds a "fenix"  prefix to the nightly, beta and production flavors
to reduce the ambiguity between fenix beta/nightly and GeckoView beta/nightly.

For now the build types have the following engine variants enabled:

**debug**: geckoNightly, geckoBeta
Both variants enabled for local development and testing.

**forPerformanceTest**: geckoNightly, geckoBeta
Both variants enabled unless the perf team only cares about Nightly (tbd)

**fenixNightlyLegacy**: geckoBeta
Uses GeckoView Beta for now - the same version we ship production builds with (same behavior
as before). This release type will eventualyl be decommissioned once we switch to a separate
Nightly app on Google Play.

**fenixNightly**: geckoBeta
Uses GeckoView Beta for now - the same version we ship production builds with (same behavior
as before). Changing this build to use GeckoView Nightly is currently being discussed.

**fenixBeta**: geckoBeta
Fenix Beta uses GeckoView Beta.

**fenixProduction**
Fenix Production uses GeckoView Beta (69) currently.

* gradle.py/variant.py: Replace "abi" with "engine".

* Disable enableUnitTestBinaryResources until we can switch to Android Gradle plugin 3.5.

* Fenix nightly should use both geckoview nightly and beta

* Updates automation to use apk splitting and support different engine
5 years ago
Sebastian Kaspari b733fcdbd5 Closes #4719: Get rid of fragment-testing dependency and create fragments in StoreProviderTest manually. (#4722) 5 years ago
Colin Lee e6f9445d11
For #4709: Fix Bugzilla issue 1573549 (#4710) 5 years ago
Colin Lee 7f07eabbd8
For #4652: Crash "Can not perform this action after onSaveInstanceState" (#4654) 5 years ago
Jonathan Almeida 353ecab44e No issue: Disable failing ActivationPingTest 5 years ago
Colin Lee 71c48692da
For #4507 Enable codecov (#4520) 5 years ago
Emily Kager e1f0c9f48b No issue: Update testing dependencies 5 years ago
Emily Kager c21c91eac5 No issue: Update testing dependencies and deprecated method (#4608) 5 years ago