summaryrefslogtreecommitdiffstats
path: root/chrome/browser/memory_purger.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/memory_purger.cc')
-rw-r--r--chrome/browser/memory_purger.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/chrome/browser/memory_purger.cc b/chrome/browser/memory_purger.cc
index 21cf2e9..d00ee17 100644
--- a/chrome/browser/memory_purger.cc
+++ b/chrome/browser/memory_purger.cc
@@ -15,6 +15,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"
@@ -114,9 +115,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]);