| Index: chrome/browser/extensions/extensions_ui.h
|
| ===================================================================
|
| --- chrome/browser/extensions/extensions_ui.h (revision 102092)
|
| +++ chrome/browser/extensions/extensions_ui.h (working copy)
|
| @@ -1,205 +0,0 @@
|
| -// 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_EXTENSIONS_UI_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_EXTENSIONS_UI_H_
|
| -#pragma once
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "chrome/browser/extensions/extension_uninstall_dialog.h"
|
| -#include "chrome/browser/extensions/pack_extension_job.h"
|
| -#include "chrome/browser/ui/shell_dialogs.h"
|
| -#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
|
| -#include "chrome/browser/ui/webui/chrome_web_ui.h"
|
| -#include "chrome/common/extensions/extension_resource.h"
|
| -#include "content/common/notification_observer.h"
|
| -#include "content/common/notification_registrar.h"
|
| -#include "googleurl/src/gurl.h"
|
| -
|
| -class Extension;
|
| -class ExtensionService;
|
| -class FilePath;
|
| -class PrefService;
|
| -class RenderProcessHost;
|
| -class UserScript;
|
| -
|
| -namespace base {
|
| -class DictionaryValue;
|
| -class ListValue;
|
| -}
|
| -
|
| -// Information about a page running in an extension, for example a toolstrip,
|
| -// a background page, or a tab contents.
|
| -struct ExtensionPage {
|
| - ExtensionPage(const GURL& url, int render_process_id, int render_view_id,
|
| - bool incognito)
|
| - : url(url), render_process_id(render_process_id),
|
| - render_view_id(render_view_id), incognito(incognito) {}
|
| - GURL url;
|
| - int render_process_id;
|
| - int render_view_id;
|
| - bool incognito;
|
| -};
|
| -
|
| -// The handler for JavaScript messages related to the "extensions" view.
|
| -class ExtensionsDOMHandler : public WebUIMessageHandler,
|
| - public NotificationObserver,
|
| - public PackExtensionJob::Client,
|
| - public SelectFileDialog::Listener,
|
| - public ExtensionUninstallDialog::Delegate {
|
| - public:
|
| - explicit ExtensionsDOMHandler(ExtensionService* extension_service);
|
| - virtual ~ExtensionsDOMHandler();
|
| -
|
| - // WebUIMessageHandler implementation.
|
| - virtual void RegisterMessages() OVERRIDE;
|
| -
|
| - // Extension Detail JSON Struct for page. (static for ease of testing).
|
| - // Note: service can be NULL in unit tests.
|
| - static base::DictionaryValue* CreateExtensionDetailValue(
|
| - ExtensionService* service,
|
| - const Extension* extension,
|
| - const std::vector<ExtensionPage>& pages,
|
| - bool enabled,
|
| - bool terminated);
|
| -
|
| - // ExtensionPackJob::Client
|
| - virtual void OnPackSuccess(const FilePath& crx_file,
|
| - const FilePath& key_file) OVERRIDE;
|
| -
|
| - virtual void OnPackFailure(const std::string& error) OVERRIDE;
|
| -
|
| - // ExtensionUninstallDialog::Delegate:
|
| - virtual void ExtensionDialogAccepted() OVERRIDE;
|
| - virtual void ExtensionDialogCanceled() OVERRIDE;
|
| -
|
| - private:
|
| - // Callback for "requestExtensionsData" message.
|
| - void HandleRequestExtensionsData(const base::ListValue* args);
|
| -
|
| - // Callback for "toggleDeveloperMode" message.
|
| - void HandleToggleDeveloperMode(const base::ListValue* args);
|
| -
|
| - // Callback for "inspect" message.
|
| - void HandleInspectMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "reload" message.
|
| - void HandleReloadMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "enable" message.
|
| - void HandleEnableMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "enableIncognito" message.
|
| - void HandleEnableIncognitoMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "allowFileAcces" message.
|
| - void HandleAllowFileAccessMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "uninstall" message.
|
| - void HandleUninstallMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "options" message.
|
| - void HandleOptionsMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "showButton" message.
|
| - void HandleShowButtonMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "load" message.
|
| - void HandleLoadMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "pack" message.
|
| - void HandlePackMessage(const base::ListValue* args);
|
| -
|
| - // Callback for "autoupdate" message.
|
| - void HandleAutoUpdateMessage(const base::ListValue* args);
|
| -
|
| - // Utility for calling javascript window.alert in the page.
|
| - void ShowAlert(const std::string& message);
|
| -
|
| - // Callback for "selectFilePath" message.
|
| - void HandleSelectFilePathMessage(const base::ListValue* args);
|
| -
|
| - // Utility for callbacks that get an extension ID as the sole argument.
|
| - const Extension* GetExtension(const base::ListValue* args);
|
| -
|
| - // Forces a UI update if appropriate after a notification is received.
|
| - void MaybeUpdateAfterNotification();
|
| -
|
| - // Register for notifications that we need to reload the page.
|
| - void RegisterForNotifications();
|
| -
|
| - // SelectFileDialog::Listener
|
| - virtual void FileSelected(const FilePath& path,
|
| - int index, void* params) OVERRIDE;
|
| - virtual void MultiFilesSelected(
|
| - const std::vector<FilePath>& files, void* params) OVERRIDE;
|
| - virtual void FileSelectionCanceled(void* params) OVERRIDE {}
|
| -
|
| - // NotificationObserver
|
| - virtual void Observe(int type,
|
| - const NotificationSource& source,
|
| - const NotificationDetails& details) OVERRIDE;
|
| -
|
| - // Helper that lists the current active html pages for an extension.
|
| - std::vector<ExtensionPage> GetActivePagesForExtension(
|
| - const Extension* extension);
|
| - void GetActivePagesForExtensionProcess(
|
| - RenderProcessHost* process,
|
| - const Extension* extension,
|
| - std::vector<ExtensionPage> *result);
|
| -
|
| - // Returns the ExtensionUninstallDialog object for this class, creating it if
|
| - // needed.
|
| - ExtensionUninstallDialog* GetExtensionUninstallDialog();
|
| -
|
| - // Our model. Outlives us since it's owned by our containing profile.
|
| - ExtensionService* const extension_service_;
|
| -
|
| - // Used to pick the directory when loading an extension.
|
| - scoped_refptr<SelectFileDialog> load_extension_dialog_;
|
| -
|
| - // Used to package the extension.
|
| - scoped_refptr<PackExtensionJob> pack_job_;
|
| -
|
| - // Used to show confirmation UI for uninstalling extensions in incognito mode.
|
| - scoped_ptr<ExtensionUninstallDialog> extension_uninstall_dialog_;
|
| -
|
| - // The id of the extension we are prompting the user about.
|
| - std::string extension_id_prompting_;
|
| -
|
| - // We monitor changes to the extension system so that we can reload when
|
| - // necessary.
|
| - NotificationRegistrar registrar_;
|
| -
|
| - // If true, we will ignore notifications in ::Observe(). This is needed
|
| - // to prevent reloading the page when we were the cause of the
|
| - // notification.
|
| - bool ignore_notifications_;
|
| -
|
| - // 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.
|
| - RenderViewHost* deleting_rvh_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ExtensionsDOMHandler);
|
| -};
|
| -
|
| -class ExtensionsUI : public ChromeWebUI {
|
| - public:
|
| - explicit ExtensionsUI(TabContents* contents);
|
| -
|
| - static RefCountedMemory* GetFaviconResourceBytes();
|
| -
|
| - static void RegisterUserPrefs(PrefService* prefs);
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ExtensionsUI);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_EXTENSIONS_EXTENSIONS_UI_H_
|
|
|