OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/browser/extensions/extension_function_registry.h" | |
6 | |
7 #include "chrome/browser/accessibility/accessibility_extension_api.h" | |
8 #include "chrome/browser/bookmarks/bookmark_extension_api.h" | |
9 #include "chrome/browser/bookmarks/bookmark_manager_extension_api.h" | |
10 #include "chrome/browser/download/download_extension_api.h" | |
11 #include "chrome/browser/extensions/api/app/app_api.h" | |
12 #include "chrome/browser/extensions/api/browsingdata/browsing_data_api.h" | |
13 #include "chrome/browser/extensions/api/declarative/declarative_api.h" | |
14 #include "chrome/browser/extensions/api/permissions/permissions_api.h" | |
15 #include "chrome/browser/extensions/api/serial/serial_api.h" | |
16 #include "chrome/browser/extensions/api/socket/socket_api.h" | |
17 #include "chrome/browser/extensions/api/webrequest/webrequest_api.h" | |
18 #include "chrome/browser/extensions/execute_code_in_tab_function.h" | |
19 #include "chrome/browser/extensions/extension_browser_actions_api.h" | |
20 #include "chrome/browser/extensions/extension_chrome_auth_private_api.h" | |
21 #include "chrome/browser/extensions/extension_content_settings_api.h" | |
22 #include "chrome/browser/extensions/extension_context_menu_api.h" | |
23 #include "chrome/browser/extensions/extension_cookies_api.h" | |
24 #include "chrome/browser/extensions/extension_debugger_api.h" | |
25 #include "chrome/browser/extensions/extension_font_settings_api.h" | |
26 #include "chrome/browser/extensions/extension_i18n_api.h" | |
27 #include "chrome/browser/extensions/extension_idle_api.h" | |
28 #include "chrome/browser/extensions/extension_managed_mode_api.h" | |
29 #include "chrome/browser/extensions/extension_management_api.h" | |
30 #include "chrome/browser/extensions/extension_metrics_module.h" | |
31 #include "chrome/browser/extensions/extension_module.h" | |
32 #include "chrome/browser/extensions/extension_omnibox_api.h" | |
33 #include "chrome/browser/extensions/extension_page_actions_module.h" | |
34 #include "chrome/browser/extensions/extension_page_capture_api.h" | |
35 #include "chrome/browser/extensions/extension_preference_api.h" | |
36 #include "chrome/browser/extensions/extension_processes_api.h" | |
37 #include "chrome/browser/extensions/extension_tabs_module.h" | |
38 #include "chrome/browser/extensions/extension_test_api.h" | |
39 #include "chrome/browser/extensions/extension_tts_api.h" | |
40 #include "chrome/browser/extensions/extension_tts_engine_api.h" | |
41 #include "chrome/browser/extensions/extension_web_socket_proxy_private_api.h" | |
42 #include "chrome/browser/extensions/extension_webnavigation_api.h" | |
43 #include "chrome/browser/extensions/extension_webstore_private_api.h" | |
44 #include "chrome/browser/extensions/settings/settings_api.h" | |
45 #include "chrome/browser/extensions/system/system_api.h" | |
46 #include "chrome/browser/history/history_extension_api.h" | |
47 #include "chrome/browser/history/top_sites_extension_api.h" | |
48 #include "chrome/browser/infobars/infobar_extension_api.h" | |
49 #include "chrome/browser/rlz/rlz_extension_api.h" | |
50 #include "chrome/browser/speech/speech_input_extension_api.h" | |
51 #include "chrome/common/extensions/api/generated_api.h" | |
52 | |
53 #if defined(TOOLKIT_VIEWS) | |
54 #include "chrome/browser/extensions/extension_input_api.h" | |
55 #endif | |
56 | |
57 #if defined(OS_CHROMEOS) && defined(USE_VIRTUAL_KEYBOARD) | |
58 #include "chrome/browser/extensions/extension_input_ui_api.h" | |
59 #endif | |
60 | |
61 #if defined(OS_CHROMEOS) | |
62 #include "chrome/browser/chromeos/extensions/file_browser_private_api.h" | |
63 #include "chrome/browser/chromeos/media/media_player_extension_api.h" | |
64 #include "chrome/browser/extensions/api/terminal/terminal_private_api.h" | |
65 #include "chrome/browser/extensions/extension_info_private_api_chromeos.h" | |
66 #include "chrome/browser/extensions/extension_input_ime_api.h" | |
67 #include "chrome/browser/extensions/extension_input_method_api.h" | |
68 #endif | |
69 | |
70 // static | |
71 ExtensionFunctionRegistry* ExtensionFunctionRegistry::GetInstance() { | |
72 return Singleton<ExtensionFunctionRegistry>::get(); | |
73 } | |
74 | |
75 ExtensionFunctionRegistry::ExtensionFunctionRegistry() { | |
76 ResetFunctions(); | |
77 } | |
78 | |
79 ExtensionFunctionRegistry::~ExtensionFunctionRegistry() { | |
80 } | |
81 | |
82 void ExtensionFunctionRegistry::ResetFunctions() { | |
83 // Register all functions here. | |
84 | |
85 // Windows | |
86 RegisterFunction<GetWindowFunction>(); | |
87 RegisterFunction<GetCurrentWindowFunction>(); | |
88 RegisterFunction<GetLastFocusedWindowFunction>(); | |
89 RegisterFunction<GetAllWindowsFunction>(); | |
90 RegisterFunction<CreateWindowFunction>(); | |
91 RegisterFunction<UpdateWindowFunction>(); | |
92 RegisterFunction<RemoveWindowFunction>(); | |
93 | |
94 // Tabs | |
95 RegisterFunction<GetTabFunction>(); | |
96 RegisterFunction<GetCurrentTabFunction>(); | |
97 RegisterFunction<GetSelectedTabFunction>(); | |
98 RegisterFunction<GetAllTabsInWindowFunction>(); | |
99 RegisterFunction<QueryTabsFunction>(); | |
100 RegisterFunction<HighlightTabsFunction>(); | |
101 RegisterFunction<CreateTabFunction>(); | |
102 RegisterFunction<UpdateTabFunction>(); | |
103 RegisterFunction<MoveTabsFunction>(); | |
104 RegisterFunction<ReloadTabFunction>(); | |
105 RegisterFunction<RemoveTabsFunction>(); | |
106 RegisterFunction<DetectTabLanguageFunction>(); | |
107 RegisterFunction<CaptureVisibleTabFunction>(); | |
108 RegisterFunction<TabsExecuteScriptFunction>(); | |
109 RegisterFunction<TabsInsertCSSFunction>(); | |
110 | |
111 // Page Actions. | |
112 RegisterFunction<EnablePageActionFunction>(); | |
113 RegisterFunction<DisablePageActionFunction>(); | |
114 RegisterFunction<PageActionShowFunction>(); | |
115 RegisterFunction<PageActionHideFunction>(); | |
116 RegisterFunction<PageActionSetIconFunction>(); | |
117 RegisterFunction<PageActionSetTitleFunction>(); | |
118 RegisterFunction<PageActionSetPopupFunction>(); | |
119 | |
120 // Browser Actions. | |
121 RegisterFunction<BrowserActionSetIconFunction>(); | |
122 RegisterFunction<BrowserActionSetTitleFunction>(); | |
123 RegisterFunction<BrowserActionSetBadgeTextFunction>(); | |
124 RegisterFunction<BrowserActionSetBadgeBackgroundColorFunction>(); | |
125 RegisterFunction<BrowserActionSetPopupFunction>(); | |
126 | |
127 // Browsing Data. | |
128 RegisterFunction<RemoveBrowsingDataFunction>(); | |
129 RegisterFunction<RemoveAppCacheFunction>(); | |
130 RegisterFunction<RemoveCacheFunction>(); | |
131 RegisterFunction<RemoveCookiesFunction>(); | |
132 RegisterFunction<RemoveDownloadsFunction>(); | |
133 RegisterFunction<RemoveFileSystemsFunction>(); | |
134 RegisterFunction<RemoveFormDataFunction>(); | |
135 RegisterFunction<RemoveHistoryFunction>(); | |
136 RegisterFunction<RemoveIndexedDBFunction>(); | |
137 RegisterFunction<RemoveLocalStorageFunction>(); | |
138 RegisterFunction<RemoveOriginBoundCertsFunction>(); | |
139 RegisterFunction<RemovePluginDataFunction>(); | |
140 RegisterFunction<RemovePasswordsFunction>(); | |
141 RegisterFunction<RemoveWebSQLFunction>(); | |
142 | |
143 // Bookmarks. | |
144 RegisterFunction<GetBookmarksFunction>(); | |
145 RegisterFunction<GetBookmarkChildrenFunction>(); | |
146 RegisterFunction<GetBookmarkRecentFunction>(); | |
147 RegisterFunction<GetBookmarkTreeFunction>(); | |
148 RegisterFunction<GetBookmarkSubTreeFunction>(); | |
149 RegisterFunction<SearchBookmarksFunction>(); | |
150 RegisterFunction<RemoveBookmarkFunction>(); | |
151 RegisterFunction<RemoveTreeBookmarkFunction>(); | |
152 RegisterFunction<CreateBookmarkFunction>(); | |
153 RegisterFunction<MoveBookmarkFunction>(); | |
154 RegisterFunction<UpdateBookmarkFunction>(); | |
155 | |
156 // Infobars. | |
157 RegisterFunction<ShowInfoBarFunction>(); | |
158 | |
159 // BookmarkManager | |
160 RegisterFunction<CopyBookmarkManagerFunction>(); | |
161 RegisterFunction<CutBookmarkManagerFunction>(); | |
162 RegisterFunction<PasteBookmarkManagerFunction>(); | |
163 RegisterFunction<CanPasteBookmarkManagerFunction>(); | |
164 RegisterFunction<ImportBookmarksFunction>(); | |
165 RegisterFunction<ExportBookmarksFunction>(); | |
166 RegisterFunction<SortChildrenBookmarkManagerFunction>(); | |
167 RegisterFunction<BookmarkManagerGetStringsFunction>(); | |
168 RegisterFunction<StartDragBookmarkManagerFunction>(); | |
169 RegisterFunction<DropBookmarkManagerFunction>(); | |
170 RegisterFunction<GetSubtreeBookmarkManagerFunction>(); | |
171 RegisterFunction<CanEditBookmarkManagerFunction>(); | |
172 | |
173 // History | |
174 RegisterFunction<AddUrlHistoryFunction>(); | |
175 RegisterFunction<DeleteAllHistoryFunction>(); | |
176 RegisterFunction<DeleteRangeHistoryFunction>(); | |
177 RegisterFunction<DeleteUrlHistoryFunction>(); | |
178 RegisterFunction<GetVisitsHistoryFunction>(); | |
179 RegisterFunction<SearchHistoryFunction>(); | |
180 | |
181 // Idle | |
182 RegisterFunction<ExtensionIdleQueryStateFunction>(); | |
183 | |
184 // I18N. | |
185 RegisterFunction<GetAcceptLanguagesFunction>(); | |
186 | |
187 // Processes. | |
188 RegisterFunction<GetProcessIdForTabFunction>(); | |
189 | |
190 // Metrics. | |
191 RegisterFunction<MetricsRecordUserActionFunction>(); | |
192 RegisterFunction<MetricsRecordValueFunction>(); | |
193 RegisterFunction<MetricsRecordPercentageFunction>(); | |
194 RegisterFunction<MetricsRecordCountFunction>(); | |
195 RegisterFunction<MetricsRecordSmallCountFunction>(); | |
196 RegisterFunction<MetricsRecordMediumCountFunction>(); | |
197 RegisterFunction<MetricsRecordTimeFunction>(); | |
198 RegisterFunction<MetricsRecordMediumTimeFunction>(); | |
199 RegisterFunction<MetricsRecordLongTimeFunction>(); | |
200 | |
201 // RLZ. | |
202 #if defined(OS_WIN) | |
203 RegisterFunction<RlzRecordProductEventFunction>(); | |
204 RegisterFunction<RlzGetAccessPointRlzFunction>(); | |
205 RegisterFunction<RlzSendFinancialPingFunction>(); | |
206 RegisterFunction<RlzClearProductStateFunction>(); | |
207 #endif | |
208 | |
209 // Cookies. | |
210 RegisterFunction<GetCookieFunction>(); | |
211 RegisterFunction<GetAllCookiesFunction>(); | |
212 RegisterFunction<SetCookieFunction>(); | |
213 RegisterFunction<RemoveCookieFunction>(); | |
214 RegisterFunction<GetAllCookieStoresFunction>(); | |
215 | |
216 // Test. | |
217 RegisterFunction<ExtensionTestPassFunction>(); | |
218 RegisterFunction<ExtensionTestFailFunction>(); | |
219 RegisterFunction<ExtensionTestLogFunction>(); | |
220 RegisterFunction<ExtensionTestQuotaResetFunction>(); | |
221 RegisterFunction<ExtensionTestCreateIncognitoTabFunction>(); | |
222 RegisterFunction<ExtensionTestSendMessageFunction>(); | |
223 RegisterFunction<ExtensionTestGetConfigFunction>(); | |
224 | |
225 // Accessibility. | |
226 RegisterFunction<GetFocusedControlFunction>(); | |
227 RegisterFunction<SetAccessibilityEnabledFunction>(); | |
228 RegisterFunction<GetAlertsForTabFunction>(); | |
229 | |
230 // Text-to-speech. | |
231 RegisterFunction<ExtensionTtsEngineSendTtsEventFunction>(); | |
232 RegisterFunction<ExtensionTtsGetVoicesFunction>(); | |
233 RegisterFunction<ExtensionTtsIsSpeakingFunction>(); | |
234 RegisterFunction<ExtensionTtsSpeakFunction>(); | |
235 RegisterFunction<ExtensionTtsStopSpeakingFunction>(); | |
236 | |
237 // Context Menus. | |
238 RegisterFunction<CreateContextMenuFunction>(); | |
239 RegisterFunction<UpdateContextMenuFunction>(); | |
240 RegisterFunction<RemoveContextMenuFunction>(); | |
241 RegisterFunction<RemoveAllContextMenusFunction>(); | |
242 | |
243 // Omnibox. | |
244 RegisterFunction<OmniboxSendSuggestionsFunction>(); | |
245 RegisterFunction<OmniboxSetDefaultSuggestionFunction>(); | |
246 | |
247 // Speech input. | |
248 RegisterFunction<StartSpeechInputFunction>(); | |
249 RegisterFunction<StopSpeechInputFunction>(); | |
250 RegisterFunction<IsRecordingSpeechInputFunction>(); | |
251 | |
252 #if defined(TOOLKIT_VIEWS) | |
253 // Input. | |
254 RegisterFunction<SendKeyboardEventInputFunction>(); | |
255 #endif | |
256 | |
257 #if defined(USE_VIRTUAL_KEYBOARD) | |
258 RegisterFunction<HideKeyboardFunction>(); | |
259 RegisterFunction<SetKeyboardHeightFunction>(); | |
260 #endif | |
261 | |
262 #if defined(OS_CHROMEOS) | |
263 // IME | |
264 RegisterFunction<SetCompositionFunction>(); | |
265 RegisterFunction<ClearCompositionFunction>(); | |
266 RegisterFunction<CommitTextFunction>(); | |
267 RegisterFunction<SetCandidateWindowPropertiesFunction>(); | |
268 RegisterFunction<SetCandidatesFunction>(); | |
269 RegisterFunction<SetCursorPositionFunction>(); | |
270 RegisterFunction<SetMenuItemsFunction>(); | |
271 RegisterFunction<UpdateMenuItemsFunction>(); | |
272 | |
273 RegisterFunction<InputEventHandled>(); | |
274 #if defined(USE_VIRTUAL_KEYBOARD) | |
275 RegisterFunction<CandidateClickedInputUiFunction>(); | |
276 RegisterFunction<CursorUpInputUiFunction>(); | |
277 RegisterFunction<CursorDownInputUiFunction>(); | |
278 RegisterFunction<PageUpInputUiFunction>(); | |
279 RegisterFunction<PageDownInputUiFunction>(); | |
280 RegisterFunction<RegisterInputUiFunction>(); | |
281 RegisterFunction<PageUpInputUiFunction>(); | |
282 RegisterFunction<PageDownInputUiFunction>(); | |
283 #endif | |
284 #endif | |
285 | |
286 // Managed mode. | |
287 RegisterFunction<GetManagedModeFunction>(); | |
288 RegisterFunction<EnterManagedModeFunction>(); | |
289 | |
290 // Management. | |
291 RegisterFunction<GetAllExtensionsFunction>(); | |
292 RegisterFunction<GetExtensionByIdFunction>(); | |
293 RegisterFunction<GetPermissionWarningsByIdFunction>(); | |
294 RegisterFunction<GetPermissionWarningsByManifestFunction>(); | |
295 RegisterFunction<LaunchAppFunction>(); | |
296 RegisterFunction<SetEnabledFunction>(); | |
297 RegisterFunction<UninstallFunction>(); | |
298 | |
299 // Extension module. | |
300 RegisterFunction<SetUpdateUrlDataFunction>(); | |
301 RegisterFunction<IsAllowedIncognitoAccessFunction>(); | |
302 RegisterFunction<IsAllowedFileSchemeAccessFunction>(); | |
303 | |
304 // WebstorePrivate. | |
305 RegisterFunction<GetBrowserLoginFunction>(); | |
306 RegisterFunction<GetStoreLoginFunction>(); | |
307 RegisterFunction<SetStoreLoginFunction>(); | |
308 RegisterFunction<InstallBundleFunction>(); | |
309 RegisterFunction<BeginInstallWithManifestFunction>(); | |
310 RegisterFunction<CompleteInstallFunction>(); | |
311 RegisterFunction<SilentlyInstallFunction>(); | |
312 RegisterFunction<GetWebGLStatusFunction>(); | |
313 | |
314 // WebNavigation. | |
315 RegisterFunction<GetFrameFunction>(); | |
316 RegisterFunction<GetAllFramesFunction>(); | |
317 | |
318 // WebRequest. | |
319 RegisterFunction<WebRequestAddEventListener>(); | |
320 RegisterFunction<WebRequestEventHandled>(); | |
321 RegisterFunction<WebRequestHandlerBehaviorChanged>(); | |
322 | |
323 // Preferences. | |
324 RegisterFunction<GetPreferenceFunction>(); | |
325 RegisterFunction<SetPreferenceFunction>(); | |
326 RegisterFunction<ClearPreferenceFunction>(); | |
327 | |
328 // ChromeOS-specific part of the API. | |
329 #if defined(OS_CHROMEOS) | |
330 // Device Customization. | |
331 RegisterFunction<GetChromeosInfoFunction>(); | |
332 | |
333 // FileBrowserPrivate functions. | |
334 // TODO(jamescook): Expose these on non-ChromeOS platforms so we can use | |
335 // the extension-based file picker on Aura. crbug.com/97424 | |
336 RegisterFunction<CancelFileDialogFunction>(); | |
337 RegisterFunction<ExecuteTasksFileBrowserFunction>(); | |
338 RegisterFunction<FileDialogStringsFunction>(); | |
339 RegisterFunction<GetFileTasksFileBrowserFunction>(); | |
340 RegisterFunction<GetVolumeMetadataFunction>(); | |
341 RegisterFunction<RequestLocalFileSystemFunction>(); | |
342 RegisterFunction<AddFileWatchBrowserFunction>(); | |
343 RegisterFunction<RemoveFileWatchBrowserFunction>(); | |
344 RegisterFunction<SelectFileFunction>(); | |
345 RegisterFunction<SelectFilesFunction>(); | |
346 RegisterFunction<AddMountFunction>(); | |
347 RegisterFunction<RemoveMountFunction>(); | |
348 RegisterFunction<GetMountPointsFunction>(); | |
349 RegisterFunction<GetSizeStatsFunction>(); | |
350 RegisterFunction<FormatDeviceFunction>(); | |
351 RegisterFunction<ViewFilesFunction>(); | |
352 RegisterFunction<ToggleFullscreenFunction>(); | |
353 RegisterFunction<IsFullscreenFunction>(); | |
354 RegisterFunction<GetGDataFilePropertiesFunction>(); | |
355 RegisterFunction<PinGDataFileFunction>(); | |
356 RegisterFunction<GetFileLocationsFunction>(); | |
357 RegisterFunction<GetGDataFilesFunction>(); | |
358 | |
359 // Mediaplayer | |
360 RegisterFunction<PlayMediaplayerFunction>(); | |
361 RegisterFunction<GetPlaylistMediaplayerFunction>(); | |
362 RegisterFunction<SetWindowHeightMediaplayerFunction>(); | |
363 RegisterFunction<CloseWindowMediaplayerFunction>(); | |
364 | |
365 // InputMethod | |
366 RegisterFunction<GetInputMethodFunction>(); | |
367 | |
368 // Terminal | |
369 RegisterFunction<OpenTerminalProcessFunction>(); | |
370 RegisterFunction<SendInputToTerminalProcessFunction>(); | |
371 RegisterFunction<CloseTerminalProcessFunction>(); | |
372 RegisterFunction<OnTerminalResizeFunction>(); | |
373 | |
374 #if defined(USE_VIRTUAL_KEYBOARD) | |
375 // Input | |
376 RegisterFunction<SendHandwritingStrokeFunction>(); | |
377 RegisterFunction<CancelHandwritingStrokesFunction>(); | |
378 #endif | |
379 #endif | |
380 | |
381 // Websocket to TCP proxy. Currently noop on anything other than ChromeOS. | |
382 RegisterFunction<WebSocketProxyPrivateGetPassportForTCPFunction>(); | |
383 RegisterFunction<WebSocketProxyPrivateGetURLForTCPFunction>(); | |
384 | |
385 // Debugger | |
386 RegisterFunction<AttachDebuggerFunction>(); | |
387 RegisterFunction<DetachDebuggerFunction>(); | |
388 RegisterFunction<SendCommandDebuggerFunction>(); | |
389 | |
390 // Settings | |
391 RegisterFunction<extensions::GetSettingsFunction>(); | |
392 RegisterFunction<extensions::SetSettingsFunction>(); | |
393 RegisterFunction<extensions::RemoveSettingsFunction>(); | |
394 RegisterFunction<extensions::ClearSettingsFunction>(); | |
395 RegisterFunction<extensions::GetBytesInUseSettingsFunction>(); | |
396 | |
397 // Content settings. | |
398 RegisterFunction<GetResourceIdentifiersFunction>(); | |
399 RegisterFunction<ClearContentSettingsFunction>(); | |
400 RegisterFunction<GetContentSettingFunction>(); | |
401 RegisterFunction<SetContentSettingFunction>(); | |
402 | |
403 // Font settings. | |
404 RegisterFunction<GetFontListFunction>(); | |
405 RegisterFunction<GetFontNameFunction>(); | |
406 RegisterFunction<SetFontNameFunction>(); | |
407 | |
408 // ChromeAuth settings. | |
409 RegisterFunction<SetCloudPrintCredentialsFunction>(); | |
410 | |
411 // Experimental App API. | |
412 RegisterFunction<AppNotifyFunction>(); | |
413 RegisterFunction<AppClearAllNotificationsFunction>(); | |
414 | |
415 // Permissions | |
416 RegisterFunction<ContainsPermissionsFunction>(); | |
417 RegisterFunction<GetAllPermissionsFunction>(); | |
418 RegisterFunction<RemovePermissionsFunction>(); | |
419 RegisterFunction<RequestPermissionsFunction>(); | |
420 | |
421 // Downloads | |
422 RegisterFunction<DownloadsDownloadFunction>(); | |
423 RegisterFunction<DownloadsSearchFunction>(); | |
424 RegisterFunction<DownloadsPauseFunction>(); | |
425 RegisterFunction<DownloadsResumeFunction>(); | |
426 RegisterFunction<DownloadsCancelFunction>(); | |
427 RegisterFunction<DownloadsEraseFunction>(); | |
428 RegisterFunction<DownloadsSetDestinationFunction>(); | |
429 RegisterFunction<DownloadsAcceptDangerFunction>(); | |
430 RegisterFunction<DownloadsShowFunction>(); | |
431 RegisterFunction<DownloadsDragFunction>(); | |
432 RegisterFunction<DownloadsGetFileIconFunction>(); | |
433 | |
434 // PageCapture | |
435 RegisterFunction<PageCaptureSaveAsMHTMLFunction>(); | |
436 | |
437 // TopSites | |
438 RegisterFunction<GetTopSitesFunction>(); | |
439 | |
440 // Serial | |
441 RegisterFunction<extensions::SerialOpenFunction>(); | |
442 RegisterFunction<extensions::SerialCloseFunction>(); | |
443 RegisterFunction<extensions::SerialReadFunction>(); | |
444 RegisterFunction<extensions::SerialWriteFunction>(); | |
445 | |
446 // Sockets | |
447 RegisterFunction<extensions::SocketCreateFunction>(); | |
448 RegisterFunction<extensions::SocketDestroyFunction>(); | |
449 RegisterFunction<extensions::SocketConnectFunction>(); | |
450 RegisterFunction<extensions::SocketDisconnectFunction>(); | |
451 RegisterFunction<extensions::SocketReadFunction>(); | |
452 RegisterFunction<extensions::SocketWriteFunction>(); | |
453 | |
454 // System | |
455 RegisterFunction<extensions::GetIncognitoModeAvailabilityFunction>(); | |
456 RegisterFunction<extensions::GetUpdateStatusFunction>(); | |
457 | |
458 // Net | |
459 RegisterFunction<extensions::AddRulesFunction>(); | |
460 RegisterFunction<extensions::RemoveRulesFunction>(); | |
461 RegisterFunction<extensions::GetRulesFunction>(); | |
462 | |
463 // Generated APIs | |
464 extensions::api::GeneratedFunctionRegistry::RegisterAll(this); | |
465 } | |
466 | |
467 void ExtensionFunctionRegistry::GetAllNames(std::vector<std::string>* names) { | |
468 for (FactoryMap::iterator iter = factories_.begin(); | |
469 iter != factories_.end(); ++iter) { | |
470 names->push_back(iter->first); | |
471 } | |
472 } | |
473 | |
474 bool ExtensionFunctionRegistry::OverrideFunction( | |
475 const std::string& name, | |
476 ExtensionFunctionFactory factory) { | |
477 FactoryMap::iterator iter = factories_.find(name); | |
478 if (iter == factories_.end()) { | |
479 return false; | |
480 } else { | |
481 iter->second = factory; | |
482 return true; | |
483 } | |
484 } | |
485 | |
486 ExtensionFunction* ExtensionFunctionRegistry::NewFunction( | |
487 const std::string& name) { | |
488 FactoryMap::iterator iter = factories_.find(name); | |
489 DCHECK(iter != factories_.end()); | |
490 ExtensionFunction* function = iter->second(); | |
491 function->set_name(name); | |
492 return function; | |
493 } | |
OLD | NEW |