- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / extensions / file_manager / private_api_base.cc
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.
4
5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
6
7 #include "base/strings/string_number_conversions.h"
8 #include "chrome/browser/chromeos/drive/logging.h"
9
10 namespace extensions {
11 namespace {
12
13 const int kSlowOperationThresholdMs = 500;  // In ms.
14
15 }  // namespace
16
17 LoggedAsyncExtensionFunction::LoggedAsyncExtensionFunction()
18     : log_on_completion_(false) {
19   start_time_  = base::Time::Now();
20 }
21
22 LoggedAsyncExtensionFunction::~LoggedAsyncExtensionFunction() {
23 }
24
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)",
30                      name().c_str(),
31                      request_id(),
32                      success ? "succeeded" : "failed",
33                      base::Int64ToString(elapsed).c_str());
34   } else if (elapsed >= kSlowOperationThresholdMs) {
35     drive::util::Log(
36         logging::LOG_WARNING,
37         "PEFORMANCE WARNING: %s[%d] was slow. (elapsed time: %sms)",
38         name().c_str(),
39         request_id(),
40         base::Int64ToString(elapsed).c_str());
41   }
42
43   ChromeAsyncExtensionFunction::SendResponse(success);
44 }
45
46 }  // namespace extensions