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

Subscribe to Post, Code and Quiet Time.

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe