OLD | NEW |
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/dom_storage/local_storage_context_mojo.h" | 5 #include "content/browser/dom_storage/local_storage_context_mojo.h" |
6 | 6 |
7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "components/leveldb/public/cpp/util.h" | 9 #include "components/leveldb/public/cpp/util.h" |
10 #include "content/browser/leveldb_wrapper_impl.h" | 10 #include "content/browser/leveldb_wrapper_impl.h" |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 // We failed to open the directory; continue with startup so that we create | 134 // We failed to open the directory; continue with startup so that we create |
135 // the |level_db_wrappers_|. | 135 // the |level_db_wrappers_|. |
136 OnDatabaseOpened(leveldb::mojom::DatabaseError::IO_ERROR); | 136 OnDatabaseOpened(leveldb::mojom::DatabaseError::IO_ERROR); |
137 return; | 137 return; |
138 } | 138 } |
139 | 139 |
140 // Now that we have a directory, connect to the LevelDB service and get our | 140 // Now that we have a directory, connect to the LevelDB service and get our |
141 // database. | 141 // database. |
142 file_service_connection_->GetInterface(&leveldb_service_); | 142 file_service_connection_->GetInterface(&leveldb_service_); |
143 | 143 |
144 leveldb_service_->Open(std::move(directory_), "leveldb", | 144 auto options = leveldb::mojom::OpenOptions::New(); |
145 MakeRequest(&database_), | 145 options->create_if_missing = true; |
146 base::Bind(&LocalStorageContextMojo::OnDatabaseOpened, | 146 leveldb_service_->OpenWithOptions( |
147 weak_ptr_factory_.GetWeakPtr())); | 147 std::move(options), std::move(directory_), "leveldb", |
| 148 MakeRequest(&database_), |
| 149 base::Bind(&LocalStorageContextMojo::OnDatabaseOpened, |
| 150 weak_ptr_factory_.GetWeakPtr())); |
148 } | 151 } |
149 | 152 |
150 void LocalStorageContextMojo::OnDatabaseOpened( | 153 void LocalStorageContextMojo::OnDatabaseOpened( |
151 leveldb::mojom::DatabaseError status) { | 154 leveldb::mojom::DatabaseError status) { |
152 if (status != leveldb::mojom::DatabaseError::OK) { | 155 if (status != leveldb::mojom::DatabaseError::OK) { |
153 // If we failed to open the database, reset the service object so we pass | 156 // If we failed to open the database, reset the service object so we pass |
154 // null pointers to our wrappers. | 157 // null pointers to our wrappers. |
155 database_.reset(); | 158 database_.reset(); |
156 leveldb_service_.reset(); | 159 leveldb_service_.reset(); |
157 } | 160 } |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 base::Unretained(this), origin), | 233 base::Unretained(this), origin), |
231 base::Bind(&LocalStorageContextMojo::OnLevelDBWrapperPrepareToCommit, | 234 base::Bind(&LocalStorageContextMojo::OnLevelDBWrapperPrepareToCommit, |
232 base::Unretained(this))); | 235 base::Unretained(this))); |
233 found = level_db_wrappers_.find(origin); | 236 found = level_db_wrappers_.find(origin); |
234 } | 237 } |
235 | 238 |
236 found->second->Bind(std::move(request)); | 239 found->second->Bind(std::move(request)); |
237 } | 240 } |
238 | 241 |
239 } // namespace content | 242 } // namespace content |
OLD | NEW |