| Index: chrome/browser/extensions/startup_helper.cc
|
| diff --git a/chrome/browser/extensions/startup_helper.cc b/chrome/browser/extensions/startup_helper.cc
|
| index 25cd85e66a1125a226baa7709f24f162b2d9a057..36f427cc253a110d4850d65e9545c8066757d0a2 100644
|
| --- a/chrome/browser/extensions/startup_helper.cc
|
| +++ b/chrome/browser/extensions/startup_helper.cc
|
| @@ -34,6 +34,8 @@
|
|
|
| using content::BrowserThread;
|
|
|
| +namespace extensions {
|
| +
|
| namespace {
|
|
|
| void PrintPackExtensionMessage(const std::string& message) {
|
| @@ -41,32 +43,30 @@ void PrintPackExtensionMessage(const std::string& message) {
|
| }
|
|
|
| // On Windows, the jumplist action for installing an ephemeral app has to use
|
| -// the --install-from-webstore command line arg to initiate an install.
|
| -scoped_refptr<extensions::WebstoreStandaloneInstaller>
|
| -CreateEphemeralAppInstaller(
|
| +// the --install-ephemeral-app-from-webstore command line arg to initiate an
|
| +// install.
|
| +scoped_refptr<WebstoreStandaloneInstaller> CreateEphemeralAppInstaller(
|
| Profile* profile,
|
| const std::string& app_id,
|
| - extensions::WebstoreStandaloneInstaller::Callback callback) {
|
| - scoped_refptr<extensions::WebstoreStandaloneInstaller> installer;
|
| + WebstoreStandaloneInstaller::Callback callback) {
|
| + scoped_refptr<WebstoreStandaloneInstaller> installer;
|
|
|
| #if defined(OS_WIN)
|
| - using extensions::ExtensionRegistry;
|
| ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
|
| DCHECK(registry);
|
| if (!registry->GetExtensionById(app_id, ExtensionRegistry::EVERYTHING) ||
|
| - !extensions::util::IsEphemeralApp(app_id, profile)) {
|
| + !util::IsEphemeralApp(app_id, profile)) {
|
| return installer;
|
| }
|
|
|
| - extensions::AppWindowRegistry* app_window_registry =
|
| - extensions::AppWindowRegistry::Get(profile);
|
| + AppWindowRegistry* app_window_registry = AppWindowRegistry::Get(profile);
|
| DCHECK(app_window_registry);
|
| - extensions::AppWindow* app_window =
|
| + AppWindow* app_window =
|
| app_window_registry->GetCurrentAppWindowForApp(app_id);
|
| if (!app_window)
|
| return installer;
|
|
|
| - installer = new extensions::WebstoreInstallWithPrompt(
|
| + installer = new WebstoreInstallWithPrompt(
|
| app_id, profile, app_window->GetNativeWindow(), callback);
|
| #endif
|
|
|
| @@ -75,8 +75,6 @@ CreateEphemeralAppInstaller(
|
|
|
| } // namespace
|
|
|
| -namespace extensions {
|
| -
|
| StartupHelper::StartupHelper() : pack_job_succeeded_(false) {
|
| ExtensionsClient::Set(ChromeExtensionsClient::GetInstance());
|
| }
|
| @@ -288,11 +286,12 @@ void AppInstallHelper::BeginInstall(
|
| base::Unretained(this));
|
|
|
| installer_ = CreateEphemeralAppInstaller(profile, id, callback);
|
| - if (!installer_.get()) {
|
| - installer_ =
|
| - new WebstoreStartupInstaller(id, profile, show_prompt, callback);
|
| + if (installer_.get()) {
|
| + installer_->BeginInstall();
|
| + } else {
|
| + error_ = "Not a supported ephemeral app installation.";
|
| + done_callback_.Run();
|
| }
|
| - installer_->BeginInstall();
|
| }
|
|
|
| void AppInstallHelper::OnAppInstallComplete(bool success,
|
| @@ -303,20 +302,15 @@ void AppInstallHelper::OnAppInstallComplete(bool success,
|
| done_callback_.Run();
|
| }
|
|
|
| -void DeleteHelperAndRunCallback(AppInstallHelper* helper,
|
| - base::Callback<void()> callback) {
|
| - delete helper;
|
| - callback.Run();
|
| -}
|
| -
|
| } // namespace
|
|
|
| -bool StartupHelper::InstallFromWebstore(const CommandLine& cmd_line,
|
| +bool StartupHelper::InstallEphemeralApp(const CommandLine& cmd_line,
|
| Profile* profile) {
|
| - std::string id = cmd_line.GetSwitchValueASCII(switches::kInstallFromWebstore);
|
| + std::string id =
|
| + cmd_line.GetSwitchValueASCII(switches::kInstallEphemeralAppFromWebstore);
|
| if (!crx_file::id_util::IdIsValid(id)) {
|
| - LOG(ERROR) << "Invalid id for " << switches::kInstallFromWebstore
|
| - << " : '" << id << "'";
|
| + LOG(ERROR) << "Invalid id for "
|
| + << switches::kInstallEphemeralAppFromWebstore << " : '" << id << "'";
|
| return false;
|
| }
|
|
|
| @@ -330,36 +324,6 @@ bool StartupHelper::InstallFromWebstore(const CommandLine& cmd_line,
|
| return helper.success();
|
| }
|
|
|
| -void StartupHelper::LimitedInstallFromWebstore(
|
| - const CommandLine& cmd_line,
|
| - Profile* profile,
|
| - base::Callback<void()> done_callback) {
|
| - std::string id = WebStoreIdFromLimitedInstallCmdLine(cmd_line);
|
| - if (!crx_file::id_util::IdIsValid(id)) {
|
| - LOG(ERROR) << "Invalid index for " << switches::kLimitedInstallFromWebstore;
|
| - done_callback.Run();
|
| - return;
|
| - }
|
| -
|
| - AppInstallHelper* helper = new AppInstallHelper();
|
| - helper->BeginInstall(profile, id, false /*show_prompt*/,
|
| - base::Bind(&DeleteHelperAndRunCallback,
|
| - helper, done_callback));
|
| -}
|
| -
|
| -std::string StartupHelper::WebStoreIdFromLimitedInstallCmdLine(
|
| - const CommandLine& cmd_line) {
|
| - std::string index = cmd_line.GetSwitchValueASCII(
|
| - switches::kLimitedInstallFromWebstore);
|
| - std::string id;
|
| - if (index == "1") {
|
| - id = "nckgahadagoaajjgafhacjanaoiihapd";
|
| - } else if (index == "2") {
|
| - id = "ecglahbcnmdpdciemllbhojghbkagdje";
|
| - }
|
| - return id;
|
| -}
|
| -
|
| StartupHelper::~StartupHelper() {
|
| if (pack_job_.get())
|
| pack_job_->ClearClient();
|
|
|