summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browsing_data_remover.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/browsing_data_remover.cc')
-rw-r--r--chrome/browser/browsing_data_remover.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/chrome/browser/browsing_data_remover.cc b/chrome/browser/browsing_data_remover.cc
index 74e294c9..9a42c40 100644
--- a/chrome/browser/browsing_data_remover.cc
+++ b/chrome/browser/browsing_data_remover.cc
@@ -21,6 +21,7 @@
#include "chrome/browser/net/chrome_url_request_context.h"
#include "chrome/browser/password_manager/password_store.h"
#include "chrome/browser/plugin_data_remover.h"
+#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/renderer_host/web_cache_manager.h"
#include "chrome/browser/search_engines/template_url_service.h"
@@ -173,6 +174,17 @@ void BrowsingDataRemover::Remove(int remove_mask) {
SessionServiceFactory::GetForProfile(profile_);
if (session_service)
session_service->DeleteLastSession();
+
+ // The PrerenderManager keeps history of prerendered pages, so clear that.
+ // It also may have a prerendered page. If so, the page could be considered
+ // to have a small amount of historical information, so delete it, too.
+ prerender::PrerenderManager* prerender_manager =
+ profile_->GetPrerenderManager();
+ if (prerender_manager) {
+ prerender_manager->ClearData(
+ prerender::PrerenderManager::CLEAR_PRERENDER_CONTENTS |
+ prerender::PrerenderManager::CLEAR_PRERENDER_HISTORY);
+ }
}
if (remove_mask & REMOVE_DOWNLOADS) {
@@ -281,6 +293,15 @@ void BrowsingDataRemover::Remove(int remove_mask) {
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
NewRunnableMethod(this, &BrowsingDataRemover::ClearCacheOnIOThread));
+
+ // The PrerenderManager may have a page actively being prerendered, which
+ // is essentially a preemptively cached page.
+ prerender::PrerenderManager* prerender_manager =
+ profile_->GetPrerenderManager();
+ if (prerender_manager) {
+ prerender_manager->ClearData(
+ prerender::PrerenderManager::CLEAR_PRERENDER_CONTENTS);
+ }
}
if (remove_mask & REMOVE_LSO_DATA) {