| OLD | NEW |
| 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 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 void OpenLocalStorage(const url::Origin& origin, | 91 void OpenLocalStorage(const url::Origin& origin, |
| 92 mojom::LevelDBObserverPtr observer, | 92 mojom::LevelDBObserverPtr observer, |
| 93 mojom::LevelDBWrapperRequest request); | 93 mojom::LevelDBWrapperRequest request); |
| 94 | 94 |
| 95 private: | 95 private: |
| 96 void OnLevelDDWrapperHasNoBindings(const url::Origin& origin) { | 96 void OnLevelDDWrapperHasNoBindings(const url::Origin& origin) { |
| 97 DCHECK(level_db_wrappers_.find(origin) != level_db_wrappers_.end()); | 97 DCHECK(level_db_wrappers_.find(origin) != level_db_wrappers_.end()); |
| 98 level_db_wrappers_.erase(origin); | 98 level_db_wrappers_.erase(origin); |
| 99 } | 99 } |
| 100 | 100 |
| 101 void OnUserServiceConnectionComplete() { |
| 102 CHECK_EQ(shell::mojom::ConnectResult::SUCCEEDED, |
| 103 user_service_connection_->GetResult()); |
| 104 } |
| 105 |
| 106 void OnUserServiceConnectionError() { |
| 107 CHECK(false); |
| 108 } |
| 109 |
| 101 // Part of our asynchronous directory opening called from OpenLocalStorage(). | 110 // Part of our asynchronous directory opening called from OpenLocalStorage(). |
| 102 void OnDirectoryOpened(filesystem::FileError err); | 111 void OnDirectoryOpened(filesystem::FileError err); |
| 103 void OnDatabaseOpened(leveldb::DatabaseError status); | 112 void OnDatabaseOpened(leveldb::DatabaseError status); |
| 104 | 113 |
| 105 // The (possibly delayed) implementation of OpenLocalStorage(). Can be called | 114 // The (possibly delayed) implementation of OpenLocalStorage(). Can be called |
| 106 // directly from that function, or through |on_database_open_callbacks_|. | 115 // directly from that function, or through |on_database_open_callbacks_|. |
| 107 void BindLocalStorage(const url::Origin& origin, | 116 void BindLocalStorage(const url::Origin& origin, |
| 108 mojom::LevelDBObserverPtr observer, | 117 mojom::LevelDBObserverPtr observer, |
| 109 mojom::LevelDBWrapperRequest request); | 118 mojom::LevelDBWrapperRequest request); |
| 110 | 119 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 136 void DOMStorageContextWrapper::MojoState::OpenLocalStorage( | 145 void DOMStorageContextWrapper::MojoState::OpenLocalStorage( |
| 137 const url::Origin& origin, | 146 const url::Origin& origin, |
| 138 mojom::LevelDBObserverPtr observer, | 147 mojom::LevelDBObserverPtr observer, |
| 139 mojom::LevelDBWrapperRequest request) { | 148 mojom::LevelDBWrapperRequest request) { |
| 140 // If we don't have a filesystem_connection_, we'll need to establish one. | 149 // If we don't have a filesystem_connection_, we'll need to establish one. |
| 141 if (connection_state_ == NO_CONNECTION) { | 150 if (connection_state_ == NO_CONNECTION) { |
| 142 CHECK(connector_); | 151 CHECK(connector_); |
| 143 user_service_connection_ = | 152 user_service_connection_ = |
| 144 connector_->Connect(user_service::kUserServiceName); | 153 connector_->Connect(user_service::kUserServiceName); |
| 145 connection_state_ = CONNECTION_IN_PROGRESS; | 154 connection_state_ = CONNECTION_IN_PROGRESS; |
| 155 user_service_connection_->AddConnectionCompletedClosure( |
| 156 base::Bind(&MojoState::OnUserServiceConnectionComplete, |
| 157 weak_ptr_factory_.GetWeakPtr())); |
| 158 user_service_connection_->SetConnectionLostClosure( |
| 159 base::Bind(&MojoState::OnUserServiceConnectionError, |
| 160 weak_ptr_factory_.GetWeakPtr())); |
| 146 | 161 |
| 147 if (!subdirectory_.empty()) { | 162 if (!subdirectory_.empty()) { |
| 148 // We were given a subdirectory to write to. Get it and use a disk backed | 163 // We were given a subdirectory to write to. Get it and use a disk backed |
| 149 // database. | 164 // database. |
| 150 user_service_connection_->GetInterface(&user_service_); | 165 user_service_connection_->GetInterface(&user_service_); |
| 151 user_service_->GetSubDirectory( | 166 user_service_->GetSubDirectory( |
| 152 mojo::String::From(subdirectory_.AsUTF8Unsafe()), | 167 mojo::String::From(subdirectory_.AsUTF8Unsafe()), |
| 153 GetProxy(&directory_), | 168 GetProxy(&directory_), |
| 154 base::Bind(&MojoState::OnDirectoryOpened, | 169 base::Bind(&MojoState::OnDirectoryOpened, |
| 155 weak_ptr_factory_.GetWeakPtr())); | 170 weak_ptr_factory_.GetWeakPtr())); |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 | 374 |
| 360 void DOMStorageContextWrapper::OpenLocalStorage( | 375 void DOMStorageContextWrapper::OpenLocalStorage( |
| 361 const url::Origin& origin, | 376 const url::Origin& origin, |
| 362 mojom::LevelDBObserverPtr observer, | 377 mojom::LevelDBObserverPtr observer, |
| 363 mojom::LevelDBWrapperRequest request) { | 378 mojom::LevelDBWrapperRequest request) { |
| 364 mojo_state_->OpenLocalStorage( | 379 mojo_state_->OpenLocalStorage( |
| 365 origin, std::move(observer), std::move(request)); | 380 origin, std::move(observer), std::move(request)); |
| 366 } | 381 } |
| 367 | 382 |
| 368 } // namespace content | 383 } // namespace content |
| OLD | NEW |