Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / chrome / browser / extensions / startup_helper.h
blobc291e381d50809a9d04c8baf11b9baac182efd3a
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.
5 #ifndef CHROME_BROWSER_EXTENSIONS_STARTUP_HELPER_H_
6 #define CHROME_BROWSER_EXTENSIONS_STARTUP_HELPER_H_
8 #include "base/memory/ref_counted.h"
9 #include "chrome/browser/extensions/pack_extension_job.h"
11 class Profile;
13 namespace base {
14 class CommandLine;
17 namespace extensions {
19 // Initialization helpers for various Extension startup actions.
20 class StartupHelper : public PackExtensionJob::Client {
21 public:
22 StartupHelper();
23 ~StartupHelper() override;
25 void OnPackSuccess(const base::FilePath& crx_path,
26 const base::FilePath& output_private_key_path) override;
27 void OnPackFailure(const std::string& error_message,
28 ExtensionCreator::ErrorType type) override;
30 // Handle --pack-extension flag from the |cmd_line| by packing the specified
31 // extension. Returns false if the pack job failed.
32 bool PackExtension(const base::CommandLine& cmd_line);
34 // Validates a crx at the path given by the --validate-extension flag - can
35 // it be installed? Returns true if the crx is valid, or false otherwise.
36 // If the return value is false, a description of the problem may be written
37 // into |error|.
38 bool ValidateCrx(const base::CommandLine& cmd_line, std::string* error);
40 // Handle --install-ephemeral-app-from-webstore flag from |cmd_line| by
41 // downloading metadata from the webstore for the given id, prompting the
42 // user to confirm, and then downloading the crx and installing it.
43 bool InstallEphemeralApp(const base::CommandLine& cmd_line, Profile* profile);
45 private:
46 scoped_refptr<PackExtensionJob> pack_job_;
47 bool pack_job_succeeded_;
49 DISALLOW_COPY_AND_ASSIGN(StartupHelper);
52 } // namespace extensions
54 #endif // CHROME_BROWSER_EXTENSIONS_STARTUP_HELPER_H_