Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

Read configuration information from secret settings #24170

Closed
jrconlin opened this issue Mar 9, 2022 · 9 comments · Fixed by #26667 or nathanmkaya/fenix#108
Closed

Read configuration information from secret settings #24170

jrconlin opened this issue Mar 9, 2022 · 9 comments · Fixed by #26667 or nathanmkaya/fenix#108
Assignees
Labels
eng:qa:verified QA Verified needs:triage Issue needs triage
Milestone

Comments

@jrconlin
Copy link

jrconlin commented Mar 9, 2022

The fact that Fenix requires custom builds in order to test non production hosts is unsustainable. The combination of services, run environments, and interactions may have dozens or hundreds of potential configurations. Asking Service Reliability Engineering (SRE) and Quality Assurance (QA) to compile a custom version of fenix for any of these configurations (including staying abreast of all the compilation environment changes) is an unweildy burden. In addition, not being able to specify server impacts Mozilla’s ability to ensure user choice. Fenix should allow for easy modification of these values so that running a test setup requires minimal configuration changes of an existing application. Based on the impact of this on the operational efficiency of other teams, this should be made a priority.

Tracking with CONSVC Jira ticket

┆Issue is synchronized with this Jira Task

@jonalmeida jonalmeida self-assigned this Mar 9, 2022
@jonalmeida jonalmeida transferred this issue from mozilla-mobile/android-components Mar 9, 2022
@jonalmeida
Copy link
Contributor

Moving this to Fenix because we can do this UI work there instead of components.

@github-actions github-actions bot added the needs:triage Issue needs triage label Mar 9, 2022
@jonalmeida jonalmeida changed the title Read configuration information from about:config Read configuration information from secret settings Mar 9, 2022
@jonalmeida
Copy link
Contributor

about:config isn't any option on mobile because this configuration does not come from Gecko land. We can do something similar to how we set custom Sync Server behind a Secret Settings UI.

@jrconlin
Copy link
Author

jrconlin commented Mar 9, 2022

Ah, then we might want to remove about:config, or at least the change the values in about:config to indicate that you set them differently. Otherwise we're just confusing people, particularly those with either previous experience with older products, or using documentation created from those older products.

@jonalmeida
Copy link
Contributor

jonalmeida commented Mar 12, 2022

That's definitely something we can do in GeckoView land, I think.

EDIT: GeckoView bug filed here - https://bugzilla.mozilla.org/show_bug.cgi?id=1769983

@jonalmeida jonalmeida assigned bendk and unassigned jonalmeida Aug 12, 2022
@jonalmeida
Copy link
Contributor

Assigning this to Ben since they're going to work on this. :)

@bendk
Copy link
Contributor

bendk commented Aug 12, 2022

I have some code that I believe is successfully changing the push server URL. However I still need to manually do some extra work to make things work when running a preview build:

  • Downloading the staging server keys and moving them to app/src/debug/res/values/fenix_firebase.xml
  • Disabling strict mode

It seems like as long as this is still needed, it's going to be a burden for QA. What's the best way to eliminate theses steps?

Also, I'm not sure how to best verify that the sent tab is indeed going through the staging server. I added some logging in RustPushConnection from AutoPushFeature and have verified that serverHost is indeed the staging host. Is that good enough verification or is there a better way?

@jonalmeida
Copy link
Contributor

  • Downloading the staging server keys and moving them to app/src/debug/res/values/fenix_firebase.xml
  • Disabling strict mode

We can consider landing this file in the repository. The reason we haven't is because we need to fix the strict mode warning here.

If the strict mode is fixed, then only the config in the UI is the only required change.

Also, I'm not sure how to best verify that the sent tab is indeed going through the staging server. I added some logging in RustPushConnection from AutoPushFeature and have verified that serverHost is indeed the staging host. Is that good enough verification or is there a better way?

You could monitor the network tab in about:debugging while the tab is coming in and see if it's from the staging server.

bendk added a commit to bendk/fenix that referenced this issue Aug 26, 2022
…le#24170)

- Created a new "sync debug" pref screen to hold the Fxa, Sync, and Push
  server override prefs.  They were taking a lot of screen space on the
  top-level settings menu as individual items
- Added button on that screen to quit FF which is needed to apply the
  changes.
    - This is definitely not the nicest UI, but hopefully QA can just
      override the prefs once save them in an emulator and never have to
      go back to this screen.
    - I do think this is a nicer UI than before, where FF would quit
      after a change to any of the prefs.  That forces you to restart FF
      3 times if you wanted to override all 3 server URLs.
@github-actions github-actions bot added the eng:reopen-for-qa Reopens and tags the issue for QA needed when the issue is merged label Aug 26, 2022
bendk added a commit to bendk/fenix that referenced this issue Aug 26, 2022
…le#24170)

- Created a new "sync debug" pref screen to hold the Fxa, Sync, and Push
  server override prefs.  They were taking a lot of screen space on the
  top-level settings menu as individual items
- Added button on that screen to quit FF which is needed to apply the
  changes.
    - This is definitely not the nicest UI, but hopefully QA can just
      override the prefs once save them in an emulator and never have to
      go back to this screen.
    - I do think this is a nicer UI than before, where FF would quit
      after a change to any of the prefs.  That forces you to restart FF
      3 times if you wanted to override all 3 server URLs.
bendk added a commit to bendk/fenix that referenced this issue Aug 31, 2022
…le#24170)

- Created a new "sync debug" pref screen to hold the Fxa, Sync, and Push
  server override prefs.  They were taking a lot of screen space on the
  top-level settings menu as individual items
- Added button on that screen to quit FF which is needed to apply the
  changes.
    - This is definitely not the nicest UI, but hopefully QA can just
      override the prefs once save them in an emulator and never have to
      go back to this screen.
    - I do think this is a nicer UI than before, where FF would quit
      after a change to any of the prefs.  That forces you to restart FF
      3 times if you wanted to override all 3 server URLs.
@mergify mergify bot closed this as completed in #26667 Sep 2, 2022
mergify bot pushed a commit that referenced this issue Sep 2, 2022
- Created a new "sync debug" pref screen to hold the Fxa, Sync, and Push
  server override prefs.  They were taking a lot of screen space on the
  top-level settings menu as individual items
- Added button on that screen to quit FF which is needed to apply the
  changes.
    - This is definitely not the nicest UI, but hopefully QA can just
      override the prefs once save them in an emulator and never have to
      go back to this screen.
    - I do think this is a nicer UI than before, where FF would quit
      after a change to any of the prefs.  That forces you to restart FF
      3 times if you wanted to override all 3 server URLs.
@github-actions github-actions bot reopened this Sep 2, 2022
@github-actions github-actions bot added eng:qa:needed QA Needed and removed eng:reopen-for-qa Reopens and tags the issue for QA needed when the issue is merged labels Sep 2, 2022
@github-actions github-actions bot added this to the 106 milestone Sep 2, 2022
@LaurentiuApahideanSV
Copy link

I tested the issue on Fenix Nightly 106.0a1 (2022-09-05) an the option to use custom servers is present in the settings menu.
Screenshot_20220905-193133__01

Devices used:

  • OnePlus 6T (Android 9)
  • Google Pixel 6 (Android 13)

@jrconlin
Copy link
Author

jrconlin commented Sep 6, 2022

Thank You All!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
eng:qa:verified QA Verified needs:triage Issue needs triage
Projects
None yet
4 participants