summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions/user_script_slave.cc
diff options
context:
space:
mode:
authorataly@chromium.org <ataly@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-08 01:57:52 +0000
committerataly@chromium.org <ataly@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-08 01:57:52 +0000
commitb6e7b54226523d7804cdebef0e95fc4f0d42eebd (patch)
treec2cf1a335d6abe7b94a668dee8a6095e91495a2a /chrome/renderer/extensions/user_script_slave.cc
parenta3f6a9ebb275ab5cf148bdcd08420fb0926a0357 (diff)
downloadchromium_src-b6e7b54226523d7804cdebef0e95fc4f0d42eebd.zip
chromium_src-b6e7b54226523d7804cdebef0e95fc4f0d42eebd.tar.gz
chromium_src-b6e7b54226523d7804cdebef0e95fc4f0d42eebd.tar.bz2
Attaching a DOM Activity Logger to all extension scripts
Adds a mechanism for attaching (using the WebKit API) a DOMActivityLogger to each world that is executing extension scripts. (This would include the main world in the case of an extension background page.) A logger is only attached if extension activity logging is enabled and if there does not already exist a logger attached to the world. Each logger object has a log method that marshalls it's arguments and sends them over to the extension activity log on the browser side. A HashMap in WebCore owns the logger objects. Currently the loggers are not invoked, a later WebCore patch will appropriately configure the DOM bindings for each world so that they invoke the corresponding logger object on every access. BUG=160987, 160989 TBR=brettw@chromium.org Review URL: https://chromiumcodereview.appspot.com/12390076 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186845 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions/user_script_slave.cc')
-rw-r--r--chrome/renderer/extensions/user_script_slave.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/user_script_slave.cc b/chrome/renderer/extensions/user_script_slave.cc
index ad0ce86..a75fc62 100644
--- a/chrome/renderer/extensions/user_script_slave.cc
+++ b/chrome/renderer/extensions/user_script_slave.cc
@@ -19,6 +19,7 @@
#include "chrome/common/extensions/extension_set.h"
#include "chrome/common/url_constants.h"
#include "chrome/renderer/chrome_render_process_observer.h"
+#include "chrome/renderer/extensions/dom_activity_logger.h"
#include "chrome/renderer/extensions/extension_groups.h"
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/render_view.h"
@@ -333,6 +334,11 @@ void UserScriptSlave::InjectScripts(WebFrame* frame,
isolated_world_id = GetIsolatedWorldIdForExtension(extension, frame);
PerfTimer exec_timer;
+ DOMActivityLogger::AttachToWorld(
+ isolated_world_id,
+ extension->id(),
+ UserScriptSlave::GetDataSourceURLForFrame(frame),
+ frame->document().title());
frame->executeScriptInIsolatedWorld(
isolated_world_id, &sources.front(), sources.size(),
EXTENSION_GROUP_CONTENT_SCRIPTS);