| Index: components/web_cache/browser/web_cache_manager.cc
|
| diff --git a/components/web_cache/browser/web_cache_manager.cc b/components/web_cache/browser/web_cache_manager.cc
|
| index 66076e904d6cb7361cc182a92573303b134ac28c..a7e7dd925f6c94a0df2fcd3179d669f9406a4d9c 100644
|
| --- a/components/web_cache/browser/web_cache_manager.cc
|
| +++ b/components/web_cache/browser/web_cache_manager.cc
|
| @@ -19,10 +19,10 @@
|
| #include "base/time/time.h"
|
| #include "components/prefs/pref_registry_simple.h"
|
| #include "components/prefs/pref_service.h"
|
| -#include "components/web_cache/common/web_cache_messages.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/browser/notification_types.h"
|
| #include "content/public/browser/render_process_host.h"
|
| +#include "content/public/common/service_registry.h"
|
|
|
| using base::Time;
|
| using base::TimeDelta;
|
| @@ -90,6 +90,18 @@ void WebCacheManager::Add(int renderer_id) {
|
| memset(stats, 0, sizeof(*stats));
|
| stats->access = Time::Now();
|
|
|
| + WebCacheServicePtr* service_ptr = web_cache_services_[renderer_id];
|
| + if (service_ptr)
|
| + delete service_ptr;
|
| + service_ptr = new WebCacheServicePtr();
|
| + web_cache_services_[renderer_id] = service_ptr;
|
| +
|
| + content::RenderProcessHost* host =
|
| + content::RenderProcessHost::FromID(renderer_id);
|
| + DCHECK(host);
|
| + host->GetServiceRegistry()->ConnectToRemoteService(
|
| + mojo::GetProxy(service_ptr));
|
| +
|
| // Revise our allocation strategy to account for this new renderer.
|
| ReviseAllocationStrategyLater();
|
| }
|
| @@ -100,6 +112,11 @@ void WebCacheManager::Remove(int renderer_id) {
|
| inactive_renderers_.erase(renderer_id);
|
| stats_.erase(renderer_id);
|
|
|
| + WebCacheServicePtr* service_ptr = web_cache_services_[renderer_id];
|
| + if (service_ptr)
|
| + delete service_ptr;
|
| + web_cache_services_.erase(renderer_id);
|
| +
|
| // Reallocate the resources used by this renderer
|
| ReviseAllocationStrategyLater();
|
| }
|
| @@ -329,9 +346,10 @@ void WebCacheManager::EnactStrategy(const AllocationStrategy& strategy) {
|
| max_dead_capacity);
|
| }
|
|
|
| - host->Send(new WebCacheMsg_SetCacheCapacities(min_dead_capacity,
|
| - max_dead_capacity,
|
| - capacity));
|
| + WebCacheServicePtr* service_ptr = web_cache_services_[allocation->first];
|
| + DCHECK(service_ptr->get());
|
| + (*service_ptr)
|
| + ->SetCacheCapacities(min_dead_capacity, max_dead_capacity, capacity);
|
| }
|
| ++allocation;
|
| }
|
| @@ -350,8 +368,11 @@ void WebCacheManager::ClearRendererCache(
|
| for (; iter != renderers.end(); ++iter) {
|
| content::RenderProcessHost* host =
|
| content::RenderProcessHost::FromID(*iter);
|
| - if (host)
|
| - host->Send(new WebCacheMsg_ClearCache(occasion == ON_NAVIGATION));
|
| + if (host) {
|
| + WebCacheServicePtr* service_ptr = web_cache_services_[*iter];
|
| + DCHECK(service_ptr->get());
|
| + (*service_ptr)->ClearCache(occasion == ON_NAVIGATION);
|
| + }
|
| }
|
| }
|
|
|
|
|