| Index: chrome/browser/extensions/activity_log/activity_log.h
|
| diff --git a/chrome/browser/extensions/activity_log/activity_log.h b/chrome/browser/extensions/activity_log/activity_log.h
|
| index 567cda8e3223f0bf933354d8288fa0f4dbdc1e58..76e927658d1764dbd66f62d9ba191f98789bd26c 100644
|
| --- a/chrome/browser/extensions/activity_log/activity_log.h
|
| +++ b/chrome/browser/extensions/activity_log/activity_log.h
|
| @@ -16,11 +16,11 @@
|
| #include "base/macros.h"
|
| #include "base/observer_list_threadsafe.h"
|
| #include "base/scoped_observer.h"
|
| -#include "base/synchronization/lock.h"
|
| #include "base/threading/thread.h"
|
| #include "chrome/browser/extensions/activity_log/activity_actions.h"
|
| #include "chrome/browser/extensions/activity_log/activity_log_policy.h"
|
| -#include "extensions/browser/api_activity_monitor.h"
|
| +#include "content/public/browser/notification_observer.h"
|
| +#include "content/public/browser/notification_registrar.h"
|
| #include "extensions/browser/browser_context_keyed_api_factory.h"
|
| #include "extensions/browser/extension_registry_observer.h"
|
| #include "extensions/browser/script_execution_observer.h"
|
| @@ -46,9 +46,9 @@ class ExtensionRegistry;
|
| // each profile.
|
| //
|
| class ActivityLog : public BrowserContextKeyedAPI,
|
| - public ApiActivityMonitor,
|
| public ScriptExecutionObserver,
|
| - public ExtensionRegistryObserver {
|
| + public ExtensionRegistryObserver,
|
| + public content::NotificationObserver {
|
| public:
|
| // Observers can listen for activity events. There is probably only one
|
| // observer: the activityLogPrivate API.
|
| @@ -73,6 +73,9 @@ class ActivityLog : public BrowserContextKeyedAPI,
|
| // mode.
|
| void LogAction(scoped_refptr<Action> action);
|
|
|
| + // Returns true if an event for the given extension should be logged.
|
| + bool ShouldLog(const std::string& extension_id) const;
|
| +
|
| // Gets all actions that match the specified fields. URLs are treated like
|
| // prefixes; other fields are exact matches. Empty strings are not matched to
|
| // anything. For daysAgo, today is 0, yesterday is 1, etc.; a negative number
|
| @@ -99,16 +102,6 @@ class ActivityLog : public BrowserContextKeyedAPI,
|
| const Extension* extension,
|
| extensions::UninstallReason reason) override;
|
|
|
| - // ApiActivityMonitor.
|
| - void OnApiEventDispatched(
|
| - const std::string& extension_id,
|
| - const std::string& event_name,
|
| - std::unique_ptr<base::ListValue> event_args) override;
|
| - void OnApiFunctionCalled(
|
| - const std::string& extension_id,
|
| - const std::string& api_name,
|
| - std::unique_ptr<base::ListValue> event_args) override;
|
| -
|
| static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
|
|
|
| // Remove actions from the activity log database which IDs specified in the
|
| @@ -158,6 +151,14 @@ class ActivityLog : public BrowserContextKeyedAPI,
|
| void ChooseDatabasePolicy();
|
| void SetDatabasePolicy(ActivityLogPolicy::PolicyType policy_type);
|
|
|
| + // Checks the current |is_active_| state and modifies it if appropriate.
|
| + void CheckActive();
|
| +
|
| + // content::NotificationObserver:
|
| + void Observe(int type,
|
| + const content::NotificationSource& source,
|
| + const content::NotificationDetails& details) override;
|
| +
|
| // BrowserContextKeyedAPI implementation.
|
| static const char* service_name() { return "ActivityLog"; }
|
| static const bool kServiceRedirectedInIncognito = true;
|
| @@ -202,6 +203,11 @@ class ActivityLog : public BrowserContextKeyedAPI,
|
| // extension IDs, this needs to be an int to count how many are installed.
|
| int watchdog_apps_active_;
|
|
|
| + // True if the activity log is currently active.
|
| + bool is_active_;
|
| +
|
| + content::NotificationRegistrar registrar_;
|
| +
|
| FRIEND_TEST_ALL_PREFIXES(ActivityLogApiTest, TriggerEvent);
|
| FRIEND_TEST_ALL_PREFIXES(ActivityLogEnabledTest, AppAndCommandLine);
|
| FRIEND_TEST_ALL_PREFIXES(ActivityLogEnabledTest, CommandLineSwitch);
|
|
|