Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef NET_SSL_SSL_PLATFORM_KEY_TASK_RUNNER_H_ | 5 #ifndef NET_SSL_SSL_PLATFORM_KEY_TASK_RUNNER_H_ |
| 6 #define NET_SSL_SSL_PLATFORM_KEY_TASK_RUNNER_H_ | 6 #define NET_SSL_SSL_PLATFORM_KEY_TASK_RUNNER_H_ |
| 7 | 7 |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/threading/sequenced_worker_pool.h" | 9 #include "base/memory/ref_counted.h" |
| 10 #include "base/threading/thread.h" | |
| 11 | |
| 12 namespace { | |
| 13 class SequencedTaskRunner; | |
| 14 } | |
| 10 | 15 |
| 11 namespace net { | 16 namespace net { |
| 12 | 17 |
| 13 // Serialize all the private key operations on a single background | 18 // Serialize all the private key operations on a single background thread to |
| 14 // thread to avoid problems with buggy smartcards. | 19 // avoid problems with buggy smartcards. The exposed SingleThreadTaskRunner has |
| 20 // CONTINUE_ON_SHUTDOWN semantics. | |
|
Ryan Sleevi
2016/07/01 01:09:30
Simply from reading this header, it's unclear what
gab
2016/07/05 15:40:42
The only definitions are on SequencedWorkerPool an
Ryan Sleevi
2016/07/06 18:57:07
While I agree people should be familiar with //bas
gab
2016/07/07 23:51:34
Makes sense, thanks
| |
| 15 class SSLPlatformKeyTaskRunner { | 21 class SSLPlatformKeyTaskRunner { |
| 16 public: | 22 public: |
| 17 SSLPlatformKeyTaskRunner(); | 23 SSLPlatformKeyTaskRunner(); |
| 18 ~SSLPlatformKeyTaskRunner(); | |
| 19 | 24 |
| 20 scoped_refptr<base::SequencedTaskRunner> task_runner(); | 25 // Ensure the instance is leaked to enforce CONTINUE_ON_SHUTDOWN semantics. |
| 26 ~SSLPlatformKeyTaskRunner() = delete; | |
| 27 | |
| 28 static scoped_refptr<base::SingleThreadTaskRunner> Get(); | |
|
Ryan Sleevi
2016/07/01 01:09:30
DESIGN: From a design perspective, it should be an
gab
2016/07/05 15:40:42
I thought it was even weirder to have essentially
Ryan Sleevi
2016/07/06 18:57:06
Why? The two are very different statements about A
gab
2016/07/07 23:51:34
Done.
| |
| 21 | 29 |
| 22 private: | 30 private: |
| 23 scoped_refptr<base::SequencedWorkerPool> worker_pool_; | 31 base::Thread worker_thread_; |
|
Ryan Sleevi
2016/07/01 01:09:30
Have you tested and run Chrome with this? With DCH
gab
2016/07/05 15:40:42
Yep, runs fine in a Debug build on Win10 corp:
-
Ryan Sleevi
2016/07/06 18:57:06
Well, no, the ::Leaky doesn't address the concerns
gab
2016/07/07 23:51:34
Ah got it, makes sense. Well there doesn't appear
gab
2016/07/07 23:54:16
On that note though, it would probably be better t
| |
| 24 scoped_refptr<base::SequencedTaskRunner> task_runner_; | |
| 25 | 32 |
| 26 DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeyTaskRunner); | 33 DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeyTaskRunner); |
| 27 }; | 34 }; |
| 28 | 35 |
| 29 scoped_refptr<base::SequencedTaskRunner> GetSSLPlatformKeyTaskRunner(); | |
| 30 | |
| 31 } // namespace net | 36 } // namespace net |
| 32 | 37 |
| 33 #endif // NET_SSL_SSL_PLATFORM_KEY_TASK_RUNNER_H_ | 38 #endif // NET_SSL_SSL_PLATFORM_KEY_TASK_RUNNER_H_ |
| OLD | NEW |