1 // Copyright 2014 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 #ifndef EXTENSIONS_BROWSER_API_ACTIVITY_MONITOR_H_ 6 #define EXTENSIONS_BROWSER_API_ACTIVITY_MONITOR_H_ 7 8 #include <string> 9 10 #include "base/memory/scoped_ptr.h" 11 12 namespace base { 13 class ListValue; 14 } 15 16 namespace extensions { 17 18 // ApiActivityMonitor is used to monitor extension API event dispatch and API 19 // function calls. An embedder can use this interface to log low-level extension 20 // activity. 21 class ApiActivityMonitor { 22 public: 23 // Called when an API event is dispatched to an extension. 24 virtual void OnApiEventDispatched(const std::string& extension_id, 25 const std::string& event_name, 26 scoped_ptr<base::ListValue> event_args) = 0; 27 28 // Called when an extension calls an API function. 29 virtual void OnApiFunctionCalled(const std::string& extension_id, 30 const std::string& api_name, 31 scoped_ptr<base::ListValue> args) = 0; 32 33 protected: 34 virtual ~ApiActivityMonitor() {} 35 }; 36 37 } // namespace extensions 38 39 #endif // EXTENSIONS_BROWSER_API_ACTIVITY_MONITOR_H_ 40