| Index: chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
|
| diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
|
| index ec4208d2096a6ea7cfaaac54eb91b7dedc633de5..1203e7d47325c3ba9b95691839792a5f6c02ede7 100644
|
| --- a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
|
| +++ b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
|
| @@ -5,6 +5,7 @@
|
|
|
| #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h"
|
|
|
| +#include "chrome/browser/browsing_data/storage_partition_http_cache_data_remover.h"
|
| #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
|
| #include "chrome/browser/favicon/favicon_tab_helper.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| @@ -13,6 +14,8 @@
|
| #include "chrome/common/chrome_version_info.h"
|
| #include "components/pdf/browser/pdf_web_contents_helper.h"
|
| #include "components/renderer_context_menu/context_menu_delegate.h"
|
| +#include "components/web_cache/browser/web_cache_manager.h"
|
| +#include "content/public/browser/render_process_host.h"
|
| #include "extensions/browser/api/web_request/web_request_api.h"
|
| #include "extensions/browser/guest_view/web_view/web_view_constants.h"
|
|
|
| @@ -38,6 +41,28 @@ ChromeWebViewGuestDelegate::ChromeWebViewGuestDelegate(
|
| ChromeWebViewGuestDelegate::~ChromeWebViewGuestDelegate() {
|
| }
|
|
|
| +void ChromeWebViewGuestDelegate::ClearCache(
|
| + base::Time remove_since,
|
| + const base::Closure& done_callback) {
|
| + int render_process_id = guest_web_contents()->GetRenderProcessHost()->GetID();
|
| + // We need to clear renderer cache separately for our process because
|
| + // StoragePartitionHttpCacheDataRemover::ClearData() does not clear that.
|
| + web_cache::WebCacheManager::GetInstance()->Remove(render_process_id);
|
| + web_cache::WebCacheManager::GetInstance()->ClearCacheForProcess(
|
| + render_process_id);
|
| +
|
| + content::StoragePartition* partition =
|
| + content::BrowserContext::GetStoragePartition(
|
| + guest_web_contents()->GetBrowserContext(),
|
| + guest_web_contents()->GetSiteInstance());
|
| +
|
| + // StoragePartitionHttpCacheDataRemover removes itself when it is done.
|
| + // TODO(lazyboy): Once StoragePartitionHttpCacheDataRemover moves to
|
| + // components/, move |ClearCache| to WebViewGuest: http//crbug.com/471287.
|
| + StoragePartitionHttpCacheDataRemover::CreateForRange(
|
| + partition, remove_since, base::Time::Now())->Remove(done_callback);
|
| +}
|
| +
|
| bool ChromeWebViewGuestDelegate::HandleContextMenu(
|
| const content::ContextMenuParams& params) {
|
| ContextMenuDelegate* menu_delegate =
|
|
|