Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(612)

Unified Diff: extensions/browser/api_activity_monitor.h

Issue 2077723002: [Extensions] Short-circuit activity logging if not enabled (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add Test Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/browser/api_activity_monitor.h
diff --git a/extensions/browser/api_activity_monitor.h b/extensions/browser/api_activity_monitor.h
index 9ef97a4a4effe54baa63fe0ae74e7d7e7c1cdb4e..0844ce0eb7a9000b1a7fe3387cdf0d303e3035ad 100644
--- a/extensions/browser/api_activity_monitor.h
+++ b/extensions/browser/api_activity_monitor.h
@@ -8,33 +8,67 @@
#include <memory>
#include <string>
+class GURL;
namespace base {
+class DictionaryValue;
class ListValue;
}
+namespace content {
+class BrowserContext;
+}
+
namespace extensions {
+namespace activity_monitor {
+
+using Monitor = void (*)(content::BrowserContext* browser_context,
+ const std::string& extension_id,
+ const std::string& activity_name,
+ const base::ListValue& event_args);
+using WebRequestMonitor =
+ void (*)(content::BrowserContext* browser_context,
+ const std::string& extension_id,
+ const GURL& url,
+ bool is_incognito,
+ const std::string& api_call,
+ std::unique_ptr<base::DictionaryValue> details);
+
+// Get or set the current global monitor for API events and functions. Note that
+// these handlers *must* be allowed to be called on any thread!
+// Additionally, since this may be called on any thead, |browser_context| is
+// unsafe to use unless posted to the UI thread.
+Monitor GetApiEventMonitor();
+Monitor GetApiFunctionMonitor();
+WebRequestMonitor GetWebRequestMonitor();
+void SetApiEventMonitor(Monitor event_monitor);
+void SetApiFunctionMonitor(Monitor function_monitor);
+void SetWebRequestMonitor(WebRequestMonitor web_request_monitor);
+
+// Called when an API event is dispatched to an extension. May be called on any
+// thread. |browser_context| is unsafe to use.
+void OnApiEventDispatched(content::BrowserContext* browser_context,
+ const std::string& extension_id,
+ const std::string& event_name,
+ const base::ListValue& event_args);
+
+// Called when an extension calls an API function. May be called on any thread.
+// |browser_context| is unsafe to use.
+void OnApiFunctionCalled(content::BrowserContext* browser_context,
+ const std::string& extension_id,
+ const std::string& api_name,
+ const base::ListValue& args);
-// ApiActivityMonitor is used to monitor extension API event dispatch and API
-// function calls. An embedder can use this interface to log low-level extension
-// activity.
-class ApiActivityMonitor {
- public:
- // Called when an API event is dispatched to an extension.
- virtual void OnApiEventDispatched(
- const std::string& extension_id,
- const std::string& event_name,
- std::unique_ptr<base::ListValue> event_args) = 0;
-
- // Called when an extension calls an API function.
- virtual void OnApiFunctionCalled(const std::string& extension_id,
- const std::string& api_name,
- std::unique_ptr<base::ListValue> args) = 0;
-
- protected:
- virtual ~ApiActivityMonitor() {}
-};
+// Called when an extension uses the web request API. May be called on any
+// thread. |browser_context| is unsafe to use.
+void OnWebRequestApiUsed(content::BrowserContext* browser_context,
+ const std::string& extension_id,
+ const GURL& url,
+ bool is_incognito,
+ const std::string& api_call,
+ std::unique_ptr<base::DictionaryValue> details);
+} // namespace activity_monitor
} // namespace extensions
#endif // EXTENSIONS_BROWSER_API_ACTIVITY_MONITOR_H_
« no previous file with comments | « extensions/browser/api/web_request/web_request_event_router_delegate.cc ('k') | extensions/browser/api_activity_monitor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698