1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
7 #include "base/strings/string_number_conversions.h"
8 #include "chrome/browser/chromeos/drive/logging.h"
10 namespace extensions {
13 const int kSlowOperationThresholdMs = 500; // In ms.
17 LoggedAsyncExtensionFunction::LoggedAsyncExtensionFunction()
18 : log_on_completion_(false) {
19 start_time_ = base::Time::Now();
22 LoggedAsyncExtensionFunction::~LoggedAsyncExtensionFunction() {
25 void LoggedAsyncExtensionFunction::SendResponse(bool success) {
26 int64 elapsed = (base::Time::Now() - start_time_).InMilliseconds();
27 if (log_on_completion_) {
28 drive::util::Log(logging::LOG_INFO,
29 "%s[%d] %s. (elapsed time: %sms)",
32 success ? "succeeded" : "failed",
33 base::Int64ToString(elapsed).c_str());
34 } else if (elapsed >= kSlowOperationThresholdMs) {
37 "PEFORMANCE WARNING: %s[%d] was slow. (elapsed time: %sms)",
40 base::Int64ToString(elapsed).c_str());
43 ChromeAsyncExtensionFunction::SendResponse(success);
46 } // namespace extensions