OLD | NEW |
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> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
9 #include "base/metrics/histogram_macros.h" | 11 #include "base/metrics/histogram_macros.h" |
10 #include "crypto/ec_private_key.h" | 12 #include "crypto/ec_private_key.h" |
11 #include "net/base/net_errors.h" | 13 #include "net/base/net_errors.h" |
12 | 14 |
13 namespace net { | 15 namespace net { |
14 | 16 |
15 // -------------------------------------------------------------------------- | 17 // -------------------------------------------------------------------------- |
16 // Task | 18 // Task |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 } | 63 } |
62 | 64 |
63 void DefaultChannelIDStore::GetChannelIDTask::Run( | 65 void DefaultChannelIDStore::GetChannelIDTask::Run( |
64 DefaultChannelIDStore* store) { | 66 DefaultChannelIDStore* store) { |
65 scoped_ptr<crypto::ECPrivateKey> key_result; | 67 scoped_ptr<crypto::ECPrivateKey> key_result; |
66 int err = store->GetChannelID(server_identifier_, &key_result, | 68 int err = store->GetChannelID(server_identifier_, &key_result, |
67 GetChannelIDCallback()); | 69 GetChannelIDCallback()); |
68 DCHECK(err != ERR_IO_PENDING); | 70 DCHECK(err != ERR_IO_PENDING); |
69 | 71 |
70 InvokeCallback(base::Bind(callback_, err, server_identifier_, | 72 InvokeCallback(base::Bind(callback_, err, server_identifier_, |
71 base::Passed(key_result.Pass()))); | 73 base::Passed(std::move(key_result)))); |
72 } | 74 } |
73 | 75 |
74 // -------------------------------------------------------------------------- | 76 // -------------------------------------------------------------------------- |
75 // SetChannelIDTask | 77 // SetChannelIDTask |
76 class DefaultChannelIDStore::SetChannelIDTask | 78 class DefaultChannelIDStore::SetChannelIDTask |
77 : public DefaultChannelIDStore::Task { | 79 : public DefaultChannelIDStore::Task { |
78 public: | 80 public: |
79 SetChannelIDTask(scoped_ptr<ChannelID> channel_id); | 81 SetChannelIDTask(scoped_ptr<ChannelID> channel_id); |
80 ~SetChannelIDTask() override; | 82 ~SetChannelIDTask() override; |
81 void Run(DefaultChannelIDStore* store) override; | 83 void Run(DefaultChannelIDStore* store) override; |
82 | 84 |
83 private: | 85 private: |
84 scoped_ptr<ChannelID> channel_id_; | 86 scoped_ptr<ChannelID> channel_id_; |
85 }; | 87 }; |
86 | 88 |
87 DefaultChannelIDStore::SetChannelIDTask::SetChannelIDTask( | 89 DefaultChannelIDStore::SetChannelIDTask::SetChannelIDTask( |
88 scoped_ptr<ChannelID> channel_id) | 90 scoped_ptr<ChannelID> channel_id) |
89 : channel_id_(channel_id.Pass()) { | 91 : channel_id_(std::move(channel_id)) {} |
90 } | |
91 | 92 |
92 DefaultChannelIDStore::SetChannelIDTask::~SetChannelIDTask() { | 93 DefaultChannelIDStore::SetChannelIDTask::~SetChannelIDTask() { |
93 } | 94 } |
94 | 95 |
95 void DefaultChannelIDStore::SetChannelIDTask::Run( | 96 void DefaultChannelIDStore::SetChannelIDTask::Run( |
96 DefaultChannelIDStore* store) { | 97 DefaultChannelIDStore* store) { |
97 store->SyncSetChannelID(channel_id_.Pass()); | 98 store->SyncSetChannelID(std::move(channel_id_)); |
98 } | 99 } |
99 | 100 |
100 // -------------------------------------------------------------------------- | 101 // -------------------------------------------------------------------------- |
101 // DeleteChannelIDTask | 102 // DeleteChannelIDTask |
102 class DefaultChannelIDStore::DeleteChannelIDTask | 103 class DefaultChannelIDStore::DeleteChannelIDTask |
103 : public DefaultChannelIDStore::Task { | 104 : public DefaultChannelIDStore::Task { |
104 public: | 105 public: |
105 DeleteChannelIDTask(const std::string& server_identifier, | 106 DeleteChannelIDTask(const std::string& server_identifier, |
106 const base::Closure& callback); | 107 const base::Closure& callback); |
107 ~DeleteChannelIDTask() override; | 108 ~DeleteChannelIDTask() override; |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 if (it == channel_ids_.end()) | 229 if (it == channel_ids_.end()) |
229 return ERR_FILE_NOT_FOUND; | 230 return ERR_FILE_NOT_FOUND; |
230 | 231 |
231 ChannelID* channel_id = it->second; | 232 ChannelID* channel_id = it->second; |
232 key_result->reset(channel_id->key()->Copy()); | 233 key_result->reset(channel_id->key()->Copy()); |
233 | 234 |
234 return OK; | 235 return OK; |
235 } | 236 } |
236 | 237 |
237 void DefaultChannelIDStore::SetChannelID(scoped_ptr<ChannelID> channel_id) { | 238 void DefaultChannelIDStore::SetChannelID(scoped_ptr<ChannelID> channel_id) { |
238 auto task = new SetChannelIDTask(channel_id.Pass()); | 239 auto task = new SetChannelIDTask(std::move(channel_id)); |
239 RunOrEnqueueTask(scoped_ptr<Task>(task)); | 240 RunOrEnqueueTask(scoped_ptr<Task>(task)); |
240 } | 241 } |
241 | 242 |
242 void DefaultChannelIDStore::DeleteChannelID( | 243 void DefaultChannelIDStore::DeleteChannelID( |
243 const std::string& server_identifier, | 244 const std::string& server_identifier, |
244 const base::Closure& callback) { | 245 const base::Closure& callback) { |
245 RunOrEnqueueTask(scoped_ptr<Task>( | 246 RunOrEnqueueTask(scoped_ptr<Task>( |
246 new DeleteChannelIDTask(server_identifier, callback))); | 247 new DeleteChannelIDTask(server_identifier, callback))); |
247 } | 248 } |
248 | 249 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 for (scoped_ptr<Task>& i : waiting_tasks_) | 331 for (scoped_ptr<Task>& i : waiting_tasks_) |
331 i->Run(this); | 332 i->Run(this); |
332 waiting_tasks_.clear(); | 333 waiting_tasks_.clear(); |
333 } | 334 } |
334 | 335 |
335 void DefaultChannelIDStore::SyncSetChannelID(scoped_ptr<ChannelID> channel_id) { | 336 void DefaultChannelIDStore::SyncSetChannelID(scoped_ptr<ChannelID> channel_id) { |
336 DCHECK(CalledOnValidThread()); | 337 DCHECK(CalledOnValidThread()); |
337 DCHECK(loaded_); | 338 DCHECK(loaded_); |
338 | 339 |
339 InternalDeleteChannelID(channel_id->server_identifier()); | 340 InternalDeleteChannelID(channel_id->server_identifier()); |
340 InternalInsertChannelID(channel_id.Pass()); | 341 InternalInsertChannelID(std::move(channel_id)); |
341 } | 342 } |
342 | 343 |
343 void DefaultChannelIDStore::SyncDeleteChannelID( | 344 void DefaultChannelIDStore::SyncDeleteChannelID( |
344 const std::string& server_identifier) { | 345 const std::string& server_identifier) { |
345 DCHECK(CalledOnValidThread()); | 346 DCHECK(CalledOnValidThread()); |
346 DCHECK(loaded_); | 347 DCHECK(loaded_); |
347 InternalDeleteChannelID(server_identifier); | 348 InternalDeleteChannelID(server_identifier); |
348 } | 349 } |
349 | 350 |
350 void DefaultChannelIDStore::SyncDeleteAllCreatedBetween( | 351 void DefaultChannelIDStore::SyncDeleteAllCreatedBetween( |
(...skipping 24 matching lines...) Expand all Loading... |
375 for (ChannelIDMap::iterator it = channel_ids_.begin(); | 376 for (ChannelIDMap::iterator it = channel_ids_.begin(); |
376 it != channel_ids_.end(); ++it) | 377 it != channel_ids_.end(); ++it) |
377 channel_id_list->push_back(*it->second); | 378 channel_id_list->push_back(*it->second); |
378 } | 379 } |
379 | 380 |
380 void DefaultChannelIDStore::EnqueueTask(scoped_ptr<Task> task) { | 381 void DefaultChannelIDStore::EnqueueTask(scoped_ptr<Task> task) { |
381 DCHECK(CalledOnValidThread()); | 382 DCHECK(CalledOnValidThread()); |
382 DCHECK(!loaded_); | 383 DCHECK(!loaded_); |
383 if (waiting_tasks_.empty()) | 384 if (waiting_tasks_.empty()) |
384 waiting_tasks_start_time_ = base::TimeTicks::Now(); | 385 waiting_tasks_start_time_ = base::TimeTicks::Now(); |
385 waiting_tasks_.push_back(task.Pass()); | 386 waiting_tasks_.push_back(std::move(task)); |
386 } | 387 } |
387 | 388 |
388 void DefaultChannelIDStore::RunOrEnqueueTask(scoped_ptr<Task> task) { | 389 void DefaultChannelIDStore::RunOrEnqueueTask(scoped_ptr<Task> task) { |
389 DCHECK(CalledOnValidThread()); | 390 DCHECK(CalledOnValidThread()); |
390 InitIfNecessary(); | 391 InitIfNecessary(); |
391 | 392 |
392 if (!loaded_) { | 393 if (!loaded_) { |
393 EnqueueTask(task.Pass()); | 394 EnqueueTask(std::move(task)); |
394 return; | 395 return; |
395 } | 396 } |
396 | 397 |
397 task->Run(this); | 398 task->Run(this); |
398 } | 399 } |
399 | 400 |
400 void DefaultChannelIDStore::InternalDeleteChannelID( | 401 void DefaultChannelIDStore::InternalDeleteChannelID( |
401 const std::string& server_identifier) { | 402 const std::string& server_identifier) { |
402 DCHECK(CalledOnValidThread()); | 403 DCHECK(CalledOnValidThread()); |
403 DCHECK(loaded_); | 404 DCHECK(loaded_); |
(...skipping 18 matching lines...) Expand all Loading... |
422 store_->AddChannelID(*(channel_id.get())); | 423 store_->AddChannelID(*(channel_id.get())); |
423 const std::string& server_identifier = channel_id->server_identifier(); | 424 const std::string& server_identifier = channel_id->server_identifier(); |
424 channel_ids_[server_identifier] = channel_id.release(); | 425 channel_ids_[server_identifier] = channel_id.release(); |
425 } | 426 } |
426 | 427 |
427 DefaultChannelIDStore::PersistentStore::PersistentStore() {} | 428 DefaultChannelIDStore::PersistentStore::PersistentStore() {} |
428 | 429 |
429 DefaultChannelIDStore::PersistentStore::~PersistentStore() {} | 430 DefaultChannelIDStore::PersistentStore::~PersistentStore() {} |
430 | 431 |
431 } // namespace net | 432 } // namespace net |
OLD | NEW |