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 #include "chrome/browser/webdata/token_service_table.h" | 5 #include "chrome/browser/webdata/token_service_table.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
11 #include "components/webdata/common/web_database.h" | 11 #include "components/webdata/common/web_database.h" |
12 #include "components/webdata/encryptor/encryptor.h" | 12 #include "components/webdata/encryptor/encryptor.h" |
13 #include "sql/statement.h" | 13 #include "sql/statement.h" |
14 | 14 |
15 namespace { | 15 namespace { |
16 | 16 |
17 int table_key = 0; | |
18 | |
19 WebDatabaseTable::TypeKey GetKey() { | 17 WebDatabaseTable::TypeKey GetKey() { |
| 18 // We just need a unique constant. Use the address of a static that |
| 19 // COMDAT folding won't touch in an optimizing linker. |
| 20 static int table_key = 0; |
20 return reinterpret_cast<void*>(&table_key); | 21 return reinterpret_cast<void*>(&table_key); |
21 } | 22 } |
22 | 23 |
23 } // namespace | 24 } // namespace |
24 | 25 |
25 TokenServiceTable* TokenServiceTable::FromWebDatabase(WebDatabase* db) { | 26 TokenServiceTable* TokenServiceTable::FromWebDatabase(WebDatabase* db) { |
26 return static_cast<TokenServiceTable*>(db->GetTable(GetKey())); | 27 return static_cast<TokenServiceTable*>(db->GetTable(GetKey())); |
27 | 28 |
28 } | 29 } |
29 | 30 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 if (entry_ok) { | 99 if (entry_ok) { |
99 Encryptor::DecryptString(encrypted_token, &decrypted_token); | 100 Encryptor::DecryptString(encrypted_token, &decrypted_token); |
100 (*tokens)[service] = decrypted_token; | 101 (*tokens)[service] = decrypted_token; |
101 } else { | 102 } else { |
102 NOTREACHED(); | 103 NOTREACHED(); |
103 return false; | 104 return false; |
104 } | 105 } |
105 } | 106 } |
106 return true; | 107 return true; |
107 } | 108 } |
OLD | NEW |