private_api_base.cc revision 1e9bf3e0803691d0a228da41fc608347b6db4340
1558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// found in the LICENSE file.
4558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
5558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
6558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
7558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "base/strings/string_number_conversions.h"
8558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "chrome/browser/chromeos/drive/logging.h"
9558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
10424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)namespace extensions {
11558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochnamespace {
12558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
13558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochconst int kSlowOperationThresholdMs = 500;  // In ms.
14558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
15558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch}  // namespace
16558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
17558790d6acca3451cf3a6b497803a5f07d0bec58Ben MurdochLoggedAsyncExtensionFunction::LoggedAsyncExtensionFunction()
18558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    : log_on_completion_(false) {
19558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  start_time_  = base::Time::Now();
20558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch}
21558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
22558790d6acca3451cf3a6b497803a5f07d0bec58Ben MurdochLoggedAsyncExtensionFunction::~LoggedAsyncExtensionFunction() {
23558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch}
24558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
25558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochvoid LoggedAsyncExtensionFunction::SendResponse(bool success) {
26558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  int64 elapsed = (base::Time::Now() - start_time_).InMilliseconds();
27558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  if (log_on_completion_) {
28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    drive::util::Log(logging::LOG_INFO,
29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)                     "%s[%d] %s. (elapsed time: %sms)",
30558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                     name().c_str(),
31558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                     request_id(),
32558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                     success ? "succeeded" : "failed",
33558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch                     base::Int64ToString(elapsed).c_str());
34558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  } else if (elapsed >= kSlowOperationThresholdMs) {
35558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch    drive::util::Log(
36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)        logging::LOG_WARNING,
37558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        "PEFORMANCE WARNING: %s[%d] was slow. (elapsed time: %sms)",
38558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        name().c_str(),
39558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        request_id(),
40558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch        base::Int64ToString(elapsed).c_str());
41558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  }
42558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
431e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  ChromeAsyncExtensionFunction::SendResponse(success);
44558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch}
45558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
46424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)}  // namespace extensions
47