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

EthereumRemoteClientService::IsCryptoWalletsReady crash on profile picker #31423

Closed
goodov opened this issue Jul 3, 2023 · 4 comments · Fixed by brave/brave-core#19140
Closed

Comments

@goodov
Copy link
Member

goodov commented Jul 3, 2023

most likely auto* registry = extensions::ExtensionRegistry::Get(context_); returns nullptr.

https://brave.sp.backtrace.io/p/brave/triage?filters=W1siY2FsbHN0YWNrLmZ1bmN0aW9ucyIsImNvbnRhaW5zIiwiUHJvZmlsZVBpY2tlclZpZXciXSxbImNhbGxzdGFjay5mdW5jdGlvbnMiLCJjb250YWlucyIsIkV0aGVyZXVtUmVtb3RlQ2xpZW50U2VydmljZTo6SXNDcnlwdG9XYWxsZXRzUmVhZHkiXV0%3D&aggregations=((guid%2Cunique)%2C(classifiers%2Chead))&similarity=false

[ 00 ] std::Cr::__tree_const_iterator<std::Cr::__value_type<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>, scoped_refptr<extensions::Extension const>>, std::Cr::__tree_node<std::Cr::__value_type<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>, scoped_refptr<extensions::Extension const>>, void*>*, long> std::Cr::__tree<std::Cr::__value_type<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>, scoped_refptr<extensions::Extension const>>, std::Cr::__map_value_compare<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>, std::Cr::__value_type<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>, scoped_refptr<extensions::Extension const>>, std::Cr::less<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>>, true>, std::Cr::allocator<std::Cr::__value_type<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>, scoped_refptr<extensions::Extension const>>>>::find<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>>
[ 01 ] std::Cr::map<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>, scoped_refptr<extensions::Extension const>, std::Cr::less<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>>>, std::Cr::allocator<std::Cr::pair<std::Cr::basic_string<char, std::Cr::char_traits<char>, std::Cr::allocator<char>> const, scoped_refptr<extensions::Extension const>>>>::find
[ 02 ] extensions::ExtensionSet::Contains
[ 03 ] EthereumRemoteClientService::IsCryptoWalletsReady
[ 04 ] BraveContentBrowserClient::HandleURLOverrideRewrite
[ 05 ] content::BrowserURLHandlerImpl::RewriteURLIfNecessary
[ 06 ] content::RewriteUrlForNavigation
[ 07 ] content::NavigationControllerImpl::CreateNavigationEntry
[ 08 ] content::NavigationControllerImpl::NavigateWithoutEntry
[ 09 ] content::NavigationControllerImpl::LoadURLWithParams
[ 10 ] content::NavigationControllerImpl::LoadURL
[ 11 ] ProfilePickerView::ShowScreen(content::WebContents*, GURL const&, base::OnceCallback<void ()>)
[ 12 ] ProfileManagementFlowController::SwitchToStep(ProfileManagementFlowController::Step, bool, base::OnceCallback<void (bool)>, base::OnceCallback<void ()>)
[ 13 ] ProfilePickerFlowController::Init(base::OnceCallback<void (bool)>)
[ 14 ] ProfilePickerView::Init
[ 15 ] ProfileManager::CreateProfileAsync(base::FilePath const&, base::OnceCallback<void (Profile*)>, base::OnceCallback<void (Profile*)>)
[ 16 ] ProfilePickerView::Display
[ 17 ] StartupBrowserCreator::LaunchBrowserForLastProfiles
[ 18 ] StartupBrowserCreator::ProcessCmdLineImpl
[ 19 ] StartupBrowserCreator::Start
[ 20 ] ChromeBrowserMainParts::PreMainMessageLoopRunImpl
[ 21 ] ChromeBrowserMainParts::PreMainMessageLoopRun
[ 22 ] content::BrowserMainLoop::PreMainMessageLoopRun
[ 23 ] content::StartupTaskRunner::RunAllTasksNow
[ 24 ] content::BrowserMainLoop::CreateStartupTasks
[ 25 ] content::BrowserMainRunnerImpl::Initialize
[ 26 ] content::BrowserMain
[ 27 ] content::RunBrowserProcessMain
[ 28 ] content::ContentMainRunnerImpl::RunBrowser
[ 29 ] content::ContentMainRunnerImpl::Run
[ 30 ] content::RunContentProcess
[ 31 ] content::ContentMain
[ 32 ] ChromeMain
[ 33 ] main

Steps to reproduce:

  • Create a secondary profile
  • Mark Enable Brave Wallet brave://flags/#native-brave-wallet as disabled
  • Restart browser(full complete restart, not 'Relaunch' from flags screen)
  • Expected: profile picker should appear
  • Observed: browser crashes
@kjozwiak
Copy link
Member

kjozwiak commented Jul 7, 2023

@goodov @supermassive assuming this is a QA/No as there's no STR/Cases as the crash stack was retrieved from BackTrace. If there's anything that QA can do, please add some STR/Cases and change it back to QA/Yes. Also adding missing labels.

@kjozwiak
Copy link
Member

kjozwiak commented Jul 7, 2023

The above requires 1.56.1 or higher for 1.56.x verification if @goodov or @supermassive change the above to QA/Yes 👍

@supermassive
Copy link

@kjozwiak @srirambv Added STR

@srirambv
Copy link
Contributor

Verification passed on

Brave 1.56.1 Chromium: 115.0.5790.75 (Official Build) (64-bit)
Revision 3433e4d513e8454ba0243deea3d53693661dc0c3-refs/branch-heads/5790@{#1430}
OS Windows 11 Version 22H2 (Build 22621.1848)
  • Verified steps from issue description
  • Verified when brave://flags/#native-brave-wallet is disabled and with multiple profiles, launching browser brings up profile picker and doesn't crash when selecting any of the created profiles
31423.mp4

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

Successfully merging a pull request may close this issue.

5 participants