diff --git chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc index 16c370e6d9759..7fc6d74075dd4 100644 --- chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc +++ chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc @@ -20,10 +20,12 @@ #include "base/strings/string_util.h" #include "base/system/sys_info.h" #include "base/task/thread_pool.h" +#include "base/threading/thread_restrictions.h" #include "base/time/time.h" #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" +#include "cef/libcef/features/runtime.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h" #include "chrome/browser/google/google_brand.h" @@ -422,7 +424,15 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) { response->emplace(kOsVersionTag, os_version); #endif +#if BUILDFLAG(ENABLE_ALLOY_BOOTSTRAP) + if (!cef::IsAlloyRuntimeEnabled()) { +#endif + // Avoid loading ProfileSyncServiceFactory which depends on a lot of + // unnecessary Chrome-specific factories. PopulateSyncLogs(response.get()); +#if BUILDFLAG(ENABLE_ALLOY_BOOTSTRAP) + } +#endif PopulateExtensionInfoLogs(response.get()); PopulatePowerApiLogs(response.get()); #if BUILDFLAG(IS_WIN) @@ -510,8 +520,14 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs( if (!profile) return; + // May be nullptr if using CEF Alloy with extensions disabled. extensions::ExtensionRegistry* extension_registry = extensions::ExtensionRegistry::Get(profile); +#if BUILDFLAG(ENABLE_ALLOY_BOOTSTRAP) + if (!extension_registry) + return; +#endif + std::string extensions_list; for (const scoped_refptr& extension : extension_registry->enabled_extensions()) { @@ -612,6 +628,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime( #if BUILDFLAG(IS_WIN) void ChromeInternalLogSource::PopulateUsbKeyboardDetected( SystemLogsResponse* response) { + // The below call may result in some DLLs being loaded. + base::ScopedAllowBlockingForTesting allow_blocking; std::string reason; bool result = base::win::IsKeyboardPresentOnSlate(ui::GetHiddenWindow(), &reason); diff --git chrome/browser/memory_details.cc chrome/browser/memory_details.cc index 362542c0af479..1841cbe14d5b6 100644 --- chrome/browser/memory_details.cc +++ chrome/browser/memory_details.cc @@ -17,6 +17,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/task/thread_pool.h" #include "build/build_config.h" +#include "cef/libcef/features/features.h" #include "chrome/browser/profiles/profile.h" #include "components/nacl/common/nacl_process_type.h" #include "components/strings/grit/components_strings.h" @@ -298,9 +299,15 @@ void MemoryDetails::CollectChildInfoOnUIThread() { render_process_host->GetBrowserContext())) { content::BrowserContext* context = render_process_host->GetBrowserContext(); + + // May be nullptr if using CEF Alloy with extensions disabled. extensions::ExtensionRegistry* extension_registry = extensions::ExtensionRegistry::Get(context); +#if BUILDFLAG(ENABLE_ALLOY_BOOTSTRAP) + if (extension_registry) { +#else DCHECK(extension_registry); +#endif extension_set = &extension_registry->enabled_extensions(); extensions::ProcessMap* process_map = extensions::ProcessMap::Get(context); @@ -316,6 +323,9 @@ void MemoryDetails::CollectChildInfoOnUIThread() { process.renderer_type = ProcessMemoryInformation::RENDERER_EXTENSION; } } +#if BUILDFLAG(ENABLE_ALLOY_BOOTSTRAP) + } +#endif } #endif