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

Fixes a crash on Android permission dialog after cr125 update #23622

Merged
merged 1 commit into from
May 14, 2024

Conversation

SergeyZhukovsky
Copy link
Member

@SergeyZhukovsky SergeyZhukovsky commented May 13, 2024

Resolves brave/brave-browser#38297

Submitter Checklist:

  • I confirm that no security/privacy review is needed and no other type of reviews are needed, or that I have requested them
  • There is a ticket for my issue
  • Used Github auto-closing keywords in the PR description above
  • Wrote a good PR/commit description
  • Squashed any review feedback or "fixup" commits before merge, so that history is a record of what happened in the repo, not your PR
  • 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 wiki
    • npm run presubmit wiki, 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:

Described in the original issue.

Copy link
Contributor

@samartnik samartnik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

#define kStorageAccess \
kStorageAccess, kWidevine, kBraveEthereum, kBraveSolana, \
kBraveGoogleSignInPermission, kBraveLocalhostAccessPermission, \
kBraveDefault
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this doesn't seem right to me cc @goodov

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why we're getting the default content setting here in permissions, but it's also not a brave specific permission so we shouldn't require a new request type here. I think we must be handling something incorrectly. Can this be replicated on desktop under the same conditions?

Copy link
Collaborator

@bridiver bridiver May 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the crash is just uma stuff, but it seems like there is some other underlying issue if we're getting DEFAULT as the dismissal type. I feel like this change might just be covering up a more serious problem. In particular since DEFAULT is not a brave-specific type, if it was expected it would be handled by chromium. The fact that we're seeing it at all seems to indicate that this is just a symptom of the real problem

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we are getting DEFAULT as we need to register Widevine Content Settings Type here otherwise https://github.com/brave/brave-core/blob/master/chromium_src/components/content_settings/core/common/content_settings_types.mojom and here https://github.com/brave/brave-core/blob/master/chromium_src/components/content_settings/core/browser/content_settings_registry.cc, so the conversion from Content Settings Type to Registry Type for Widevine works. I don't think we want that as you mentioned it's only for UMA which we don't need.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am open for suggestions on how we can resolve it different and fast without delaying cr126 update.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

chromium didn't have that UMA check before cr126 that's why it worked without any issues.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see what's going on here now, we don't have a content setting for widevine so it's mapping to ContentSettingsType::DEFAULT. As discussed for now let's just map DEFAULT <-> kWidevine and we'll follow-up to figure out if we want to keep that, add a widevine content setting or do something else

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I created a follow to think about that brave/brave-browser#38304

@@ -39,6 +39,7 @@ constexpr auto& kMicIconValue = vector_icons::kMicIcon;
case RequestType::kBraveSolana: \
case RequestType::kBraveGoogleSignInPermission: \
case RequestType::kBraveLocalhostAccessPermission: \
case RequestType::kBraveDefault: \
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comments hidden above that are no longer correct

image

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, right, I removed it.

@SergeyZhukovsky SergeyZhukovsky force-pushed the android_permission_dialog_crash branch from e0e5517 to a4af12f Compare May 14, 2024 00:28
@SergeyZhukovsky SergeyZhukovsky force-pushed the android_permission_dialog_crash branch from a4af12f to 27649d9 Compare May 14, 2024 01:49
@SergeyZhukovsky SergeyZhukovsky merged commit a20eddd into master May 14, 2024
18 checks passed
@SergeyZhukovsky SergeyZhukovsky deleted the android_permission_dialog_crash branch May 14, 2024 12:07
@github-actions github-actions bot added this to the 1.68.x - Nightly milestone May 14, 2024
brave-builds added a commit that referenced this pull request May 14, 2024
brave-builds added a commit that referenced this pull request May 14, 2024
@kjozwiak
Copy link
Member

Verification PASSED on Pixel 6 running Android 14 using the following build(s):

Brave | 1.68.15 Chromium: 125.0.6422.41 (Official Build) canary (64-bit)
--- | ---
Revision | 44bf2576babb006f56c3e25c10e65bcae667794e
OS | Android 14; Build/AP21.240305.005; 34; REL

Using the STR/Cases outlined via brave/brave-browser#38297 (comment), reproduced the original issue using 1.68.14 Chromium: 125.0.6422.41 as per the following:

screen-20240514-165734.mp4

Using the same STR/Cases mentioned above, ensured that Brave wasn't crashing as per the following:

screen-20240514-170200.mp4

kjozwiak pushed a commit that referenced this pull request May 14, 2024
kjozwiak pushed a commit that referenced this pull request May 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants