Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(102)

Side by Side Diff: components/web_cache/renderer/web_cache_render_process_observer.cc

Issue 528363002: Move webCacheManager to //components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add OWNERS. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/web_cache/renderer/web_cache_render_process_observer.h"
6
7 #include <limits>
8
9 #include "components/web_cache/common/web_cache_messages.h"
10 #include "third_party/WebKit/public/web/WebCache.h"
11
12 using blink::WebCache;
13
14 namespace web_cache {
15
16 namespace {
17 const size_t kUnitializedCacheCapacity = UINT_MAX;
18 }
19
20 WebCacheRenderProcessObserver::WebCacheRenderProcessObserver()
21 : clear_cache_pending_(false),
22 webkit_initialized_(false),
23 pending_cache_min_dead_capacity_(0),
24 pending_cache_max_dead_capacity_(0),
25 pending_cache_capacity_(kUnitializedCacheCapacity) {
26 }
27
28 WebCacheRenderProcessObserver::~WebCacheRenderProcessObserver() {
29 }
30
31 void WebCacheRenderProcessObserver::ExecutePendingClearCache() {
32 if (clear_cache_pending_ && webkit_initialized_) {
33 clear_cache_pending_ = false;
34 WebCache::clear();
35 }
36 }
37
38 bool WebCacheRenderProcessObserver::OnControlMessageReceived(
39 const IPC::Message& message) {
40 bool handled = true;
41 IPC_BEGIN_MESSAGE_MAP(WebCacheRenderProcessObserver, message)
42 IPC_MESSAGE_HANDLER(WebCacheMsg_SetCacheCapacities, OnSetCacheCapacities)
43 IPC_MESSAGE_HANDLER(WebCacheMsg_ClearCache, OnClearCache)
44 IPC_MESSAGE_UNHANDLED(handled = false)
45 IPC_END_MESSAGE_MAP()
46 return handled;
47 }
48
49 void WebCacheRenderProcessObserver::WebKitInitialized() {
50 webkit_initialized_ = true;
51 if (pending_cache_capacity_ != kUnitializedCacheCapacity) {
52 WebCache::setCapacities(pending_cache_min_dead_capacity_,
53 pending_cache_max_dead_capacity_,
54 pending_cache_capacity_);
55 }
56 }
57
58 void WebCacheRenderProcessObserver::OnRenderProcessShutdown() {
59 webkit_initialized_ = false;
60 }
61
62 void WebCacheRenderProcessObserver::OnSetCacheCapacities(
63 size_t min_dead_capacity,
64 size_t max_dead_capacity,
65 size_t capacity) {
66 if (!webkit_initialized_) {
67 pending_cache_min_dead_capacity_ = min_dead_capacity;
68 pending_cache_max_dead_capacity_ = max_dead_capacity;
69 pending_cache_capacity_ = capacity;
70 return;
71 }
72
73 WebCache::setCapacities(
74 min_dead_capacity, max_dead_capacity, capacity);
75 }
76
77 void WebCacheRenderProcessObserver::OnClearCache(bool on_navigation) {
78 if (on_navigation || !webkit_initialized_) {
erikwright (departed) 2014/09/08 18:17:49 no brackets needed for this if/else
Xi Han 2014/09/08 18:52:22 Done.
79 clear_cache_pending_ = true;
80 } else {
81 WebCache::clear();
82 }
83 }
84
85 } // namespace web_cache
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698