diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-09 08:42:11 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-09 08:42:11 +0000 |
commit | e15be2bb4ca057bf5f9c02115d92042717364d42 (patch) | |
tree | 13e6c04987b6c8170efbff37fa32c5b8785d4d2d /chrome/browser/extensions/extension_system.h | |
parent | 65f8fbbd988207a470e2a399379baa70f4abb282 (diff) | |
download | chromium_src-e15be2bb4ca057bf5f9c02115d92042717364d42.zip chromium_src-e15be2bb4ca057bf5f9c02115d92042717364d42.tar.gz chromium_src-e15be2bb4ca057bf5f9c02115d92042717364d42.tar.bz2 |
Revert "Reland 124817 - Take extensions out of Profile into a profile-keyed service, ExtensionSystem."
I believe this change is causing failures in
[SocketApiTest.Socket{TCP,UDP}Extension.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9648026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125815 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_system.h')
-rw-r--r-- | chrome/browser/extensions/extension_system.h | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/chrome/browser/extensions/extension_system.h b/chrome/browser/extensions/extension_system.h deleted file mode 100644 index ce3c62a..0000000 --- a/chrome/browser/extensions/extension_system.h +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ -#define CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ -#pragma once - -#include <string> - -#include "base/memory/ref_counted.h" -#include "base/memory/scoped_ptr.h" -#include "chrome/browser/profiles/profile_keyed_service.h" -#include "chrome/common/extensions/extension_constants.h" - -class Extension; -class ExtensionDevToolsManager; -class ExtensionEventRouter; -class ExtensionInfoMap; -class ExtensionMessageService; -class ExtensionNavigationObserver; -class ExtensionPrefs; -class ExtensionPrefValueMap; -class ExtensionProcessManager; -class ExtensionService; -class Profile; -class UserScriptMaster; - -// The ExtensionSystem manages the creation and destruction of services -// related to extensions. Most objects are shared between normal -// and incognito Profiles, except as called out in comments. -// This interface supports using TestExtensionSystem for TestingProfiles -// that don't want all of the extensions baggage in their tests. -class ExtensionSystem : public ProfileKeyedService { - public: - ExtensionSystem(); - virtual ~ExtensionSystem(); - - // ProfileKeyedService implementation. - virtual void Shutdown() OVERRIDE {} - - // Initializes extensions machinery. - // Component extensions are always enabled, external and user extensions - // are controlled by |extensions_enabled|. - virtual void Init(bool extensions_enabled) = 0; - - // The ExtensionService is created at startup. - virtual ExtensionService* extension_service() = 0; - - // The ExtensionDevToolsManager is created at startup. - virtual ExtensionDevToolsManager* devtools_manager() = 0; - - // The UserScriptMaster is created at startup. - virtual UserScriptMaster* user_script_master() = 0; - - // The ExtensionProcessManager is created at startup. - virtual ExtensionProcessManager* process_manager() = 0; - - // Returns the IO-thread-accessible extension data. - virtual ExtensionInfoMap* info_map() = 0; - - // The ExtensionMessageService is created at startup. - virtual ExtensionMessageService* message_service() = 0; - - // The ExtensionEventRouter is created at startup. - virtual ExtensionEventRouter* event_router() = 0; - - // Called by the ExtensionService that lives in this system. Gives the - // info map a chance to react to the load event before the EXTENSION_LOADED - // notification has fired. The purpose for handling this event first is to - // avoid race conditions by making sure URLRequestContexts learn about new - // extensions before anything else needs them to know. - virtual void RegisterExtensionWithRequestContexts( - const Extension* extension) {} - - // Called by the ExtensionService that lives in this system. Lets the - // info map clean up its RequestContexts once all the listeners to the - // EXTENSION_UNLOADED notification have finished running. - virtual void UnregisterExtensionWithRequestContexts( - const std::string& extension_id, - const extension_misc::UnloadedExtensionReason reason) {} -}; - -// The ExtensionSystem for ProfileImpl and OffTheRecordProfileImpl. -// Implementation details: non-shared services are owned by -// ExtensionSystemImpl, a ProfileKeyedService with separate incognito -// instances. A private Shared class (also a ProfileKeyedService, -// but with a shared instance for incognito) keeps the common services. -class ExtensionSystemImpl : public ExtensionSystem { - public: - explicit ExtensionSystemImpl(Profile* profile); - virtual ~ExtensionSystemImpl(); - - // ProfileKeyedService implementation. - virtual void Shutdown() OVERRIDE; - - virtual void Init(bool extensions_enabled) OVERRIDE; - - virtual ExtensionService* extension_service() OVERRIDE; // delegated - virtual UserScriptMaster* user_script_master() OVERRIDE; // delegated - virtual ExtensionDevToolsManager* devtools_manager() OVERRIDE; - virtual ExtensionProcessManager* process_manager() OVERRIDE; - virtual ExtensionInfoMap* info_map() OVERRIDE; // delegated - virtual ExtensionMessageService* message_service() OVERRIDE; // delegated - virtual ExtensionEventRouter* event_router() OVERRIDE; // delegated - - virtual void RegisterExtensionWithRequestContexts( - const Extension* extension) OVERRIDE; - - virtual void UnregisterExtensionWithRequestContexts( - const std::string& extension_id, - const extension_misc::UnloadedExtensionReason reason) OVERRIDE; - - private: - friend class ExtensionSystemSharedFactory; - - // Owns the Extension-related systems that have a single instance - // shared between normal and incognito profiles. - class Shared : public ProfileKeyedService { - public: - explicit Shared(Profile* profile); - virtual ~Shared(); - - // ProfileKeyedService implementation. - virtual void Shutdown() OVERRIDE; - - // Initialization takes place in phases. - virtual void InitPrefs(); - void InitInfoMap(); - void Init(bool extensions_enabled); - - ExtensionService* extension_service(); - UserScriptMaster* user_script_master(); - ExtensionInfoMap* info_map(); - ExtensionMessageService* message_service(); - ExtensionEventRouter* event_router(); - - private: - Profile* profile_; - - // The services that are shared between normal and incognito profiles. - - // Keep extension_prefs_ on top of extension_service_ because the latter - // maintains a pointer to the first and shall be destructed first. - scoped_ptr<ExtensionPrefs> extension_prefs_; - scoped_ptr<ExtensionService> extension_service_; - scoped_refptr<UserScriptMaster> user_script_master_; - // extension_info_map_ needs to outlive extension_process_manager_. - scoped_refptr<ExtensionInfoMap> extension_info_map_; - scoped_refptr<ExtensionMessageService> extension_message_service_; - scoped_ptr<ExtensionEventRouter> extension_event_router_; - scoped_ptr<ExtensionNavigationObserver> extension_navigation_observer_; - }; - - Profile* profile_; - - Shared* shared_; - - // The services that have their own instances in incognito. - scoped_refptr<ExtensionDevToolsManager> extension_devtools_manager_; - // |extension_process_manager_| must be destroyed before the Profile's - // |io_data_|. While |extension_process_manager_| still lives, we handle - // incoming resource requests from extension processes and those require - // access to the ResourceContext owned by |io_data_|. - scoped_ptr<ExtensionProcessManager> extension_process_manager_; -}; - -#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_SYSTEM_H_ |