DCHECK hit in extension_function.cc when extension function permission is denied |
|
Issue descriptionChrome Version: ToT What steps will reproduce the problem? (1) Build Chrome with enabled DCHECK's. (2) Install an extension that calls some Extensions API that is denied. (For instance, install a login screen app that uses chrome.usb.getDevices and go to the lock screen.) What is the expected result? The forbidden API call finishes with an error. What happens instead? DCHECK hit: [FATAL:extension_function.cc(509)] Check failed: !browser_client || browser_client->IsShuttingDown() || did_respond() || ignore_all_did_respond_for_testing_do_not_use. usb.getDevices #0 0x7f75fa2ae75b base::debug::StackTrace::StackTrace() #1 0x7f75fa2ad49c base::debug::StackTrace::StackTrace() #2 0x7f75fa319777 logging::LogMessage::~LogMessage() #3 0x55728b79ac83 UIThreadExtensionFunction::~UIThreadExtensionFunction() #4 0x55728bbb89ef extensions::UsbPermissionCheckingFunction::~UsbPermissionCheckingFunction() #5 0x55728bbb9f0f extensions::UsbGetDevicesFunction::~UsbGetDevicesFunction() #6 0x55728bbb9f39 extensions::UsbGetDevicesFunction::~UsbGetDevicesFunction() #7 0x55728b79c821 content::BrowserThread::DeleteOnThread<>::Destruct<>() #8 0x55728b79ae85 UIThreadExtensionFunction::Destruct() #9 0x55728b798a86 ExtensionFunctionDeleteTraits::Destruct() #10 0x55728b79d7bc base::RefCountedThreadSafe<>::Release() #11 0x55728b79d779 scoped_refptr<>::Release() #12 0x55728b79d75a scoped_refptr<>::~scoped_refptr() #13 0x55728b79f895 extensions::ExtensionFunctionDispatcher::DispatchWithCallbackInternal() #14 0x55728b79ed2d extensions::ExtensionFunctionDispatcher::Dispatch() #15 0x55728b80972c extensions::ExtensionWebContentsObserver::OnRequest() #16 0x55728b80a462 _ZN3IPC20DispatchToMethodImplIN10extensions28ExtensionWebContentsObserverEMS2_FvPN7content15RenderFrameHostERK31ExtensionHostMsg_Request_ParamsES4_St5tupleIJS6_E EJLm0EEEEvPT_T0_PT1_RKT2_N4base13IndexSequenceIJXspT3_EEEE #17 0x55728b80a3b0 _ZN3IPC16DispatchToMethodIN10extensions28ExtensionWebContentsObserverEN7content15RenderFrameHostEJRK31ExtensionHostMsg_Request_ParamsEJS5_EEENSt9enable_ifIXeqsZT 1_sZT2_EvE4typeEPT_MSB_FvPT0_DpT1_ESE_RKSt5tupleIJDpT2_EE #18 0x55728b809e5f _ZN3IPC8MessageTI29ExtensionHostMsg_Request_MetaSt5tupleIJ31ExtensionHostMsg_Request_ParamsEEvE8DispatchIN10extensions28ExtensionWebContentsObserverES8_N7content 15RenderFrameHostEMS8_FvPSA_RKS3_EEEbPKNS_7MessageEPT_PT0_PT1_T2_ #19 0x55728b80968a extensions::ExtensionWebContentsObserver::OnMessageReceived() #20 0x55728f14acf6 extensions::ChromeExtensionWebContentsObserver::OnMessageReceived() #21 0x7f75f42a835a content::WebContentsImpl::OnMessageReceived() #22 0x7f75f39ebb6e content::RenderFrameHostImpl::OnMessageReceived() #23 0x7f75f3f61197 content::RenderProcessHostImpl::OnMessageReceived() #24 0x7f75f866ffd8 IPC::ChannelProxy::Context::OnDispatchMessage() #25 0x7f75f86758cf _ZN4base8internal13FunctorTraitsIMN3IPC12ChannelProxy7ContextEFvRKNS2_7MessageEEvE6InvokeIRK13scoped_refptrIS4_EJS7_EEEvS9_OT_DpOT0_ #26 0x7f75f86757b6 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN3IPC12ChannelProxy7ContextEFvRKNS4_7MessageEEJRK13scoped_refptrIS6_ES9_EEEvOT_DpOT0_ #27 0x7f75f8675743 _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE7RunImplIRKSA_RKSt5tupleIJSC_S6_EEJLm0ELm 1EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #28 0x7f75f867565c _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE3RunEPNS0_13BindStateBaseE #29 0x7f75fa26db5e _ZNO4base8CallbackIFvvELNS_8internal8CopyModeE0ELNS2_10RepeatModeE0EE3RunEv #30 0x7f75fa2b3c51 base::debug::TaskAnnotator::RunTask() #31 0x7f75fa34240e base::MessageLoop::RunTask() #32 0x7f75fa342677 base::MessageLoop::DeferOrRunPendingTask() #33 0x7f75fa34298f base::MessageLoop::DoWork() #34 0x7f75fa35488c base::MessagePumpLibevent::Run() #35 0x7f75fa341e73 base::MessageLoop::Run() #36 0x7f75fa3e1287 base::RunLoop::Run() #37 0x55728d4f1396 ChromeBrowserMainParts::MainMessageLoopRun() #38 0x7f75f36437bb content::BrowserMainLoop::RunMainMessageLoopParts() #39 0x7f75f364f225 content::BrowserMainRunnerImpl::Run() #40 0x7f75f363d518 content::BrowserMain() #41 0x7f75f4ed83b6 content::RunNamedProcessTypeMain() #42 0x7f75f4eda66f content::ContentMainRunnerImpl::Run() #43 0x7f75f4ed700a content::ContentServiceManagerMainDelegate::RunEmbedderProcess() #44 0x7f75faa84f27 service_manager::Main() #45 0x7f75f4ed7edb content::ContentMain() #46 0x55728b442bec ChromeMain #47 0x55728b442ae2 main #48 0x7f75de88ff45 __libc_start_main #49 0x55728b4429c4 <unknown>
,
Jun 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d2a741e22ed01d0cf2868f4ddddeb984a417849d commit d2a741e22ed01d0cf2868f4ddddeb984a417849d Author: tbarzic <tbarzic@chromium.org> Date: Wed Jun 28 20:37:54 2017 Introduce profile for lock screen apps Introduces the profile to be used to run lock screen apps, instead of sign-in profile. The profile behavior will be similar to sign-in profile, but using separate profile allows better isolation between apps running on login screen and apps running on lock screen (which have different set of app/extension APIs available), and make inference of lock screen extension context type more straight forward. Also, this will enable us to make lock screen app profile ephemeral. This also updates the way lock_screen_extension context is calculated, allows background pages in the profile for lock screen apps, and disables app autoupdates in the lock screen profile (since the app versions in the profile should correspond to app versions in the user profile). BUG=715781,734698 Review-Url: https://codereview.chromium.org/2945023002 Cr-Commit-Position: refs/heads/master@{#483123} [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/drive/file_system_util.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/file_manager/volume_manager.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/file_system_provider/mount_path_util.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/lock_screen_apps/state_controller.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/lock_screen_apps/state_controller.h [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/lock_screen_apps/state_controller_unittest.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/login/easy_unlock/easy_unlock_tpm_key_manager_factory.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/ownership/owner_settings_service_chromeos_factory.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/policy/login_profile_policy_provider.h [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/policy/user_network_configuration_updater_factory.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/policy/user_policy_manager_factory_chromeos.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/profiles/profile_helper.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/chromeos/profiles/profile_helper.h [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/extensions/BUILD.gn [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/extensions/chrome_extensions_browser_client.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/extensions/chrome_process_manager_delegate.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/extensions/extension_service.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/extensions/extension_system_impl.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/metrics/chrome_metrics_service_client.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/policy/profile_policy_connector.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/policy/profile_policy_connector_factory.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/profiles/profile_impl.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/profiles/profile_manager.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/signin/easy_unlock_service_factory.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/supervised_user/child_accounts/child_account_service.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/ui/app_list/app_list_syncable_service_factory.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/browser/ui/ash/chrome_shell_delegate.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/chrome/test/base/testing_profile_manager.cc [modify] https://crrev.com/d2a741e22ed01d0cf2868f4ddddeb984a417849d/extensions/browser/process_map_factory.cc |
|
►
Sign in to add a comment |
|
Comment 1 by emaxx@chromium.org
, Jun 19 2017Status: Assigned (was: Untriaged)