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

Side by Side Diff: net/ssl/default_channel_id_store.cc

Issue 1893083002: Change scoped_ptr to std::unique_ptr in //net. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scopedptr-net-all: iwyu 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
« no previous file with comments | « net/ssl/default_channel_id_store.h ('k') | net/ssl/default_channel_id_store_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "net/ssl/default_channel_id_store.h" 5 #include "net/ssl/default_channel_id_store.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 const GetChannelIDCallback& callback) 57 const GetChannelIDCallback& callback)
58 : server_identifier_(server_identifier), 58 : server_identifier_(server_identifier),
59 callback_(callback) { 59 callback_(callback) {
60 } 60 }
61 61
62 DefaultChannelIDStore::GetChannelIDTask::~GetChannelIDTask() { 62 DefaultChannelIDStore::GetChannelIDTask::~GetChannelIDTask() {
63 } 63 }
64 64
65 void DefaultChannelIDStore::GetChannelIDTask::Run( 65 void DefaultChannelIDStore::GetChannelIDTask::Run(
66 DefaultChannelIDStore* store) { 66 DefaultChannelIDStore* store) {
67 scoped_ptr<crypto::ECPrivateKey> key_result; 67 std::unique_ptr<crypto::ECPrivateKey> key_result;
68 int err = store->GetChannelID(server_identifier_, &key_result, 68 int err = store->GetChannelID(server_identifier_, &key_result,
69 GetChannelIDCallback()); 69 GetChannelIDCallback());
70 DCHECK(err != ERR_IO_PENDING); 70 DCHECK(err != ERR_IO_PENDING);
71 71
72 InvokeCallback(base::Bind(callback_, err, server_identifier_, 72 InvokeCallback(base::Bind(callback_, err, server_identifier_,
73 base::Passed(std::move(key_result)))); 73 base::Passed(std::move(key_result))));
74 } 74 }
75 75
76 // -------------------------------------------------------------------------- 76 // --------------------------------------------------------------------------
77 // SetChannelIDTask 77 // SetChannelIDTask
78 class DefaultChannelIDStore::SetChannelIDTask 78 class DefaultChannelIDStore::SetChannelIDTask
79 : public DefaultChannelIDStore::Task { 79 : public DefaultChannelIDStore::Task {
80 public: 80 public:
81 SetChannelIDTask(scoped_ptr<ChannelID> channel_id); 81 SetChannelIDTask(std::unique_ptr<ChannelID> channel_id);
82 ~SetChannelIDTask() override; 82 ~SetChannelIDTask() override;
83 void Run(DefaultChannelIDStore* store) override; 83 void Run(DefaultChannelIDStore* store) override;
84 84
85 private: 85 private:
86 scoped_ptr<ChannelID> channel_id_; 86 std::unique_ptr<ChannelID> channel_id_;
87 }; 87 };
88 88
89 DefaultChannelIDStore::SetChannelIDTask::SetChannelIDTask( 89 DefaultChannelIDStore::SetChannelIDTask::SetChannelIDTask(
90 scoped_ptr<ChannelID> channel_id) 90 std::unique_ptr<ChannelID> channel_id)
91 : channel_id_(std::move(channel_id)) {} 91 : channel_id_(std::move(channel_id)) {}
92 92
93 DefaultChannelIDStore::SetChannelIDTask::~SetChannelIDTask() { 93 DefaultChannelIDStore::SetChannelIDTask::~SetChannelIDTask() {
94 } 94 }
95 95
96 void DefaultChannelIDStore::SetChannelIDTask::Run( 96 void DefaultChannelIDStore::SetChannelIDTask::Run(
97 DefaultChannelIDStore* store) { 97 DefaultChannelIDStore* store) {
98 store->SyncSetChannelID(std::move(channel_id_)); 98 store->SyncSetChannelID(std::move(channel_id_));
99 } 99 }
100 100
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 206
207 DefaultChannelIDStore::DefaultChannelIDStore( 207 DefaultChannelIDStore::DefaultChannelIDStore(
208 PersistentStore* store) 208 PersistentStore* store)
209 : initialized_(false), 209 : initialized_(false),
210 loaded_(false), 210 loaded_(false),
211 store_(store), 211 store_(store),
212 weak_ptr_factory_(this) {} 212 weak_ptr_factory_(this) {}
213 213
214 int DefaultChannelIDStore::GetChannelID( 214 int DefaultChannelIDStore::GetChannelID(
215 const std::string& server_identifier, 215 const std::string& server_identifier,
216 scoped_ptr<crypto::ECPrivateKey>* key_result, 216 std::unique_ptr<crypto::ECPrivateKey>* key_result,
217 const GetChannelIDCallback& callback) { 217 const GetChannelIDCallback& callback) {
218 DCHECK(CalledOnValidThread()); 218 DCHECK(CalledOnValidThread());
219 InitIfNecessary(); 219 InitIfNecessary();
220 220
221 if (!loaded_) { 221 if (!loaded_) {
222 EnqueueTask(scoped_ptr<Task>( 222 EnqueueTask(std::unique_ptr<Task>(
223 new GetChannelIDTask(server_identifier, callback))); 223 new GetChannelIDTask(server_identifier, callback)));
224 return ERR_IO_PENDING; 224 return ERR_IO_PENDING;
225 } 225 }
226 226
227 ChannelIDMap::iterator it = channel_ids_.find(server_identifier); 227 ChannelIDMap::iterator it = channel_ids_.find(server_identifier);
228 228
229 if (it == channel_ids_.end()) 229 if (it == channel_ids_.end())
230 return ERR_FILE_NOT_FOUND; 230 return ERR_FILE_NOT_FOUND;
231 231
232 ChannelID* channel_id = it->second; 232 ChannelID* channel_id = it->second;
233 key_result->reset(channel_id->key()->Copy()); 233 key_result->reset(channel_id->key()->Copy());
234 234
235 return OK; 235 return OK;
236 } 236 }
237 237
238 void DefaultChannelIDStore::SetChannelID(scoped_ptr<ChannelID> channel_id) { 238 void DefaultChannelIDStore::SetChannelID(
239 std::unique_ptr<ChannelID> channel_id) {
239 auto task = new SetChannelIDTask(std::move(channel_id)); 240 auto task = new SetChannelIDTask(std::move(channel_id));
240 RunOrEnqueueTask(scoped_ptr<Task>(task)); 241 RunOrEnqueueTask(std::unique_ptr<Task>(task));
241 } 242 }
242 243
243 void DefaultChannelIDStore::DeleteChannelID( 244 void DefaultChannelIDStore::DeleteChannelID(
244 const std::string& server_identifier, 245 const std::string& server_identifier,
245 const base::Closure& callback) { 246 const base::Closure& callback) {
246 RunOrEnqueueTask(scoped_ptr<Task>( 247 RunOrEnqueueTask(std::unique_ptr<Task>(
247 new DeleteChannelIDTask(server_identifier, callback))); 248 new DeleteChannelIDTask(server_identifier, callback)));
248 } 249 }
249 250
250 void DefaultChannelIDStore::DeleteAllCreatedBetween( 251 void DefaultChannelIDStore::DeleteAllCreatedBetween(
251 base::Time delete_begin, 252 base::Time delete_begin,
252 base::Time delete_end, 253 base::Time delete_end,
253 const base::Closure& callback) { 254 const base::Closure& callback) {
254 RunOrEnqueueTask(scoped_ptr<Task>( 255 RunOrEnqueueTask(std::unique_ptr<Task>(
255 new DeleteAllCreatedBetweenTask(delete_begin, delete_end, callback))); 256 new DeleteAllCreatedBetweenTask(delete_begin, delete_end, callback)));
256 } 257 }
257 258
258 void DefaultChannelIDStore::DeleteAll( 259 void DefaultChannelIDStore::DeleteAll(
259 const base::Closure& callback) { 260 const base::Closure& callback) {
260 DeleteAllCreatedBetween(base::Time(), base::Time(), callback); 261 DeleteAllCreatedBetween(base::Time(), base::Time(), callback);
261 } 262 }
262 263
263 void DefaultChannelIDStore::GetAllChannelIDs( 264 void DefaultChannelIDStore::GetAllChannelIDs(
264 const GetChannelIDListCallback& callback) { 265 const GetChannelIDListCallback& callback) {
265 RunOrEnqueueTask(scoped_ptr<Task>(new GetAllChannelIDsTask(callback))); 266 RunOrEnqueueTask(std::unique_ptr<Task>(new GetAllChannelIDsTask(callback)));
266 } 267 }
267 268
268 int DefaultChannelIDStore::GetChannelIDCount() { 269 int DefaultChannelIDStore::GetChannelIDCount() {
269 DCHECK(CalledOnValidThread()); 270 DCHECK(CalledOnValidThread());
270 271
271 return channel_ids_.size(); 272 return channel_ids_.size();
272 } 273 }
273 274
274 void DefaultChannelIDStore::SetForceKeepSessionState() { 275 void DefaultChannelIDStore::SetForceKeepSessionState() {
275 DCHECK(CalledOnValidThread()); 276 DCHECK(CalledOnValidThread());
(...skipping 20 matching lines...) Expand all
296 void DefaultChannelIDStore::InitStore() { 297 void DefaultChannelIDStore::InitStore() {
297 DCHECK(CalledOnValidThread()); 298 DCHECK(CalledOnValidThread());
298 DCHECK(store_.get()) << "Store must exist to initialize"; 299 DCHECK(store_.get()) << "Store must exist to initialize";
299 DCHECK(!loaded_); 300 DCHECK(!loaded_);
300 301
301 store_->Load(base::Bind(&DefaultChannelIDStore::OnLoaded, 302 store_->Load(base::Bind(&DefaultChannelIDStore::OnLoaded,
302 weak_ptr_factory_.GetWeakPtr())); 303 weak_ptr_factory_.GetWeakPtr()));
303 } 304 }
304 305
305 void DefaultChannelIDStore::OnLoaded( 306 void DefaultChannelIDStore::OnLoaded(
306 scoped_ptr<std::vector<scoped_ptr<ChannelID>>> channel_ids) { 307 std::unique_ptr<std::vector<std::unique_ptr<ChannelID>>> channel_ids) {
307 DCHECK(CalledOnValidThread()); 308 DCHECK(CalledOnValidThread());
308 for (std::vector<scoped_ptr<ChannelID>>::iterator it = channel_ids->begin(); 309 for (std::vector<std::unique_ptr<ChannelID>>::iterator it =
310 channel_ids->begin();
309 it != channel_ids->end(); ++it) { 311 it != channel_ids->end(); ++it) {
310 DCHECK(channel_ids_.find((*it)->server_identifier()) == 312 DCHECK(channel_ids_.find((*it)->server_identifier()) ==
311 channel_ids_.end()); 313 channel_ids_.end());
312 std::string ident = (*it)->server_identifier(); 314 std::string ident = (*it)->server_identifier();
313 channel_ids_[ident] = it->release(); 315 channel_ids_[ident] = it->release();
314 } 316 }
315 channel_ids->clear(); 317 channel_ids->clear();
316 318
317 loaded_ = true; 319 loaded_ = true;
318 320
319 base::TimeDelta wait_time; 321 base::TimeDelta wait_time;
320 if (!waiting_tasks_.empty()) 322 if (!waiting_tasks_.empty())
321 wait_time = base::TimeTicks::Now() - waiting_tasks_start_time_; 323 wait_time = base::TimeTicks::Now() - waiting_tasks_start_time_;
322 DVLOG(1) << "Task delay " << wait_time.InMilliseconds(); 324 DVLOG(1) << "Task delay " << wait_time.InMilliseconds();
323 UMA_HISTOGRAM_CUSTOM_TIMES("DomainBoundCerts.TaskMaxWaitTime", 325 UMA_HISTOGRAM_CUSTOM_TIMES("DomainBoundCerts.TaskMaxWaitTime",
324 wait_time, 326 wait_time,
325 base::TimeDelta::FromMilliseconds(1), 327 base::TimeDelta::FromMilliseconds(1),
326 base::TimeDelta::FromMinutes(1), 328 base::TimeDelta::FromMinutes(1),
327 50); 329 50);
328 UMA_HISTOGRAM_COUNTS_100("DomainBoundCerts.TaskWaitCount", 330 UMA_HISTOGRAM_COUNTS_100("DomainBoundCerts.TaskWaitCount",
329 waiting_tasks_.size()); 331 waiting_tasks_.size());
330 332
331 for (scoped_ptr<Task>& i : waiting_tasks_) 333 for (std::unique_ptr<Task>& i : waiting_tasks_)
332 i->Run(this); 334 i->Run(this);
333 waiting_tasks_.clear(); 335 waiting_tasks_.clear();
334 } 336 }
335 337
336 void DefaultChannelIDStore::SyncSetChannelID(scoped_ptr<ChannelID> channel_id) { 338 void DefaultChannelIDStore::SyncSetChannelID(
339 std::unique_ptr<ChannelID> channel_id) {
337 DCHECK(CalledOnValidThread()); 340 DCHECK(CalledOnValidThread());
338 DCHECK(loaded_); 341 DCHECK(loaded_);
339 342
340 InternalDeleteChannelID(channel_id->server_identifier()); 343 InternalDeleteChannelID(channel_id->server_identifier());
341 InternalInsertChannelID(std::move(channel_id)); 344 InternalInsertChannelID(std::move(channel_id));
342 } 345 }
343 346
344 void DefaultChannelIDStore::SyncDeleteChannelID( 347 void DefaultChannelIDStore::SyncDeleteChannelID(
345 const std::string& server_identifier) { 348 const std::string& server_identifier) {
346 DCHECK(CalledOnValidThread()); 349 DCHECK(CalledOnValidThread());
(...skipping 24 matching lines...) Expand all
371 374
372 void DefaultChannelIDStore::SyncGetAllChannelIDs( 375 void DefaultChannelIDStore::SyncGetAllChannelIDs(
373 ChannelIDList* channel_id_list) { 376 ChannelIDList* channel_id_list) {
374 DCHECK(CalledOnValidThread()); 377 DCHECK(CalledOnValidThread());
375 DCHECK(loaded_); 378 DCHECK(loaded_);
376 for (ChannelIDMap::iterator it = channel_ids_.begin(); 379 for (ChannelIDMap::iterator it = channel_ids_.begin();
377 it != channel_ids_.end(); ++it) 380 it != channel_ids_.end(); ++it)
378 channel_id_list->push_back(*it->second); 381 channel_id_list->push_back(*it->second);
379 } 382 }
380 383
381 void DefaultChannelIDStore::EnqueueTask(scoped_ptr<Task> task) { 384 void DefaultChannelIDStore::EnqueueTask(std::unique_ptr<Task> task) {
382 DCHECK(CalledOnValidThread()); 385 DCHECK(CalledOnValidThread());
383 DCHECK(!loaded_); 386 DCHECK(!loaded_);
384 if (waiting_tasks_.empty()) 387 if (waiting_tasks_.empty())
385 waiting_tasks_start_time_ = base::TimeTicks::Now(); 388 waiting_tasks_start_time_ = base::TimeTicks::Now();
386 waiting_tasks_.push_back(std::move(task)); 389 waiting_tasks_.push_back(std::move(task));
387 } 390 }
388 391
389 void DefaultChannelIDStore::RunOrEnqueueTask(scoped_ptr<Task> task) { 392 void DefaultChannelIDStore::RunOrEnqueueTask(std::unique_ptr<Task> task) {
390 DCHECK(CalledOnValidThread()); 393 DCHECK(CalledOnValidThread());
391 InitIfNecessary(); 394 InitIfNecessary();
392 395
393 if (!loaded_) { 396 if (!loaded_) {
394 EnqueueTask(std::move(task)); 397 EnqueueTask(std::move(task));
395 return; 398 return;
396 } 399 }
397 400
398 task->Run(this); 401 task->Run(this);
399 } 402 }
400 403
401 void DefaultChannelIDStore::InternalDeleteChannelID( 404 void DefaultChannelIDStore::InternalDeleteChannelID(
402 const std::string& server_identifier) { 405 const std::string& server_identifier) {
403 DCHECK(CalledOnValidThread()); 406 DCHECK(CalledOnValidThread());
404 DCHECK(loaded_); 407 DCHECK(loaded_);
405 408
406 ChannelIDMap::iterator it = channel_ids_.find(server_identifier); 409 ChannelIDMap::iterator it = channel_ids_.find(server_identifier);
407 if (it == channel_ids_.end()) 410 if (it == channel_ids_.end())
408 return; // There is nothing to delete. 411 return; // There is nothing to delete.
409 412
410 ChannelID* channel_id = it->second; 413 ChannelID* channel_id = it->second;
411 if (store_.get()) 414 if (store_.get())
412 store_->DeleteChannelID(*channel_id); 415 store_->DeleteChannelID(*channel_id);
413 channel_ids_.erase(it); 416 channel_ids_.erase(it);
414 delete channel_id; 417 delete channel_id;
415 } 418 }
416 419
417 void DefaultChannelIDStore::InternalInsertChannelID( 420 void DefaultChannelIDStore::InternalInsertChannelID(
418 scoped_ptr<ChannelID> channel_id) { 421 std::unique_ptr<ChannelID> channel_id) {
419 DCHECK(CalledOnValidThread()); 422 DCHECK(CalledOnValidThread());
420 DCHECK(loaded_); 423 DCHECK(loaded_);
421 424
422 if (store_.get()) 425 if (store_.get())
423 store_->AddChannelID(*(channel_id.get())); 426 store_->AddChannelID(*(channel_id.get()));
424 const std::string& server_identifier = channel_id->server_identifier(); 427 const std::string& server_identifier = channel_id->server_identifier();
425 channel_ids_[server_identifier] = channel_id.release(); 428 channel_ids_[server_identifier] = channel_id.release();
426 } 429 }
427 430
428 bool DefaultChannelIDStore::IsEphemeral() { 431 bool DefaultChannelIDStore::IsEphemeral() {
429 return store_.get() == nullptr; 432 return store_.get() == nullptr;
430 } 433 }
431 434
432 DefaultChannelIDStore::PersistentStore::PersistentStore() {} 435 DefaultChannelIDStore::PersistentStore::PersistentStore() {}
433 436
434 DefaultChannelIDStore::PersistentStore::~PersistentStore() {} 437 DefaultChannelIDStore::PersistentStore::~PersistentStore() {}
435 438
436 } // namespace net 439 } // namespace net
OLDNEW
« no previous file with comments | « net/ssl/default_channel_id_store.h ('k') | net/ssl/default_channel_id_store_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698