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 10 namespace 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. 19 class 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