Fenix: Migrate SessionControl to LibState

Created on 25 Sep 2019  ·  7Comments  ·  Source: mozilla-mobile/fenix

User Story

As a developer, I'd like SessionControl to implement LibState.

As a user, I'd appreciate a faster cold app startup achieved by not initiating RxJava's AndroidSchedulers.mainThread by blocking the main thread for 42ms.

Dependencies

None

Acceptance Criteria

  • SessionControl implements LibState
  • SessionControl has tests
E8 P2 health performance engverified help wanted

All 7 comments

@Baron-Severin this is another LibState bug that you could pick up as well - christian has been more than happy to help out with these, in terms of pairing or answering questions, etc. Once these are all finished, we can start removing architecture code that supports the pre-LibState state.

It looks like this one is 'in progress' on another board. Moving it there in the Fenix sprint kanban.

Hi @colintheshots, could you please give us a heads up on how should we test this matter? and on what should we focus while testing. :relaxed:

Hi @colintheshots, could you please give us a heads up on how should we test this matter? and on what should we focus while testing. ☺️

Actually, I can do that. It will take me a bit of time, but I should have an extensive list of things in a few hours.

So, this is unfortunately gonna be long because we converted most of the architecture in the Home fragment. As a result, we need to check everything feature this architectural change touched. The Home fragment is basically gonna be our starting point for every bullet point that needs to be tested.

Collections

  • Check that the Collection Creation fragment (this allows you to select the tabs and add them to a collection) is shown when an user taps on the "Add tab" collection menu item.
  • A tab is opened when a user clicks on a tab in a collection.
  • All the tabs in a collection is opened when an user taps on the "Open tabs" collection menu item.
  • A tab is removed from a collection when an user swipes to remove a tab or clicks on the tab close button.
  • Shares the tabs in a collection when an user clicks on the Collection Share button.
  • Show a prompt for deleting a collection when an user taps on the "Delete collection" collection menu item.
  • Show the Collection Creation fragment when an user taps on the "Rename collection" collection menu item.
  • Toggle expanding and collapsing a collection when an user clicks on a collection header.

Onboarding

  • Hides the onboarding when an user clicks on the "Start Browsing" button.

Tabs

  • A tab is closed when an user swipes to close a tab or clicks on the Close Tab button.
  • All tabs are closed when an user clicks on the Close Tabs button or "Close all tabs".
  • All playing Media are paused when an user clicks on the Pause button in the tab view.
  • Resume playing all paused Media when an user clicks on the Play button in the tab view.
  • Show the Private Browsing Learn More page in a new tab when an user clicks on "Common myths about private browsing" link in private mode.
  • Save a tab to a collection when an user clicks on the "Save to collection" button or in the tab menu item and on a long click of an open tab.
  • Selects a tab when an user clicks on a tab.
  • Shares the current opened tabs when an user clicks on the Share Tabs button in private mode or in the tab menu item in non-private mode.

We'll also need to test the following functionality:

  • Returning to the Home fragment (from an opened tab) shows the correct list of collections, tabs and mode.
  • Adding tab(s) to collections work correctly.
  • Switching between private and normal mode works as expected

Hi @colintheshots,
Verifed the scenarios, from the last 2 comments, no regression has been encountered, on build Firefox Preview Nightly 12/23 #13570607 using:

  • Google Pixel 3a XL (Android 10)
  • OnePlus 5T (Android 9)
Was this page helpful?
0 / 5 - 0 ratings

Related issues

csadilek picture csadilek  ·  3Comments

andreicristianpetcu picture andreicristianpetcu  ·  3Comments

thelazyoxymoron picture thelazyoxymoron  ·  3Comments

andreicristianpetcu picture andreicristianpetcu  ·  3Comments

ekager picture ekager  ·  3Comments