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

Side by Side Diff: content/browser/leveldb_wrapper_impl.cc

Issue 2725723002: Purge new localstorage memory cache when under memory pressure. (Closed)
Patch Set: Created 3 years, 9 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "content/browser/leveldb_wrapper_impl.h" 5 #include "content/browser/leveldb_wrapper_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "components/leveldb/public/cpp/util.h" 10 #include "components/leveldb/public/cpp/util.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 LoadMap(base::Bind(&LevelDBWrapperImpl::ScheduleImmediateCommit, 82 LoadMap(base::Bind(&LevelDBWrapperImpl::ScheduleImmediateCommit,
83 base::Unretained(this))); 83 base::Unretained(this)));
84 return; 84 return;
85 } 85 }
86 86
87 if (!database_ || !commit_batch_) 87 if (!database_ || !commit_batch_)
88 return; 88 return;
89 CommitChanges(); 89 CommitChanges();
90 } 90 }
91 91
92 void LevelDBWrapperImpl::PurgeMemory() {
93 if (!map_ || // We're not using any memory.
94 commit_batch_ || // We leave things alone with changes pending.
95 !database_) { // Don't purge anything if we're not backed by a database.
96 return;
97 }
98
99 map_.reset();
100 }
101
92 void LevelDBWrapperImpl::AddObserver( 102 void LevelDBWrapperImpl::AddObserver(
93 mojom::LevelDBObserverAssociatedPtrInfo observer) { 103 mojom::LevelDBObserverAssociatedPtrInfo observer) {
94 mojom::LevelDBObserverAssociatedPtr observer_ptr; 104 mojom::LevelDBObserverAssociatedPtr observer_ptr;
95 observer_ptr.Bind(std::move(observer)); 105 observer_ptr.Bind(std::move(observer));
96 observers_.AddPtr(std::move(observer_ptr)); 106 observers_.AddPtr(std::move(observer_ptr));
97 } 107 }
98 108
99 void LevelDBWrapperImpl::Put(const std::vector<uint8_t>& key, 109 void LevelDBWrapperImpl::Put(const std::vector<uint8_t>& key,
100 const std::vector<uint8_t>& value, 110 const std::vector<uint8_t>& value,
101 const std::string& source, 111 const std::string& source,
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 weak_ptr_factory_.GetWeakPtr())); 436 weak_ptr_factory_.GetWeakPtr()));
427 } 437 }
428 438
429 void LevelDBWrapperImpl::OnCommitComplete(leveldb::mojom::DatabaseError error) { 439 void LevelDBWrapperImpl::OnCommitComplete(leveldb::mojom::DatabaseError error) {
430 --commit_batches_in_flight_; 440 --commit_batches_in_flight_;
431 StartCommitTimer(); 441 StartCommitTimer();
432 delegate_->DidCommit(error); 442 delegate_->DidCommit(error);
433 } 443 }
434 444
435 } // namespace content 445 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/leveldb_wrapper_impl.h ('k') | content/browser/leveldb_wrapper_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698