Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / app_list / search / webstore / webstore_result.h
index 9160f0f..25f32f5 100644 (file)
@@ -11,7 +11,9 @@
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/extensions/install_observer.h"
 #include "chrome/browser/ui/app_list/search/chrome_search_result.h"
+#include "chrome/common/extensions/webstore_install_result.h"
 #include "extensions/browser/extension_registry_observer.h"
+#include "extensions/common/manifest.h"
 #include "url/gurl.h"
 
 class AppListControllerDelegate;
@@ -32,9 +34,16 @@ class WebstoreResult : public ChromeSearchResult,
                  const std::string& app_id,
                  const std::string& localized_name,
                  const GURL& icon_url,
+                 bool is_paid,
+                 extensions::Manifest::Type item_type,
                  AppListControllerDelegate* controller);
   virtual ~WebstoreResult();
 
+  const std::string& app_id() const { return app_id_; }
+  const GURL& icon_url() const { return icon_url_; }
+  extensions::Manifest::Type item_type() const { return item_type_; }
+  bool is_paid() const { return is_paid_; }
+
   // ChromeSearchResult overides:
   virtual void Open(int event_flags) OVERRIDE;
   virtual void InvokeAction(int action_index, int event_flags) OVERRIDE;
@@ -42,15 +51,20 @@ class WebstoreResult : public ChromeSearchResult,
   virtual ChromeSearchResultType GetType() OVERRIDE;
 
  private:
+  // Set the initial state and start observing both InstallObserver and
+  // ExtensionRegistryObserver.
+  void InitAndStartObserving();
+
   void UpdateActions();
   void SetDefaultDetails();
   void OnIconLoaded();
 
   void StartInstall(bool launch_ephemeral_app);
-  void InstallCallback(bool success, const std::string& error);
-
-  // Start observing both InstallObserver and ExtensionRegistryObserver.
-  void StartObserving();
+  void InstallCallback(bool success,
+                       const std::string& error,
+                       extensions::webstore_install::Result result);
+  void LaunchCallback(extensions::webstore_install::Result result,
+                      const std::string& error);
 
   void StopObservingInstall();
   void StopObservingRegistry();
@@ -61,26 +75,27 @@ class WebstoreResult : public ChromeSearchResult,
   virtual void OnShutdown() OVERRIDE;
 
   // extensions::ExtensionRegistryObserver overides:
-  virtual void OnExtensionWillBeInstalled(
+  virtual void OnExtensionInstalled(
       content::BrowserContext* browser_context,
       const extensions::Extension* extension,
-      bool is_update,
-      bool from_ephemeral,
-      const std::string& old_name) OVERRIDE;
+      bool is_update) OVERRIDE;
   virtual void OnShutdown(extensions::ExtensionRegistry* registry) OVERRIDE;
 
   Profile* profile_;
   const std::string app_id_;
   const std::string localized_name_;
   const GURL icon_url_;
+  const bool is_paid_;
+  extensions::Manifest::Type item_type_;
 
   gfx::ImageSkia icon_;
-  base::WeakPtrFactory<WebstoreResult> weak_factory_;
 
   AppListControllerDelegate* controller_;
   extensions::InstallTracker* install_tracker_;  // Not owned.
   extensions::ExtensionRegistry* extension_registry_;  // Not owned.
 
+  base::WeakPtrFactory<WebstoreResult> weak_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(WebstoreResult);
 };