| Index: chrome/browser/extensions/api/apps_debugger_private/apps_debugger_private_api.h
|
| diff --git a/chrome/browser/extensions/api/apps_debugger_private/apps_debugger_private_api.h b/chrome/browser/extensions/api/apps_debugger_private/apps_debugger_private_api.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9efc4d665e521e16b091a1c96df00f2aed670e5e
|
| --- /dev/null
|
| +++ b/chrome/browser/extensions/api/apps_debugger_private/apps_debugger_private_api.h
|
| @@ -0,0 +1,123 @@
|
| +// 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_API_APPS_DEBUGGER_PRIVATE_APPS_DEBUGGER_PRIVATE_API_H_
|
| +#define CHROME_BROWSER_EXTENSIONS_API_APPS_DEBUGGER_PRIVATE_APPS_DEBUGGER_PRIVATE_API_H_
|
| +
|
| +#include "chrome/browser/extensions/extension_function.h"
|
| +#include "chrome/browser/extensions/extension_install_prompt.h"
|
| +#include "chrome/browser/profiles/profile_keyed_service.h"
|
| +#include "content/public/browser/notification_observer.h"
|
| +#include "content/public/browser/notification_registrar.h"
|
| +#include "content/public/browser/render_view_host.h"
|
| +
|
| +namespace extensions {
|
| +namespace api {
|
| +namespace apps_debugger_private {
|
| +struct ItemInfo;
|
| +struct ItemInspectView;
|
| +}
|
| +}
|
| +class ExtensionSystem;
|
| +}
|
| +
|
| +namespace apps_debugger = extensions::api::apps_debugger_private;
|
| +
|
| +typedef std::vector<linked_ptr<apps_debugger::ItemInfo> > ItemInfoList;
|
| +typedef std::vector<linked_ptr<apps_debugger::ItemInspectView> >
|
| + ItemInspectViewList;
|
| +
|
| +namespace extensions {
|
| +
|
| +// The profile-keyed service that manages the AppsDebugger API.
|
| +class AppsDebuggerAPI : public ProfileKeyedService,
|
| + public content::NotificationObserver {
|
| + public:
|
| + // Convenience method to get the AppsDebuggerAPI for a profile.
|
| + static AppsDebuggerAPI* Get(Profile* profile);
|
| +
|
| + explicit AppsDebuggerAPI(Profile* profile);
|
| + virtual ~AppsDebuggerAPI();
|
| +
|
| + void AddItemsInfo(const ExtensionSet& items,
|
| + ExtensionSystem* system,
|
| + ItemInfoList* item_list);
|
| +
|
| + // ProfileKeyedService implementation
|
| + virtual void Shutdown() OVERRIDE;
|
| +
|
| + // content::NotificationObserver implementation.
|
| + virtual void Observe(int type,
|
| + const content::NotificationSource& source,
|
| + const content::NotificationDetails& details) OVERRIDE;
|
| +
|
| + private:
|
| +
|
| + void RegisterNotifications();
|
| +
|
| + scoped_ptr<apps_debugger::ItemInfo> CreateItemInfo(
|
| + const extensions::Extension& item,
|
| + ExtensionSystem* system,
|
| + bool item_is_enabled);
|
| +
|
| + // Helper that lists the current inspectable html pages for the extension.
|
| + void GetInspectablePagesForExtensionProcess(
|
| + const std::set<content::RenderViewHost*>& views,
|
| + ItemInspectViewList* result);
|
| +
|
| + ItemInspectViewList GetInspectablePagesForExtension(
|
| + const extensions::Extension* extension,
|
| + bool extension_is_enabled);
|
| +
|
| + Profile* profile_;
|
| +
|
| + content::NotificationRegistrar registrar_;
|
| +
|
| + // The page may be refreshed in response to a RENDER_VIEW_HOST_DELETED,
|
| + // but the iteration over RenderViewHosts will include the host because the
|
| + // notification is sent when it is in the process of being deleted (and before
|
| + // it is removed from the process). Keep a pointer to it so we can exclude
|
| + // it from the active views.
|
| + content::RenderViewHost* deleting_rvh_;
|
| +};
|
| +
|
| +namespace api {
|
| +
|
| +class AppsDebuggerPrivateAutoUpdateFunction : public SyncExtensionFunction {
|
| + public:
|
| + DECLARE_EXTENSION_FUNCTION_NAME("appsDebuggerPrivate.autoUpdate");
|
| +
|
| + protected:
|
| + virtual ~AppsDebuggerPrivateAutoUpdateFunction() {}
|
| +
|
| + // ExtensionFunction:
|
| + virtual bool RunImpl() OVERRIDE;
|
| +};
|
| +
|
| +class AppsDebuggerPrivateGetItemsInfoFunction : public SyncExtensionFunction {
|
| + public:
|
| + DECLARE_EXTENSION_FUNCTION_NAME("appsDebuggerPrivate.getItemsInfo");
|
| +
|
| + protected:
|
| + virtual ~AppsDebuggerPrivateGetItemsInfoFunction() {}
|
| +
|
| + // ExtensionFunction:
|
| + virtual bool RunImpl() OVERRIDE;
|
| +};
|
| +
|
| +class AppsDebuggerPrivateInspectFunction : public SyncExtensionFunction {
|
| + public:
|
| + DECLARE_EXTENSION_FUNCTION_NAME("appsDebuggerPrivate.inspect");
|
| +
|
| + protected:
|
| + virtual ~AppsDebuggerPrivateInspectFunction() {}
|
| +
|
| + // ExtensionFunction:
|
| + virtual bool RunImpl() OVERRIDE;
|
| +};
|
| +
|
| +} // namespace api
|
| +} // namespace extensions
|
| +
|
| +#endif // CHROME_BROWSER_EXTENSIONS_API_APPS_DEBUGGER_PRIVATE_APPS_DEBUGGER_PRIVATE_API_H_
|
|
|