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