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

Unified Diff: chrome/browser/extensions/activity_log/activity_log.cc

Issue 155183002: Add ApiActivityMonitor to decouple ActivityLog from low-level extensions code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase3 (activity_log) Created 6 years, 10 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: chrome/browser/extensions/activity_log/activity_log.cc
diff --git a/chrome/browser/extensions/activity_log/activity_log.cc b/chrome/browser/extensions/activity_log/activity_log.cc
index 50a007d6479da4d2f5afc5a73a4c33c6dbec3d55..b0cd4c2d75882aee15ce0a4615a9d14930ab4205 100644
--- a/chrome/browser/extensions/activity_log/activity_log.cc
+++ b/chrome/browser/extensions/activity_log/activity_log.cc
@@ -20,18 +20,22 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system_factory.h"
#include "chrome/browser/extensions/extension_tab_util.h"
+#include "chrome/browser/extensions/install_tracker.h"
#include "chrome/browser/extensions/install_tracker_factory.h"
#include "chrome/browser/prefs/pref_service_syncable.h"
#include "chrome/browser/prerender/prerender_manager.h"
#include "chrome/browser/prerender/prerender_manager_factory.h"
#include "chrome/browser/profiles/incognito_helpers.h"
+#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
+#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_system.h"
+#include "extensions/browser/extensions_browser_client.h"
#include "extensions/common/extension.h"
#include "third_party/re2/re2/re2.h"
#include "url/gurl.h"
@@ -46,6 +50,7 @@ namespace {
using extensions::Action;
using constants::kArgUrlPlaceholder;
+using content::BrowserThread;
// If DOM API methods start with this string, we flag them as being of type
// DomActionType::XHR.
@@ -393,10 +398,6 @@ ActivityLog::ActivityLog(Profile* profile)
FROM_HERE,
base::Bind(&ActivityLog::InitInstallTracker, base::Unretained(this)));
- EventRouter* event_router = ExtensionSystem::Get(profile_)->event_router();
- if (event_router)
- event_router->SetEventDispatchObserver(this);
-
// None of this should run on Android since the AL is behind ENABLE_EXTENSION
// checks. However, UmaPolicy can't even compile on Android because it uses
// BrowserList and related classes that aren't compiled for Android.
@@ -617,12 +618,27 @@ void ActivityLog::OnScriptsExecuted(
}
}
-void ActivityLog::OnWillDispatchEvent(scoped_ptr<EventDispatchInfo> details) {
- scoped_refptr<Action> action = new Action(details->extension_id,
+void ActivityLog::OnApiEventDispatched(const std::string& extension_id,
+ const std::string& event_name,
+ scoped_ptr<base::ListValue> event_args) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ scoped_refptr<Action> action = new Action(extension_id,
base::Time::Now(),
Action::ACTION_API_EVENT,
- details->event_name);
- action->set_args(details->event_args.Pass());
+ event_name);
+ action->set_args(event_args.Pass());
+ LogAction(action);
+}
+
+void ActivityLog::OnApiFunctionCalled(const std::string& extension_id,
+ const std::string& api_name,
+ scoped_ptr<base::ListValue> args) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ scoped_refptr<Action> action = new Action(extension_id,
+ base::Time::Now(),
+ Action::ACTION_API_CALL,
+ api_name);
+ action->set_args(args.Pass());
LogAction(action);
}

Powered by Google App Engine
This is Rietveld 408576698