OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/web_cache/renderer/web_cache_impl.h" | 5 #include "components/web_cache/renderer/web_cache_impl.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/numerics/safe_conversions.h" | 10 #include "base/numerics/safe_conversions.h" |
| 11 #include "content/public/child/child_thread.h" |
| 12 #include "content/public/common/service_manager_connection.h" |
| 13 #include "content/public/common/simple_connection_filter.h" |
11 #include "content/public/renderer/render_thread.h" | 14 #include "content/public/renderer/render_thread.h" |
12 #include "services/service_manager/public/cpp/interface_registry.h" | 15 #include "services/service_manager/public/cpp/binder_registry.h" |
13 #include "third_party/WebKit/public/platform/WebCache.h" | 16 #include "third_party/WebKit/public/platform/WebCache.h" |
14 | 17 |
15 namespace web_cache { | 18 namespace web_cache { |
16 | 19 |
17 WebCacheImpl::WebCacheImpl() : clear_cache_state_(kInit) { | 20 WebCacheImpl::WebCacheImpl() : clear_cache_state_(kInit) { |
18 service_manager::InterfaceRegistry* registry = | 21 auto registry = base::MakeUnique<service_manager::BinderRegistry>(); |
19 content::RenderThread::Get()->GetInterfaceRegistry(); | |
20 registry->AddInterface( | 22 registry->AddInterface( |
21 base::Bind(&WebCacheImpl::BindRequest, base::Unretained(this))); | 23 base::Bind(&WebCacheImpl::BindRequest, base::Unretained(this)), |
| 24 base::ThreadTaskRunnerHandle::Get()); |
| 25 if (content::ChildThread::Get()) { |
| 26 content::ChildThread::Get() |
| 27 ->GetServiceManagerConnection() |
| 28 ->AddConnectionFilter(base::MakeUnique<content::SimpleConnectionFilter>( |
| 29 std::move(registry))); |
| 30 } |
22 } | 31 } |
23 | 32 |
24 WebCacheImpl::~WebCacheImpl() {} | 33 WebCacheImpl::~WebCacheImpl() {} |
25 | 34 |
26 void WebCacheImpl::BindRequest( | 35 void WebCacheImpl::BindRequest(mojom::WebCacheRequest web_cache_request) { |
27 mojo::InterfaceRequest<mojom::WebCache> web_cache_request) { | |
28 bindings_.AddBinding(this, std::move(web_cache_request)); | 36 bindings_.AddBinding(this, std::move(web_cache_request)); |
29 } | 37 } |
30 | 38 |
31 void WebCacheImpl::ExecutePendingClearCache() { | 39 void WebCacheImpl::ExecutePendingClearCache() { |
32 switch (clear_cache_state_) { | 40 switch (clear_cache_state_) { |
33 case kInit: | 41 case kInit: |
34 clear_cache_state_ = kNavigate_Pending; | 42 clear_cache_state_ = kNavigate_Pending; |
35 break; | 43 break; |
36 case kNavigate_Pending: | 44 case kNavigate_Pending: |
37 break; | 45 break; |
(...skipping 23 matching lines...) Expand all Loading... |
61 case kNavigate_Pending: | 69 case kNavigate_Pending: |
62 blink::WebCache::Clear(); | 70 blink::WebCache::Clear(); |
63 clear_cache_state_ = kInit; | 71 clear_cache_state_ = kInit; |
64 break; | 72 break; |
65 case kClearCache_Pending: | 73 case kClearCache_Pending: |
66 break; | 74 break; |
67 } | 75 } |
68 } | 76 } |
69 | 77 |
70 } // namespace web_cache | 78 } // namespace web_cache |
OLD | NEW |