chromiumembedded / cef

Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.
https://bitbucket.org/chromiumembedded/cef/
Other
3.09k stars 450 forks source link

chrome: ceftests: URLRequestTest failure with No available menu command IDs for ExtensionDisabledGlobalError #3585

Open magreenblatt opened 8 months ago

magreenblatt commented 8 months ago

Describe the bug Run ceftests --enable-chrome-runtime --gtest_filter=URLRequestTest.*OnDiskServer* --gtest_repeat=10

Chromium eventually asserts with:

[8000:14084:1018/133126.010:FATAL:extension_install_error_menu_item_id_provider.cc(33)] Check failed: id <= 40235 (40236 vs. 40235)No available menu command IDs for ExtensionDisabledGlobalError

Call stack:

    libcef.dll!extensions::`anonymous namespace'::GetMenuCommandID() Line 35    C++
    libcef.dll!extensions::ExtensionInstallErrorMenuItemIdProvider::ExtensionInstallErrorMenuItemIdProvider() Line 47   C++
    libcef.dll!extensions::`anonymous namespace'::ExternalInstallMenuAlert::ExternalInstallMenuAlert(extensions::ExternalInstallError * error) Line 154 C++
    libcef.dll!std::__Cr::make_unique<extensions::(anonymous namespace)::ExternalInstallMenuAlert,extensions::ExternalInstallError *>(extensions::ExternalInstallError * && __args) Line 686    C++
    libcef.dll!extensions::ExternalInstallError::OnDialogReady(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>> show_params, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)> callback, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>> prompt) Line 504   C++
    libcef.dll!base::internal::FunctorTraits<void (extensions::ExternalInstallError::*)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) __attribute__((thiscall)),void>::Invoke<void (extensions::ExternalInstallError::*)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) __attribute__((thiscall)),const base::WeakPtr<extensions::ExternalInstallError> &,std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>,base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>,std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>>(void(extensions::ExternalInstallError::*)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) method, const base::WeakPtr<extensions::ExternalInstallError> & receiver_ptr, std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>> && args, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)> && args, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>> && args) Line 713   C++
    libcef.dll!base::internal::InvokeHelper<1,void,0>::MakeItSo<void (extensions::ExternalInstallError::*const &)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) __attribute__((thiscall)),const std::__Cr::tuple<base::WeakPtr<extensions::ExternalInstallError>> &,std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>,base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>,std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>>(void(extensions::ExternalInstallError::*)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) & functor, const std::__Cr::tuple<base::WeakPtr<extensions::ExternalInstallError>> & bound, std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>> && args, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)> && args, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>> && args) Line 900  C++
    libcef.dll!base::internal::Invoker<base::internal::BindState<void (extensions::ExternalInstallError::*)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) __attribute__((thiscall)),base::WeakPtr<extensions::ExternalInstallError>>,void (std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>)>::RunImpl<void (extensions::ExternalInstallError::*const &)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) __attribute__((thiscall)),const std::__Cr::tuple<base::WeakPtr<extensions::ExternalInstallError>> &,0>(void(extensions::ExternalInstallError::*)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) & functor, const std::__Cr::tuple<base::WeakPtr<extensions::ExternalInstallError>> & bound, std::__Cr::integer_sequence<unsigned int,0> seq, std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>> && unbound_args, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)> && unbound_args, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>> && unbound_args) Line 968   C++
    libcef.dll!base::internal::Invoker<base::internal::BindState<void (extensions::ExternalInstallError::*)(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>) __attribute__((thiscall)),base::WeakPtr<extensions::ExternalInstallError>>,void (std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>)>::Run(base::internal::BindStateBase * base, std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>> && unbound_args, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)> && unbound_args, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>> && unbound_args) Line 932 C++
    libcef.dll!base::RepeatingCallback<void (std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>>, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)>, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>>)>::Run(std::__Cr::unique_ptr<ExtensionInstallPromptShowParams,std::__Cr::default_delete<ExtensionInstallPromptShowParams>> args, base::OnceCallback<void (ExtensionInstallPrompt::DoneCallbackPayload)> args, std::__Cr::unique_ptr<ExtensionInstallPrompt::Prompt,std::__Cr::default_delete<ExtensionInstallPrompt::Prompt>> args) Line 349  C++
    libcef.dll!ExtensionInstallPrompt::ShowConfirmation() Line 612  C++
    libcef.dll!ExtensionInstallPrompt::OnImageLoaded(const gfx::Image & image) Line 542 C++

Expected behavior Tests should succeed.

Versions (please complete the following information):

Additional context GetMenuCommandID supports a range of 200 values. Values are returned to the available pool when the ExtensionInstallError object is destroyed. This assertion occurs when the 201st value is requested. It appears that something is keeping Profiles alive unexpectedly, as the ExtensionInstallError object should be deleted via:

>   libcef.dll!extensions::ExternalInstallError::~ExternalInstallError() Line 356   C++
    libcef.dll!extensions::ExternalInstallError::~ExternalInstallError() Line 349   C++
    libcef.dll!std::__Cr::default_delete<extensions::ExternalInstallError>::operator()(extensions::ExternalInstallError * __ptr) Line 65    C++
    libcef.dll!std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>::reset(extensions::ExternalInstallError * __p) Line 297  C++
    libcef.dll!std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>::~unique_ptr() Line 263  C++
    libcef.dll!std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>::~pair() Line 77    C++
    libcef.dll!std::__Cr::__destroy_at<std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,0>(std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>> * __loc) Line 67    C++
    libcef.dll!std::__Cr::destroy_at<std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,0>(std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>> * __loc) Line 112 C++
    libcef.dll!std::__Cr::allocator_traits<std::__Cr::allocator<std::__Cr::__tree_node<std::__Cr::__value_type<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,void *>>>::destroy<std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,void,void>(std::__Cr::allocator<std::__Cr::__tree_node<std::__Cr::__value_type<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,void *>> &, std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>> * __p) Line 327    C++
    libcef.dll!std::__Cr::__tree<std::__Cr::__value_type<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,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>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,std::__Cr::less<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>>,1>,std::__Cr::allocator<std::__Cr::__value_type<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>>>::destroy(std::__Cr::__tree_node<std::__Cr::__value_type<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,void *> * __nd) Line 1813    C++
    libcef.dll!std::__Cr::__tree<std::__Cr::__value_type<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,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>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>,std::__Cr::less<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>>,1>,std::__Cr::allocator<std::__Cr::__value_type<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>>>::clear() Line 1849  C++
    libcef.dll!std::__Cr::map<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>,std::__Cr::less<std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>>,std::__Cr::allocator<std::__Cr::pair<const std::__Cr::basic_string<char,std::__Cr::char_traits<char>,std::__Cr::allocator<char>>,std::__Cr::unique_ptr<extensions::ExternalInstallError,std::__Cr::default_delete<extensions::ExternalInstallError>>>>>::clear() Line 1395   C++
    libcef.dll!extensions::ExternalInstallManager::Shutdown() Line 73   C++
    libcef.dll!extensions::ExtensionService::Shutdown() Line 502    C++
    libcef.dll!extensions::ExtensionSystemImpl::Shared::Shutdown() Line 296 C++
    keyed_service_core.dll!KeyedServiceFactory::ContextShutdown(void * context) Line 124    C++
    keyed_service_content.dll!BrowserContextKeyedServiceFactory::BrowserContextShutdown(content::BrowserContext * context) Line 82  C++
    keyed_service_content.dll!BrowserContextKeyedServiceFactory::ContextShutdown(void * context) Line 126   C++
    keyed_service_core.dll!DependencyManager::ShutdownFactoriesInOrder(void * context, std::__Cr::vector<DependencyNode *,std::__Cr::allocator<DependencyNode *>> & order) Line 176 C++
    keyed_service_core.dll!DependencyManager::PerformInterlockedTwoPhaseShutdown(DependencyManager * dependency_manager1, void * context1, DependencyManager * dependency_manager2, void * context2) Line 154   C++
    libcef.dll!ProfileImpl::~ProfileImpl() Line 941 C++
    libcef.dll!ProfileImpl::~ProfileImpl() Line 883 C++
    libcef.dll!std::__Cr::default_delete<Profile>::operator()(Profile * __ptr) Line 65  C++
    libcef.dll!std::__Cr::unique_ptr<Profile,std::__Cr::default_delete<Profile>>::reset(Profile * __p) Line 297 C++
    libcef.dll!ProfileDestroyer::DestroyOriginalProfileNow(std::__Cr::unique_ptr<Profile,std::__Cr::default_delete<Profile>> profile) Line 273  C++
    libcef.dll!OriginalProfileDestroyer::DoDestroyUnderlyingProfile() Line 105  C++
    libcef.dll!ProfileDestroyer::Timeout() Line 435 C++
    libcef.dll!ProfileDestroyer::Start(const std::__Cr::set<content::RenderProcessHost *,std::__Cr::less<content::RenderProcessHost *>,std::__Cr::allocator<content::RenderProcessHost *>> & hosts) Line 326    C++
    libcef.dll!ProfileDestroyer::DestroyOriginalProfileWhenAppropriateWithTimeout(std::__Cr::unique_ptr<Profile,std::__Cr::default_delete<Profile>> profile, base::TimeDelta timeout) Line 152  C++
    libcef.dll!ProfileDestroyer::DestroyOriginalProfileWhenAppropriate(std::__Cr::unique_ptr<Profile,std::__Cr::default_delete<Profile>> profile) Line 121  C++
    libcef.dll!ProfileManager::ProfileInfo::~ProfileInfo() Line 1623    C++
    libcef.dll!std::__Cr::default_delete<ProfileManager::ProfileInfo>::operator()(ProfileManager::ProfileInfo * __ptr) Line 65  C++
    libcef.dll!std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>::reset(ProfileManager::ProfileInfo * __p) Line 297 C++
    libcef.dll!std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>::~unique_ptr() Line 263    C++
    libcef.dll!std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>::~pair() Line 77 C++
    libcef.dll!std::__Cr::__destroy_at<std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,0>(std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>> * __loc) Line 67  C++
    libcef.dll!std::__Cr::destroy_at<std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,0>(std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>> * __loc) Line 112   C++
    libcef.dll!std::__Cr::allocator_traits<std::__Cr::allocator<std::__Cr::__tree_node<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,void *>>>::destroy<std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,void,void>(std::__Cr::allocator<std::__Cr::__tree_node<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,void *>> &, std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>> * __p) Line 327    C++
    libcef.dll!std::__Cr::__tree<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,std::__Cr::__map_value_compare<base::FilePath,std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,std::__Cr::less<base::FilePath>,1>,std::__Cr::allocator<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>>>::erase(std::__Cr::__tree_const_iterator<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,std::__Cr::__tree_node<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,void *> *,int> __p) Line 2435 C++
    libcef.dll!std::__Cr::__tree<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,std::__Cr::__map_value_compare<base::FilePath,std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>,std::__Cr::less<base::FilePath>,1>,std::__Cr::allocator<std::__Cr::__value_type<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>>>::__erase_unique<base::FilePath>(const base::FilePath & __k) Line 2456    C++
    libcef.dll!std::__Cr::map<base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>,std::__Cr::less<base::FilePath>,std::__Cr::allocator<std::__Cr::pair<const base::FilePath,std::__Cr::unique_ptr<ProfileManager::ProfileInfo,std::__Cr::default_delete<ProfileManager::ProfileInfo>>>>>::erase(const base::FilePath & __k) Line 1390  C++
    libcef.dll!ProfileManager::UnloadProfile(const base::FilePath & profile_dir) Line 1745  C++
    libcef.dll!ProfileManager::UnloadProfileIfNoKeepAlive(const ProfileManager::ProfileInfo * info) Line 1440   C++
    libcef.dll!ProfileManager::RemoveKeepAlive(const Profile * profile, ProfileKeepAliveOrigin origin) Line 1391    C++
    libcef.dll!ScopedProfileKeepAlive::RemoveKeepAliveOnUIThread(const Profile * profile, ProfileKeepAliveOrigin origin) Line 61    C++