1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_EXTENSIONS_WEBSTORE_STARTUP_INSTALLER_H_ 6#define CHROME_BROWSER_EXTENSIONS_WEBSTORE_STARTUP_INSTALLER_H_ 7 8#include "chrome/browser/extensions/webstore_install_with_prompt.h" 9 10namespace extensions { 11 12// Manages inline installs requested to be performed at startup, e.g. via a 13// command line option: downloads and parses metadata from the webstore, 14// optionally shows an install UI, starts the download once the user 15// confirms. 16// 17// Clients will be notified of success or failure via the |callback| argument 18// passed into the constructor. 19class WebstoreStartupInstaller : public WebstoreInstallWithPrompt { 20 public: 21 WebstoreStartupInstaller(const std::string& webstore_item_id, 22 Profile* profile, 23 bool show_prompt, 24 const Callback& callback); 25 26 protected: 27 friend class base::RefCountedThreadSafe<WebstoreStartupInstaller>; 28 FRIEND_TEST_ALL_PREFIXES(WebstoreStartupInstallerTest, DomainVerification); 29 30 virtual ~WebstoreStartupInstaller(); 31 32 // Implementations of WebstoreStandaloneInstaller Template Method's hooks. 33 virtual scoped_refptr<ExtensionInstallPrompt::Prompt> CreateInstallPrompt() 34 const OVERRIDE; 35 36 private: 37 bool show_prompt_; 38 39 DISALLOW_IMPLICIT_CONSTRUCTORS(WebstoreStartupInstaller); 40}; 41 42} // namespace extensions 43 44#endif // CHROME_BROWSER_EXTENSIONS_WEBSTORE_STARTUP_INSTALLER_H_ 45