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 |