Index: chrome/browser/memory_purger.cc |
diff --git a/chrome/browser/memory_purger.cc b/chrome/browser/memory_purger.cc |
index 7c2fd9e0154d4cfb13048e04382ed810244f7409..05e5a83d01a0a652179ea15e285a20b65959312c 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" |
@@ -110,9 +111,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]); |