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

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

Issue 9716003: Extract ExtensionFunctionRegistry from ExtensionFunctionDispatcher. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nits; fix Windows build (thanks Brad Nelson!). Created 8 years, 9 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_function_dispatcher.cc
diff --git a/chrome/browser/extensions/extension_function_dispatcher.cc b/chrome/browser/extensions/extension_function_dispatcher.cc
index 7d04788345ced7eb334f0db04fdbebced4b4e3c8..d1344becf344f5931d24b16a6385dba8aaf0f853 100644
--- a/chrome/browser/extensions/extension_function_dispatcher.cc
+++ b/chrome/browser/extensions/extension_function_dispatcher.cc
@@ -8,64 +8,19 @@
#include "base/json/json_string_value_serializer.h"
#include "base/memory/ref_counted.h"
-#include "base/memory/singleton.h"
#include "base/process_util.h"
#include "base/values.h"
#include "build/build_config.h"
-#include "chrome/browser/accessibility/accessibility_extension_api.h"
-#include "chrome/browser/bookmarks/bookmark_extension_api.h"
-#include "chrome/browser/bookmarks/bookmark_manager_extension_api.h"
-#include "chrome/browser/download/download_extension_api.h"
-#include "chrome/browser/extensions/api/app/app_api.h"
-#include "chrome/browser/extensions/api/browsing_data/browsing_data_api.h"
-#include "chrome/browser/extensions/api/declarative/declarative_api.h"
-#include "chrome/browser/extensions/api/dns/dns_api.h"
-#include "chrome/browser/extensions/api/extension_action/extension_browser_actions_api.h"
-#include "chrome/browser/extensions/api/extension_action/extension_page_actions_api.h"
-#include "chrome/browser/extensions/api/permissions/permissions_api.h"
-#include "chrome/browser/extensions/api/serial/serial_api.h"
-#include "chrome/browser/extensions/api/socket/socket_api.h"
-#include "chrome/browser/extensions/api/web_request/web_request_api.h"
-#include "chrome/browser/extensions/execute_code_in_tab_function.h"
#include "chrome/browser/extensions/extension_activity_log.h"
-#include "chrome/browser/extensions/extension_chrome_auth_private_api.h"
-#include "chrome/browser/extensions/extension_content_settings_api.h"
-#include "chrome/browser/extensions/extension_context_menu_api.h"
-#include "chrome/browser/extensions/extension_cookies_api.h"
-#include "chrome/browser/extensions/extension_debugger_api.h"
-#include "chrome/browser/extensions/extension_font_settings_api.h"
#include "chrome/browser/extensions/extension_function.h"
-#include "chrome/browser/extensions/extension_i18n_api.h"
-#include "chrome/browser/extensions/extension_idle_api.h"
-#include "chrome/browser/extensions/extension_managed_mode_api.h"
-#include "chrome/browser/extensions/extension_management_api.h"
-#include "chrome/browser/extensions/extension_metrics_module.h"
-#include "chrome/browser/extensions/extension_module.h"
-#include "chrome/browser/extensions/extension_omnibox_api.h"
-#include "chrome/browser/extensions/extension_page_capture_api.h"
-#include "chrome/browser/extensions/extension_preference_api.h"
-#include "chrome/browser/extensions/extension_processes_api.h"
+#include "chrome/browser/extensions/extension_function_registry.h"
#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_tabs_module.h"
-#include "chrome/browser/extensions/extension_test_api.h"
-#include "chrome/browser/extensions/extension_tts_api.h"
-#include "chrome/browser/extensions/extension_tts_engine_api.h"
-#include "chrome/browser/extensions/extension_web_socket_proxy_private_api.h"
#include "chrome/browser/extensions/extension_web_ui.h"
-#include "chrome/browser/extensions/extension_webnavigation_api.h"
-#include "chrome/browser/extensions/extension_webstore_private_api.h"
#include "chrome/browser/extensions/extensions_quota_service.h"
#include "chrome/browser/extensions/process_map.h"
-#include "chrome/browser/extensions/settings/settings_api.h"
-#include "chrome/browser/extensions/system/system_api.h"
#include "chrome/browser/external_protocol/external_protocol_handler.h"
-#include "chrome/browser/history/history_extension_api.h"
-#include "chrome/browser/history/top_sites_extension_api.h"
-#include "chrome/browser/infobars/infobar_extension_api.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/renderer_host/chrome_render_message_filter.h"
-#include "chrome/browser/rlz/rlz_extension_api.h"
-#include "chrome/browser/speech/speech_input_extension_api.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/common/extensions/api/extension_api.h"
@@ -78,490 +33,12 @@
#include "ipc/ipc_message_macros.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
#include "third_party/skia/include/core/SkBitmap.h"
-
-#if defined(TOOLKIT_VIEWS)
-#include "chrome/browser/extensions/extension_input_api.h"
-#endif
-
-#if defined(OS_CHROMEOS) && defined(USE_VIRTUAL_KEYBOARD)
-#include "chrome/browser/extensions/extension_input_ui_api.h"
-#endif
-
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/extensions/file_browser_private_api.h"
-#include "chrome/browser/chromeos/media/media_player_extension_api.h"
-#include "chrome/browser/extensions/api/terminal/terminal_private_api.h"
-#include "chrome/browser/extensions/extension_info_private_api_chromeos.h"
-#include "chrome/browser/extensions/extension_input_ime_api.h"
-#include "chrome/browser/extensions/extension_input_method_api.h"
-#endif
+#include "webkit/glue/resource_type.h"
using extensions::ExtensionAPI;
using content::RenderViewHost;
using WebKit::WebSecurityOrigin;
-// FactoryRegistry -------------------------------------------------------------
-
-namespace {
-
-// Template for defining ExtensionFunctionFactory.
-template<class T>
-ExtensionFunction* NewExtensionFunction() {
- return new T();
-}
-
-// Contains a list of all known extension functions and allows clients to
-// create instances of them.
-class FactoryRegistry {
- public:
- static FactoryRegistry* GetInstance();
- FactoryRegistry() { ResetFunctions(); }
-
- // Resets all functions to their default values.
- void ResetFunctions();
-
- // Adds all function names to 'names'.
- void GetAllNames(std::vector<std::string>* names);
-
- // Allows overriding of specific functions (e.g. for testing). Functions
- // must be previously registered. Returns true if successful.
- bool OverrideFunction(const std::string& name,
- ExtensionFunctionFactory factory);
-
- // Factory method for the ExtensionFunction registered as 'name'.
- ExtensionFunction* NewFunction(const std::string& name);
-
- private:
- template<class T>
- void RegisterFunction() {
- factories_[T::function_name()] = &NewExtensionFunction<T>;
- }
-
- typedef std::map<std::string, ExtensionFunctionFactory> FactoryMap;
- FactoryMap factories_;
-};
-
-FactoryRegistry* FactoryRegistry::GetInstance() {
- return Singleton<FactoryRegistry>::get();
-}
-
-void FactoryRegistry::ResetFunctions() {
- // Register all functions here.
-
- // Windows
- RegisterFunction<GetWindowFunction>();
- RegisterFunction<GetCurrentWindowFunction>();
- RegisterFunction<GetLastFocusedWindowFunction>();
- RegisterFunction<GetAllWindowsFunction>();
- RegisterFunction<CreateWindowFunction>();
- RegisterFunction<UpdateWindowFunction>();
- RegisterFunction<RemoveWindowFunction>();
-
- // Tabs
- RegisterFunction<GetTabFunction>();
- RegisterFunction<GetCurrentTabFunction>();
- RegisterFunction<GetSelectedTabFunction>();
- RegisterFunction<GetAllTabsInWindowFunction>();
- RegisterFunction<QueryTabsFunction>();
- RegisterFunction<HighlightTabsFunction>();
- RegisterFunction<CreateTabFunction>();
- RegisterFunction<UpdateTabFunction>();
- RegisterFunction<MoveTabsFunction>();
- RegisterFunction<ReloadTabFunction>();
- RegisterFunction<RemoveTabsFunction>();
- RegisterFunction<DetectTabLanguageFunction>();
- RegisterFunction<CaptureVisibleTabFunction>();
- RegisterFunction<TabsExecuteScriptFunction>();
- RegisterFunction<TabsInsertCSSFunction>();
-
- // Page Actions.
- RegisterFunction<EnablePageActionFunction>();
- RegisterFunction<DisablePageActionFunction>();
- RegisterFunction<PageActionShowFunction>();
- RegisterFunction<PageActionHideFunction>();
- RegisterFunction<PageActionSetIconFunction>();
- RegisterFunction<PageActionSetTitleFunction>();
- RegisterFunction<PageActionSetPopupFunction>();
- RegisterFunction<PageActionGetTitleFunction>();
- RegisterFunction<PageActionGetPopupFunction>();
-
- // Browser Actions.
- RegisterFunction<BrowserActionSetIconFunction>();
- RegisterFunction<BrowserActionSetTitleFunction>();
- RegisterFunction<BrowserActionSetBadgeTextFunction>();
- RegisterFunction<BrowserActionSetBadgeBackgroundColorFunction>();
- RegisterFunction<BrowserActionSetPopupFunction>();
- RegisterFunction<BrowserActionGetTitleFunction>();
- RegisterFunction<BrowserActionGetBadgeTextFunction>();
- RegisterFunction<BrowserActionGetBadgeBackgroundColorFunction>();
- RegisterFunction<BrowserActionGetPopupFunction>();
-
- // Browsing Data.
- RegisterFunction<RemoveBrowsingDataFunction>();
- RegisterFunction<RemoveAppCacheFunction>();
- RegisterFunction<RemoveCacheFunction>();
- RegisterFunction<RemoveCookiesFunction>();
- RegisterFunction<RemoveDownloadsFunction>();
- RegisterFunction<RemoveFileSystemsFunction>();
- RegisterFunction<RemoveFormDataFunction>();
- RegisterFunction<RemoveHistoryFunction>();
- RegisterFunction<RemoveIndexedDBFunction>();
- RegisterFunction<RemoveLocalStorageFunction>();
- RegisterFunction<RemoveOriginBoundCertsFunction>();
- RegisterFunction<RemovePluginDataFunction>();
- RegisterFunction<RemovePasswordsFunction>();
- RegisterFunction<RemoveWebSQLFunction>();
-
- // Bookmarks.
- RegisterFunction<GetBookmarksFunction>();
- RegisterFunction<GetBookmarkChildrenFunction>();
- RegisterFunction<GetBookmarkRecentFunction>();
- RegisterFunction<GetBookmarkTreeFunction>();
- RegisterFunction<GetBookmarkSubTreeFunction>();
- RegisterFunction<SearchBookmarksFunction>();
- RegisterFunction<RemoveBookmarkFunction>();
- RegisterFunction<RemoveTreeBookmarkFunction>();
- RegisterFunction<CreateBookmarkFunction>();
- RegisterFunction<MoveBookmarkFunction>();
- RegisterFunction<UpdateBookmarkFunction>();
-
- // Infobars.
- RegisterFunction<ShowInfoBarFunction>();
-
- // BookmarkManager
- RegisterFunction<CopyBookmarkManagerFunction>();
- RegisterFunction<CutBookmarkManagerFunction>();
- RegisterFunction<PasteBookmarkManagerFunction>();
- RegisterFunction<CanPasteBookmarkManagerFunction>();
- RegisterFunction<ImportBookmarksFunction>();
- RegisterFunction<ExportBookmarksFunction>();
- RegisterFunction<SortChildrenBookmarkManagerFunction>();
- RegisterFunction<BookmarkManagerGetStringsFunction>();
- RegisterFunction<StartDragBookmarkManagerFunction>();
- RegisterFunction<DropBookmarkManagerFunction>();
- RegisterFunction<GetSubtreeBookmarkManagerFunction>();
- RegisterFunction<CanEditBookmarkManagerFunction>();
-
- // History
- RegisterFunction<AddUrlHistoryFunction>();
- RegisterFunction<DeleteAllHistoryFunction>();
- RegisterFunction<DeleteRangeHistoryFunction>();
- RegisterFunction<DeleteUrlHistoryFunction>();
- RegisterFunction<GetVisitsHistoryFunction>();
- RegisterFunction<SearchHistoryFunction>();
-
- // Idle
- RegisterFunction<ExtensionIdleQueryStateFunction>();
-
- // I18N.
- RegisterFunction<GetAcceptLanguagesFunction>();
-
- // Processes.
- RegisterFunction<GetProcessIdForTabFunction>();
-
- // Metrics.
- RegisterFunction<MetricsRecordUserActionFunction>();
- RegisterFunction<MetricsRecordValueFunction>();
- RegisterFunction<MetricsRecordPercentageFunction>();
- RegisterFunction<MetricsRecordCountFunction>();
- RegisterFunction<MetricsRecordSmallCountFunction>();
- RegisterFunction<MetricsRecordMediumCountFunction>();
- RegisterFunction<MetricsRecordTimeFunction>();
- RegisterFunction<MetricsRecordMediumTimeFunction>();
- RegisterFunction<MetricsRecordLongTimeFunction>();
-
- // RLZ.
-#if defined(OS_WIN)
- RegisterFunction<RlzRecordProductEventFunction>();
- RegisterFunction<RlzGetAccessPointRlzFunction>();
- RegisterFunction<RlzSendFinancialPingFunction>();
- RegisterFunction<RlzClearProductStateFunction>();
-#endif
-
- // Cookies.
- RegisterFunction<GetCookieFunction>();
- RegisterFunction<GetAllCookiesFunction>();
- RegisterFunction<SetCookieFunction>();
- RegisterFunction<RemoveCookieFunction>();
- RegisterFunction<GetAllCookieStoresFunction>();
-
- // Test.
- RegisterFunction<ExtensionTestPassFunction>();
- RegisterFunction<ExtensionTestFailFunction>();
- RegisterFunction<ExtensionTestLogFunction>();
- RegisterFunction<ExtensionTestQuotaResetFunction>();
- RegisterFunction<ExtensionTestCreateIncognitoTabFunction>();
- RegisterFunction<ExtensionTestSendMessageFunction>();
- RegisterFunction<ExtensionTestGetConfigFunction>();
-
- // Accessibility.
- RegisterFunction<GetFocusedControlFunction>();
- RegisterFunction<SetAccessibilityEnabledFunction>();
- RegisterFunction<GetAlertsForTabFunction>();
-
- // Text-to-speech.
- RegisterFunction<ExtensionTtsEngineSendTtsEventFunction>();
- RegisterFunction<ExtensionTtsGetVoicesFunction>();
- RegisterFunction<ExtensionTtsIsSpeakingFunction>();
- RegisterFunction<ExtensionTtsSpeakFunction>();
- RegisterFunction<ExtensionTtsStopSpeakingFunction>();
-
- // Context Menus.
- RegisterFunction<CreateContextMenuFunction>();
- RegisterFunction<UpdateContextMenuFunction>();
- RegisterFunction<RemoveContextMenuFunction>();
- RegisterFunction<RemoveAllContextMenusFunction>();
-
- // Omnibox.
- RegisterFunction<OmniboxSendSuggestionsFunction>();
- RegisterFunction<OmniboxSetDefaultSuggestionFunction>();
-
- // Speech input.
- RegisterFunction<StartSpeechInputFunction>();
- RegisterFunction<StopSpeechInputFunction>();
- RegisterFunction<IsRecordingSpeechInputFunction>();
-
-#if defined(TOOLKIT_VIEWS)
- // Input.
- RegisterFunction<SendKeyboardEventInputFunction>();
-#endif
-
-#if defined(USE_VIRTUAL_KEYBOARD)
- RegisterFunction<HideKeyboardFunction>();
- RegisterFunction<SetKeyboardHeightFunction>();
-#endif
-
-#if defined(OS_CHROMEOS)
- // IME
- RegisterFunction<SetCompositionFunction>();
- RegisterFunction<ClearCompositionFunction>();
- RegisterFunction<CommitTextFunction>();
- RegisterFunction<SetCandidateWindowPropertiesFunction>();
- RegisterFunction<SetCandidatesFunction>();
- RegisterFunction<SetCursorPositionFunction>();
- RegisterFunction<SetMenuItemsFunction>();
- RegisterFunction<UpdateMenuItemsFunction>();
-
- RegisterFunction<InputEventHandled>();
-#if defined(USE_VIRTUAL_KEYBOARD)
- RegisterFunction<CandidateClickedInputUiFunction>();
- RegisterFunction<CursorUpInputUiFunction>();
- RegisterFunction<CursorDownInputUiFunction>();
- RegisterFunction<PageUpInputUiFunction>();
- RegisterFunction<PageDownInputUiFunction>();
- RegisterFunction<RegisterInputUiFunction>();
- RegisterFunction<PageUpInputUiFunction>();
- RegisterFunction<PageDownInputUiFunction>();
-#endif
-#endif
-
- // Managed mode.
- RegisterFunction<GetManagedModeFunction>();
- RegisterFunction<EnterManagedModeFunction>();
-
- // Management.
- RegisterFunction<GetAllExtensionsFunction>();
- RegisterFunction<GetExtensionByIdFunction>();
- RegisterFunction<GetPermissionWarningsByIdFunction>();
- RegisterFunction<GetPermissionWarningsByManifestFunction>();
- RegisterFunction<LaunchAppFunction>();
- RegisterFunction<SetEnabledFunction>();
- RegisterFunction<UninstallFunction>();
-
- // Extension module.
- RegisterFunction<SetUpdateUrlDataFunction>();
- RegisterFunction<IsAllowedIncognitoAccessFunction>();
- RegisterFunction<IsAllowedFileSchemeAccessFunction>();
-
- // WebstorePrivate.
- RegisterFunction<GetBrowserLoginFunction>();
- RegisterFunction<GetStoreLoginFunction>();
- RegisterFunction<SetStoreLoginFunction>();
- RegisterFunction<InstallBundleFunction>();
- RegisterFunction<BeginInstallWithManifestFunction>();
- RegisterFunction<CompleteInstallFunction>();
- RegisterFunction<SilentlyInstallFunction>();
- RegisterFunction<GetWebGLStatusFunction>();
-
- // WebNavigation.
- RegisterFunction<GetFrameFunction>();
- RegisterFunction<GetAllFramesFunction>();
-
- // WebRequest.
- RegisterFunction<WebRequestAddEventListener>();
- RegisterFunction<WebRequestEventHandled>();
- RegisterFunction<WebRequestHandlerBehaviorChanged>();
-
- // Preferences.
- RegisterFunction<GetPreferenceFunction>();
- RegisterFunction<SetPreferenceFunction>();
- RegisterFunction<ClearPreferenceFunction>();
-
- // ChromeOS-specific part of the API.
-#if defined(OS_CHROMEOS)
- // Device Customization.
- RegisterFunction<GetChromeosInfoFunction>();
-
- // FileBrowserPrivate functions.
- // TODO(jamescook): Expose these on non-ChromeOS platforms so we can use
- // the extension-based file picker on Aura. crbug.com/97424
- RegisterFunction<CancelFileDialogFunction>();
- RegisterFunction<ExecuteTasksFileBrowserFunction>();
- RegisterFunction<FileDialogStringsFunction>();
- RegisterFunction<GetFileTasksFileBrowserFunction>();
- RegisterFunction<GetVolumeMetadataFunction>();
- RegisterFunction<RequestLocalFileSystemFunction>();
- RegisterFunction<AddFileWatchBrowserFunction>();
- RegisterFunction<RemoveFileWatchBrowserFunction>();
- RegisterFunction<SelectFileFunction>();
- RegisterFunction<SelectFilesFunction>();
- RegisterFunction<AddMountFunction>();
- RegisterFunction<RemoveMountFunction>();
- RegisterFunction<GetMountPointsFunction>();
- RegisterFunction<GetSizeStatsFunction>();
- RegisterFunction<FormatDeviceFunction>();
- RegisterFunction<ViewFilesFunction>();
- RegisterFunction<ToggleFullscreenFunction>();
- RegisterFunction<IsFullscreenFunction>();
- RegisterFunction<GetGDataFilePropertiesFunction>();
- RegisterFunction<PinGDataFileFunction>();
- RegisterFunction<GetFileLocationsFunction>();
- RegisterFunction<GetGDataFilesFunction>();
-
- // Mediaplayer
- RegisterFunction<PlayMediaplayerFunction>();
- RegisterFunction<GetPlaylistMediaplayerFunction>();
- RegisterFunction<SetWindowHeightMediaplayerFunction>();
- RegisterFunction<CloseWindowMediaplayerFunction>();
-
- // InputMethod
- RegisterFunction<GetInputMethodFunction>();
-
- // Terminal
- RegisterFunction<OpenTerminalProcessFunction>();
- RegisterFunction<SendInputToTerminalProcessFunction>();
- RegisterFunction<CloseTerminalProcessFunction>();
- RegisterFunction<OnTerminalResizeFunction>();
-
-#if defined(USE_VIRTUAL_KEYBOARD)
- // Input
- RegisterFunction<SendHandwritingStrokeFunction>();
- RegisterFunction<CancelHandwritingStrokesFunction>();
-#endif
-#endif
-
- // Websocket to TCP proxy. Currently noop on anything other than ChromeOS.
- RegisterFunction<WebSocketProxyPrivateGetPassportForTCPFunction>();
- RegisterFunction<WebSocketProxyPrivateGetURLForTCPFunction>();
-
- // Debugger
- RegisterFunction<AttachDebuggerFunction>();
- RegisterFunction<DetachDebuggerFunction>();
- RegisterFunction<SendCommandDebuggerFunction>();
-
- // Settings
- RegisterFunction<extensions::GetSettingsFunction>();
- RegisterFunction<extensions::SetSettingsFunction>();
- RegisterFunction<extensions::RemoveSettingsFunction>();
- RegisterFunction<extensions::ClearSettingsFunction>();
- RegisterFunction<extensions::GetBytesInUseSettingsFunction>();
-
- // Content settings.
- RegisterFunction<GetResourceIdentifiersFunction>();
- RegisterFunction<ClearContentSettingsFunction>();
- RegisterFunction<GetContentSettingFunction>();
- RegisterFunction<SetContentSettingFunction>();
-
- // Font settings.
- RegisterFunction<GetFontListFunction>();
- RegisterFunction<GetFontNameFunction>();
- RegisterFunction<SetFontNameFunction>();
-
- // ChromeAuth settings.
- RegisterFunction<SetCloudPrintCredentialsFunction>();
-
- // Experimental App API.
- RegisterFunction<AppNotifyFunction>();
- RegisterFunction<AppClearAllNotificationsFunction>();
-
- // Permissions
- RegisterFunction<ContainsPermissionsFunction>();
- RegisterFunction<GetAllPermissionsFunction>();
- RegisterFunction<RemovePermissionsFunction>();
- RegisterFunction<RequestPermissionsFunction>();
-
- // Downloads
- RegisterFunction<DownloadsDownloadFunction>();
- RegisterFunction<DownloadsSearchFunction>();
- RegisterFunction<DownloadsPauseFunction>();
- RegisterFunction<DownloadsResumeFunction>();
- RegisterFunction<DownloadsCancelFunction>();
- RegisterFunction<DownloadsEraseFunction>();
- RegisterFunction<DownloadsSetDestinationFunction>();
- RegisterFunction<DownloadsAcceptDangerFunction>();
- RegisterFunction<DownloadsShowFunction>();
- RegisterFunction<DownloadsDragFunction>();
- RegisterFunction<DownloadsGetFileIconFunction>();
-
- // PageCapture
- RegisterFunction<PageCaptureSaveAsMHTMLFunction>();
-
- // TopSites
- RegisterFunction<GetTopSitesFunction>();
-
- // Serial
- RegisterFunction<extensions::SerialOpenFunction>();
- RegisterFunction<extensions::SerialCloseFunction>();
- RegisterFunction<extensions::SerialReadFunction>();
- RegisterFunction<extensions::SerialWriteFunction>();
-
- // Sockets
- RegisterFunction<extensions::SocketCreateFunction>();
- RegisterFunction<extensions::SocketDestroyFunction>();
- RegisterFunction<extensions::SocketConnectFunction>();
- RegisterFunction<extensions::SocketDisconnectFunction>();
- RegisterFunction<extensions::SocketReadFunction>();
- RegisterFunction<extensions::SocketWriteFunction>();
-
- // DNS
- RegisterFunction<extensions::DNSResolveFunction>();
-
- // System
- RegisterFunction<extensions::GetIncognitoModeAvailabilityFunction>();
- RegisterFunction<extensions::GetUpdateStatusFunction>();
-
- // Net
- RegisterFunction<extensions::AddRulesFunction>();
- RegisterFunction<extensions::RemoveRulesFunction>();
- RegisterFunction<extensions::GetRulesFunction>();
-}
-
-void FactoryRegistry::GetAllNames(std::vector<std::string>* names) {
- for (FactoryMap::iterator iter = factories_.begin();
- iter != factories_.end(); ++iter) {
- names->push_back(iter->first);
- }
-}
-
-bool FactoryRegistry::OverrideFunction(const std::string& name,
- ExtensionFunctionFactory factory) {
- FactoryMap::iterator iter = factories_.find(name);
- if (iter == factories_.end()) {
- return false;
- } else {
- iter->second = factory;
- return true;
- }
-}
-
-ExtensionFunction* FactoryRegistry::NewFunction(const std::string& name) {
- FactoryMap::iterator iter = factories_.find(name);
- DCHECK(iter != factories_.end());
- ExtensionFunction* function = iter->second();
- function->set_name(name);
- return function;
-}
-
const char kAccessDenied[] = "access denied";
const char kQuotaExceeded[] = "quota exceeded";
@@ -603,22 +80,19 @@ void LogFailure(const Extension* extension,
}
}
-}; // namespace
-
-// ExtensionFunctionDispatcher -------------------------------------------------
-
void ExtensionFunctionDispatcher::GetAllFunctionNames(
std::vector<std::string>* names) {
- FactoryRegistry::GetInstance()->GetAllNames(names);
+ ExtensionFunctionRegistry::GetInstance()->GetAllNames(names);
}
bool ExtensionFunctionDispatcher::OverrideFunction(
const std::string& name, ExtensionFunctionFactory factory) {
- return FactoryRegistry::GetInstance()->OverrideFunction(name, factory);
+ return ExtensionFunctionRegistry::GetInstance()->OverrideFunction(name,
+ factory);
}
void ExtensionFunctionDispatcher::ResetFunctions() {
- FactoryRegistry::GetInstance()->ResetFunctions();
+ ExtensionFunctionRegistry::GetInstance()->ResetFunctions();
}
// static
@@ -794,7 +268,7 @@ ExtensionFunction* ExtensionFunctionDispatcher::CreateExtensionFunction(
}
ExtensionFunction* function =
- FactoryRegistry::GetInstance()->NewFunction(params.name);
+ ExtensionFunctionRegistry::GetInstance()->NewFunction(params.name);
function->SetArgs(&params.arguments);
function->set_source_url(params.source_url);
function->set_request_id(params.request_id);
« no previous file with comments | « chrome/browser/extensions/api/dns/dns_apitest.cc ('k') | chrome/browser/extensions/extension_function_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698