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/ui/startup/startup_browser_creator_impl.h" | 5 #include "chrome/browser/ui/startup/startup_browser_creator_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "apps/app_restore_service.h" | 10 #include "apps/app_restore_service.h" |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 #include "chrome/browser/shell_integration.h" | 50 #include "chrome/browser/shell_integration.h" |
51 #include "chrome/browser/signin/signin_promo.h" | 51 #include "chrome/browser/signin/signin_promo.h" |
52 #include "chrome/browser/ui/app_list/app_list_service.h" | 52 #include "chrome/browser/ui/app_list/app_list_service.h" |
53 #include "chrome/browser/ui/browser_commands.h" | 53 #include "chrome/browser/ui/browser_commands.h" |
54 #include "chrome/browser/ui/browser_finder.h" | 54 #include "chrome/browser/ui/browser_finder.h" |
55 #include "chrome/browser/ui/browser_list.h" | 55 #include "chrome/browser/ui/browser_list.h" |
56 #include "chrome/browser/ui/browser_navigator.h" | 56 #include "chrome/browser/ui/browser_navigator.h" |
57 #include "chrome/browser/ui/browser_tabrestore.h" | 57 #include "chrome/browser/ui/browser_tabrestore.h" |
58 #include "chrome/browser/ui/browser_tabstrip.h" | 58 #include "chrome/browser/ui/browser_tabstrip.h" |
59 #include "chrome/browser/ui/browser_window.h" | 59 #include "chrome/browser/ui/browser_window.h" |
| 60 #include "chrome/browser/ui/extensions/app_launch_params.h" |
60 #include "chrome/browser/ui/extensions/application_launch.h" | 61 #include "chrome/browser/ui/extensions/application_launch.h" |
61 #include "chrome/browser/ui/host_desktop.h" | 62 #include "chrome/browser/ui/host_desktop.h" |
62 #include "chrome/browser/ui/startup/autolaunch_prompt.h" | 63 #include "chrome/browser/ui/startup/autolaunch_prompt.h" |
63 #include "chrome/browser/ui/startup/bad_flags_prompt.h" | 64 #include "chrome/browser/ui/startup/bad_flags_prompt.h" |
64 #include "chrome/browser/ui/startup/default_browser_prompt.h" | 65 #include "chrome/browser/ui/startup/default_browser_prompt.h" |
65 #include "chrome/browser/ui/startup/google_api_keys_infobar_delegate.h" | 66 #include "chrome/browser/ui/startup/google_api_keys_infobar_delegate.h" |
66 #include "chrome/browser/ui/startup/obsolete_system_infobar_delegate.h" | 67 #include "chrome/browser/ui/startup/obsolete_system_infobar_delegate.h" |
67 #include "chrome/browser/ui/startup/session_crashed_bubble.h" | 68 #include "chrome/browser/ui/startup/session_crashed_bubble.h" |
68 #include "chrome/browser/ui/startup/session_crashed_infobar_delegate.h" | 69 #include "chrome/browser/ui/startup/session_crashed_infobar_delegate.h" |
69 #include "chrome/browser/ui/startup/startup_browser_creator.h" | 70 #include "chrome/browser/ui/startup/startup_browser_creator.h" |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 return true; | 333 return true; |
333 | 334 |
334 if (command_line_.HasSwitch(switches::kAppId)) { | 335 if (command_line_.HasSwitch(switches::kAppId)) { |
335 std::string app_id = command_line_.GetSwitchValueASCII(switches::kAppId); | 336 std::string app_id = command_line_.GetSwitchValueASCII(switches::kAppId); |
336 const Extension* extension = GetPlatformApp(profile, app_id); | 337 const Extension* extension = GetPlatformApp(profile, app_id); |
337 // If |app_id| is a disabled or terminated platform app we handle it | 338 // If |app_id| is a disabled or terminated platform app we handle it |
338 // specially here, otherwise it will be handled below. | 339 // specially here, otherwise it will be handled below. |
339 if (extension) { | 340 if (extension) { |
340 RecordCmdLineAppHistogram(extensions::Manifest::TYPE_PLATFORM_APP); | 341 RecordCmdLineAppHistogram(extensions::Manifest::TYPE_PLATFORM_APP); |
341 AppLaunchParams params(profile, extension, | 342 AppLaunchParams params(profile, extension, |
342 extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW); | 343 extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW, |
| 344 extensions::SOURCE_COMMAND_LINE); |
343 params.command_line = command_line_; | 345 params.command_line = command_line_; |
344 params.current_directory = cur_dir_; | 346 params.current_directory = cur_dir_; |
345 // If we are being launched from the command line, default to native | 347 // If we are being launched from the command line, default to native |
346 // desktop. | 348 // desktop. |
347 params.desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE; | 349 params.desktop_type = chrome::HOST_DESKTOP_TYPE_NATIVE; |
348 OpenApplicationWithReenablePrompt(params); | 350 OpenApplicationWithReenablePrompt(params); |
349 return true; | 351 return true; |
350 } | 352 } |
351 } | 353 } |
352 | 354 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 const Extension* extension; | 422 const Extension* extension; |
421 if (!GetAppLaunchContainer(profile, app_id, &extension, &launch_container)) | 423 if (!GetAppLaunchContainer(profile, app_id, &extension, &launch_container)) |
422 return false; | 424 return false; |
423 | 425 |
424 // If the user doesn't want to open a tab, fail. | 426 // If the user doesn't want to open a tab, fail. |
425 if (launch_container != extensions::LAUNCH_CONTAINER_TAB) | 427 if (launch_container != extensions::LAUNCH_CONTAINER_TAB) |
426 return false; | 428 return false; |
427 | 429 |
428 RecordCmdLineAppHistogram(extension->GetType()); | 430 RecordCmdLineAppHistogram(extension->GetType()); |
429 | 431 |
430 WebContents* app_tab = OpenApplication(AppLaunchParams( | 432 WebContents* app_tab = OpenApplication( |
431 profile, extension, extensions::LAUNCH_CONTAINER_TAB, | 433 AppLaunchParams(profile, extension, extensions::LAUNCH_CONTAINER_TAB, |
432 NEW_FOREGROUND_TAB)); | 434 NEW_FOREGROUND_TAB, extensions::SOURCE_COMMAND_LINE)); |
433 return (app_tab != NULL); | 435 return (app_tab != NULL); |
434 } | 436 } |
435 | 437 |
436 bool StartupBrowserCreatorImpl::OpenApplicationWindow( | 438 bool StartupBrowserCreatorImpl::OpenApplicationWindow( |
437 Profile* profile, | 439 Profile* profile, |
438 content::WebContents** out_app_contents) { | 440 content::WebContents** out_app_contents) { |
439 // Set |out_app_contents| to NULL early on (just in case). | 441 // Set |out_app_contents| to NULL early on (just in case). |
440 if (out_app_contents) | 442 if (out_app_contents) |
441 *out_app_contents = NULL; | 443 *out_app_contents = NULL; |
442 | 444 |
(...skipping 13 matching lines...) Expand all Loading... |
456 | 458 |
457 // TODO(skerner): Could pass in |extension| and |launch_container|, | 459 // TODO(skerner): Could pass in |extension| and |launch_container|, |
458 // and avoid calling GetAppLaunchContainer() both here and in | 460 // and avoid calling GetAppLaunchContainer() both here and in |
459 // OpenApplicationTab(). | 461 // OpenApplicationTab(). |
460 | 462 |
461 if (launch_container == extensions::LAUNCH_CONTAINER_TAB) | 463 if (launch_container == extensions::LAUNCH_CONTAINER_TAB) |
462 return false; | 464 return false; |
463 | 465 |
464 RecordCmdLineAppHistogram(extension->GetType()); | 466 RecordCmdLineAppHistogram(extension->GetType()); |
465 | 467 |
466 AppLaunchParams params(profile, extension, launch_container, NEW_WINDOW); | 468 AppLaunchParams params(profile, extension, launch_container, NEW_WINDOW, |
| 469 extensions::SOURCE_COMMAND_LINE); |
467 params.command_line = command_line_; | 470 params.command_line = command_line_; |
468 params.current_directory = cur_dir_; | 471 params.current_directory = cur_dir_; |
469 WebContents* tab_in_app_window = OpenApplication(params); | 472 WebContents* tab_in_app_window = OpenApplication(params); |
470 | 473 |
471 if (out_app_contents) | 474 if (out_app_contents) |
472 *out_app_contents = tab_in_app_window; | 475 *out_app_contents = tab_in_app_window; |
473 | 476 |
474 // Platform apps fire off a launch event which may or may not open a window. | 477 // Platform apps fire off a launch event which may or may not open a window. |
475 return (tab_in_app_window != NULL || CanLaunchViaEvent(extension)); | 478 return (tab_in_app_window != NULL || CanLaunchViaEvent(extension)); |
476 } | 479 } |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
905 // behavior is desired because completing or skipping the sync promo | 908 // behavior is desired because completing or skipping the sync promo |
906 // causes a redirect to the NTP. | 909 // causes a redirect to the NTP. |
907 if (!startup_urls->empty() && | 910 if (!startup_urls->empty() && |
908 startup_urls->at(0) == GURL(chrome::kChromeUINewTabURL)) | 911 startup_urls->at(0) == GURL(chrome::kChromeUINewTabURL)) |
909 startup_urls->at(0) = sync_promo_url; | 912 startup_urls->at(0) = sync_promo_url; |
910 else | 913 else |
911 startup_urls->insert(startup_urls->begin(), sync_promo_url); | 914 startup_urls->insert(startup_urls->begin(), sync_promo_url); |
912 } | 915 } |
913 } | 916 } |
914 } | 917 } |
OLD | NEW |