M68 Beta: Opening "Manage other people" in Settings crashes Chrome |
|||||||||||||
Issue descriptionReceived several feedback reports from users that their Chromebook crashes if they try to open "Manage other people" in Settings Unmanaged (Consumer) users running 68.0.3440.34 beta & 68.0.3440.25 beta. User Feedback reports (with logs): - http://listnr/product/208/report/85514210694 - http://listnr/product/208/report/85508925438 - http://listnr/product/208/report/85510307961
,
Jun 26 2018
Albert, do you know whom would own this sort of bug?
,
Jun 26 2018
Generally authentication falls to rkc@ and identity to atwilson@. This could fall under either (or both or neither). I'm going to guess identity to start.
,
Jun 27 2018
More details from Chromebook Forum: "You cannot get to the 'Manage other people...' page at all. Typing in the URL manually (chrome://settings/accounts) does not work at all."
,
Jun 27 2018
,
Jun 28 2018
I was able to reproduce this on a 68.0.3440.34 samus build with 2 unmanaged accounts using the owner account. I can also reproduce this on a ToT dev build (69), but I don't currently have symbols. Investigating.
,
Jun 28 2018
,
Jun 28 2018
,
Jun 28 2018
OK, the bug appears to be in users_private_api.cc: https://cs.chromium.org/chromium/src/chrome/browser/chromeos/extensions/users_private/users_private_api.cc?q=users_private_api.cc&sq=package:chromium&dr&l=53 Which was added here: https://chromium-review.googlesource.com/c/chromium/src/+/1072910 (gdb) bt #0 RefcountedBrowserContextKeyedServiceFactory::GetBrowserContextToUse(content::BrowserContext*) const () at ../../components/keyed_service/content/browser_context_keyed_base_factory.cc:25 #1 0x00005dd11f0cc657 in KeyedServiceFactory::GetServiceForContext(base::SupportsUserData*, bool) () at ../../components/keyed_service/core/keyed_service_factory.cc:63 #2 0x00005dd11cc227ca in extensions::(anonymous namespace)::CreateApiUser(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, user_manager::User const&) () at ../../chrome/browser/chromeos/extensions/users_private/users_private_api.cc:53 #3 0x00005dd11cc224a8 in extensions::UsersPrivateGetWhitelistedUsersFunction::Run() () at ../../chrome/browser/chromeos/extensions/users_private/users_private_api.cc:164 #4 0x00005dd11c56f252 in ExtensionFunction::RunWithValidation() () at ../../extensions/browser/extension_function.cc:451 #5 0x00005dd11c570fc4 in extensions::ExtensionFunctionDispatcher::DispatchWithCallbackInternal(ExtensionHostMsg_Request_Params const&, content::RenderFrameHost*, int, base::RepeatingCallback<void (ExtensionFunction::ResponseType, base::ListValue const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, extensions::functions::HistogramValue)> const&) () at ../../extensions/browser/extension_function_dispatcher.cc:464 #6 0x00005dd11c570cf9 in extensions::ExtensionFunctionDispatcher::Dispatch(ExtensionHostMsg_Request_Params const&, content::RenderFrameHost*, int) () at ../../extensions/browser/extension_function_dispatcher.cc:404 #7 0x00005dd11c591642 in bool IPC::MessageT<ExtensionHostMsg_Request_Meta, std::__1::tuple<ExtensionHostMsg_Request_Params>, void>::Dispatch<extensions::ExtensionWebContentsObserver, extensions::ExtensionWebContentsObserver, content::RenderFrameHost, void (extensions::ExtensionWebContentsObserver::*)(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)>(IPC::Message const*, extensions::ExtensionWebContentsObserver*, extensions::ExtensionWebContentsObserver*, content::RenderFrameHost*, void (extensions::ExtensionWebContentsObserver::*)(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)) () at ../../ipc/ipc_message_templates.h:64 #8 0x00005dd11c591587 in extensions::ExtensionWebContentsObserver::OnMessageReceived(IPC::Message const&, content::RenderFrameHost*) () at ../../extensions/browser/extension_web_contents_observer.cc:225 #9 0x00005dd11f69b1e9 in extensions::ChromeExtensionWebContentsObserver::OnMessageReceived(IPC::Message const&, content::RenderFrameHost*) () at ../../chrome/browser/extensions/chrome_extension_web_contents_observer.cc:106 #10 0x00005dd11c2fd9b7 in content::WebContentsImpl::OnMessageReceived(content::RenderFrameHostImpl*, IPC::Message const&) () at ../../content/browser/web_contents/web_contents_impl.cc:937 #11 0x00005dd11c06d41b in content::RenderFrameHostImpl::OnMessageReceived(IPC::Message const&) () at ../../content/browser/frame_host/render_frame_host_impl.cc:980 #12 0x00005dd11dbf8b3b in IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&) () at ../../ipc/ipc_channel_proxy.cc:320 #13 0x00005dd11d98d809 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) () at ../../base/callback.h:99 #14 0x00005dd11d9a3777 in base::MessageLoop::RunTask(base::PendingTask*) () at ../../base/message_loop/message_loop.cc:319 #15 0x00005dd11d9a3c67 in base::MessageLoop::DoWork() () at ../../base/message_loop/message_loop.cc:329 #16 0x00005dd11da1ce79 in base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) () at ../../base/message_loop/message_pump_libevent.cc:210 #17 0x00005dd11d9c31e5 in base::RunLoop::Run() () at ../../base/run_loop.cc:102 #18 0x00005dd11d6959b8 in ChromeBrowserMainParts::MainMessageLoopRun(int*) () at ../../chrome/browser/chrome_browser_main.cc:2053 #19 0x00005dd11bf2bf04 in content::BrowserMainLoop::RunMainMessageLoopParts() () at ../../content/browser/browser_main_loop.cc:977 #20 0x00005dd11bf2e812 in content::BrowserMainRunnerImpl::Run() () at ../../content/browser/browser_main_runner_impl.cc:169 #21 0x00005dd11bf28541 in content::BrowserMain(content::MainFunctionParams const&, std::__1::unique_ptr<content::BrowserProcessSubThread, std::__1::default_delete<content::BrowserProcessSubThread> >) () at ../../content/browser/browser_main.cc:51 #22 0x00005dd11d683c6b in content::ContentMainRunnerImpl::Run() () at ../../content/app/content_main_runner_impl.cc:608 #23 0x00005dd11d68c570 in service_manager::Main(service_manager::MainParams const&) () at ../../services/service_manager/embedder/main.cc:459 #24 0x00005dd11d681c71 in content::ContentMain(content::ContentMainParams const&) () at ../../content/app/content_main.cc:19 #25 0x00005dd11b40b2ff in ChromeMain () at ../../chrome/app/chrome_main.cc:101 #26 0x0000751b2fc14736 in __libc_start_main (main=0x5dd11b40b260 <main>, argc=28, argv=0x7ffe5a8874b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe5a8874a8) at ../csu/libc-start.c:289 #27 0x00005dd11b40b129 in _start () (gdb)
,
Jun 28 2018
Found the source of the crash, it is a UI bug. CL with the fix is up: https://chromium-review.googlesource.com/c/chromium/src/+/1118921
,
Jun 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ef47cfb48bba0688ced57d91b1059f03dc82b99a commit ef47cfb48bba0688ced57d91b1059f03dc82b99a Author: Steven Bennetts <stevenjb@chromium.org> Date: Fri Jun 29 00:34:23 2018 users_private: Do not use profile for other users GetProfileByUser() will return null for a non logged in user, so do not use IsOwnerProfile() to set is_owner. This also fixes behavior in ChromeUserManagerImpl where the active user was not correctly set as the owner when kStubCrosSettings is set because UserManagerBase::UserLoggedIn is calling RegularUserLoggedInAsEphemeral() instead of RegularUserLoggedIn() for non owners, and the logic to set the user as the owner was in RegularUserLoggedIn(). Bug: 856441 Change-Id: I085d46accb3c97c1b6ee5615b838a5de796e3f8b Reviewed-on: https://chromium-review.googlesource.com/1118921 Commit-Queue: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Alexander Alekseev <alemate@chromium.org> Cr-Commit-Position: refs/heads/master@{#571341} [modify] https://crrev.com/ef47cfb48bba0688ced57d91b1059f03dc82b99a/chrome/browser/chromeos/extensions/users_private/users_private_api.cc [modify] https://crrev.com/ef47cfb48bba0688ced57d91b1059f03dc82b99a/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc [modify] https://crrev.com/ef47cfb48bba0688ced57d91b1059f03dc82b99a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc [modify] https://crrev.com/ef47cfb48bba0688ced57d91b1059f03dc82b99a/chrome/browser/chromeos/login/users/chrome_user_manager_impl.h
,
Jun 29 2018
To verify on 69: 1. Add two non enterprise users to a device 2. Log in with the owner account 3. Navigate to chrome://settings, go to the 'People' section, click on 'Manage other people'. Ensure: a) Chrome does not crash. b) There is a list of users under 'Restrict sign-in to the following users:' c) The owner (current user) has "(owner)" next to their name. That said, I believe this patch is safe to merge without verification on 69 (I verified the fix on a device with a local build).
,
Jun 29 2018
Issue 859082 has been merged into this issue.
,
Jun 29 2018
,
Jun 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3c3c5f8d8c2b20b06196c7c590b36cf9472537af commit 3c3c5f8d8c2b20b06196c7c590b36cf9472537af Author: Steven Bennetts <stevenjb@chromium.org> Date: Fri Jun 29 19:10:34 2018 users_private: Do not use profile for other users GetProfileByUser() will return null for a non logged in user, so do not use IsOwnerProfile() to set is_owner. This also fixes behavior in ChromeUserManagerImpl where the active user was not correctly set as the owner when kStubCrosSettings is set because UserManagerBase::UserLoggedIn is calling RegularUserLoggedInAsEphemeral() instead of RegularUserLoggedIn() for non owners, and the logic to set the user as the owner was in RegularUserLoggedIn(). TBR=stevenjb@chromium.org (cherry picked from commit ef47cfb48bba0688ced57d91b1059f03dc82b99a) Bug: 856441 Change-Id: I085d46accb3c97c1b6ee5615b838a5de796e3f8b Reviewed-on: https://chromium-review.googlesource.com/1118921 Commit-Queue: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Alexander Alekseev <alemate@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#571341} Reviewed-on: https://chromium-review.googlesource.com/1120947 Reviewed-by: Steven Bennetts <stevenjb@chromium.org> Cr-Commit-Position: refs/branch-heads/3440@{#570} Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733} [modify] https://crrev.com/3c3c5f8d8c2b20b06196c7c590b36cf9472537af/chrome/browser/chromeos/extensions/users_private/users_private_api.cc [modify] https://crrev.com/3c3c5f8d8c2b20b06196c7c590b36cf9472537af/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc [modify] https://crrev.com/3c3c5f8d8c2b20b06196c7c590b36cf9472537af/chrome/browser/chromeos/login/users/chrome_user_manager_impl.cc [modify] https://crrev.com/3c3c5f8d8c2b20b06196c7c590b36cf9472537af/chrome/browser/chromeos/login/users/chrome_user_manager_impl.h |
|||||||||||||
►
Sign in to add a comment |
|||||||||||||
Comment 1 by trumbull@chromium.org
, Jun 26 2018