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

Side by Side Diff: content/renderer/dom_storage/local_storage_cached_area.cc

Issue 2695333002: Mojo C++ bindings: remove usage of AssociatedGroup from content/ (Closed)
Patch Set: . Created 3 years, 10 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/renderer/dom_storage/local_storage_cached_area.h" 5 #include "content/renderer/dom_storage/local_storage_cached_area.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "base/rand_util.h" 10 #include "base/rand_util.h"
(...skipping 19 matching lines...) Expand all
30 } 30 }
31 31
32 std::vector<uint8_t> String16ToUint8Vector(const base::string16& input) { 32 std::vector<uint8_t> String16ToUint8Vector(const base::string16& input) {
33 const uint8_t* data = reinterpret_cast<const uint8_t*>(input.data()); 33 const uint8_t* data = reinterpret_cast<const uint8_t*>(input.data());
34 return std::vector<uint8_t>(data, data + input.size() * sizeof(base::char16)); 34 return std::vector<uint8_t>(data, data + input.size() * sizeof(base::char16));
35 } 35 }
36 36
37 class GetAllCallback : public mojom::LevelDBWrapperGetAllCallback { 37 class GetAllCallback : public mojom::LevelDBWrapperGetAllCallback {
38 public: 38 public:
39 static mojom::LevelDBWrapperGetAllCallbackAssociatedPtrInfo CreateAndBind( 39 static mojom::LevelDBWrapperGetAllCallbackAssociatedPtrInfo CreateAndBind(
40 mojo::AssociatedGroup* associated_group,
41 const base::Callback<void(bool)>& callback) { 40 const base::Callback<void(bool)>& callback) {
42 mojom::LevelDBWrapperGetAllCallbackAssociatedPtrInfo ptr_info; 41 mojom::LevelDBWrapperGetAllCallbackAssociatedPtrInfo ptr_info;
43 mojom::LevelDBWrapperGetAllCallbackAssociatedRequest request; 42 auto request = mojo::MakeRequest(&ptr_info);
44 associated_group->CreateAssociatedInterface(
45 mojo::AssociatedGroup::WILL_PASS_PTR, &ptr_info, &request);
46 mojo::MakeStrongAssociatedBinding( 43 mojo::MakeStrongAssociatedBinding(
47 base::WrapUnique(new GetAllCallback(callback)), std::move(request)); 44 base::WrapUnique(new GetAllCallback(callback)), std::move(request));
48 return ptr_info; 45 return ptr_info;
49 } 46 }
50 47
51 private: 48 private:
52 explicit GetAllCallback(const base::Callback<void(bool)>& callback) 49 explicit GetAllCallback(const base::Callback<void(bool)>& callback)
53 : m_callback(callback) {} 50 : m_callback(callback) {}
54 void Complete(bool success) override { m_callback.Run(success); } 51 void Complete(bool success) override { m_callback.Run(success); }
55 52
(...skipping 21 matching lines...) Expand all
77 74
78 LocalStorageCachedArea::LocalStorageCachedArea( 75 LocalStorageCachedArea::LocalStorageCachedArea(
79 const url::Origin& origin, 76 const url::Origin& origin,
80 mojom::StoragePartitionService* storage_partition_service, 77 mojom::StoragePartitionService* storage_partition_service,
81 LocalStorageCachedAreas* cached_areas) 78 LocalStorageCachedAreas* cached_areas)
82 : origin_(origin), binding_(this), 79 : origin_(origin), binding_(this),
83 cached_areas_(cached_areas), weak_factory_(this) { 80 cached_areas_(cached_areas), weak_factory_(this) {
84 storage_partition_service->OpenLocalStorage(origin_, 81 storage_partition_service->OpenLocalStorage(origin_,
85 mojo::MakeRequest(&leveldb_)); 82 mojo::MakeRequest(&leveldb_));
86 mojom::LevelDBObserverAssociatedPtrInfo ptr_info; 83 mojom::LevelDBObserverAssociatedPtrInfo ptr_info;
87 binding_.Bind(&ptr_info, leveldb_.associated_group()); 84 binding_.Bind(&ptr_info);
88 leveldb_->AddObserver(std::move(ptr_info)); 85 leveldb_->AddObserver(std::move(ptr_info));
89 } 86 }
90 87
91 LocalStorageCachedArea::~LocalStorageCachedArea() { 88 LocalStorageCachedArea::~LocalStorageCachedArea() {
92 cached_areas_->CacheAreaClosed(this); 89 cached_areas_->CacheAreaClosed(this);
93 } 90 }
94 91
95 unsigned LocalStorageCachedArea::GetLength() { 92 unsigned LocalStorageCachedArea::GetLength() {
96 EnsureLoaded(); 93 EnsureLoaded();
97 return map_->Length(); 94 return map_->Length();
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 280
284 void LocalStorageCachedArea::EnsureLoaded() { 281 void LocalStorageCachedArea::EnsureLoaded() {
285 if (map_) 282 if (map_)
286 return; 283 return;
287 284
288 base::TimeTicks before = base::TimeTicks::Now(); 285 base::TimeTicks before = base::TimeTicks::Now();
289 ignore_all_mutations_ = true; 286 ignore_all_mutations_ = true;
290 leveldb::mojom::DatabaseError status = leveldb::mojom::DatabaseError::OK; 287 leveldb::mojom::DatabaseError status = leveldb::mojom::DatabaseError::OK;
291 std::vector<content::mojom::KeyValuePtr> data; 288 std::vector<content::mojom::KeyValuePtr> data;
292 leveldb_->GetAll(GetAllCallback::CreateAndBind( 289 leveldb_->GetAll(GetAllCallback::CreateAndBind(
293 leveldb_.associated_group(),
294 base::Bind(&LocalStorageCachedArea::OnGetAllComplete, 290 base::Bind(&LocalStorageCachedArea::OnGetAllComplete,
295 weak_factory_.GetWeakPtr())), 291 weak_factory_.GetWeakPtr())),
296 &status, &data); 292 &status, &data);
297 293
298 DOMStorageValuesMap values; 294 DOMStorageValuesMap values;
299 for (size_t i = 0; i < data.size(); ++i) { 295 for (size_t i = 0; i < data.size(); ++i) {
300 values[Uint8VectorToString16(data[i]->key)] = 296 values[Uint8VectorToString16(data[i]->key)] =
301 base::NullableString16(Uint8VectorToString16(data[i]->value), false); 297 base::NullableString16(Uint8VectorToString16(data[i]->value), false);
302 } 298 }
303 299
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 } 360 }
365 361
366 void LocalStorageCachedArea::Reset() { 362 void LocalStorageCachedArea::Reset() {
367 map_ = NULL; 363 map_ = NULL;
368 ignore_key_mutations_.clear(); 364 ignore_key_mutations_.clear();
369 ignore_all_mutations_ = false; 365 ignore_all_mutations_ = false;
370 weak_factory_.InvalidateWeakPtrs(); 366 weak_factory_.InvalidateWeakPtrs();
371 } 367 }
372 368
373 } // namespace content 369 } // namespace content
OLDNEW
« no previous file with comments | « content/public/common/associated_interface_provider.h ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698