Index: chrome/browser/memory_purger.cc |
diff --git a/chrome/browser/memory_purger.cc b/chrome/browser/memory_purger.cc |
index 8e1d9a192c995375e90b01ca91f52a336ac15104..25e5a5d05bbab0900bf28d7904ec4e16d5aabb2b 100644 |
--- a/chrome/browser/memory_purger.cc |
+++ b/chrome/browser/memory_purger.cc |
@@ -14,6 +14,7 @@ |
#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
#include "chrome/browser/ui/browser_list.h" |
#include "chrome/browser/webdata/web_data_service.h" |
+#include "chrome/browser/webdata/web_data_service_factory.h" |
#include "chrome/common/render_messages.h" |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/render_widget_host.h" |
@@ -108,9 +109,10 @@ void MemoryPurger::PurgeBrowser() { |
history_service->UnloadBackend(); |
// Unload all web databases (freeing memory used to cache sqlite). |
- WebDataService* web_data_service = |
- profiles[i]->GetWebDataServiceWithoutCreating(); |
- if (web_data_service) |
+ scoped_refptr<WebDataService> web_data_service = |
+ WebDataServiceFactory::GetForProfileIfExists( |
+ profiles[i], Profile::EXPLICIT_ACCESS); |
+ if (web_data_service.get()) |
web_data_service->UnloadDatabase(); |
BrowserContext::PurgeMemory(profiles[i]); |