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

Side by Side Diff: content/browser/dom_storage/dom_storage_context_wrapper.cc

Issue 1882423004: Move shell service to toplevel shell namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/dom_storage/dom_storage_context_wrapper.h" 5 #include "content/browser/dom_storage/dom_storage_context_wrapper.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 FROM_HERE, base::Bind(&InvokeSessionStorageUsageCallbackHelper, callback, 73 FROM_HERE, base::Bind(&InvokeSessionStorageUsageCallbackHelper, callback,
74 base::Owned(infos))); 74 base::Owned(infos)));
75 } 75 }
76 76
77 } // namespace 77 } // namespace
78 78
79 // Used for mojo-based LocalStorage implementation (behind --mojo-local-storage 79 // Used for mojo-based LocalStorage implementation (behind --mojo-local-storage
80 // for now). 80 // for now).
81 class DOMStorageContextWrapper::MojoState { 81 class DOMStorageContextWrapper::MojoState {
82 public: 82 public:
83 MojoState(mojo::Connector* connector, const base::FilePath& subdirectory) 83 MojoState(shell::Connector* connector, const base::FilePath& subdirectory)
84 : connector_(connector), 84 : connector_(connector),
85 subdirectory_(subdirectory), 85 subdirectory_(subdirectory),
86 connection_state_(NO_CONNECTION), 86 connection_state_(NO_CONNECTION),
87 weak_ptr_factory_(this) {} 87 weak_ptr_factory_(this) {}
88 88
89 void OpenLocalStorage(const url::Origin& origin, 89 void OpenLocalStorage(const url::Origin& origin,
90 mojom::LevelDBObserverPtr observer, 90 mojom::LevelDBObserverPtr observer,
91 mojom::LevelDBWrapperRequest request); 91 mojom::LevelDBWrapperRequest request);
92 92
93 private: 93 private:
94 void OnLevelDDWrapperHasNoBindings(const url::Origin& origin) { 94 void OnLevelDDWrapperHasNoBindings(const url::Origin& origin) {
95 DCHECK(level_db_wrappers_.find(origin) != level_db_wrappers_.end()); 95 DCHECK(level_db_wrappers_.find(origin) != level_db_wrappers_.end());
96 level_db_wrappers_.erase(origin); 96 level_db_wrappers_.erase(origin);
97 } 97 }
98 98
99 // Part of our asynchronous directory opening called from OpenLocalStorage(). 99 // Part of our asynchronous directory opening called from OpenLocalStorage().
100 void OnDirectoryOpened(filesystem::FileError err); 100 void OnDirectoryOpened(filesystem::FileError err);
101 void OnDatabaseOpened(leveldb::DatabaseError status); 101 void OnDatabaseOpened(leveldb::DatabaseError status);
102 102
103 // The (possibly delayed) implementation of OpenLocalStorage(). Can be called 103 // The (possibly delayed) implementation of OpenLocalStorage(). Can be called
104 // directly from that function, or through |on_database_open_callbacks_|. 104 // directly from that function, or through |on_database_open_callbacks_|.
105 void BindLocalStorage(const url::Origin& origin, 105 void BindLocalStorage(const url::Origin& origin,
106 mojom::LevelDBObserverPtr observer, 106 mojom::LevelDBObserverPtr observer,
107 mojom::LevelDBWrapperRequest request); 107 mojom::LevelDBWrapperRequest request);
108 108
109 // Maps between an origin and its prefixed LevelDB view. 109 // Maps between an origin and its prefixed LevelDB view.
110 std::map<url::Origin, std::unique_ptr<LevelDBWrapperImpl>> level_db_wrappers_; 110 std::map<url::Origin, std::unique_ptr<LevelDBWrapperImpl>> level_db_wrappers_;
111 111
112 mojo::Connector* const connector_; 112 shell::Connector* const connector_;
113 const base::FilePath subdirectory_; 113 const base::FilePath subdirectory_;
114 114
115 enum ConnectionState { 115 enum ConnectionState {
116 NO_CONNECTION, 116 NO_CONNECTION,
117 CONNECTION_IN_PROGRESS, 117 CONNECTION_IN_PROGRESS,
118 CONNECTION_FINISHED 118 CONNECTION_FINISHED
119 } connection_state_; 119 } connection_state_;
120 120
121 std::unique_ptr<mojo::Connection> user_service_connection_; 121 std::unique_ptr<shell::Connection> user_service_connection_;
122 122
123 user_service::mojom::UserServicePtr user_service_; 123 user_service::mojom::UserServicePtr user_service_;
124 filesystem::DirectoryPtr directory_; 124 filesystem::DirectoryPtr directory_;
125 125
126 leveldb::LevelDBServicePtr leveldb_service_; 126 leveldb::LevelDBServicePtr leveldb_service_;
127 leveldb::LevelDBDatabasePtr database_; 127 leveldb::LevelDBDatabasePtr database_;
128 128
129 std::vector<base::Closure> on_database_opened_callbacks_; 129 std::vector<base::Closure> on_database_opened_callbacks_;
130 130
131 base::WeakPtrFactory<MojoState> weak_ptr_factory_; 131 base::WeakPtrFactory<MojoState> weak_ptr_factory_;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 base::Bind(&MojoState::OnLevelDDWrapperHasNoBindings, 225 base::Bind(&MojoState::OnLevelDDWrapperHasNoBindings,
226 base::Unretained(this), origin))); 226 base::Unretained(this), origin)));
227 found = level_db_wrappers_.find(origin); 227 found = level_db_wrappers_.find(origin);
228 } 228 }
229 229
230 found->second->Bind(std::move(request)); 230 found->second->Bind(std::move(request));
231 found->second->AddObserver(std::move(observer)); 231 found->second->AddObserver(std::move(observer));
232 } 232 }
233 233
234 DOMStorageContextWrapper::DOMStorageContextWrapper( 234 DOMStorageContextWrapper::DOMStorageContextWrapper(
235 mojo::Connector* connector, 235 shell::Connector* connector,
236 const base::FilePath& profile_path, 236 const base::FilePath& profile_path,
237 const base::FilePath& local_partition_path, 237 const base::FilePath& local_partition_path,
238 storage::SpecialStoragePolicy* special_storage_policy) { 238 storage::SpecialStoragePolicy* special_storage_policy) {
239 base::FilePath storage_dir; 239 base::FilePath storage_dir;
240 if (!profile_path.empty()) 240 if (!profile_path.empty())
241 storage_dir = local_partition_path.AppendASCII(kLocalStorageDirectory); 241 storage_dir = local_partition_path.AppendASCII(kLocalStorageDirectory);
242 mojo_state_.reset(new MojoState(connector, storage_dir)); 242 mojo_state_.reset(new MojoState(connector, storage_dir));
243 243
244 base::FilePath data_path; 244 base::FilePath data_path;
245 if (!profile_path.empty()) 245 if (!profile_path.empty())
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 346
347 void DOMStorageContextWrapper::OpenLocalStorage( 347 void DOMStorageContextWrapper::OpenLocalStorage(
348 const url::Origin& origin, 348 const url::Origin& origin,
349 mojom::LevelDBObserverPtr observer, 349 mojom::LevelDBObserverPtr observer,
350 mojom::LevelDBWrapperRequest request) { 350 mojom::LevelDBWrapperRequest request) {
351 mojo_state_->OpenLocalStorage( 351 mojo_state_->OpenLocalStorage(
352 origin, std::move(observer), std::move(request)); 352 origin, std::move(observer), std::move(request));
353 } 353 }
354 354
355 } // namespace content 355 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/dom_storage/dom_storage_context_wrapper.h ('k') | content/browser/frame_host/frame_mojo_shell.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698