Commit Graph

173 Commits (48ea10cd9d62ae924757a528656265f5805019f1)

Author SHA1 Message Date
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
Gabriel Luong 85111f538a For #6857 - Replace BackHandler with UserInteractionHandler in InflationAwareFeature and InflationAwareFeatureTest 5 years ago
Tiger Oakes 7e8f079269
Use ShareData with ShareFragment (#6698) 5 years ago
ekager d85ed27a3d Add override for Core val in test 5 years ago
ekager 6e907b1106 Update BackgroundServicesTest 5 years ago
Emily Kager c43f96096e For #5074 - Sync Logins, Uses KeySharedPreferences for Passwords Encryption Key 5 years ago
Severin Rudie 6909a76bcb
4281 remove qab (#6310)
* For #4281: small ToolbarMenu refactor

This makes it easier to see how items are ordered in the menuItems list

* For 4281: add QAB buttons to menu

* For 4281: removed menu back button per mocks

I double checked with UX, and we'll be relying on the hardware back button for its functionality

* For 4281: add content descriptions for bookmarking

* For 4281: updated BrowserToolbarController for new functionality

* For 4281: provided simple dependencies to browser controller

More complex changes will be in a following commit, for review readability

* For 4281: move toolbar controller dependencies up to BaseBrowserFragment

The functionality they control is being moved into the toolbar menu, which is shared by both normal tabs and custom ones

* For 4281: removed (now unused) code related to QAB

* For 4281: fix test compilation after QAB removal

Tests still need to be expanded to include added functionality

* For 4281: updated menu to show if url is bookmarked

This sloppy workaround is required because TwoStateButton requires that `isInPrimaryState` be a synchronous call, and checking whether or not the current site is bookmarked is quite slow (10-50 MS, in my tests).  After days of work and many attempted solutions, this was the least abhorrent among them.

https://github.com/mozilla-mobile/android-components/issues/4915 was opened against AC to evaluate potentially supporting async `isInPrimaryState` functions.
https://github.com/mozilla-mobile/fenix/issues/6370 was opened against Fenix to investigate the unexpectedly slow call to `BookmarkStorage`.

* For 4281: update reader mode switch

* For 4281: selectively show/hide menu items

* For 4281: add reader mode appearance

* For 4281: update bookmark button when it is clicked

* For 4281: removed unused QAB code

* For 4281: removed QAB robot, updated UI tests

* For 4281: removed QuickActionSheet metrics

Since this behavior now lives in the toolbar, it is tracked via Event.BrowserMenuItemTapped

* For 4281: fixed lint errors

* For 4281: add new strings for buttons added to menu

This is necessary because the location change (from QAB to toolbar menu) could affect the grammar in some languages

* For 4281: remove outdated TODOs

* For 4281: removed QAB container

* For 4281: removed back button reference from UI test

This button no longer exists

* For 4821: Fixes a visual defect (extra padding on top of toolbar)

* For 4281: update copy on reader mode

* For 4281: fixed review nits
5 years ago
mcarare 11ad1010a9 For #6323 Creating 1st collection from tab shows Name collection screen
Added a check for existence of at least a collection to select from.
5 years ago
Grisha Kruglov 40047315c2 For #6490 - track abnormal FxA behaviour via Sentry 5 years ago
Emily Kager b1623cbba6 Fix components, core tests 5 years ago
Severin Rudie aa8642f534
#4596 migrate collections (#5911)
* For #4596: move code from CollectionCreationComponent to CollectionCreationStore

Other than adding comments, no changes were made. The code will be updated in a following commit. This is in order to make the commit diff more readable.

* For 4596: update CollectionCreateStore to libstate

* For 4596: copied CollectionCreationUIView into CollectionCreationView

Otherwise, no code was changed. The next commit will update this code. This is in order to make the commit diff more readable.

* For 4596: update CollectionCreationView to LibState

Note that the minimal changes possible to enable migration were made.  Refactoring will happen in a later commit.

* For 4596: updated CollectionCreationTabListAdapter to work with the new View

* For 4596: updated SaveCollectionListAdapter to work with the new View

* For 4596: implemented CollectionCreationController

For now, it has an identical interface to the interactor. In a later commit several of its responsibilities will be moved around, some to the interactor and some to the reducer

* For 4596: copied over previous reducer code

No other changes were made. The code will be updated in the following commit. This is done to make changes more readable for the reviewer

* For 4596: update reducer code param names

Otherwise, no changes at this time

* For 4596: add arguments to CreateCollectionFragment in nav_graph

These will be used to replace the current CreateCollectionViewModel, which shares data between fragments in a way that doesn't fit within our architecture.

* For 4596: pass arguments to collection via transaction instead of VM

The VM will be removed in a later commit

* For 4596: update BrowserToolbarController to share state to collection via its Direction

* For 4596: removed CreateCollectionViewModel

* For 4596: test tab retrieval in CreateCollectionFragment

* For 4596: fix crashing CreateCollectionFragmentTest

* For 4596: removed classes create collection classes used by old architecture

* For 4596: collection interactor rename + kdoc

* For 4596: moved collection interactor interface

* For 4596: renamed CreateCollectionFragment

All related classes followed the pattern of CollectionCreationX

* For 4596: kdoc CollectionCreationController

There's no effective difference between these calls and their interactor equivalent, so I linked to them

* For 4596: fix bug that caused rename to not work

* For 4596: removed unused collection actions

These were unused before the LibState refactor

* For 4596: kdoc StepChanged

* For 4596: removed todos about moving logic to the reducer

saveTabsToCollection: this could be moved, but that would involve creating a new action. SaveCollectionStep should probably be refactored out, so adding this layer of indirection seemed counterproductive

handleBackPress: needs to be able to call dismiss(). The reducer doesn't (and shouldn't) be able to do that, so this needs to live here

stepBack: called by handleBackPress. See above

* For 4596: wrote tests for CollectionCreationController#stepback

* For 4596: fixed tests broken by changes to collections

* For 4596: small readability refactor for CollectionController#stepBack

No change to functionality (see tests)

* For 4596: broke apart CollectionView#update

There's probably a lot more that could be done here, but smaller changes were made to reduce scope

* For 4596: remove unnecessary todos

It looks like we don't follow the suggested pattern in this project

* For 4596: test CollectionCreationController#normalSessionSize

* For 4596: updated naming in CollectionCreationController per review
5 years ago
ValentinTimisica 485ccba189 Fixes #5323: Show a snackbar while browsing data is deleting. (#6105) 5 years ago
Sebastian Kaspari 94c5aaac53 Update to Mozilla Android Components 18.0.0-SNAPSHOT. 5 years ago
MozLando 8e4d7248ac Merge #5908
5908: Closes #5876: Removed @ObsoleteCoroutinesApi in tests r=sblatz a=shldhll


### 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)
- [ ] **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

### After merge
- [ ] **Milestone**: Make sure issues finished by this pull request are added to the [milestone](https://github.com/mozilla-mobile/fenix/milestones) of the version currently in development.

### To download an APK when reviewing a PR:
1. click on Show All Checks,
2. click Details next to "Taskcluster (pull_request)" after it appears and then finishes with a green checkmark,
3. click on the "Fenix - assemble" task, then click "Run Artifacts".
4. the APK links should be on the left side of the screen, named for each CPU architecture

Co-authored-by: shldhll <iam.shldhll@gmail.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
shldhll 265f89e772 Added required coroutines in tests. Closes #5876 5 years ago
shldhll 8e17ac05b1 Optimized imports. Closes #5876 5 years ago
shldhll f907ec52f0 Removed ObsoleteCoroutinesApi in tests. Closes #5876 5 years ago
Emily Kager f9afd97a68 For #1901 - Get rid of black flash when leaving GV Engine 5 years ago
Ahmed I. Khalil f008d29bf3 Closes #5852 - Use createAddedTestFragments in tests. 5 years ago
Tiger Oakes 5e2f0dcf26 Remove @ObsoleteCoroutinesApi from TestCore 5 years ago
isabelrios 0e3148f0da fixing more reviewers comments 5 years ago
isabelrios cdefb0d099 Fix TC error and run only ui tests 5 years ago
ekager ef29fe2584 Update BackgroundServicesTest, Suppress Complex Method 5 years ago
Christian Sadilek ac2611d744 Upgrade to A-C 15.0.0-SNAPSHOT (incl. required changes) (#5578)
* Upgrade to Mozilla Android components 15.0.0-SNAPSHOT

* Update findinpage integration to use browser-state

* Use new UseCases APIs after download migration.
5 years ago
Sawyer Blatz 856399e9e2
No issue: Fixes GleanMetricsService nits & broken UI test (#5539)
* No issue: Fixes GleanMetricsService nits

* No issue: fixes broken UI test
5 years ago
Alessio Placitelli 1ffdf1cf9b Add basic test coverage for Glean metrics in Fenix
This introduces test coverage, using the Glean SDK
testing API, for the metrics that are set at startup
by Fenix in the GleanMetricsService.

This additional adds a basic test for the translation
of the `app_opened` event.
5 years ago
Christian Sadilek c866ae1a1e Closes #5444: IntentReceiverActivity: Add tests for intent processing 5 years ago
Tiger Oakes 6c30a94081 Move settings classes to packages 5 years ago
Sawyer Blatz 2db2d9ceae For #1744: Adds tests for clipboard 5 years ago
Sawyer Blatz fd1fcd8b89 For #4155: Adds paste & go for search terms 5 years ago
Grisha Kruglov 8a9340fd9d Post: Clean up 'push' initialization code 5 years ago
Grisha Kruglov d67fb3eed2 Post: Add experiment flags, push and telemetry tests for BackgroundServices 5 years ago
Grisha Kruglov c2fb99a73f FxA WebChannels integration
This patch includes:
- WebChannels support enabled by default, with ability to disable it via remote flag
- expanded FxA telemetry (closes #4971)

Co-authored-by: Arturo Mejia <arturomejiamarmol@gmail.com>
5 years ago
Tiger Oakes 42bb3e1410 Change deleteAndQuit to take an activity 5 years ago
Emily Kager a16015cd21 No issue: Fix BreadCrumbReporterTest 5 years ago
Roger Yang b3eca65614 Closes #5091: Refactor Sentry BreadCrumbs to use lib-crash BreadCrumbs 5 years ago
Emily Kager e3209dcc84 For #3700 - Add Setting to Delete Data on "Quit" menu action 5 years ago
Sawyer Blatz 5586b18c3e For #4155: Handle custom tabs & fix test 5 years ago
Sawyer Blatz 53b3f105ca For #4155: Sets pastedText default value 5 years ago
Sawyer Blatz 52fd327bc0 For #4155: Adds tests for browser toolbar popup menu 5 years ago
Sawyer Blatz fdd2b59fb8 For #4155: Adds popup menu for browser toolbar 5 years ago
Petru Lingurar b82024f993 For #4856 - Refactor InflationAwareFeatureTest
We previously had a test exactly for checking that "start does nothing" but we
now need to ensure that start actually is propagated to the inner feature that
is to rebind itself to the app to allow for user interactions.
5 years ago
Sawyer Blatz aef087aae0
No issue: Removes unused nestedScrollQuickActionView (#5143) 5 years ago
Sebastian Kaspari ac32a88d45 Rename BrowserStore/State/Action to BrowserFragmentStore/State/Action. 5 years ago
mihai-adrian 3171f3a1a7 Fixes #4997: Changed navigation to ShareFragment
Changed test for new global navigation to share fragment.
5 years ago
Sebastian Kaspari 9b633f7f0f Move creation of GeckoRuntime to flavor-specific source set.
Since we are now able to build against GeckoView Nightly and GeckoView Beta,
we should create the GeckoRuntime from a flavor-specific source set.

Creating the runtime is not covered by the AC abstraction and so API changes
in GeckoView Nightly can break the build and leaves us with no option to fix
it from a shared code base. Separating the creation of GeckoRuntime
allows us to adapt individually and also to configure the runtimes
differently.
5 years ago
Tiger Oakes f740d4382a Closes #773 - Add shortcuts to homescreen (#4925) 5 years ago
Tiger Oakes c475bc87cf Move classes out of top-level package 5 years ago
Jeff Boek e601fe7c9f For #4326 - Updates codebase to support latest version of ktlint 5 years ago
Colin Lee 051ae9f584 For #3869: Switch to A-C SearchLocalizationProvider (#4858)
* For #3869: Switch to A-C SearchLocalizationProvider

* Fix test
5 years ago
Tiger Oakes ac6c1ec2ee Closes #2690 - Clean up CreateCollection viewmodel (#4731) 5 years ago
Emily Kager 7d02354f4f For #4799 #4790 - Don't use passed in sessions in BrowserToolbarController (#4800) 5 years ago
Colin Lee d1aed157dd
For #4686: Fix potential security issue (#4764) 5 years ago
Colin Lee 5b4a441bcb For #1667: Screen reader can't reach other UI items when QAB expanded (#4695) 5 years ago
Sebastian Kaspari b733fcdbd5 Closes #4719: Get rid of fragment-testing dependency and create fragments in StoreProviderTest manually. (#4722) 5 years ago
Jonathan Almeida 353ecab44e No issue: Disable failing ActivationPingTest 5 years ago
Tiger Oakes 52542708aa Consodilate private browsing code 5 years ago
Jonathan Almeida 23f5ac0fb9 For #4066: Create InflationAwareFeature for lazy inflation 5 years ago
Emily Kager e1f0c9f48b No issue: Update testing dependencies 5 years ago
Sawyer Blatz ff6e9bccb7
For #4451: Adds tests for DefaultBrowserToolbarController (#4493)
* For #4451: Adds tests for DefaultBrowserToolbarController

* Continue working

* Large refactoring of test

* Mock analytics

* Fix merge conflicts
5 years ago
Sawyer Blatz da06b0fb15
For #4508: Treats warnings as errors (#4543) 5 years ago
Sawyer Blatz 97f7d5ba87 For #2267: Fixes telemetry for reader view (#4328) 5 years ago
Sawyer Blatz 6fa022c2f8
For #4124: Migrate BrowserToolbar to Libstate (#4279)
* For #4124: Migrate BrowserToolbar to Libstate

* Restores QuickActionSheetReducer

* Improve tests

* Make QuickActionSheetController

* Finalize tests

* Breaks out QuickActionSheetState

* Fix comments

* Adds BrowserStoreTest
5 years ago
Tiger Oakes edb0a3ed08 For #3633 - Update StoreProvider to use a callback
Co-authored-by: Christian Sadilek <christian.sadilek@gmail.com>
5 years ago
Jeff Boek e294521c92
Fix search metrics (#4150)
* For #4082 - Changes lifecycles for metrics

* For #4082 - Replaces the SearchEngine name with the identifier for
countLabel
5 years ago
Tiger Oakes ef8d9604ae No issue: Normalize license header comment (#3909) 5 years ago
Jeff Boek e7e644f07e For #2395 - Fixes test suite 5 years ago
Grisha Kruglov 6a8d0f324e Closes #2770: Allow receiving tabs from FxA devices (#2772)
* Closes #2770: Allow receiving tabs from FxA devices

Now that we're on a-c 0.54, we can land this since it supports device
capability migration.

This patch adds a SEND_TAB device capability, making Fenix a valid target
in the Send Tab device list on Desktop Firefox.

Additionally, it adds a notification manager which manages notification
channels and knows how to display "received tabs" notifications".

* Post: remove unusued test file that's causing issues
5 years ago
Tiger Oakes cfca683a14 Use UpdateTrackingProtectionUseCase
mozilla-mobile/android-components#2746
5 years ago
Sawyer Blatz 72d29c2a43
For #2205 & #1578: Integrates tab collection storage (#2478)
* For #2205: Adds TabCollectionStorage

* For #1578: Adds delete to TabCollection
5 years ago
Colin Lee 96b68948b5
For #1710: Create scaffolding for Robolectric tests (#2282) 5 years ago
Alessio Placitelli 0d82431195 Generate the `activation` ping and send it with Glean (#1707)
This fetches the Google Advertising ID, salts it and
then applies hashing before sending a ping with it,
at startup. Hashing and salting are used in order
to prevent ourselves to correlate advertising IDs
from the same user running different products we
own off a single device. We will never send the
client_id and the Google Advertising ID in the same
ping.
5 years ago