Index: chrome/browser/policy/user_policy_token_cache.cc |
diff --git a/chrome/browser/policy/user_policy_token_cache.cc b/chrome/browser/policy/user_policy_token_cache.cc |
index adba4a4e89c75f5cc9fb03081d753a99fba66216..661a170e56c6c725cc3c67e05397fcd464a694ba 100644 |
--- a/chrome/browser/policy/user_policy_token_cache.cc |
+++ b/chrome/browser/policy/user_policy_token_cache.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/policy/user_policy_token_cache.h" |
#include "base/file_util.h" |
+#include "chrome/browser/policy/enterprise_metrics.h" |
#include "content/browser/browser_thread.h" |
namespace policy { |
@@ -21,6 +22,7 @@ UserPolicyTokenCache::UserPolicyTokenCache( |
void UserPolicyTokenCache::Load() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ em::LogTokenOperation(em::kTokenLoadRequested); |
BrowserThread::PostTask( |
BrowserThread::FILE, FROM_HERE, |
NewRunnableMethod(this, &UserPolicyTokenCache::LoadOnFileThread)); |
@@ -29,6 +31,7 @@ void UserPolicyTokenCache::Load() { |
void UserPolicyTokenCache::Store(const std::string& token, |
const std::string& device_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ em::LogTokenOperation(em::kTokenStoreRequested); |
BrowserThread::PostTask( |
BrowserThread::FILE, FROM_HERE, |
NewRunnableMethod(this, |
@@ -52,6 +55,8 @@ void UserPolicyTokenCache::LoadOnFileThread() { |
device_credentials.ParseFromArray(data.c_str(), data.size())) { |
device_token = device_credentials.device_token(); |
device_id = device_credentials.device_id(); |
+ } else { |
+ em::LogTokenOperation(em::kTokenLoadFailed); |
} |
} |
@@ -81,16 +86,22 @@ void UserPolicyTokenCache::StoreOnFileThread(const std::string& token, |
if (!success) { |
LOG(WARNING) << "Failed serialize device token data, will not write " |
<< cache_file_.value(); |
+ em::LogTokenOperation(em::kTokenStoreFailed); |
return; |
} |
if (!file_util::CreateDirectory(cache_file_.DirName())) { |
LOG(WARNING) << "Failed to create directory " |
<< cache_file_.DirName().value(); |
+ em::LogTokenOperation(em::kTokenStoreFailed); |
return; |
} |
- file_util::WriteFile(cache_file_, data.c_str(), data.length()); |
+ int size = data.size(); |
+ if (file_util::WriteFile(cache_file_, data.c_str(), size) != size) { |
+ LOG(WARNING) << "Failed to write " << cache_file_.value(); |
+ em::LogTokenOperation(em::kTokenStoreFailed); |
+ } |
} |
} // namespace policy |