1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/chrome_manifest_handlers.h"
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/commands/commands_handler.h"
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/extension_action/browser_action_handler.h"
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/extension_action/page_action_handler.h"
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/extension_action/script_badge_handler.h"
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/common/extensions/api/file_browser_handlers/file_browser_handler.h"
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/file_handlers/file_handlers_parser.h"
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/i18n/default_locale_handler.h"
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/identity/oauth2_manifest_handler.h"
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/common/extensions/api/storage/storage_schema_manifest_handler.h"
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_CHROMEOS)
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/input_ime/input_components_handler.h"
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/managed_mode_private/managed_mode_handler.h"
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/common/extensions/api/media_galleries_private/media_galleries_handler.h"
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/omnibox/omnibox_handler.h"
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/plugins/plugins_handler.h"
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/speech/tts_engine_manifest_handler.h"
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/spellcheck/spellcheck_handler.h"
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/api/system_indicator/system_indicator_handler.h"
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/background_info.h"
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/csp_handler.h"
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/incognito_handler.h"
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/app_isolation_info.h"
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/content_scripts_handler.h"
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/externally_connectable.h"
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/icons_handler.h"
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/kiosk_enabled_info.h"
35ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "chrome/common/extensions/manifest_handlers/minimum_chrome_version_checker.h"
36868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/nacl_modules_handler.h"
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/offline_enabled_info.h"
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/requirements_handler.h"
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/sandboxed_page_info.h"
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/shared_module_info.h"
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_handlers/theme_handler.h"
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/manifest_url_handler.h"
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/mime_types_handler.h"
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/extensions/web_accessible_resources_handler.h"
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace extensions {
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void RegisterChromeManifestHandlers() {
497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  // This can happen in unit tests, where the utility thread runs in-process.
507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  if (ManifestHandler::IsRegistrationFinalized())
517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    return;
52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(ENABLE_EXTENSIONS)
53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new AppIsolationHandler)->Register();
54868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  (new AppLaunchManifestHandler)->Register();
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new BackgroundManifestHandler)->Register();
56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new BrowserActionHandler)->Register();
57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new CommandsHandler)->Register();
58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new ContentScriptsHandler)->Register();
59c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new CSPHandler(false))->Register();
60c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new CSPHandler(true))->Register();
61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new DefaultLocaleHandler)->Register();
62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new DevToolsPageHandler)->Register();
63c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new ExternallyConnectableHandler)->Register();
647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  (new FileBrowserHandlerParser)->Register();
65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new FileHandlersParser)->Register();
66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new HomepageURLHandler)->Register();
67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new IconsHandler)->Register();
68c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new IncognitoHandler)->Register();
69c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_CHROMEOS)
70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new InputComponentsHandler)->Register();
71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new KioskEnabledHandler)->Register();
73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new ManagedModeHandler)->Register();
747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  (new MediaGalleriesHandlerParser)->Register();
75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new MimeTypesHandlerParser)->Register();
76ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  (new MinimumChromeVersionChecker)->Register();
77868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  (new NaClModulesHandler)->Register();
78c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new OAuth2ManifestHandler)->Register();
79c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new OfflineEnabledHandler)->Register();
80c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new OmniboxHandler)->Register();
81c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new OptionsPageHandler)->Register();
82c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new PageActionHandler)->Register();
83c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new PluginsHandler)->Register();
84c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new RequirementsHandler)->Register();
85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new SandboxedPageHandler)->Register();
86c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new ScriptBadgeHandler)->Register();
87c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new SharedModuleHandler)->Register();
88c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new SpellcheckHandler)->Register();
897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  (new StorageSchemaManifestHandler)->Register();
90c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new SystemIndicatorHandler)->Register();
91c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new ThemeHandler)->Register();
92c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new TtsEngineManifestHandler)->Register();
93c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new UpdateURLHandler)->Register();
94c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new URLOverridesHandler)->Register();
95c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  (new WebAccessibleResourcesHandler)->Register();
967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  ManifestHandler::FinalizeRegistration();
97c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
98c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
99c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
100c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace extensions
101