Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTPS by Default for Android #28295

Closed
arthuredelstein opened this issue Feb 5, 2023 · 5 comments · Fixed by brave/brave-core#17581
Closed

HTTPS by Default for Android #28295

arthuredelstein opened this issue Feb 5, 2023 · 5 comments · Fixed by brave/brave-core#17581
Assignees
Labels
Android 8 - Test/Verification Checking on an older Android device to make sure everything is working as expected OS/Android Fixes related to Android browser functionality QA Pass - Android ARM QA Pass - Android Tab QA Pass - Android x86 QA/Test-All-Platforms QA/Yes release-notes/include

Comments

@arthuredelstein
Copy link

Once we have resolved #27141, we plan to add a UI for HTTPS by Default on Android.

@arthuredelstein
Copy link
Author

See QA testing info here: brave/brave-core#17581 (comment)

@kjozwiak kjozwiak added QA/Test-All-Platforms Android 8 - Test/Verification Checking on an older Android device to make sure everything is working as expected labels Mar 30, 2023
@kjozwiak
Copy link
Member

kjozwiak commented Mar 30, 2023

QA can also use brave/brave-variations#560 (comment) as a template. Those are the cases that I went through verifying the feature before enabling it via Griffin 👍 CCing @Uni-verse @stephendonner

@Uni-verse
Copy link
Contributor

Uni-verse commented Apr 7, 2023

Verification Completed on Samsung GS 21 5G using the following versions(s):

Brave	1.51.79 Chromium: 112.0.5615.49 (Official Build) beta (64-bit) 
Revision	bd2a7bcb881c11e8cfe3078709382934e3916914-refs/branch-heads/5615@{#936}
OS	Android 13; Build/TP1A.220624.014
Case: Griffin Experiment

Variations server URL: https://variations.bravesoftware.com/seed

  • Ensured that BraveHttpsByDefaultRolloutStudy:Enabled is shown in active variations
  • Ensured that brave://flags#https-by-default is set to default
Brave://version Shields Panel HTTPS Upgrade in Shields Global settings
screenshot-1680884295495 screenshot-1680880773014 screenshot-1680880793071 screenshot-1680880827272
Case: brave://flags
  • Ensured when enabling brave://flags#https-by-default and relaunching browsing, the setting is updated in the Shields panel as well as the global settings under Privacy/Shields
  • Ensured that https-by-default is not enabled when set to default under brave://flags
Enabled Enabled Disabled Disabled
screenshot-1680893079180 screenshot-1680893094244 screenshot-1680893131675 screenshot-1680893145508
Case: New Profile (Negative Test Case)
  • Ensured that https-by-default is not enabled on a new profile using the production variations seed url.
Enabled Enabled
screenshot-1680885195773 screenshot-1680885209734
Case: Require all connections to use HTTPS (strict)
  • Ensured that loading http://upgradeable.arthuredelstein.net will upgrade automatically to https
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.com will present interstitial page regarding insecure connection.
Example Example Example
screenshot-1680895882059 screenshot-1680893431970 screenshot-1680893474705
Case: Upgrade to HTTPS whenever possible (default)
  • Ensured that loading http://upgradeable.arthuredelstein.net will upgrade to https using default setting
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.comwill not show the interstitial page and show the page contents.
  • Ensured that disabling shields will not upgrade to HTTPS automatically when set to default
Example Example Example Example
screenshot-1681137703877 screenshot-1681137755222 screenshot-1681137842948 screenshot-1681138492254
Case: Don't upgrade connections to HTTPS (disabled)
  • Ensured that loading http://upgradeable.arthuredelstein.net will not upgrade to https
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.comwill not show the interstitial page
    and show the page contents.
Example Example Example
screenshot-1681138288074 screenshot-1681138324343 screenshot-1681138458739
Case: Globals
  • Ensured setting global HTTPS setting will take affect on webpages
  • Ensured that global preference will not override existing per site setting
  • Ensured that changing global HTTPS by default setting multiple times works and displays correctly in settings
Disabled Default Strict
screenshot-1681140487583 screenshot-1681140472647 screenshot-1681140480085
Case: Per-site settings
  • Ensured that per site setting preference overrides global setting
  • Ensured that changing the global setting will not override the existing per site setting
  • Ensured that changing from default to strict for insecure pages will present the site not secure warning interstitial page on http
Case: Shields Toggle
  • Ensured that toggling shields will disable HTTPS by default
  • Ensured that disabling shields will not redirect to https when loading http://upgradable.arthuredelstein.net, and enabling will upgrade to HTTPS by default when set to strict/default
Example Example Example Example
screenshot-1681148343457 screenshot-1681148349770 screenshot-1681148560822 screenshot-1681148567184
Case: Private Browsing
  • Ensured that loading http://upgradeable.arthuredelstein.net will upgrade to https using default setting
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.comwill not show the interstitial page and show the page contents.
Example Example Example Example Example
screenshot-1681148938716 screenshot-1681149030725 screenshot-1681149036625 screenshot-1681149089099 screenshot-1681149131508
Case: Upgraded Profile
  • Ensured that HTTPS by default preference is kept after upgrading
  • Ensured that warning interstitial page is shown when loading https://http.badssl.com with HTTPS by default strict setting
  • Ensured that changing per site and global settings will upgrade to HTTPS accordingly

Testing upgrading from 1.50.99 -> 1.51.85 covered in #28295 (comment)

1.51.78 1.51.78 1.51.78 1.51.78
screenshot-1681150842951 screenshot-1681150888518 screenshot-1681151046323 screenshot-1681150861529
1.51.79 1.51.79 1.51.79 1.51.79
screenshot-1681151160101 screenshot-1681151151287 screenshot-1681151123325 screenshot-1681151133706

Changing preference post-upgrade (http.badssl.com)

Example Example
screenshot-1681151209048 screenshot-1681151238295

@Uni-verse Uni-verse added the QA/In-Progress Indicates that QA is currently in progress for that particular issue label Apr 7, 2023
@Uni-verse
Copy link
Contributor

Uni-verse commented Apr 7, 2023

Verification Completed on Samsung Galaxy Tab S7 using the following versions(s):

Brave	1.51.79 Chromium: 112.0.5615.49 (Official Build) beta (64-bit) 
Revision	bd2a7bcb881c11e8cfe3078709382934e3916914-refs/branch-heads/5615@{#936}
OS	Android 13; Build/TP1A.220624.014
Case: Griffin Experiment

Variations server URL: https://variations.bravesoftware.com/seed

  • Ensured that BraveHttpsByDefaultRolloutStudy:Enabled is shown in active variations
  • Ensured that brave://flags#https-by-default is set to default
Brave://version Shields Panel HTTPS Upgrade in Shields Global settings
screenshot-1681225478062 screenshot-1681225516091 screenshot-1681225525144 screenshot-1681225548443
Case: brave://flags
  • Ensured when enabling brave://flags#https-by-default and relaunching browsing, the setting is updated in the Shields panel as well as the global settings under Privacy/Shields
  • Ensured that https-by-default is not enabled when set to default under brave://flags
Enabled Enabled Disabled Disabled
screenshot-1681225847739 screenshot-1681225868480 screenshot-1681225548443 screenshot-1681225804447
Case: New Profile (Negative Test Case)
  • Ensured that https-by-default is not enabled on a new profile using the production variations seed url.
Example Example
screenshot-1681226092151 screenshot-1681225804447
Case: Require all connections to use HTTPS (strict)
  • Ensured that loading http://upgradeable.arthuredelstein.net will upgrade automatically to https
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.com will present interstitial page regarding insecure connection.
Example Example Example
screenshot-1681226999653 screenshot-1681227059570 screenshot-1681227102074
Case: Upgrade to HTTPS whenever possible (Default)
  • Ensured that loading http://upgradeable.arthuredelstein.net will upgrade to https using default setting
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.comwill not show the interstitial page and show the page contents.
  • Ensured that disabling shields will not upgrade to HTTPS automatically when set to default
Example Example Example Example
screenshot-1681227409508 screenshot-1681227439719 screenshot-1681227461865 screenshot-1681227490497
Case: Don't upgrade connections to HTTPS (disabled)
  • Ensured that loading http://upgradeable.arthuredelstein.net will not upgrade to https
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.comwill not show the interstitial page
    and show the page contents.
Example Example Example
screenshot-1681227490497 screenshot-1681227583128 screenshot-1681227604318
Case: Globals
  • Ensured setting global HTTPS setting will take affect on webpages
  • Ensured that global preference will not override existing per site setting
  • Ensured that changing global HTTPS by default setting multiple times works and displays correctly in settings
Disabled Default Strict
screenshot-1681227760794 screenshot-1681227704825 screenshot-1681227716335
Case: Per-site settings
  • Ensured that per site setting preference overrides global setting
  • Ensured that changing the global setting will not override the existing per site setting
  • Ensured that changing from default to strict for insecure pages will present the site not secure warning interstitial page on http
Case: Shields Toggle
  • Ensured that toggling shields will disable HTTPS by default
  • Ensured that disabling shields will not redirect to https when loading http://upgradable.arthuredelstein.net, and enabling will upgrade to HTTPS by default when set to strict/default
0
Case: Private Browsing
  • Ensured that loading http://upgradable.arthuredelstein.net will upgrade to https using default setting
  • Ensured that loading http://insecure.arthuredelstein.net or http://http.badssl.comwill not show the interstitial page and show the page contents.
Example Example Example Example Example
screenshot-1681237186252 screenshot-1681237192657 screenshot-1681237205038 screenshot-1681237245427 screenshot-1681237299174
Case: Upgraded Profile
  • Ensured that HTTPS by default preference is kept after upgrading
  • Ensured that warning interstitial page is shown when loading https://http.badssl.com with HTTPS by default strict setting
  • Ensured that changing per site and global settings will upgrade to HTTPS accordingly

Defaults (Not changing HTTPS globals, 1.50.99 -> 1.51.79)

Old (Globals) Old (per site) Old (per site)
screenshot-1681243035657 screenshot-1681243063446 screenshot-1681243089151
New (Globals) New (per site) New (per site)
screenshot-1681243270636 screenshot-1681243575359 screenshot-1681243256177

Strict (Always use secure connection enabled, 1.50.99 -> 1.51.79)

Old (Globals) Old (Per site)
screenshot-1681242458952 screenshot-1681242490977
New (Globals) New (Per site)
screenshot-1681242588633 screenshot-1681242566412

Disabled (Disable HTTPS in global settings, 1.50.99 -> 1.51.79)

Old Old
screenshot-1681244505034 screenshot-1681244542171
New New
screenshot-1681244593101 screenshot-1681244580464

@Uni-verse
Copy link
Contributor

Uni-verse commented Apr 11, 2023

Verification Completed on Pixel 5 running Android 8

Brave	1.51.85 Chromium: 112.0.5615.49 (Official Build) beta (32-bit) 
Revision	bd2a7bcb881c11e8cfe3078709382934e3916914-refs/branch-heads/5615@{#936}
OS	Android 8.0.0; Build/OSR1.180418.026

Fresh Profile

Brave://version Brave://flags Example Example Example Example Example Example
Screenshot 2023-04-11 at 6 08 52 PM Screenshot 2023-04-11 at 6 04 15 PM Screenshot 2023-04-11 at 5 56 47 PM Screenshot 2023-04-11 at 5 57 02 PM Screenshot 2023-04-11 at 5 57 27 PM Screenshot 2023-04-11 at 5 57 40 PM Screenshot 2023-04-11 at 5 58 21 PM Screenshot 2023-04-11 at 5 59 57 PM

Upgraded Profile

  • Ensured that default preference is kept when upgrading from 1.50.99 -> 1.51.85
  • Ensured that strict HTTPS preference is kept when upgrading from 1.50.99 -> 1.51.85
Old Old New New
Screenshot 2023-04-11 at 6 21 25 PM Screenshot 2023-04-11 at 6 21 44 PM Screenshot 2023-04-11 at 6 23 32 PM Screenshot 2023-04-11 at 6 23 53 PM

@Uni-verse Uni-verse added QA Pass - Android Tab QA Pass - Android x86 and removed QA/In-Progress Indicates that QA is currently in progress for that particular issue labels Apr 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android 8 - Test/Verification Checking on an older Android device to make sure everything is working as expected OS/Android Fixes related to Android browser functionality QA Pass - Android ARM QA Pass - Android Tab QA Pass - Android x86 QA/Test-All-Platforms QA/Yes release-notes/include
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants