Index: chrome/browser/memory_details.cc |
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc |
index 8c3a6c2c075c94424e095009bcd7d021ae906d10..c8bdc9d0190d5ea9ac936683c2f0c9a0ce7859ad 100644 |
--- a/chrome/browser/memory_details.cc |
+++ b/chrome/browser/memory_details.cc |
@@ -227,8 +227,10 @@ void MemoryDetails::CollectChildInfoOnUIThread() { |
Profile::FromBrowserContext( |
render_process_host->GetBrowserContext()); |
ExtensionService* extension_service = profile->GetExtensionService(); |
- extensions::ProcessMap* extension_process_map = |
- extension_service->process_map(); |
+ extensions::ProcessMap* extension_process_map = NULL; |
+ // No extensions on Android. So extension_service can be NULL. |
+ if (extension_service) |
+ extension_process_map = extension_service->process_map(); |
// The RenderProcessHost may host multiple WebContentses. Any |
// of them which contain diagnostics information make the whole |
@@ -250,8 +252,8 @@ void MemoryDetails::CollectChildInfoOnUIThread() { |
chrome::ViewType type = chrome::GetViewType(contents); |
if (host->GetEnabledBindings() & content::BINDINGS_POLICY_WEB_UI) { |
process.renderer_type = ProcessMemoryInformation::RENDERER_CHROME; |
- } else if (extension_process_map->Contains( |
- host->GetProcess()->GetID())) { |
+ } else if (extension_process_map && |
+ extension_process_map->Contains(host->GetProcess()->GetID())) { |
// For our purposes, don't count processes containing only hosted apps |
// as extension processes. See also: crbug.com/102533. |
std::set<std::string> extension_ids = |
@@ -268,7 +270,8 @@ void MemoryDetails::CollectChildInfoOnUIThread() { |
} |
} |
} |
- if (extension_process_map->Contains(host->GetProcess()->GetID())) { |
+ if (extension_process_map && |
+ extension_process_map->Contains(host->GetProcess()->GetID())) { |
const Extension* extension = |
extension_service->extensions()->GetByID(url.host()); |
if (extension) { |