summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/script_badge_controller.cc
diff options
context:
space:
mode:
authorericdingle@chromium.org <ericdingle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-27 16:30:20 +0000
committerericdingle@chromium.org <ericdingle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-27 16:30:20 +0000
commitd5b528c5a418faaf40c5f1a33de4b829b95dba62 (patch)
treef35d804da4af4b0211f102e60d59f2e0e4e8bc6a /chrome/browser/extensions/script_badge_controller.cc
parentadbc18d00e892b6afce23472f42aca7f31a7f6e7 (diff)
downloadchromium_src-d5b528c5a418faaf40c5f1a33de4b829b95dba62.zip
chromium_src-d5b528c5a418faaf40c5f1a33de4b829b95dba62.tar.gz
chromium_src-d5b528c5a418faaf40c5f1a33de4b829b95dba62.tar.bz2
Add content script activity to the extension activity log.
BUG=39802 Review URL: https://chromiumcodereview.appspot.com/10905245 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159040 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/script_badge_controller.cc')
-rw-r--r--chrome/browser/extensions/script_badge_controller.cc93
1 files changed, 45 insertions, 48 deletions
diff --git a/chrome/browser/extensions/script_badge_controller.cc b/chrome/browser/extensions/script_badge_controller.cc
index ff18157..427e119 100644
--- a/chrome/browser/extensions/script_badge_controller.cc
+++ b/chrome/browser/extensions/script_badge_controller.cc
@@ -30,8 +30,10 @@
namespace extensions {
ScriptBadgeController::ScriptBadgeController(content::WebContents* web_contents,
- ScriptExecutor* script_executor)
+ ScriptExecutor* script_executor,
+ TabHelper* tab_helper)
: ScriptExecutor::Observer(script_executor),
+ TabHelper::ContentScriptObserver(tab_helper),
content::WebContentsObserver(web_contents) {
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
@@ -136,6 +138,48 @@ void ScriptBadgeController::OnExecuteScriptFinished(
}
}
+namespace {
+std::string JoinExtensionIDs(const ExecutingScriptsMap& ids) {
+ std::vector<std::string> as_vector;
+ for (ExecutingScriptsMap::const_iterator iter = ids.begin();
+ iter != ids.end(); ++iter) {
+ as_vector.push_back(iter->first);
+ }
+ return "[" + JoinString(as_vector, ',') + "]";
+}
+} // namespace
+
+void ScriptBadgeController::OnContentScriptsExecuting(
+ const content::WebContents* web_contents,
+ const ExecutingScriptsMap& extension_ids,
+ int32 on_page_id,
+ const GURL& on_url) {
+ int32 current_page_id = GetPageID();
+ if (on_page_id != current_page_id)
+ return;
+
+ if (current_page_id < 0) {
+ // Tracking down http://crbug.com/138323.
+ std::string message = base::StringPrintf(
+ "Expected a page ID of %d but there was no navigation entry. "
+ "Extension IDs are %s.",
+ on_page_id,
+ JoinExtensionIDs(extension_ids).c_str());
+ char buf[1024];
+ base::snprintf(buf, arraysize(buf), "%s", message.c_str());
+ LOG(ERROR) << message;
+ return;
+ }
+
+ bool changed = false;
+ for (ExecutingScriptsMap::const_iterator it = extension_ids.begin();
+ it != extension_ids.end(); ++it) {
+ changed |= MarkExtensionExecuting(it->first);
+ }
+ if (changed)
+ NotifyChange();
+}
+
ExtensionService* ScriptBadgeController::GetExtensionService() {
TabContents* tab_contents = TabContents::FromWebContents(web_contents());
return extensions::ExtensionSystem::Get(
@@ -176,53 +220,6 @@ void ScriptBadgeController::Observe(
NotifyChange();
}
-bool ScriptBadgeController::OnMessageReceived(const IPC::Message& message) {
- bool handled = true;
- IPC_BEGIN_MESSAGE_MAP(ScriptBadgeController, message)
- IPC_MESSAGE_HANDLER(ExtensionHostMsg_ContentScriptsExecuting,
- OnContentScriptsExecuting)
- IPC_MESSAGE_UNHANDLED(handled = false)
- IPC_END_MESSAGE_MAP()
- return handled;
-}
-
-namespace {
-std::string JoinExtensionIDs(const std::set<std::string>& ids) {
- std::vector<std::string> as_vector(ids.begin(), ids.end());
- return "[" + JoinString(as_vector, ',') + "]";
-}
-} // namespace
-
-void ScriptBadgeController::OnContentScriptsExecuting(
- const std::set<std::string>& extension_ids,
- int32 on_page_id,
- const GURL& on_url) {
- int32 current_page_id = GetPageID();
- if (on_page_id != current_page_id)
- return;
-
- if (current_page_id < 0) {
- // Tracking down http://crbug.com/138323.
- std::string message = base::StringPrintf(
- "Expected a page ID of %d but there was no navigation entry. "
- "Extension IDs are %s.",
- on_page_id,
- JoinExtensionIDs(extension_ids).c_str());
- char buf[1024];
- base::snprintf(buf, arraysize(buf), "%s", message.c_str());
- LOG(ERROR) << message;
- return;
- }
-
- bool changed = false;
- for (std::set<std::string>::const_iterator it = extension_ids.begin();
- it != extension_ids.end(); ++it) {
- changed |= MarkExtensionExecuting(*it);
- }
- if (changed)
- NotifyChange();
-}
-
ExtensionAction* ScriptBadgeController::AddExtensionToCurrentActions(
const std::string& extension_id) {
if (!extensions_in_current_actions_.insert(extension_id).second)