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

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

Issue 10829186: Tabs API is usable without tabs permission. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: fixed sample extensions Created 8 years, 4 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/browser_event_router.cc
diff --git a/chrome/browser/extensions/browser_event_router.cc b/chrome/browser/extensions/browser_event_router.cc
index 83347cbb9acf9f55ff020429fed77b14604b7692..66a55629ccf17f0a14965e5e77cb1b0a30a8e9cf 100644
--- a/chrome/browser/extensions/browser_event_router.cc
+++ b/chrome/browser/extensions/browser_event_router.cc
@@ -389,13 +389,29 @@ void BrowserEventRouter::DispatchEventWithTab(
return;
scoped_ptr<ListValue> args(new ListValue());
- args->Append(ExtensionTabUtil::CreateTabValueActive(
- web_contents, active));
if (!extension_id.empty()) {
+ args->Append(ExtensionTabUtil::CreateTabValueActive(
+ web_contents,
+ active,
+ profile->GetExtensionService()->extensions()->GetByID(extension_id)));
DispatchEventToExtension(profile, extension_id, event_name, args.Pass(),
user_gesture);
} else {
- DispatchEvent(profile, event_name, args.Pass(), user_gesture);
+ EventListenerMap::ListenerList listeners(
+ ExtensionSystem::Get(profile)->event_router()->
+ listeners().listeners(event_name));
Aaron Boodman 2012/08/30 05:45:48 The second 'listeners' should be GetListenersByNam
chebert 2012/08/30 23:17:20 Done.
+
+ for (EventListenerMap::ListenerList::iterator it = listeners.begin();
+ it != listeners.end();
+ ++it) {
+ args->Append(ExtensionTabUtil::CreateTabValueActive(
+ web_contents,
+ active,
+ profile->GetExtensionService()->extensions()->GetByID(
+ (*it)->extension_id)));
+ DispatchEventToExtension(profile, (*it)->extension_id, event_name,
+ args.Pass(), user_gesture);
+ }
}
}
@@ -427,9 +443,9 @@ void BrowserEventRouter::DispatchTabUpdatedEvent(
args->Append(changed_properties);
// Third arg: An object containing the state of the tab.
- args->Append(ExtensionTabUtil::CreateTabValue(contents));
-
Profile* profile = Profile::FromBrowserContext(contents->GetBrowserContext());
+ args->Append(ExtensionTabUtil::CreateTabValue(contents, NULL /*extension*/));
Aaron Boodman 2012/08/30 05:45:48 Why no extension here? I think that CreateTabValu
chebert 2012/08/30 23:17:20 Done.
+
DispatchEvent(profile, events::kOnTabUpdated, args.Pass(),
EventRouter::USER_GESTURE_UNKNOWN);
}

Powered by Google App Engine
This is Rietveld 408576698