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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_function_dispatcher.h" 5 #include "chrome/browser/extensions/extension_function_dispatcher.h"
6 6
7 #include "base/process_util.h" 7 #include "base/process_util.h"
8 #include "base/singleton.h" 8 #include "base/singleton.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/extensions/execute_code_in_tab_function.h" 10 #include "chrome/browser/extensions/execute_code_in_tab_function.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 53
54 // Allows overriding of specific functions (e.g. for testing). Functions 54 // Allows overriding of specific functions (e.g. for testing). Functions
55 // must be previously registered. Returns true if successful. 55 // must be previously registered. Returns true if successful.
56 bool OverrideFunction(const std::string& name, 56 bool OverrideFunction(const std::string& name,
57 ExtensionFunctionFactory factory); 57 ExtensionFunctionFactory factory);
58 58
59 // Factory method for the ExtensionFunction registered as 'name'. 59 // Factory method for the ExtensionFunction registered as 'name'.
60 ExtensionFunction* NewFunction(const std::string& name); 60 ExtensionFunction* NewFunction(const std::string& name);
61 61
62 private: 62 private:
63 template<class T>
64 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.
65 factories_[T::function_name()] = &NewExtensionFunction<T>;
66 }
67
63 typedef std::map<std::string, ExtensionFunctionFactory> FactoryMap; 68 typedef std::map<std::string, ExtensionFunctionFactory> FactoryMap;
64 FactoryMap factories_; 69 FactoryMap factories_;
65 }; 70 };
66 71
67 FactoryRegistry* FactoryRegistry::instance() { 72 FactoryRegistry* FactoryRegistry::instance() {
68 return Singleton<FactoryRegistry>::get(); 73 return Singleton<FactoryRegistry>::get();
69 } 74 }
70 75
71 void FactoryRegistry::ResetFunctions() { 76 void FactoryRegistry::ResetFunctions() {
72 // Register all functions here. 77 // Register all functions here.
73 78
74 namespace bookmarks = extension_bookmarks_module_constants;
75 namespace i18n = extension_i18n_api_functions;
76 namespace page_actions = extension_page_actions_module_constants;
77 namespace browser_actions = extension_browser_actions_api_constants;
78 namespace tabs = extension_tabs_module_constants;
79 namespace test = extension_test_api_functions;
80 namespace toolstrip = extension_toolstrip_api_functions;
81
82 // Windows 79 // Windows
83 factories_[tabs::kGetWindowFunction] = 80 AddFactory<GetWindowFunction>();
84 &NewExtensionFunction<GetWindowFunction>; 81 AddFactory<GetCurrentWindowFunction>();
85 factories_[tabs::kGetCurrentWindowFunction] = 82 AddFactory<GetLastFocusedWindowFunction>();
86 &NewExtensionFunction<GetCurrentWindowFunction>; 83 AddFactory<GetAllWindowsFunction>();
87 factories_[tabs::kGetLastFocusedWindowFunction] = 84 AddFactory<CreateWindowFunction>();
88 &NewExtensionFunction<GetLastFocusedWindowFunction>; 85 AddFactory<UpdateWindowFunction>();
89 factories_[tabs::kGetAllWindowsFunction] = 86 AddFactory<RemoveWindowFunction>();
90 &NewExtensionFunction<GetAllWindowsFunction>;
91 factories_[tabs::kCreateWindowFunction] =
92 &NewExtensionFunction<CreateWindowFunction>;
93 factories_[tabs::kUpdateWindowFunction] =
94 &NewExtensionFunction<UpdateWindowFunction>;
95 factories_[tabs::kRemoveWindowFunction] =
96 &NewExtensionFunction<RemoveWindowFunction>;
97 87
98 // Tabs 88 // Tabs
99 factories_[tabs::kGetTabFunction] = 89 AddFactory<GetTabFunction>();
100 &NewExtensionFunction<GetTabFunction>; 90 AddFactory<GetSelectedTabFunction>();
101 factories_[tabs::kGetSelectedTabFunction] = 91 AddFactory<GetAllTabsInWindowFunction>();
102 &NewExtensionFunction<GetSelectedTabFunction>; 92 AddFactory<CreateTabFunction>();
103 factories_[tabs::kGetAllTabsInWindowFunction] = 93 AddFactory<UpdateTabFunction>();
104 &NewExtensionFunction<GetAllTabsInWindowFunction>; 94 AddFactory<MoveTabFunction>();
105 factories_[tabs::kCreateTabFunction] = 95 AddFactory<RemoveTabFunction>();
106 &NewExtensionFunction<CreateTabFunction>; 96 AddFactory<DetectTabLanguageFunction>();
107 factories_[tabs::kUpdateTabFunction] = 97 AddFactory<CaptureVisibleTabFunction>();
108 &NewExtensionFunction<UpdateTabFunction>; 98 AddFactory<TabsExecuteScriptFunction>();
109 factories_[tabs::kMoveTabFunction] = 99 AddFactory<TabsInsertCSSFunction>();
110 &NewExtensionFunction<MoveTabFunction>;
111 factories_[tabs::kRemoveTabFunction] =
112 &NewExtensionFunction<RemoveTabFunction>;
113 factories_[tabs::kDetectTabLanguageFunction] =
114 &NewExtensionFunction<DetectTabLanguageFunction>;
115 factories_[tabs::kCaptureVisibleTabFunction] =
116 &NewExtensionFunction<CaptureVisibleTabFunction>;
117 factories_[tabs::kExecuteScriptFunction] =
118 &NewExtensionFunction<ExecuteCodeInTabFunction>;
119 factories_[tabs::kInsertCSSFunction] =
120 &NewExtensionFunction<ExecuteCodeInTabFunction>;
121 100
122 // Page Actions. 101 // Page Actions.
123 factories_[page_actions::kEnablePageActionFunction] = 102 AddFactory<EnablePageActionFunction>();
124 &NewExtensionFunction<EnablePageActionFunction>; 103 AddFactory<DisablePageActionFunction>();
125 factories_[page_actions::kDisablePageActionFunction] =
126 &NewExtensionFunction<DisablePageActionFunction>;
127 104
128 // Browser Actions. 105 // Browser Actions.
129 factories_[browser_actions::kSetNameFunction] = 106 AddFactory<BrowserActionSetNameFunction>();
130 &NewExtensionFunction<BrowserActionSetNameFunction>; 107 AddFactory<BrowserActionSetIconFunction>();
131 factories_[browser_actions::kSetIconFunction] = 108 AddFactory<BrowserActionSetBadgeTextFunction>();
132 &NewExtensionFunction<BrowserActionSetIconFunction>; 109 AddFactory<BrowserActionSetBadgeBackgroundColorFunction>();
133 factories_[browser_actions::kSetBadgeTextFunction] =
134 &NewExtensionFunction<BrowserActionSetBadgeTextFunction>;
135 factories_[browser_actions::kSetBadgeBackgroundColorFunction] =
136 &NewExtensionFunction<BrowserActionSetBadgeBackgroundColorFunction>;
137 110
138 // Bookmarks. 111 // Bookmarks.
139 factories_[bookmarks::kGetBookmarksFunction] = 112 AddFactory<GetBookmarksFunction>();
140 &NewExtensionFunction<GetBookmarksFunction>; 113 AddFactory<GetBookmarkChildrenFunction>();
141 factories_[bookmarks::kGetBookmarkChildrenFunction] = 114 AddFactory<GetBookmarkTreeFunction>();
142 &NewExtensionFunction<GetBookmarkChildrenFunction>; 115 AddFactory<SearchBookmarksFunction>();
143 factories_[bookmarks::kGetBookmarkTreeFunction] = 116 AddFactory<RemoveBookmarkFunction>();
144 &NewExtensionFunction<GetBookmarkTreeFunction>; 117 AddFactory<RemoveTreeBookmarkFunction>();
145 factories_[bookmarks::kSearchBookmarksFunction] = 118 AddFactory<CreateBookmarkFunction>();
146 &NewExtensionFunction<SearchBookmarksFunction>; 119 AddFactory<MoveBookmarkFunction>();
147 factories_[bookmarks::kRemoveBookmarkFunction] = 120 AddFactory<UpdateBookmarkFunction>();
148 &NewExtensionFunction<RemoveBookmarkFunction>;
149 factories_[bookmarks::kRemoveBookmarkTreeFunction] =
150 &NewExtensionFunction<RemoveBookmarkFunction>;
151 factories_[bookmarks::kCreateBookmarkFunction] =
152 &NewExtensionFunction<CreateBookmarkFunction>;
153 factories_[bookmarks::kMoveBookmarkFunction] =
154 &NewExtensionFunction<MoveBookmarkFunction>;
155 factories_[bookmarks::kUpdateBookmarkFunction] =
156 &NewExtensionFunction<UpdateBookmarkFunction>;
157 121
158 // Toolstrips. 122 // Toolstrips.
159 factories_[toolstrip::kExpandFunction] = 123 AddFactory<ToolstripExpandFunction>();
160 &NewExtensionFunction<ToolstripExpandFunction>; 124 AddFactory<ToolstripCollapseFunction>();
161 factories_[toolstrip::kCollapseFunction] =
162 &NewExtensionFunction<ToolstripCollapseFunction>;
163 125
164 // I18N. 126 // I18N.
165 factories_[i18n::kGetAcceptLanguagesFunction] = 127 AddFactory<GetAcceptLanguagesFunction>();
166 &NewExtensionFunction<GetAcceptLanguagesFunction>;
167 128
168 // Test. 129 // Test.
169 factories_[test::kPassFunction] = 130 AddFactory<ExtensionTestPassFunction>();
170 &NewExtensionFunction<ExtensionTestPassFunction>; 131 AddFactory<ExtensionTestFailFunction>();
171 factories_[test::kFailFunction] = 132 AddFactory<ExtensionTestLogFunction>();
172 &NewExtensionFunction<ExtensionTestFailFunction>;
173 factories_[test::kLogFunction] =
174 &NewExtensionFunction<ExtensionTestLogFunction>;
175 } 133 }
176 134
177 void FactoryRegistry::GetAllNames(std::vector<std::string>* names) { 135 void FactoryRegistry::GetAllNames(std::vector<std::string>* names) {
178 for (FactoryMap::iterator iter = factories_.begin(); 136 for (FactoryMap::iterator iter = factories_.begin();
179 iter != factories_.end(); ++iter) { 137 iter != factories_.end(); ++iter) {
180 names->push_back(iter->first); 138 names->push_back(iter->first);
181 } 139 }
182 } 140 }
183 141
184 bool FactoryRegistry::OverrideFunction(const std::string& name, 142 bool FactoryRegistry::OverrideFunction(const std::string& name,
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 } else { 265 } else {
308 NOTREACHED(); 266 NOTREACHED();
309 base::KillProcess(render_view_host_->process()->process().handle(), 267 base::KillProcess(render_view_host_->process()->process().handle(),
310 ResultCodes::KILLED_BAD_MESSAGE, false); 268 ResultCodes::KILLED_BAD_MESSAGE, false);
311 } 269 }
312 } 270 }
313 271
314 Profile* ExtensionFunctionDispatcher::profile() { 272 Profile* ExtensionFunctionDispatcher::profile() {
315 return render_view_host_->process()->profile(); 273 return render_view_host_->process()->profile();
316 } 274 }
OLDNEW
« 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