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

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

Issue 100164: extensions api: windows.removeWindow(), events: onWindowCreated, onWindowRemoved (Closed)
Patch Set: touch grd to avoid clobber build Created 11 years, 8 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/extension_browser_event_router.cc
diff --git a/chrome/browser/extensions/extension_browser_event_router.cc b/chrome/browser/extensions/extension_browser_event_router.cc
index cefef154b245a4954e905673a0564313bea3ac8a..c05e793a889fb1358302d9584255953f5447cdbb 100644
--- a/chrome/browser/extensions/extension_browser_event_router.cc
+++ b/chrome/browser/extensions/extension_browser_event_router.cc
@@ -13,6 +13,8 @@
#include "chrome/browser/extensions/extension_tabs_module.h"
#include "chrome/common/notification_service.h"
+const char* kOnWindowCreated = "window-created";
+const char* kOnWindowRemoved = "window-removed";
const char* kOnTabCreated = "tab-created";
const char* kOnTabMoved = "tab-moved";
const char* kOnTabSelectionChanged = "tab-selection-changed";
@@ -55,10 +57,12 @@ void ExtensionBrowserEventRouter::Observe(NotificationType type,
case(NotificationType::BROWSER_OPENED) :
browser = Source<Browser>(source).ptr();
browser->tabstrip_model()->AddObserver(this);
+ BrowserOpened(browser);
break;
case(NotificationType::BROWSER_CLOSED) :
browser = Source<Browser>(source).ptr();
browser->tabstrip_model()->RemoveObserver(this);
+ BrowserClosed(browser);
break;
default:
NOTREACHED();
@@ -66,6 +70,30 @@ void ExtensionBrowserEventRouter::Observe(NotificationType type,
}
}
+void ExtensionBrowserEventRouter::BrowserOpened(Browser* browser) {
+ int window_id = ExtensionTabUtil::GetWindowId(browser);
+
+ ListValue args;
+ args.Append(Value::CreateIntegerValue(window_id));
+
+ std::string json_args;
+ JSONWriter::Write(&args, false, &json_args);
+
+ DispatchEvent(browser->profile(), kOnWindowCreated, json_args);
+}
+
+void ExtensionBrowserEventRouter::BrowserClosed(Browser* browser) {
+ int window_id = ExtensionTabUtil::GetWindowId(browser);
+
+ ListValue args;
+ args.Append(Value::CreateIntegerValue(window_id));
+
+ std::string json_args;
+ JSONWriter::Write(&args, false, &json_args);
+
+ DispatchEvent(browser->profile(), kOnWindowRemoved, json_args);
+}
+
void ExtensionBrowserEventRouter::TabInsertedAt(TabContents* contents,
int index,
bool foreground) {
« no previous file with comments | « chrome/browser/extensions/extension_browser_event_router.h ('k') | chrome/browser/extensions/extension_function_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698