| Index: crypto/mock_apple_keychain.cc
|
| diff --git a/crypto/mock_apple_keychain.cc b/crypto/mock_apple_keychain.cc
|
| index 1ddfc8679461c6fddf320642405dc31f98643c0b..a1faa65382a788ff5d8ac81b21b9723b41fb537c 100644
|
| --- a/crypto/mock_apple_keychain.cc
|
| +++ b/crypto/mock_apple_keychain.cc
|
| @@ -3,9 +3,23 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/logging.h"
|
| +#include "base/metrics/histogram.h"
|
| #include "base/time/time.h"
|
| #include "crypto/mock_apple_keychain.h"
|
|
|
| +namespace {
|
| +
|
| +// Adds an entry to a local histogram to indicate that the Apple Keychain would
|
| +// have been accessed, if this class were not a mock of the Apple Keychain.
|
| +void IncrementKeychainAccessHistogram() {
|
| + // This local histogram is accessed by Telemetry to track the number of times
|
| + // the keychain is accessed, since keychain access is known to be synchronous
|
| + // and slow.
|
| + LOCAL_HISTOGRAM_BOOLEAN("OSX.Keychain.Access", true);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| namespace crypto {
|
|
|
| OSStatus MockAppleKeychain::FindGenericPassword(
|
| @@ -17,6 +31,8 @@ OSStatus MockAppleKeychain::FindGenericPassword(
|
| UInt32* passwordLength,
|
| void** passwordData,
|
| SecKeychainItemRef* itemRef) const {
|
| + IncrementKeychainAccessHistogram();
|
| +
|
| // When simulating |noErr|, return canned |passwordData| and
|
| // |passwordLength|. Otherwise, just return given code.
|
| if (find_generic_result_ == noErr) {
|
| @@ -48,6 +64,8 @@ OSStatus MockAppleKeychain::AddGenericPassword(
|
| UInt32 passwordLength,
|
| const void* passwordData,
|
| SecKeychainItemRef* itemRef) const {
|
| + IncrementKeychainAccessHistogram();
|
| +
|
| called_add_generic_ = true;
|
|
|
| DCHECK_GT(passwordLength, 0U);
|
| @@ -58,4 +76,9 @@ OSStatus MockAppleKeychain::AddGenericPassword(
|
| return noErr;
|
| }
|
|
|
| +std::string MockAppleKeychain::GetEncryptionPassword() const {
|
| + IncrementKeychainAccessHistogram();
|
| + return "mock_password";
|
| +}
|
| +
|
| } // namespace crypto
|
|
|