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

Fix farbled user agent on mobile #8320

Merged
merged 1 commit into from
Mar 31, 2021
Merged

Fix farbled user agent on mobile #8320

merged 1 commit into from
Mar 31, 2021

Conversation

pilgrim-brave
Copy link
Contributor

@pilgrim-brave pilgrim-brave commented Mar 22, 2021

Resolves brave/brave-browser#14740

Logic within upstream UA building code appends " Mobile" to the UA at a specific place if kUseMobileUserAgent switch is on, which it is for the Android build. This confused our test for whether the UA had been overridden by something we wanted to respect (like a command line flag or a user-modifiable runtime flag), resulting in never farbling the UA on Android. This fix replicates the kUseMobileUserAgent logic within BraveContentBrowserClient so that we properly minimize/farble the UA on all platforms, while still respecting relevant commandline/runtime flags.

Includes a new test to ensure that we are sending our minimized UA over the wire when kUseMobileUserAgent switch is on. (For Android, this means no build number or model name.)

Also migrates UA farbling tests to EvalJs.

Submitter Checklist:

  • I confirm that no security/privacy review is needed, or that I have requested one
  • There is a ticket for my issue
  • Used Github auto-closing keywords in the PR description above
  • Wrote a good PR/commit description
  • Added appropriate labels (QA/Yes or QA/No; release-notes/include or release-notes/exclude; OS/...) to the associated issue
  • Checked the PR locally: npm run test -- brave_browser_tests, npm run test -- brave_unit_tests, npm run lint, npm run gn_check, npm run tslint
  • Ran git rebase master (if needed)

Reviewer Checklist:

  • A security review is not needed, or a link to one is included in the PR description
  • New files have MPL-2.0 license header
  • Adequate test coverage exists to prevent regressions
  • Major classes, functions and non-trivial code blocks are well-commented
  • Changes in component dependencies are properly reflected in gn
  • Code follows the style guide
  • Test plan is specified in PR before merging

After-merge Checklist:

Test Plan:

@pilgrim-brave pilgrim-brave merged commit 2007b78 into master Mar 31, 2021
@pilgrim-brave pilgrim-brave deleted the mpilgrim_ua_mobile branch March 31, 2021 14:09
yrliou pushed a commit that referenced this pull request Apr 21, 2021
@yrliou yrliou added this to the 1.24.x - Beta milestone Apr 21, 2021
@kjozwiak
Copy link
Member

Verification PASSED on Samsung S10+ running Android 11 using the following build:

1.25.31 Chromium: 90.0.4430.72
1.22.71 Chromium: 89.0.4389.114 (Release) 1.25.31 Chromium: 90.0.4430.72
Screenshot_20210421-231228_Brave Screenshot_20210421-231307_Brave - Nightly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fingerprinting 2.0: User Agent - follow up to #12638
4 participants