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

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

Issue 274059: Small cleanup to extension function registration to avoid scattered definitions. (Closed)
Patch Set: Created 11 years, 2 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
« no previous file with comments | « chrome/browser/extensions/extension_function.h ('k') | chrome/browser/extensions/extension_i18n_api.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_function_dispatcher.cc
diff --git a/chrome/browser/extensions/extension_function_dispatcher.cc b/chrome/browser/extensions/extension_function_dispatcher.cc
index d17e575c261bc87db60b3884ea0a9cc195b7b89e..5bdd54eb8214363f24c32ae076ce81e13b7a5af0 100644
--- a/chrome/browser/extensions/extension_function_dispatcher.cc
+++ b/chrome/browser/extensions/extension_function_dispatcher.cc
@@ -60,6 +60,11 @@ class FactoryRegistry {
ExtensionFunction* NewFunction(const std::string& name);
private:
+ template<class T>
+ void AddFactory() {
Aaron Boodman 2009/10/14 22:16:29 Nit: I think a better name for this method would b
Matt Perry 2009/10/14 22:19:21 Done.
+ factories_[T::function_name()] = &NewExtensionFunction<T>;
+ }
+
typedef std::map<std::string, ExtensionFunctionFactory> FactoryMap;
FactoryMap factories_;
};
@@ -71,107 +76,60 @@ FactoryRegistry* FactoryRegistry::instance() {
void FactoryRegistry::ResetFunctions() {
// Register all functions here.
- namespace bookmarks = extension_bookmarks_module_constants;
- namespace i18n = extension_i18n_api_functions;
- namespace page_actions = extension_page_actions_module_constants;
- namespace browser_actions = extension_browser_actions_api_constants;
- namespace tabs = extension_tabs_module_constants;
- namespace test = extension_test_api_functions;
- namespace toolstrip = extension_toolstrip_api_functions;
-
// Windows
- factories_[tabs::kGetWindowFunction] =
- &NewExtensionFunction<GetWindowFunction>;
- factories_[tabs::kGetCurrentWindowFunction] =
- &NewExtensionFunction<GetCurrentWindowFunction>;
- factories_[tabs::kGetLastFocusedWindowFunction] =
- &NewExtensionFunction<GetLastFocusedWindowFunction>;
- factories_[tabs::kGetAllWindowsFunction] =
- &NewExtensionFunction<GetAllWindowsFunction>;
- factories_[tabs::kCreateWindowFunction] =
- &NewExtensionFunction<CreateWindowFunction>;
- factories_[tabs::kUpdateWindowFunction] =
- &NewExtensionFunction<UpdateWindowFunction>;
- factories_[tabs::kRemoveWindowFunction] =
- &NewExtensionFunction<RemoveWindowFunction>;
+ AddFactory<GetWindowFunction>();
+ AddFactory<GetCurrentWindowFunction>();
+ AddFactory<GetLastFocusedWindowFunction>();
+ AddFactory<GetAllWindowsFunction>();
+ AddFactory<CreateWindowFunction>();
+ AddFactory<UpdateWindowFunction>();
+ AddFactory<RemoveWindowFunction>();
// Tabs
- factories_[tabs::kGetTabFunction] =
- &NewExtensionFunction<GetTabFunction>;
- factories_[tabs::kGetSelectedTabFunction] =
- &NewExtensionFunction<GetSelectedTabFunction>;
- factories_[tabs::kGetAllTabsInWindowFunction] =
- &NewExtensionFunction<GetAllTabsInWindowFunction>;
- factories_[tabs::kCreateTabFunction] =
- &NewExtensionFunction<CreateTabFunction>;
- factories_[tabs::kUpdateTabFunction] =
- &NewExtensionFunction<UpdateTabFunction>;
- factories_[tabs::kMoveTabFunction] =
- &NewExtensionFunction<MoveTabFunction>;
- factories_[tabs::kRemoveTabFunction] =
- &NewExtensionFunction<RemoveTabFunction>;
- factories_[tabs::kDetectTabLanguageFunction] =
- &NewExtensionFunction<DetectTabLanguageFunction>;
- factories_[tabs::kCaptureVisibleTabFunction] =
- &NewExtensionFunction<CaptureVisibleTabFunction>;
- factories_[tabs::kExecuteScriptFunction] =
- &NewExtensionFunction<ExecuteCodeInTabFunction>;
- factories_[tabs::kInsertCSSFunction] =
- &NewExtensionFunction<ExecuteCodeInTabFunction>;
+ AddFactory<GetTabFunction>();
+ AddFactory<GetSelectedTabFunction>();
+ AddFactory<GetAllTabsInWindowFunction>();
+ AddFactory<CreateTabFunction>();
+ AddFactory<UpdateTabFunction>();
+ AddFactory<MoveTabFunction>();
+ AddFactory<RemoveTabFunction>();
+ AddFactory<DetectTabLanguageFunction>();
+ AddFactory<CaptureVisibleTabFunction>();
+ AddFactory<TabsExecuteScriptFunction>();
+ AddFactory<TabsInsertCSSFunction>();
// Page Actions.
- factories_[page_actions::kEnablePageActionFunction] =
- &NewExtensionFunction<EnablePageActionFunction>;
- factories_[page_actions::kDisablePageActionFunction] =
- &NewExtensionFunction<DisablePageActionFunction>;
+ AddFactory<EnablePageActionFunction>();
+ AddFactory<DisablePageActionFunction>();
// Browser Actions.
- factories_[browser_actions::kSetNameFunction] =
- &NewExtensionFunction<BrowserActionSetNameFunction>;
- factories_[browser_actions::kSetIconFunction] =
- &NewExtensionFunction<BrowserActionSetIconFunction>;
- factories_[browser_actions::kSetBadgeTextFunction] =
- &NewExtensionFunction<BrowserActionSetBadgeTextFunction>;
- factories_[browser_actions::kSetBadgeBackgroundColorFunction] =
- &NewExtensionFunction<BrowserActionSetBadgeBackgroundColorFunction>;
+ AddFactory<BrowserActionSetNameFunction>();
+ AddFactory<BrowserActionSetIconFunction>();
+ AddFactory<BrowserActionSetBadgeTextFunction>();
+ AddFactory<BrowserActionSetBadgeBackgroundColorFunction>();
// Bookmarks.
- factories_[bookmarks::kGetBookmarksFunction] =
- &NewExtensionFunction<GetBookmarksFunction>;
- factories_[bookmarks::kGetBookmarkChildrenFunction] =
- &NewExtensionFunction<GetBookmarkChildrenFunction>;
- factories_[bookmarks::kGetBookmarkTreeFunction] =
- &NewExtensionFunction<GetBookmarkTreeFunction>;
- factories_[bookmarks::kSearchBookmarksFunction] =
- &NewExtensionFunction<SearchBookmarksFunction>;
- factories_[bookmarks::kRemoveBookmarkFunction] =
- &NewExtensionFunction<RemoveBookmarkFunction>;
- factories_[bookmarks::kRemoveBookmarkTreeFunction] =
- &NewExtensionFunction<RemoveBookmarkFunction>;
- factories_[bookmarks::kCreateBookmarkFunction] =
- &NewExtensionFunction<CreateBookmarkFunction>;
- factories_[bookmarks::kMoveBookmarkFunction] =
- &NewExtensionFunction<MoveBookmarkFunction>;
- factories_[bookmarks::kUpdateBookmarkFunction] =
- &NewExtensionFunction<UpdateBookmarkFunction>;
+ AddFactory<GetBookmarksFunction>();
+ AddFactory<GetBookmarkChildrenFunction>();
+ AddFactory<GetBookmarkTreeFunction>();
+ AddFactory<SearchBookmarksFunction>();
+ AddFactory<RemoveBookmarkFunction>();
+ AddFactory<RemoveTreeBookmarkFunction>();
+ AddFactory<CreateBookmarkFunction>();
+ AddFactory<MoveBookmarkFunction>();
+ AddFactory<UpdateBookmarkFunction>();
// Toolstrips.
- factories_[toolstrip::kExpandFunction] =
- &NewExtensionFunction<ToolstripExpandFunction>;
- factories_[toolstrip::kCollapseFunction] =
- &NewExtensionFunction<ToolstripCollapseFunction>;
+ AddFactory<ToolstripExpandFunction>();
+ AddFactory<ToolstripCollapseFunction>();
// I18N.
- factories_[i18n::kGetAcceptLanguagesFunction] =
- &NewExtensionFunction<GetAcceptLanguagesFunction>;
+ AddFactory<GetAcceptLanguagesFunction>();
// Test.
- factories_[test::kPassFunction] =
- &NewExtensionFunction<ExtensionTestPassFunction>;
- factories_[test::kFailFunction] =
- &NewExtensionFunction<ExtensionTestFailFunction>;
- factories_[test::kLogFunction] =
- &NewExtensionFunction<ExtensionTestLogFunction>;
+ AddFactory<ExtensionTestPassFunction>();
+ AddFactory<ExtensionTestFailFunction>();
+ AddFactory<ExtensionTestLogFunction>();
}
void FactoryRegistry::GetAllNames(std::vector<std::string>* names) {
« no previous file with comments | « chrome/browser/extensions/extension_function.h ('k') | chrome/browser/extensions/extension_i18n_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698