Chromium Code Reviews| Index: chrome/browser/extensions/external_extension_provider_interface.h |
| diff --git a/chrome/browser/extensions/external_extension_provider.h b/chrome/browser/extensions/external_extension_provider_interface.h |
| similarity index 58% |
| rename from chrome/browser/extensions/external_extension_provider.h |
| rename to chrome/browser/extensions/external_extension_provider_interface.h |
| index 5bcce1d5f4d7d150d3b50304038a204900330f5c..7f9d3c49996618771db8d6d19dd59eb7492a073a 100644 |
| --- a/chrome/browser/extensions/external_extension_provider.h |
| +++ b/chrome/browser/extensions/external_extension_provider_interface.h |
| @@ -1,11 +1,14 @@ |
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| +// Copyright (c) 2011 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_EXTERNAL_EXTENSION_PROVIDER_H_ |
| -#define CHROME_BROWSER_EXTENSIONS_EXTERNAL_EXTENSION_PROVIDER_H_ |
| +#ifndef CHROME_BROWSER_EXTENSIONS_EXTERNAL_EXTENSION_PROVIDER_INTERFACE_H_ |
| +#define CHROME_BROWSER_EXTENSIONS_EXTERNAL_EXTENSION_PROVIDER_INTERFACE_H_ |
| #pragma once |
| +#include <vector> |
| + |
| +#include "base/linked_ptr.h" |
| #include "chrome/common/extensions/extension.h" |
| class FilePath; |
| @@ -13,13 +16,13 @@ class Version; |
| // This class is an abstract class for implementing external extensions |
| // providers. |
| -class ExternalExtensionProvider { |
| +class ExternalExtensionProviderInterface { |
|
Aaron Boodman
2011/01/06 18:54:40
We don't typically use the 'Interface' suffix in C
gfeher
2011/01/07 00:10:01
According to the Chromium style guide, I should ei
|
| public: |
| // ExternalExtensionProvider uses this interface to communicate back to the |
| // caller what extensions are registered, and which |id|, |version| and |path| |
| // they have. See also VisitRegisteredExtension below. Ownership of |version| |
| // is not transferred to the visitor. |
| - class Visitor { |
| + class VisitorInterface { |
| public: |
| virtual void OnExternalExtensionFileFound( |
| const std::string& id, |
| @@ -32,16 +35,23 @@ class ExternalExtensionProvider { |
| const GURL& update_url, |
| Extension::Location location) = 0; |
| + // Called after all the external extensions have been reported through |
| + // the above two methods. |
| + virtual void OnExternalProviderReady() = 0; |
| + |
| protected: |
| - virtual ~Visitor() {} |
| + virtual ~VisitorInterface() {} |
| }; |
| - virtual ~ExternalExtensionProvider() {} |
| + virtual ~ExternalExtensionProviderInterface() {} |
| + |
| + // The visitor (ExtensionsService) calls this function before it goes away. |
| + virtual void ServiceShutdown() = 0; |
| - // Enumerate registered extension, calling OnExternalExtensionFound on |
| - // the |visitor| object for each registered extension found. |ids_to_ignore| |
| - // contains a list of extension ids that should not result in a call back. |
| - virtual void VisitRegisteredExtension(Visitor* visitor) const = 0; |
| + // Enumerate registered extensions, calling |
| + // OnExternalExtension(File|UpdateUrl)Found on the |visitor| object for each |
| + // registered extension found. |
| + virtual void VisitRegisteredExtension() const = 0; |
| // Test if this provider has an extension with id |id| registered. |
| virtual bool HasExtension(const std::string& id) const = 0; |
| @@ -53,6 +63,13 @@ class ExternalExtensionProvider { |
| virtual bool GetExtensionDetails(const std::string& id, |
| Extension::Location* location, |
| scoped_ptr<Version>* version) const = 0; |
| + |
| + // Determines if this provider had loaded the list of external extensions |
| + // from its source. |
| + virtual bool IsReady() = 0; |
| }; |
| -#endif // CHROME_BROWSER_EXTENSIONS_EXTERNAL_EXTENSION_PROVIDER_H_ |
| +typedef std::vector<linked_ptr<ExternalExtensionProviderInterface> > |
| + ProviderCollection; |
| + |
| +#endif // CHROME_BROWSER_EXTENSIONS_EXTERNAL_EXTENSION_PROVIDER_INTERFACE_H_ |