| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/extensions/platform_app_launcher.h" | 5 #include "chrome/browser/extensions/platform_app_launcher.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 // The path to be passed through to the app. | 273 // The path to be passed through to the app. |
| 274 const base::FilePath file_path_; | 274 const base::FilePath file_path_; |
| 275 // The ID of the file handler used to launch the app. | 275 // The ID of the file handler used to launch the app. |
| 276 std::string handler_id_; | 276 std::string handler_id_; |
| 277 | 277 |
| 278 DISALLOW_COPY_AND_ASSIGN(PlatformAppPathLauncher); | 278 DISALLOW_COPY_AND_ASSIGN(PlatformAppPathLauncher); |
| 279 }; | 279 }; |
| 280 | 280 |
| 281 } // namespace | 281 } // namespace |
| 282 | 282 |
| 283 void LaunchPlatformApp(Profile* profile, | 283 void LaunchPlatformAppWithCommandLine(Profile* profile, |
| 284 const Extension* extension, | 284 const Extension* extension, |
| 285 const CommandLine* command_line, | 285 const CommandLine* command_line, |
| 286 const base::FilePath& current_directory) { | 286 const base::FilePath& current_directory) { |
| 287 #if defined(OS_WIN) | 287 #if defined(OS_WIN) |
| 288 // On Windows 8's single window Metro mode we can not launch platform apps. | 288 // On Windows 8's single window Metro mode we can not launch platform apps. |
| 289 // Offer to switch Chrome to desktop mode. | 289 // Offer to switch Chrome to desktop mode. |
| 290 if (win8::IsSingleWindowMetroMode()) { | 290 if (win8::IsSingleWindowMetroMode()) { |
| 291 chrome::AppMetroInfoBarDelegateWin::Create( | 291 chrome::AppMetroInfoBarDelegateWin::Create( |
| 292 profile, | 292 profile, |
| 293 chrome::AppMetroInfoBarDelegateWin::LAUNCH_PACKAGED_APP, | 293 chrome::AppMetroInfoBarDelegateWin::LAUNCH_PACKAGED_APP, |
| 294 extension->id()); | 294 extension->id()); |
| 295 return; | 295 return; |
| 296 } | 296 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 310 const Extension* extension, | 310 const Extension* extension, |
| 311 const base::FilePath& file_path) { | 311 const base::FilePath& file_path) { |
| 312 // launcher will be freed when nothing has a reference to it. The message | 312 // launcher will be freed when nothing has a reference to it. The message |
| 313 // queue will retain a reference for any outstanding task, so when the | 313 // queue will retain a reference for any outstanding task, so when the |
| 314 // launcher has finished it will be freed. | 314 // launcher has finished it will be freed. |
| 315 scoped_refptr<PlatformAppPathLauncher> launcher = | 315 scoped_refptr<PlatformAppPathLauncher> launcher = |
| 316 new PlatformAppPathLauncher(profile, extension, file_path); | 316 new PlatformAppPathLauncher(profile, extension, file_path); |
| 317 launcher->Launch(); | 317 launcher->Launch(); |
| 318 } | 318 } |
| 319 | 319 |
| 320 void LaunchPlatformApp(Profile* profile, const Extension* extension) { |
| 321 LaunchPlatformAppWithCommandLine(profile, extension, NULL, base::FilePath()); |
| 322 } |
| 323 |
| 320 void LaunchPlatformAppWithFileHandler(Profile* profile, | 324 void LaunchPlatformAppWithFileHandler(Profile* profile, |
| 321 const Extension* extension, | 325 const Extension* extension, |
| 322 const std::string& handler_id, | 326 const std::string& handler_id, |
| 323 const base::FilePath& file_path) { | 327 const base::FilePath& file_path) { |
| 324 scoped_refptr<PlatformAppPathLauncher> launcher = | 328 scoped_refptr<PlatformAppPathLauncher> launcher = |
| 325 new PlatformAppPathLauncher(profile, extension, file_path); | 329 new PlatformAppPathLauncher(profile, extension, file_path); |
| 326 launcher->LaunchWithHandler(handler_id); | 330 launcher->LaunchWithHandler(handler_id); |
| 327 } | 331 } |
| 328 | 332 |
| 329 void RestartPlatformApp(Profile* profile, const Extension* extension) { | 333 void RestartPlatformApp(Profile* profile, const Extension* extension) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 342 bool had_windows = extension_prefs->HasWindows(extension->id()); | 346 bool had_windows = extension_prefs->HasWindows(extension->id()); |
| 343 extension_prefs->SetHasWindows(extension->id(), false); | 347 extension_prefs->SetHasWindows(extension->id(), false); |
| 344 bool listening_to_launch = event_router-> | 348 bool listening_to_launch = event_router-> |
| 345 ExtensionHasEventListener(extension->id(), event_names::kOnLaunched); | 349 ExtensionHasEventListener(extension->id(), event_names::kOnLaunched); |
| 346 | 350 |
| 347 if (listening_to_launch && had_windows) | 351 if (listening_to_launch && had_windows) |
| 348 LaunchPlatformAppWithNoData(profile, extension); | 352 LaunchPlatformAppWithNoData(profile, extension); |
| 349 } | 353 } |
| 350 | 354 |
| 351 } // namespace extensions | 355 } // namespace extensions |
| OLD | NEW |