Open magreenblatt opened 5 years ago
This appears to come from KeychainPassword::GetPassword in Chromium. Are you able to set a breakpoint in that method and post the symbolized call stack?
Here’s the call stack from current CEF master (Chromium 75.0.3770.0):
* thread #1, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = breakpoint 2.1
* frame #0: 0x000000010f0326ca Chromium Embedded Framework`KeychainPassword::GetPassword(this=0x00007ffeefbf70a8) const at keychain_password_mac.mm:66
frame #1: 0x000000010f03357f Chromium Embedded Framework`(anonymous namespace)::GetEncryptionKey() at os_crypt_mac.mm:108
frame #2: 0x000000010f033248 Chromium Embedded Framework`OSCrypt::GetRawEncryptionKey() at os_crypt_mac.mm:137
frame #3: 0x00000001103c0318 Chromium Embedded Framework`SystemNetworkContextManager::OnNetworkServiceCreated(this=0x0000000100b3bee0, network_service=0x000000016ee2c110) at system_network_context_manager.cc:551
frame #4: 0x000000010b06ed03 Chromium Embedded Framework`CefContentBrowserClient::OnNetworkServiceCreated(this=0x0000000100916d70, network_service=0x000000016ee2c110) at content_browser_client.cc:1300
frame #5: 0x000000010720eec4 Chromium Embedded Framework`content::GetNetworkServiceFromConnector(connector=0x0000000100b37230) at network_service_instance.cc:217
frame #6: 0x000000010720e4d6 Chromium Embedded Framework`content::GetNetworkService() at network_service_instance.cc:119
frame #7: 0x00000001103b602a Chromium Embedded Framework`ProfileNetworkContextService::CreateNetworkContext(this=0x000000016ee28a60, in_memory=true, relative_partition_path=0x0000000100ab8250) at profile_network_context_service.cc:155
frame #8: 0x0000000110696afa Chromium Embedded Framework`Profile::CreateNetworkContext(this=0x0000000100b826a0, in_memory=true, relative_partition_path=0x0000000100ab8250) at profile.cc:274
frame #9: 0x000000010b06ed95 Chromium Embedded Framework`CefContentBrowserClient::CreateNetworkContext(this=0x0000000100916d70, context=0x0000000100b826a0, in_memory=true, relative_partition_path=0x0000000100ab8250) at content_browser_client.cc:1309
frame #10: 0x000000010793767c Chromium Embedded Framework`content::StoragePartitionImpl::InitNetworkContext(this=0x0000000100ab8230) at storage_partition_impl.cc:1416
frame #11: 0x0000000107937597 Chromium Embedded Framework`content::StoragePartitionImpl::GetNetworkContext(this=0x0000000100ab8230) at storage_partition_impl.cc:799
frame #12: 0x000000010795ac86 Chromium Embedded Framework`content::URLLoaderFactoryGetter::HandleNetworkFactoryRequestOnUIThread(this=0x0000000100abc840, network_factory_request=network::mojom::URLLoaderFactoryRequest @ 0x00007ffeefbf8b28, is_corb_enabled=false) at url_loader_factory_getter.cc:301
frame #13: 0x0000000107940143 Chromium Embedded Framework`content::URLLoaderFactoryGetter::HandleFactoryRequests(this=0x0000000100abc840) at url_loader_factory_getter.cc:152
frame #14: 0x0000000107936ed9 Chromium Embedded Framework`content::URLLoaderFactoryGetter::Initialize(this=0x0000000100abc840, partition=0x0000000100ab8230) at url_loader_factory_getter.cc:141
frame #15: 0x0000000107935801 Chromium Embedded Framework`content::StoragePartitionImpl::Create(context=0x0000000100b826a0, in_memory=true, relative_partition_path=0x00007ffeefbf9ad0, partition_domain="") at storage_partition_impl.cc:729
frame #16: 0x000000010793eabc Chromium Embedded Framework`content::StoragePartitionImplMap::Get(this=0x0000000100a9ac20, partition_domain="", partition_name="", in_memory=true, can_create=true) at storage_partition_impl_map.cc:397
frame #17: 0x0000000106733330 Chromium Embedded Framework`content::(anonymous namespace)::GetStoragePartitionFromConfig(browser_context=0x0000000100b826a0, partition_domain="", partition_name="", in_memory=true, can_create=true) at browser_context.cc:218
frame #18: 0x0000000106733204 Chromium Embedded Framework`content::BrowserContext::GetStoragePartition(browser_context=0x0000000100b826a0, site_instance=0x0000000100ab7f90, can_create=true) at browser_context.cc:437
frame #19: 0x00000001075e1e36 Chromium Embedded Framework`content::(anonymous namespace)::SpareRenderProcessHostManager::MaybeTakeSpareRenderProcessHost(this=0x000000011bdb2a60, browser_context=0x0000000100b826a0, site_instance=0x0000000100ab7f90, is_for_guests_only=false) at render_process_host_impl.cc:565
frame #20: 0x00000001075e15ab Chromium Embedded Framework`content::RenderProcessHostImpl::GetProcessHostForSiteInstance(site_instance=0x0000000100ab7f90) at render_process_host_impl.cc:3998
frame #21: 0x00000001078cd447 Chromium Embedded Framework`content::SiteInstanceImpl::GetProcess(this=0x0000000100ab7f90) at site_instance_impl.cc:185
frame #22: 0x00000001079711f4 Chromium Embedded Framework`content::WebContentsImpl::Init(this=0x000000016787be00, params=0x00007ffeefbfb520) at web_contents_impl.cc:2055
frame #23: 0x000000010795fa97 Chromium Embedded Framework`content::WebContentsImpl::CreateWithOpener(params=0x00007ffeefbfb520, opener_rfh=0x0000000000000000) at web_contents_impl.cc:788
frame #24: 0x000000010795f659 Chromium Embedded Framework`content::WebContents::Create(params=0x00007ffeefbfb520) at web_contents_impl.cc:311
frame #25: 0x000000010b014aa1 Chromium Embedded Framework`CefBrowserHostImpl::Create(create_params=0x00007ffeefbfc000) at browser_host_impl.cc:367
frame #26: 0x000000010b014223 Chromium Embedded Framework`CefBrowserHost::CreateBrowserSync(windowInfo=0x000000016ee14e50, client=(ptr_ = 0x0000000100b6a060), url=0x000000016ee14eb8, settings=0x000000016ee14ed0, extra_info=(ptr_ = 0x0000000000000000), request_context=(ptr_ = 0x0000000100b69f80)) at browser_host_impl.cc:290
frame #27: 0x000000010b013b97 Chromium Embedded Framework`(anonymous namespace)::CreateBrowserWithHelper(helper=0x000000016ee14e50)::CreateBrowserHelper*) at browser_host_impl.cc:142
frame #28: 0x000000010b02c852 Chromium Embedded Framework`void base::internal::FunctorTraits<void (*)((anonymous namespace)::CreateBrowserHelper*), void>::Invoke<void (function=(0x000000016ee03ad0), args=0x000000016ee03ad8)((anonymous namespace)::CreateBrowserHelper*), (anonymous namespace)::CreateBrowserHelper*>(void (*&&)((anonymous namespace)::CreateBrowserHelper*), (anonymous namespace)::CreateBrowserHelper*&&) at bind_internal.h:399
frame #29: 0x000000010b02c7a2 Chromium Embedded Framework`void base::internal::InvokeHelper<false, void>::MakeItSo<void (functor=(0x000000016ee03ad0), args=0x000000016ee03ad8)((anonymous namespace)::CreateBrowserHelper*), (anonymous namespace)::CreateBrowserHelper*>(void (*&&)((anonymous namespace)::CreateBrowserHelper*), (anonymous namespace)::CreateBrowserHelper*&&) at bind_internal.h:599
frame #30: 0x000000010b02c742 Chromium Embedded Framework`void base::internal::Invoker<base::internal::BindState<void (*)((anonymous namespace)::CreateBrowserHelper*), (anonymous namespace)::CreateBrowserHelper*>, void ()>::RunImpl<void (functor=(0x000000016ee03ad0), bound=size=1, (null)=std::__1::index_sequence<0UL> @ 0x00007ffeefbfc788)((anonymous namespace)::CreateBrowserHelper*), std::__1::tuple<(anonymous namespace)::CreateBrowserHelper*>, 0ul>(void (*&&)((anonymous namespace)::CreateBrowserHelper*), std::__1::tuple<(anonymous namespace)::CreateBrowserHelper*>&&, std::__1::integer_sequence<unsigned long, 0ul>) at bind_internal.h:672
frame #31: 0x000000010b02c669 Chromium Embedded Framework`base::internal::Invoker<base::internal::BindState<void (*)((anonymous namespace)::CreateBrowserHelper*), (anonymous namespace)::CreateBrowserHelper*>, void ()>::RunOnce(base=0x000000016ee03ab0) at bind_internal.h:641
frame #32: 0x00000001030fd59c Chromium Embedded Framework`base::OnceCallback<void ()>::Run(this=0x00007ffeefbfcfd8) && at callback.h:97
frame #33: 0x000000010b7a0d61 Chromium Embedded Framework`base::TaskAnnotator::RunTask(this=0x0000000100907658, trace_event_name="ThreadController::Task", pending_task=0x00007ffeefbfcfd8) at task_annotator.cc:114
frame #34: 0x000000010b7cadc1 Chromium Embedded Framework`base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(this=0x0000000100907480, continuation_lazy_now=0x00007ffeefbfd100, ran_task=0x00007ffeefbfd0ff) at thread_controller_with_message_pump_impl.cc:363
frame #35: 0x000000010b7cb217 Chromium Embedded Framework`base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoDelayedWork(this=0x0000000100907480, next_run_time=0x00007ffeefbfd1a8) at thread_controller_with_message_pump_impl.cc:286
frame #36: 0x000000010b96d9ee Chromium Embedded Framework`base::MessagePumpCFRunLoopBase::RunWork(this=0x000000010091ab30) at message_pump_mac.mm:494
frame #37: 0x000000010b96d8fc Chromium Embedded Framework`::___ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv_block_invoke(.block_descriptor=0x00007ffeefbfd220) at message_pump_mac.mm:464
frame #38: 0x000000010b63faca Chromium Embedded Framework`base::mac::CallWithEHFrame(void () block_pointer) + 10
frame #39: 0x000000010b96cb85 Chromium Embedded Framework`base::MessagePumpCFRunLoopBase::RunWorkSource(info=0x000000010091ab30) at message_pump_mac.mm:463
frame #40: 0x00007fff4f86e155 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
frame #41: 0x00007fff4f86e0fb CoreFoundation`__CFRunLoopDoSource0 + 108
frame #42: 0x00007fff4f851b95 CoreFoundation`__CFRunLoopDoSources0 + 195
frame #43: 0x00007fff4f85113e CoreFoundation`__CFRunLoopRun + 1219
frame #44: 0x00007fff4f850a28 CoreFoundation`CFRunLoopRunSpecific + 463
frame #45: 0x00007fff4eae9b35 HIToolbox`RunCurrentEventLoopInMode + 293
frame #46: 0x00007fff4eae986b HIToolbox`ReceiveNextEventCommon + 618
frame #47: 0x00007fff4eae95e8 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 64
frame #48: 0x00007fff4cda5eb7 AppKit`_DPSNextEvent + 997
frame #49: 0x00007fff4cda4c56 AppKit`-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1362
frame #50: 0x00007fff4cd9ecb9 AppKit`-[NSApplication run] + 699
frame #51: 0x000000010b96ee01 Chromium Embedded Framework`base::MessagePumpNSApplication::DoRun(this=0x000000010091ab30, delegate=0x0000000100907480) at message_pump_mac.mm:852
frame #52: 0x000000010b96c2ab Chromium Embedded Framework`base::MessagePumpCFRunLoopBase::Run(this=0x000000010091ab30, delegate=0x0000000100907480) at message_pump_mac.mm:186
frame #53: 0x000000010b7cbc2c Chromium Embedded Framework`base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(this=0x0000000100907480, application_tasks_allowed=true, timeout=(delta_ = [9223372036854775807 (bb)](https://bitbucket.org/chromiumembedded/cef/commits/9223372036854775807))) at thread_controller_with_message_pump_impl.cc:448
frame #54: 0x000000010b753be3 Chromium Embedded Framework`base::RunLoop::RunWithTimeout(this=0x00007ffeefbff4f8, timeout=(delta_ = [9223372036854775807 (bb)](https://bitbucket.org/chromiumembedded/cef/commits/9223372036854775807))) at run_loop.cc:161
frame #55: 0x000000010b75384a Chromium Embedded Framework`base::RunLoop::Run(this=0x00007ffeefbff4f8) at run_loop.cc:129
frame #56: 0x000000010b0797d8 Chromium Embedded Framework`CefRunMessageLoop() at context.cc:307
frame #57: 0x0000000101806479 Chromium Embedded Framework`::cef_run_message_loop() at libcef_dll.cc:141
frame #58: 0x0000000100264eba cefclient`::cef_run_message_loop() at libcef_dll_dylib.cc:992
frame #59: 0x00000001001a2289 cefclient`CefRunMessageLoop() at libcef_dll_wrapper.cc:134
frame #60: 0x000000010000d661 cefclient`client::MainMessageLoopStd::Run(this=0x0000000100a12840) at main_message_loop_std.cc:14
frame #61: 0x00000001000a0e38 cefclient`client::(anonymous namespace)::RunMain(argc=1, argv=0x00007ffeefbff988) at cefclient_mac.mm:416
frame #62: 0x00000001000a0782 cefclient`main(argc=1, argv=0x00007ffeefbff988) at cefclient_mac.mm:438
frame #63: 0x00007fff7ca3308d libdyld.dylib`start + 1
frame #64: 0x00007fff7ca3308d libdyld.dylib`start + 1
Related Chromium issue: https://bugs.chromium.org/p/chromium/issues/detail?id=880522
This prompt can be disabled and cookies will not be encrypted if you pass the --use-mock-keychain
command-line flag.
We could modify Chromium to additionally support configuration of the service/account name values (to optionally replace the default of "Chromium Safe Storage" with something application-specific) in cases where the prompt is not disabled.
Update attributes.
Update title.
macOS: Disable toolchain prompt for tests (see issue #2692)
→ <<cset 492c6c684314 (bb)>>
macOS: Disable toolchain prompt for tests (see issue #2692)
→ <<cset 1d805e5357b2 (bb)>>
Original comment by Alexander Pushkov (Bitbucket: notpushkin, GitHub: notpushkin).
I’ve just ran into this issue, too: https://github.com/ONLYOFFICE/DesktopEditors/issues/850
Original comment by Maxim Fedotov (Bitbucket: Maxim Fedotov).
We could modify Chromium to additionally support configuration of the service/account name values (to optionally replace the default of "Chromium Safe Storage" with something application-specific) in cases where the prompt is not disabled.
I believe this is an important thing to do, and it would really help us.
Correct me if I’m wrong, but as things stand right now our options seem to be:
Unless I’m missing something, all the options we have when using CEF with networking are insecure, in which case I’m not sure why the priority of this issue is “minor” at this moment.
Original report by Jason Pollack (Bitbucket: Jason Pollack).
When running my application on Mac using version 75+ with NetworkService enabled, I get a prompt on every launch:
MyAppName wants to use your confidential information stored in "Chromium Safe Storage" in your keychain.
This would be confusing and a bit troublesome to our users.
The current workaround of using the ‘--disable-features=NetworkService’ switch works.