summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_system.h
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-09 08:42:11 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-09 08:42:11 +0000
commite15be2bb4ca057bf5f9c02115d92042717364d42 (patch)
tree13e6c04987b6c8170efbff37fa32c5b8785d4d2d /chrome/browser/extensions/extension_system.h
parent65f8fbbd988207a470e2a399379baa70f4abb282 (diff)
downloadchromium_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.h168
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_