OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 CHROME_UTILITY_IMPORTER_FIREFOX_IMPORTER_UNITTEST_UTILS_H_ | 5 #ifndef CHROME_UTILITY_IMPORTER_FIREFOX_IMPORTER_UNITTEST_UTILS_H_ |
6 #define CHROME_UTILITY_IMPORTER_FIREFOX_IMPORTER_UNITTEST_UTILS_H_ | 6 #define CHROME_UTILITY_IMPORTER_FIREFOX_IMPORTER_UNITTEST_UTILS_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/process/process_handle.h" | 10 #include "base/process/process_handle.h" |
11 #include "chrome/utility/importer/nss_decryptor.h" | 11 #include "chrome/utility/importer/nss_decryptor.h" |
12 #include "components/autofill/core/common/password_form.h" | |
12 | 13 |
13 class FFDecryptorServerChannelListener; | 14 class FFDecryptorServerChannelListener; |
14 | 15 |
15 namespace base { | 16 namespace base { |
16 class MessageLoopForIO; | 17 class MessageLoopForIO; |
17 } | 18 } |
18 | 19 |
19 namespace IPC { | 20 namespace IPC { |
20 class Channel; | 21 class Channel; |
21 } // namespace IPC | 22 } // namespace IPC |
22 | 23 |
24 typedef std::vector<autofill::PasswordForm> PasswordFormVector; | |
vabr (Chromium)
2014/06/05 16:36:20
Please don't pollute the global namespace with thi
| |
25 | |
23 // On OS X NSSDecryptor needs to run in a separate process. To allow us to use | 26 // On OS X NSSDecryptor needs to run in a separate process. To allow us to use |
24 // the same unit test on all platforms we use a proxy class which spawns a | 27 // the same unit test on all platforms we use a proxy class which spawns a |
25 // child process to do decryption on OS X, and calls through directly | 28 // child process to do decryption on OS X, and calls through directly |
26 // to NSSDecryptor on other platforms. | 29 // to NSSDecryptor on other platforms. |
27 // On OS X: | 30 // On OS X: |
28 // 2 IPC messages are sent for every method of NSSDecryptor, one containing the | 31 // 2 IPC messages are sent for every method of NSSDecryptor, one containing the |
29 // input arguments sent from Server->Child and one coming back containing | 32 // input arguments sent from Server->Child and one coming back containing |
30 // the return argument e.g. | 33 // the return argument e.g. |
31 // | 34 // |
32 // -> Msg_Decryptor_Init(dll_path, db_path) | 35 // -> Msg_Decryptor_Init(dll_path, db_path) |
33 // <- Msg_Decryptor_InitReturnCode(bool) | 36 // <- Msg_Decryptor_InitReturnCode(bool) |
34 class FFUnitTestDecryptorProxy { | 37 class FFUnitTestDecryptorProxy { |
35 public: | 38 public: |
36 FFUnitTestDecryptorProxy(); | 39 FFUnitTestDecryptorProxy(); |
37 virtual ~FFUnitTestDecryptorProxy(); | 40 virtual ~FFUnitTestDecryptorProxy(); |
38 | 41 |
39 // Initialize a decryptor, returns true if the object was | 42 // Initialize a decryptor, returns true if the object was |
40 // constructed successfully. | 43 // constructed successfully. |
41 bool Setup(const base::FilePath& nss_path); | 44 bool Setup(const base::FilePath& nss_path); |
42 | 45 |
43 // This match the parallel functions in NSSDecryptor. | 46 // This match the parallel functions in NSSDecryptor. |
44 bool DecryptorInit(const base::FilePath& dll_path, | 47 bool DecryptorInit(const base::FilePath& dll_path, |
45 const base::FilePath& db_path); | 48 const base::FilePath& db_path); |
46 base::string16 Decrypt(const std::string& crypt); | 49 base::string16 Decrypt(const std::string& crypt); |
50 PasswordFormVector ParseSignons(const base::FilePath& signons_path); | |
47 | 51 |
48 private: | 52 private: |
49 #if defined(OS_MACOSX) | 53 #if defined(OS_MACOSX) |
50 // Blocks until either a timeout is reached, or until the client process | 54 // Blocks until either a timeout is reached, or until the client process |
51 // responds to an IPC message. | 55 // responds to an IPC message. |
52 // Returns true if a reply was received successfully and false if the | 56 // Returns true if a reply was received successfully and false if the |
53 // the operation timed out. | 57 // the operation timed out. |
54 bool WaitForClientResponse(); | 58 bool WaitForClientResponse(); |
55 | 59 |
56 base::ProcessHandle child_process_; | 60 base::ProcessHandle child_process_; |
(...skipping 20 matching lines...) Loading... | |
77 } | 81 } |
78 | 82 |
79 bool FFUnitTestDecryptorProxy::DecryptorInit(const base::FilePath& dll_path, | 83 bool FFUnitTestDecryptorProxy::DecryptorInit(const base::FilePath& dll_path, |
80 const base::FilePath& db_path) { | 84 const base::FilePath& db_path) { |
81 return decryptor_.Init(dll_path, db_path); | 85 return decryptor_.Init(dll_path, db_path); |
82 } | 86 } |
83 | 87 |
84 base::string16 FFUnitTestDecryptorProxy::Decrypt(const std::string& crypt) { | 88 base::string16 FFUnitTestDecryptorProxy::Decrypt(const std::string& crypt) { |
85 return decryptor_.Decrypt(crypt); | 89 return decryptor_.Decrypt(crypt); |
86 } | 90 } |
91 | |
92 PasswordFormVector FFUnitTestDecryptorProxy::ParseSignons( | |
93 const base::FilePath& signons_path) { | |
94 return decryptor_.ParseSignons(signons_path); | |
95 } | |
96 | |
87 #endif // !OS_MACOSX | 97 #endif // !OS_MACOSX |
88 | 98 |
89 #endif // CHROME_UTILITY_IMPORTER_FIREFOX_IMPORTER_UNITTEST_UTILS_H_ | 99 #endif // CHROME_UTILITY_IMPORTER_FIREFOX_IMPORTER_UNITTEST_UTILS_H_ |
OLD | NEW |