Index: chrome/browser/extensions/extension_install_ui.h |
=================================================================== |
--- chrome/browser/extensions/extension_install_ui.h (revision 42429) |
+++ chrome/browser/extensions/extension_install_ui.h (working copy) |
@@ -1,18 +1,19 @@ |
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2010 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_INSTALL_UI_H_ |
#define CHROME_BROWSER_EXTENSIONS_EXTENSION_INSTALL_UI_H_ |
+#include <string> |
+ |
#include "base/file_path.h" |
#include "base/ref_counted.h" |
#include "base/scoped_ptr.h" |
+#include "chrome/browser/extensions/image_loading_tracker.h" |
#include "gfx/native_widget_types.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
-#include <string> |
- |
class Extension; |
class ExtensionsService; |
class MessageLoop; |
@@ -22,7 +23,7 @@ |
class TabContents; |
// Displays all the UI around extension installation and uninstallation. |
-class ExtensionInstallUI { |
+class ExtensionInstallUI : public ImageLoadingTracker::Observer { |
public: |
enum PromptType { |
INSTALL_PROMPT = 0, |
@@ -56,24 +57,21 @@ |
// |
// We *MUST* eventually call either Proceed() or Abort() |
// on |delegate|. |
- virtual void ConfirmInstall(Delegate* delegate, Extension* extension, |
- SkBitmap* icon); |
+ virtual void ConfirmInstall(Delegate* delegate, Extension* extension); |
// This is called by the extensions management page to verify whether the |
// uninstallation should proceed. This is declared virtual for testing. |
// |
// We *MUST* eventually call either Proceed() or Abort() |
// on |delegate|. |
- virtual void ConfirmUninstall(Delegate* delegate, Extension* extension, |
- SkBitmap* icon); |
+ virtual void ConfirmUninstall(Delegate* delegate, Extension* extension); |
// This is called by the extensions management page to verify whether the |
// uninstallation should proceed. This is declared virtual for testing. |
// |
// We *MUST* eventually call either Proceed() or Abort() |
// on |delegate|. |
- virtual void ConfirmEnableIncognito(Delegate* delegate, Extension* extension, |
- SkBitmap* icon); |
+ virtual void ConfirmEnableIncognito(Delegate* delegate, Extension* extension); |
// Installation was successful. This is declared virtual for testing. |
virtual void OnInstallSuccess(Extension* extension); |
@@ -85,11 +83,20 @@ |
// installed. This is declared virtual for testing. |
virtual void OnOverinstallAttempted(Extension* extension); |
+ // ImageLoadingTracker::Observer overrides. |
+ virtual void OnImageLoaded( |
+ SkBitmap* image, ExtensionResource resource, int index); |
+ |
private: |
// When a Theme is downloaded it is applied and an info bar is shown to give |
// the user a choice to keep it or undo the installation. |
void ShowThemeInfoBar(Extension* new_theme); |
+ // Starts the process of showing a confirmation UI, which is split into two. |
+ // 1) Set of a load icon task. |
+ // 2) Handle the load icon response and show the UI (OnImageLoaded). |
+ void ShowConfirmation(PromptType prompt_type); |
+ |
#if defined(OS_MACOSX) |
// When an extension is installed on Mac with neither browser action nor |
// page action icons, show an infobar instead of a popup bubble. |
@@ -111,9 +118,17 @@ |
MessageLoop* ui_loop_; |
std::string previous_theme_id_; // Used to undo theme installation. |
SkBitmap icon_; // The extensions installation icon. |
+ Extension* extension_; // The extension we are showing the UI for. |
+ Delegate* delegate_; // The delegate we will call Proceed/Abort on after |
+ // confirmation UI. |
+ PromptType prompt_type_; // The type of prompt we are going to show. |
+ // Keeps track of extension images being loaded on the File thread for the |
+ // purpose of showing the install UI. |
+ ImageLoadingTracker tracker_; |
+ |
#if defined(TOOLKIT_GTK) |
- // Also needed to undo theme installation in the linux UI. |
+ // Also needed to undo theme installation in the Linux UI. |
bool previous_use_gtk_theme_; |
#endif |
}; |