cef/patch/patches/webui_2037.patch

201 lines
8.4 KiB
Diff

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 dfe0f29dc772..606f07a1d1ed 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
@@ -18,6 +18,7 @@
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/sync/profile_sync_service_factory.h"
#include "chrome/common/channel_info.h"
+#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/browser_sync/profile_sync_service.h"
#include "components/prefs/pref_service.h"
@@ -224,6 +225,10 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
}
void ChromeInternalLogSource::PopulateSyncLogs(SystemLogsResponse* response) {
+ // CEF should avoid loading ProfileSyncServiceFactory which depends on a lot
+ // of unnecessary Chrome-specific factories.
+ return;
+
// We are only interested in sync logs for the primary user profile.
Profile* profile = ProfileManager::GetPrimaryUserProfile();
if (!profile ||
@@ -268,6 +273,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
if (!profile)
return;
+ // CEF should avoid accessing ExtensionRegistry when extensions are disabled.
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableExtensions)) {
+ return;
+ }
+
extensions::ExtensionRegistry* extension_registry =
extensions::ExtensionRegistry::Get(profile);
std::string extensions_list;
diff --git chrome/browser/memory_details.cc chrome/browser/memory_details.cc
index e4cfd5b02bea..20a5f81fe231 100644
--- chrome/browser/memory_details.cc
+++ chrome/browser/memory_details.cc
@@ -16,6 +16,7 @@
#include "base/task/post_task.h"
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/common/chrome_switches.h"
#include "components/nacl/common/nacl_process_type.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/browser_child_process_host_iterator.h"
@@ -250,8 +251,11 @@ void MemoryDetails::CollectChildInfoOnUIThread() {
#if BUILDFLAG(ENABLE_EXTENSIONS)
// Determine if this is an extension process.
+ // CEF should avoid accessing ExtensionRegistry when extensions are disabled.
bool process_is_for_extensions = false;
- if (render_process_host) {
+ if (render_process_host &&
+ !base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableExtensions)) {
content::BrowserContext* context =
render_process_host->GetBrowserContext();
extensions::ExtensionRegistry* extension_registry =
diff --git chrome/browser/ui/webui/net_internals/net_internals_ui.cc chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index 34960e3e6543..bffb63938274 100644
--- chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -529,41 +529,31 @@ void NetInternalsMessageHandler::OnClearBrowserCache(
void NetInternalsMessageHandler::OnGetPrerenderInfo(
const base::ListValue* list) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- SendJavascriptCommand(
- "receivedPrerenderInfo",
- chrome_browser_net::GetPrerenderInfo(Profile::FromWebUI(web_ui())));
+ SendJavascriptCommand("receivedPrerenderInfo", nullptr);
}
void NetInternalsMessageHandler::OnGetHistoricNetworkStats(
const base::ListValue* list) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- SendJavascriptCommand("receivedHistoricNetworkStats",
- chrome_browser_net::GetHistoricNetworkStats(
- Profile::FromWebUI(web_ui())));
+ SendJavascriptCommand("receivedHistoricNetworkStats", nullptr);
}
void NetInternalsMessageHandler::OnGetSessionNetworkStats(
const base::ListValue* list) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- SendJavascriptCommand(
- "receivedSessionNetworkStats",
- chrome_browser_net::GetSessionNetworkStats(Profile::FromWebUI(web_ui())));
+ SendJavascriptCommand("receivedSessionNetworkStats", nullptr);
}
void NetInternalsMessageHandler::OnGetExtensionInfo(
const base::ListValue* list) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- SendJavascriptCommand(
- "receivedExtensionInfo",
- chrome_browser_net::GetExtensionInfo(Profile::FromWebUI(web_ui())));
+ SendJavascriptCommand("receivedExtensionInfo", nullptr);
}
void NetInternalsMessageHandler::OnGetDataReductionProxyInfo(
const base::ListValue* list) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- SendJavascriptCommand("receivedDataReductionProxyInfo",
- chrome_browser_net::GetDataReductionProxyInfo(
- Profile::FromWebUI(web_ui())));
+ SendJavascriptCommand("receivedDataReductionProxyInfo", nullptr);
}
////////////////////////////////////////////////////////////////////////////////
@@ -643,9 +633,17 @@ void NetInternalsMessageHandler::IOThreadImpl::OnRendererReady(
PrePopulateEventList();
- // Register with network stack to observe events.
- io_thread_->net_log()->AddObserver(
- this, net::NetLogCaptureMode::IncludeCookiesAndCredentials());
+ net::NetLog* net_log = nullptr;
+ if (io_thread_)
+ net_log = io_thread_->net_log();
+ else
+ net_log = g_browser_process->net_log();
+
+ if (net_log) {
+ // Register with network stack to observe events.
+ net_log->AddObserver(
+ this, net::NetLogCaptureMode::IncludeCookiesAndCredentials());
+ }
}
void NetInternalsMessageHandler::IOThreadImpl::OnGetNetInfo(
@@ -1141,7 +1139,8 @@ void NetInternalsMessageHandler::IOThreadImpl::PrePopulateEventList() {
std::set<net::URLRequestContext*> contexts;
for (const auto& getter : context_getters_)
contexts.insert(getter->GetURLRequestContext());
- contexts.insert(io_thread_->globals()->system_request_context);
+ if (io_thread_)
+ contexts.insert(io_thread_->globals()->system_request_context);
// Add entries for ongoing network objects.
CreateNetLogEntriesForActiveObjects(contexts, this);
diff --git content/browser/resource_context_impl.cc content/browser/resource_context_impl.cc
index 261e9343b8a2..0fe566c705a4 100644
--- content/browser/resource_context_impl.cc
+++ content/browser/resource_context_impl.cc
@@ -56,6 +56,10 @@ URLDataManagerBackend* GetURLDataManagerForResourceContext(
context->GetUserData(kURLDataManagerBackendKeyName));
}
+const void* GetURLDataManagerBackendUserDataKey() {
+ return kURLDataManagerBackendKeyName;
+}
+
void InitializeResourceContext(BrowserContext* browser_context) {
ResourceContext* resource_context = browser_context->GetResourceContext();
diff --git content/browser/resource_context_impl.h content/browser/resource_context_impl.h
index 903cc543a242..5bd30ae82974 100644
--- content/browser/resource_context_impl.h
+++ content/browser/resource_context_impl.h
@@ -28,6 +28,8 @@ CONTENT_EXPORT StreamContext* GetStreamContextForResourceContext(
URLDataManagerBackend* GetURLDataManagerForResourceContext(
ResourceContext* context);
+CONTENT_EXPORT const void* GetURLDataManagerBackendUserDataKey();
+
// Initialize the above data on the ResourceContext from a given BrowserContext.
CONTENT_EXPORT void InitializeResourceContext(BrowserContext* browser_context);
diff --git content/browser/webui/url_data_manager.cc content/browser/webui/url_data_manager.cc
index ce87d5984c09..6d31657e5c6c 100644
--- content/browser/webui/url_data_manager.cc
+++ content/browser/webui/url_data_manager.cc
@@ -148,6 +148,11 @@ void URLDataManager::UpdateWebUIDataSource(
->UpdateWebUIDataSource(source_name, std::move(update));
}
+// static
+const void* URLDataManager::GetUserDataKey() {
+ return kURLDataManagerKeyName;
+}
+
// static
bool URLDataManager::IsScheduledForDeletion(
const URLDataSourceImpl* data_source) {
diff --git content/browser/webui/url_data_manager.h content/browser/webui/url_data_manager.h
index 5ceb74d411fc..0c584d6e69b5 100644
--- content/browser/webui/url_data_manager.h
+++ content/browser/webui/url_data_manager.h
@@ -69,6 +69,8 @@ class CONTENT_EXPORT URLDataManager : public base::SupportsUserData::Data {
const std::string& source_name,
std::unique_ptr<base::DictionaryValue> update);
+ static const void* GetUserDataKey();
+
private:
friend class URLDataSourceImpl;
friend struct DeleteURLDataSource;