chromium : extensions load back trace

#2 0x55c01d36db9d extensions::ExtensionRegistry::AddEnabled()
#3 0x55c01d3696cf extensions::ExtensionRegistrar::AddExtension()
#4 0x55c020eda0f6 ExtensionService::AddExtension()
#5 0x55c020f7e344 extensions::InstalledLoader::Load()
#6 0x55c020f7f31b extensions::InstalledLoader::LoadAllExtensions()
#7 0x55c020ed12e5 ExtensionService::Init()
#8 0x55c020f10a82 extensions::ExtensionSystemImpl::Shared::Init()
#9 0x55c020f11462 extensions::ExtensionSystemImpl::InitForRegularProfile()
#10 0x55c01eb6419a ProfileManager::DoFinalInitForServices()
#11 0x55c01eb63fd3 ProfileManager::DoFinalInit()
#12 0x55c01eb65d73 ProfileManager::AddProfile()
#13 0x55c01eb576d2 ProfileManager::CreateAndInitializeProfile()
#14 0x55c01eb57227 ProfileManager::GetProfile()
#15 0x55c0222cb5f8 GetStartupProfile()
#16 0x55c01e6db67f (anonymous namespace)::CreatePrimaryProfile()
#17 0x55c01e6d9366 ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#18 0x55c01e6d85cc ChromeBrowserMainParts::PreMainMessageLoopRun()
#19 0x7fccb0fb41e4 content::BrowserMainLoop::PreMainMessageLoopRun()
#20 0x7fccafe9bcfd _ZN4base8internal13FunctorTraitsIMN7content14NetworkContext11DiskCheckerEFvvEvE6InvokeIPS4_JEEEvS6_OT_DpOT0_
#21 0x7fccafe9bc74 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIMN7content14NetworkContextEFvvEJPS5_EEEvOT_DpOT0_
#22 0x7fccafe9bc25 _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE7RunImplIRKS7_RKNSt3__15tupleIJS9_EEEJLm0EEEEvOT_OT0_NSG_16integer_sequenceImJXspT1_EEEE
#23 0x7fccafea19dc _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#24 0x7fccafe5c50d _ZNKR4base17RepeatingCallbackIFvvEE3RunEv
#25 0x7fccb1c19edd content::StartupTaskRunner::RunAllTasksNow()
#26 0x7fccb0fafa67 content::BrowserMainLoop::CreateStartupTasks()
#27 0x7fccb0fbe60d content::BrowserMainRunnerImpl::Initialize()
#28 0x7fccb0fa8644 content::BrowserMain()
#29 0x7fccb2b769b8 content::RunNamedProcessTypeMain()
#30 0x7fccb2b795aa content::ContentMainRunnerImpl::Run()
#31 0x7fccb2b6fa6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#32 0x7fccb74b189d service_manager::Main()
#33 0x7fccb2b757ff content::ContentMain()
#34 0x55c01cebb23e ChromeMain
#35 0x55c01cebb152 main
#36 0x7fcc9de90f45 __libc_start_main

chromium : How KeyedService was created

DependencyManager::CreateContextServices

void DependencyManager::CreateContextServices(base::SupportsUserData* context,
                                              bool is_testing_context) {
  MarkContextLive(context);

  std::vector<DependencyNode*> construction_order;
  if (!dependency_graph_.GetConstructionOrder(&construction_order)) {
    NOTREACHED();
  }

#ifndef NDEBUG
  DumpContextDependencies(context);
#endif

  for (auto* dependency_node : construction_order) {
    KeyedServiceBaseFactory* factory =
        static_cast<KeyedServiceBaseFactory*>(dependency_node);
    if (is_testing_context && factory->ServiceIsNULLWhileTesting() &&
        !factory->HasTestingFactory(context)) {
      factory->SetEmptyTestingFactory(context);
    } else if (factory->ServiceIsCreatedWithContext()) {
      factory->CreateServiceNow(context);
    }
  }
}
 
#14 0x7f08ec0395de DependencyManager::CreateContextServices()
#15 0x7f08eb2b2410 BrowserContextDependencyManager::DoCreateBrowserContextServices()
#16 0x7f08eb2b22df BrowserContextDependencyManager::CreateBrowserContextServices()
#17 0x55aa9c98a995 ProfileImpl::OnLocaleReady()
#18 0x55aa9c986389 ProfileImpl::OnPrefsLoaded()
#19 0x55aa9c98605d ProfileImpl::ProfileImpl()
#20 0x55aa9c982084 Profile::CreateProfile()
#21 0x55aa9c9f7887 ProfileManager::CreateProfileHelper()
#22 0x55aa9c9e96ba ProfileManager::CreateAndInitializeProfile()
#23 0x55aa9c9e9237 ProfileManager::GetProfile()
#24 0x55aaa015d608 GetStartupProfile()
#25 0x55aa9c56d68f (anonymous namespace)::CreatePrimaryProfile()
#26 0x55aa9c56b376 ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#27 0x55aa9c56a5dc ChromeBrowserMainParts::PreMainMessageLoopRun()
#28 0x7f08f12591e4 content::BrowserMainLoop::PreMainMessageLoopRun()
#29 0x7f08f0140cfd _ZN4base8internal13FunctorTraitsIMN7content14NetworkContext11DiskCheckerEFvvEvE6InvokeIPS4_JEEEvS6_OT_DpOT0_
#30 0x7f08f0140c74 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIMN7content14NetworkContextEFvvEJPS5_EEEvOT_DpOT0_
#31 0x7f08f0140c25 _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE7RunImplIRKS7_RKNSt3__15tupleIJS9_EEEJLm0EEEEvOT_OT0_NSG_16integer_sequenceImJXspT1_EEEE
#32 0x7f08f01469dc _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#33 0x7f08f010150d _ZNKR4base17RepeatingCallbackIFvvEE3RunEv
#34 0x7f08f1ebeedd content::StartupTaskRunner::RunAllTasksNow()
#35 0x7f08f1254a67 content::BrowserMainLoop::CreateStartupTasks()
#36 0x7f08f126360d content::BrowserMainRunnerImpl::Initialize()
#37 0x7f08f124d644 content::BrowserMain()
#38 0x7f08f2e1b9b8 content::RunNamedProcessTypeMain()
#39 0x7f08f2e1e5aa content::ContentMainRunnerImpl::Run()
#40 0x7f08f2e14a6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#41 0x7f08f775689d service_manager::Main()
#42 0x7f08f2e1a7ff content::ContentMain()
#43 0x55aa9ad4d23e ChromeMain
#44 0x55aa9ad4d152 main
#45 0x7f08de135f45 __libc_start_main
#46 0x55aa9ad4d02a _start

BuildServiceInstanceFor AppShortcutManager

#9 0x55aa9b11a513 AppShortcutManager::AppShortcutManager()
#10 0x55aa9b11be82 AppShortcutManagerFactory::BuildServiceInstanceFor()
#11 0x7f08eb2b605a BrowserContextKeyedServiceFactory::BuildServiceInstanceFor()
#12 0x7f08ec03d727 KeyedServiceFactory::GetServiceForContext()
#13 0x7f08ec03ea52 KeyedServiceFactory::CreateServiceNow()

AppShortcutManagerFactory::GetInstance

#2 0x7f5a9625a2d6 DependencyGraph::AddNode()
#3 0x7f5a96269e3c DependencyManager::AddComponent()
#4 0x7f5a9626cdab KeyedServiceBaseFactory::KeyedServiceBaseFactory()
#5 0x7f5a9626d88a KeyedServiceFactory::KeyedServiceFactory()
#6 0x7f5a954e6d7a BrowserContextKeyedServiceFactory::BrowserContextKeyedServiceFactory()
#7 0x5635734e7de3 AppShortcutManagerFactory::AppShortcutManagerFactory()
#8 0x5635734e7fc0 base::DefaultSingletonTraits<>::New()
#9 0x5635734e7f36 base::Singleton<>::get()
#10 0x5635734e7da9 AppShortcutManagerFactory::GetInstance()
#11 0x5635734e3f92 chrome_apps::EnsureBrowserContextKeyedServiceFactoriesBuilt()
#12 0x563574ccc9f8 ChromeBrowserMainExtraPartsProfiles::EnsureBrowserContextKeyedServiceFactoriesBuilt()
#13 0x563574cccdf1 ChromeBrowserMainExtraPartsProfiles::PreProfileInit()
#14 0x5635749387b5 ChromeBrowserMainParts::PreProfileInit()
#15 0x56357492ef9c ChromeBrowserMainPartsLinux::PreProfileInit()
#16 0x5635749371e0 ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#17 0x5635749365dc ChromeBrowserMainParts::PreMainMessageLoopRun()
#18 0x7f5a9b48a1e4 content::BrowserMainLoop::PreMainMessageLoopRun()

Summary

each KeyedService, such as AppShortcutManager, has a KeyedServiceFactory which are derived from KeyedServiceBaseFactory.
each KeyedServiceFactory must implement BuildServiceInstanceFor interface.
When new instance for each KeyedServiceFactory, it will be added to DependencyManager as a component.
Chromium will call DependencyManager::CreateContextServices at the initial state.
Then traverse all node in DependencyGraph and call each BuildServiceInstanceFor to create the real KeyedService.

chromium : extensions UI(chrome://extensions) create back trace

#2 0x561c61ba4b95 (anonymous namespace)::GetWebUIFactoryFunction()
#3 0x561c61ba35b2 ChromeWebUIControllerFactory::GetWebUIType()
#4 0x561c61ba5962 ChromeWebUIControllerFactory::UseWebUIForURL()
#5 0x7fe6df4aa299 content::WebUIControllerFactoryRegistry::UseWebUIForURL()
#6 0x7fe6df4aa3f5 content::WebUIControllerFactoryRegistry::IsURLAcceptableForWebUI()
#7 0x7fe6df4b2147 content::WebUIImpl::OnWebUISend()
#8 0x7fe6df4b59ef _ZN3IPC20DispatchToMethodImplIN7content9WebUIImplEMS2_FvPNS1_15RenderFrameHostERK4GURLRKNSt3__112basic_stringIcNS8_11char_traitsIcEENS8_9allocatorIcEEEERKN4base9ListValueEES3_NS8_5tupleIJS5_SE_SI_EEEJLm0ELm1ELm2EEEEvPT_T0_PT1_OT2_NS8_16integer_sequenceImJXspT3_EEEE
#9 0x7fe6df4b58d0 _ZN3IPC16DispatchToMethodIN7content9WebUIImplENS1_15RenderFrameHostEJRK4GURLRKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEERKN4base9ListValueEENS7_5tupleIJS4_SD_SH_EEEEENS7_9enable_ifIXeqsZT1_sr3std10tuple_sizeINS7_5decayIT2_E4typeEEE5valueEvE4typeEPT_MST_FvPT0_DpT1_ESW_OSO_
#10 0x7fe6df4b5780 _ZN3IPC8MessageTI27FrameHostMsg_WebUISend_MetaNSt3__15tupleIJ4GURLNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEN4base9ListValueEEEEvE8DispatchIN7content9WebUIImplESH_NSG_15RenderFrameHostEMSH_FvPSI_RKS4_RKSA_RKSC_EEEbPKNS_7MessageEPT_PT0_PT1_T2_
#11 0x7fe6df4b207c content::WebUIImpl::OnMessageReceived()
#12 0x7fe6df43d18e content::WebContentsImpl::OnMessageReceived()
#13 0x7fe6deb9864a content::RenderFrameHostImpl::OnMessageReceived()
#14 0x7fe6df126861 content::RenderProcessHostImpl::OnMessageReceived()
#15 0x7fe6e28ffbc8 IPC::ChannelProxy::Context::OnDispatchMessage()
#16 0x7fe6e290603f _ZN4base8internal13FunctorTraitsIMN3IPC12ChannelProxy7ContextEFvRKNS2_7MessageEEvE6InvokeIRK13scoped_refptrIS4_EJS7_EEEvS9_OT_DpOT0_
#17 0x7fe6e2905f9f _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN3IPC12ChannelProxy7ContextEFvRKNS4_7MessageEEJRK13scoped_refptrIS6_ES9_EEEvOT_DpOT0_
#18 0x7fe6e2905f2d _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE7RunImplIRKSA_RKNSt3__15tupleIJSC_S6_EEEJLm0ELm1EEEEvOT_OT0_NSJ_16integer_sequenceImJXspT1_EEEE
#19 0x7fe6e2905e3c _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE3RunEPNS0_13BindStateBaseE
#20 0x7fe6e43eb061 _ZNO4base12OnceCallbackIFvvEE3RunEv
#21 0x7fe6e44451ca base::debug::TaskAnnotator::RunTask()
#22 0x7fe6e44e6105 base::internal::IncomingTaskQueue::RunTask()
#23 0x7fe6e44ef05a base::MessageLoop::RunTask()
#24 0x7fe6e44ef306 base::MessageLoop::DeferOrRunPendingTask()
#25 0x7fe6e44ef650 base::MessageLoop::DoWork()
#26 0x7fe6e44f2e36 base::MessagePumpGlib::Run()
#27 0x7fe6e44ee7dc base::MessageLoop::Run()
#28 0x7fe6e459b79b base::RunLoop::Run()
#29 0x561c5e0fad2d ChromeBrowserMainParts::MainMessageLoopRun()
#30 0x7fe6de75fb56 content::BrowserMainLoop::RunMainMessageLoopParts()
#31 0x7fe6de76995f content::BrowserMainRunnerImpl::Run()
#32 0x7fe6de7536ab content::BrowserMain()
#33 0x7fe6e03219b8 content::RunNamedProcessTypeMain()
#34 0x7fe6e03245aa content::ContentMainRunnerImpl::Run()
#35 0x7fe6e031aa6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#36 0x7fe6e4c5c89d service_manager::Main()
#37 0x7fe6e03207ff content::ContentMain()
#38 0x561c5c8da23e ChromeMain
#39 0x561c5c8da152 main
#40 0x7fe6cb63bf45 __libc_start_main
#41 0x561c5c8da02a _start

chromium : extensions RendererStartupHelper InitializeProcess back trace

#2 0x561c5ce30032 extensions::RendererStartupHelper::InitializeProcess()
#3 0x561c5ce2f331 extensions::RendererStartupHelper::Observe()
#4 0x7fe6def2a33f content::NotificationServiceImpl::Notify()
#5 0x7fe6df12ebac content::RenderProcessHostImpl::OnProcessLaunched()
#6 0x7fe6de83aebc content::ChildProcessLauncher::Notify()
#7 0x7fe6de83da40 content::internal::ChildProcessLauncherHelper::PostLaunchOnClientThread()
#8 0x7fe6de83e529 _ZN4base8internal13FunctorTraitsIMN7content8internal26ChildProcessLauncherHelperEFvNS4_7ProcessEiEvE6InvokeI13scoped_refptrIS4_EJS5_iEEEvS7_OT_DpOT0_
#9 0x7fe6de83e43a _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIMN7content8internal26ChildProcessLauncherHelperEFvNS6_7ProcessEiEJ13scoped_refptrIS6_ES7_iEEEvOT_DpOT0_
#10 0x7fe6de83e3a3 _ZN4base8internal7InvokerINS0_9BindStateIMN7content8internal26ChildProcessLauncherHelperEFvNS5_7ProcessEiEJ13scoped_refptrIS5_ENS0_13PassedWrapperIS6_EEiEEEFvvEE7RunImplIS8_NSt3__15tupleIJSA_SC_iEEEJLm0ELm1ELm2EEEEvOT_OT0_NSH_16integer_sequenceImJXspT1_EEEE
#11 0x7fe6de83e279 _ZN4base8internal7InvokerINS0_9BindStateIMN7content8internal26ChildProcessLauncherHelperEFvNS5_7ProcessEiEJ13scoped_refptrIS5_ENS0_13PassedWrapperIS6_EEiEEEFvvEE7RunOnceEPNS0_13BindStateBaseE
#12 0x7fe6e43eb061 _ZNO4base12OnceCallbackIFvvEE3RunEv
#13 0x7fe6e44451ca base::debug::TaskAnnotator::RunTask()
#14 0x7fe6e44e6105 base::internal::IncomingTaskQueue::RunTask()
#15 0x7fe6e44ef05a base::MessageLoop::RunTask()
#16 0x7fe6e44ef306 base::MessageLoop::DeferOrRunPendingTask()
#17 0x7fe6e44ef650 base::MessageLoop::DoWork()
#18 0x7fe6e44f2cfc base::MessagePumpGlib::HandleDispatch()
#19 0x7fe6e44f34a1 base::(anonymous namespace)::WorkSourceDispatch()
#20 0x7fe6cd155e04 g_main_context_dispatch
#21 0x7fe6cd156048 <unknown>
#22 0x7fe6cd1560ec g_main_context_iteration
#23 0x7fe6e44f2dff base::MessagePumpGlib::Run()
#24 0x7fe6e44ee7dc base::MessageLoop::Run()
#25 0x7fe6e459b79b base::RunLoop::Run()
#26 0x561c5e0fad2d ChromeBrowserMainParts::MainMessageLoopRun()
#27 0x7fe6de75fb56 content::BrowserMainLoop::RunMainMessageLoopParts()
#28 0x7fe6de76995f content::BrowserMainRunnerImpl::Run()
#29 0x7fe6de7536ab content::BrowserMain()
#30 0x7fe6e03219b8 content::RunNamedProcessTypeMain()
#31 0x7fe6e03245aa content::ContentMainRunnerImpl::Run()
#32 0x7fe6e031aa6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#33 0x7fe6e4c5c89d service_manager::Main()
#34 0x7fe6e03207ff content::ContentMain()
#35 0x561c5c8da23e ChromeMain
#36 0x561c5c8da152 main
#37 0x7fe6cb63bf45 __libc_start_main
#38 0x561c5c8da02a _start

chromium : extensions::Extension construction back trace in Browser process

#2 0x55aaedfdafa6 extensions::Extension::Create()
#3 0x55aaedfdaf22 extensions::Extension::Create()
#4 0x55aaeec372eb extensions::ComponentLoader::CreateExtension()
#5 0x55aaeec34321 extensions::ComponentLoader::Load()
#6 0x55aaeec34100 extensions::ComponentLoader::LoadAll()
#7 0x55aaeecc028c ExtensionService::Init()
#8 0x55aaeecffa72 extensions::ExtensionSystemImpl::Shared::Init()
#9 0x55aaeed00452 extensions::ExtensionSystemImpl::InitForRegularProfile()
#10 0x55aaec95317a ProfileManager::DoFinalInitForServices()
#11 0x55aaec952fb3 ProfileManager::DoFinalInit()
#12 0x55aaec954d53 ProfileManager::AddProfile()
#13 0x55aaec9466b2 ProfileManager::CreateAndInitializeProfile()
#14 0x55aaec946207 ProfileManager::GetProfile()
#15 0x55aaf00ba618 GetStartupProfile()
#16 0x55aaec4ca65f (anonymous namespace)::CreatePrimaryProfile()
#17 0x55aaec4c8346 ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#18 0x55aaec4c75ac ChromeBrowserMainParts::PreMainMessageLoopRun()
#19 0x7f1d0223d1e4 content::BrowserMainLoop::PreMainMessageLoopRun()
#20 0x7f1d01124cfd _ZN4base8internal13FunctorTraitsIMN7content14NetworkContext11DiskCheckerEFvvEvE6InvokeIPS4_JEEEvS6_OT_DpOT0_
#21 0x7f1d01124c74 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIMN7content14NetworkContextEFvvEJPS5_EEEvOT_DpOT0_
#22 0x7f1d01124c25 _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE7RunImplIRKS7_RKNSt3__15tupleIJS9_EEEJLm0EEEEvOT_OT0_NSG_16integer_sequenceImJXspT1_EEEE
#23 0x7f1d0112a9dc _ZN4base8internal7InvokerINS0_9BindStateIMN7content14NetworkContext11DiskCheckerEFvvEJNS0_17UnretainedWrapperIS5_EEEEEFvvEE3RunEPNS0_13BindStateBaseE
#24 0x7f1d010e550d _ZNKR4base17RepeatingCallbackIFvvEE3RunEv
#25 0x7f1d02ea2edd content::StartupTaskRunner::RunAllTasksNow()
#26 0x7f1d02238a67 content::BrowserMainLoop::CreateStartupTasks()
#27 0x7f1d0224760d content::BrowserMainRunnerImpl::Initialize()
#28 0x7f1d02231644 content::BrowserMain()
#29 0x7f1d03dff9b8 content::RunNamedProcessTypeMain()
#30 0x7f1d03e025aa content::ContentMainRunnerImpl::Run()
#31 0x7f1d03df8a6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#32 0x7f1d0873a89d service_manager::Main()
#33 0x7f1d03dfe7ff content::ContentMain()
#34 0x55aaeacaa23e ChromeMain
#35 0x55aaeacaa152 main
#36 0x7f1cef119f45 __libc_start_main

chromium : extensions::Extension construction back trace in Render process

extensions/renderer/dispatcher.cc
extensions::Dispatcher receive ExtensionMsg_Loaded from
extensions/browser/renderer_startup_helper.cc
RendererStartupHelper::InitializeProcess

  // Loaded extensions.
  std::vector<ExtensionMsg_Loaded_Params> loaded_extensions;
  BrowserContext* renderer_context = process->GetBrowserContext();
  const ExtensionSet& extensions =
      ExtensionRegistry::Get(browser_context_)->enabled_extensions();
  for (const auto& ext : extensions) {
    // OnLoadedExtension should have already been called for the extension.
    DCHECK(base::ContainsKey(extension_process_map_, ext->id()));
    DCHECK(!base::ContainsKey(extension_process_map_[ext->id()], process));

    if (!IsExtensionVisibleToContext(*ext, renderer_context))
      continue;

    // TODO(kalman): Only include tab specific permissions for extension
    // processes, no other process needs it, so it's mildly wasteful.
    // I am not sure this is possible to know this here, at such a low
    // level of the stack. Perhaps site isolation can help.
    bool include_tab_permissions = true;
    loaded_extensions.push_back(
        ExtensionMsg_Loaded_Params(ext.get(), include_tab_permissions));
    extension_process_map_[ext->id()].insert(process);
  }

  // Activate pending extensions.
  process->Send(new ExtensionMsg_Loaded(loaded_extensions));

#2 0x55717e31dfa6 extensions::Extension::Create()
#3 0x55717e369acb ExtensionMsg_Loaded_Params::ConvertToExtension()
#4 0x55717c503dc5 extensions::Dispatcher::OnLoaded()
#5 0x55717b464a9d _ZN4base20DispatchToMethodImplIPN10extensions22ExtensionMessageFilterEMS2_FvRKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEENS4_5tupleIJSA_EEEJLm0EEEEvRKT_T0_OT1_NS4_16integer_sequenceImJXspT2_EEEE
#6 0x55717b4649f8 _ZN4base16DispatchToMethodIPN10extensions22ExtensionMessageFilterEMS2_FvRKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEENS4_5tupleIJSA_EEEEEvRKT_T0_OT1_
#7 0x55717b464987 _ZN3IPC16DispatchToMethodIN10extensions22ExtensionMessageFilterEMS2_FvRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEvNS3_5tupleIJS9_EEEEEvPT_T0_PT1_OT2_
#8 0x55717c509c75 _ZN3IPC8MessageTI24ExtensionMsg_Loaded_MetaNSt3__15tupleIJNS2_6vectorI26ExtensionMsg_Loaded_ParamsNS2_9allocatorIS5_EEEEEEEvE8DispatchIN10extensions10DispatcherESD_vMSD_FvRKS8_EEEbPKNS_7MessageEPT_PT0_PT1_T2_
#9 0x55717c502bc9 extensions::Dispatcher::OnControlMessageReceived()
#10 0x7f342b8fda03 content::RenderThreadImpl::OnControlMessageReceived()
#11 0x7f34292185a3 content::ChildThreadImpl::OnMessageReceived()
#12 0x7f342b8fc2d8 content::RenderThreadImpl::OnMessageReceived()
#13 0x7f342e3c8bc8 IPC::ChannelProxy::Context::OnDispatchMessage()
#14 0x7f342e3cf03f _ZN4base8internal13FunctorTraitsIMN3IPC12ChannelProxy7ContextEFvRKNS2_7MessageEEvE6InvokeIRK13scoped_refptrIS4_EJS7_EEEvS9_OT_DpOT0_
#15 0x7f342e3cef9f _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN3IPC12ChannelProxy7ContextEFvRKNS4_7MessageEEJRK13scoped_refptrIS6_ES9_EEEvOT_DpOT0_
#16 0x7f342e3cef2d _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE7RunImplIRKSA_RKNSt3__15tupleIJSC_S6_EEEJLm0ELm1EEEEvOT_OT0_NSJ_16integer_sequenceImJXspT1_EEEE
#17 0x7f342e3cee3c _ZN4base8internal7InvokerINS0_9BindStateIMN3IPC12ChannelProxy7ContextEFvRKNS3_7MessageEEJ13scoped_refptrIS5_ES6_EEEFvvEE3RunEPNS0_13BindStateBaseE
#18 0x7f342feb4061 _ZNO4base12OnceCallbackIFvvEE3RunEv
#19 0x7f342ff0e1ca base::debug::TaskAnnotator::RunTask()
#20 0x7f341d17b429 blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue()
#21 0x7f341d175ef9 blink::scheduler::TaskQueueManager::DoWork()
#22 0x7f341d184287 _ZN4base8internal13FunctorTraitsIMN5blink9scheduler16TaskQueueManagerEFvbEvE6InvokeIRKNS_7WeakPtrIS4_EEJRKbEEEvS6_OT_DpOT0_
#23 0x7f341d1841e5 _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIRKMN5blink9scheduler16TaskQueueManagerEFvbERKNS_7WeakPtrIS6_EEJRKbEEEvOT_OT0_DpOT1_
#24 0x7f341d18415d _ZN4base8internal7InvokerINS0_9BindStateIMN5blink9scheduler16TaskQueueManagerEFvbEJNS_7WeakPtrIS5_EEbEEEFvvEE7RunImplIRKS7_RKNSt3__15tupleIJS9_bEEEJLm0ELm1EEEEvOT_OT0_NSG_16integer_sequenceImJXspT1_EEEE
#25 0x7f341d18406c _ZN4base8internal7InvokerINS0_9BindStateIMN5blink9scheduler16TaskQueueManagerEFvbEJNS_7WeakPtrIS5_EEbEEEFvvEE3RunEPNS0_13BindStateBaseE
#26 0x7f342feb4061 _ZNO4base12OnceCallbackIFvvEE3RunEv
#27 0x7f342ff0e1ca base::debug::TaskAnnotator::RunTask()
#28 0x7f342ffaf105 base::internal::IncomingTaskQueue::RunTask()
#29 0x7f342ffb805a base::MessageLoop::RunTask()
#30 0x7f342ffb8306 base::MessageLoop::DeferOrRunPendingTask()
#31 0x7f342ffb8650 base::MessageLoop::DoWork()
#32 0x7f342ffbb19a base::MessagePumpDefault::Run()
#33 0x7f342ffb77dc base::MessageLoop::Run()
#34 0x7f343006479b base::RunLoop::Run()
#35 0x7f342b962e2b content::RendererMain()
#36 0x7f342bde9e84 content::RunZygote()
#37 0x7f342bdeab61 content::RunNamedProcessTypeMain()
#38 0x7f342bded5aa content::ContentMainRunnerImpl::Run()
#39 0x7f342bde3a6d content::ContentServiceManagerMainDelegate::RunEmbedderProcess()
#40 0x7f343072589d service_manager::Main()
#41 0x7f342bde97ff content::ContentMain()
#42 0x55717afed23e ChromeMain
#43 0x55717afed152 main
#44 0x7f3417104f45 __libc_start_main
#45 0x55717afed02a _start

nginx : set up http/https conf for your server(Ghost)

Let me use cluster.errong.win as a example.
All you need to do is replace the server name and port.
All reqest to cluster.errong.win will be proxyed by http://127.0.0.1:6666

http conf

server {
    listen 80;
    listen [::]:80;

    server_name cluster.errong.win;
    root /home/errong_leng/www/cluster/system/nginx-root;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:6666;
        
    }

    location ~ /.well-known {
        allow all;
    }

    client_max_body_size 50m;
}

enable http server to nginx

ln -sf /home/errong_leng/www/cluster/system/files/cluster.errong.win.conf /etc/nginx/sites-available/cluster.errong.win.conf
ln -sf /etc/nginx/sites-available/cluster.errong.win.conf
/etc/nginx/sites-enabled/cluster.errong.win.conf

Use Let's Encrypt

Let's Encrypt is a free, automated, and open Certificate Authority.
/etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt --domain cluster.errong.win --webroot /home/errong_leng/www/cluster/system/nginx-root --reloadcmd "nginx -s reload" --accountemail errong.leng@gmail.com

https conf

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name cluster.errong.win;
    root /home/errong_leng/www/cluster/system/nginx-root;

    ssl_certificate /etc/letsencrypt/cluster.errong.win/fullchain.cer;
    ssl_certificate_key /etc/letsencrypt/cluster.errong.win/cluster.errong.win.key;
    include /etc/nginx/snippets/ssl-params.conf;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:6666;
        
    }

    location ~ /.well-known {
        allow all;
    }

    client_max_body_size 50m;
}

enable https server to nginx

ln -sf /home/errong_leng/www/cluster/system/files/cluster.errong.win-ssl.conf /etc/nginx/sites-available/cluster.errong.win-ssl.conf
ln -sf /etc/nginx/sites-available/cluster.errong.win-ssl.conf
/etc/nginx/sites-enabled/cluster.errong.win-ssl.conf

restart nginx service

service nginx restart

fixed: embedded-redis: Unable to run on macOS Sonoma

Issue you might see below error while trying to run embedded-redis for your testing on your macOS after you upgrade to Sonoma. java.la...