#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;
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;
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();
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);
};