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/webui/ntp/app_launcher_handler.h" | 5 #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "apps/metrics_names.h" | 9 #include "apps/metrics_names.h" |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "chrome/browser/extensions/extension_service.h" | 23 #include "chrome/browser/extensions/extension_service.h" |
24 #include "chrome/browser/extensions/extension_ui_util.h" | 24 #include "chrome/browser/extensions/extension_ui_util.h" |
25 #include "chrome/browser/extensions/launch_util.h" | 25 #include "chrome/browser/extensions/launch_util.h" |
26 #include "chrome/browser/favicon/favicon_service_factory.h" | 26 #include "chrome/browser/favicon/favicon_service_factory.h" |
27 #include "chrome/browser/profiles/profile.h" | 27 #include "chrome/browser/profiles/profile.h" |
28 #include "chrome/browser/ui/app_list/app_list_util.h" | 28 #include "chrome/browser/ui/app_list/app_list_util.h" |
29 #include "chrome/browser/ui/browser_dialogs.h" | 29 #include "chrome/browser/ui/browser_dialogs.h" |
30 #include "chrome/browser/ui/browser_finder.h" | 30 #include "chrome/browser/ui/browser_finder.h" |
31 #include "chrome/browser/ui/browser_tabstrip.h" | 31 #include "chrome/browser/ui/browser_tabstrip.h" |
32 #include "chrome/browser/ui/browser_window.h" | 32 #include "chrome/browser/ui/browser_window.h" |
33 #include "chrome/browser/ui/extensions/app_launch_params.h" | |
34 #include "chrome/browser/ui/extensions/application_launch.h" | 33 #include "chrome/browser/ui/extensions/application_launch.h" |
35 #include "chrome/browser/ui/extensions/extension_enable_flow.h" | 34 #include "chrome/browser/ui/extensions/extension_enable_flow.h" |
36 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 35 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
37 #include "chrome/browser/ui/webui/extensions/extension_basic_info.h" | 36 #include "chrome/browser/ui/webui/extensions/extension_basic_info.h" |
38 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" | 37 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" |
39 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" | 38 #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" |
40 #include "chrome/common/extensions/extension_constants.h" | 39 #include "chrome/common/extensions/extension_constants.h" |
41 #include "chrome/common/extensions/extension_metrics.h" | 40 #include "chrome/common/extensions/extension_metrics.h" |
42 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 41 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
43 #include "chrome/common/pref_names.h" | 42 #include "chrome/common/pref_names.h" |
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 CHECK_NE(launch_bucket, extension_misc::APP_LAUNCH_BUCKET_INVALID); | 513 CHECK_NE(launch_bucket, extension_misc::APP_LAUNCH_BUCKET_INVALID); |
515 extensions::RecordAppLaunchType(launch_bucket, extension->GetType()); | 514 extensions::RecordAppLaunchType(launch_bucket, extension->GetType()); |
516 } else { | 515 } else { |
517 extensions::RecordWebStoreLaunch(); | 516 extensions::RecordWebStoreLaunch(); |
518 } | 517 } |
519 | 518 |
520 if (disposition == NEW_FOREGROUND_TAB || disposition == NEW_BACKGROUND_TAB || | 519 if (disposition == NEW_FOREGROUND_TAB || disposition == NEW_BACKGROUND_TAB || |
521 disposition == NEW_WINDOW) { | 520 disposition == NEW_WINDOW) { |
522 // TODO(jamescook): Proper support for background tabs. | 521 // TODO(jamescook): Proper support for background tabs. |
523 AppLaunchParams params(profile, extension, | 522 AppLaunchParams params(profile, extension, |
524 disposition == NEW_WINDOW | 523 disposition == NEW_WINDOW ? |
525 ? extensions::LAUNCH_CONTAINER_WINDOW | 524 extensions::LAUNCH_CONTAINER_WINDOW : |
526 : extensions::LAUNCH_CONTAINER_TAB, | 525 extensions::LAUNCH_CONTAINER_TAB, |
527 disposition, extensions::SOURCE_NEW_TAB_PAGE); | 526 disposition); |
528 params.override_url = GURL(url); | 527 params.override_url = GURL(url); |
| 528 params.source = extensions::SOURCE_NEW_TAB_PAGE; |
529 OpenApplication(params); | 529 OpenApplication(params); |
530 } else { | 530 } else { |
531 // To give a more "launchy" experience when using the NTP launcher, we close | 531 // To give a more "launchy" experience when using the NTP launcher, we close |
532 // it automatically. | 532 // it automatically. |
533 Browser* browser = chrome::FindBrowserWithWebContents( | 533 Browser* browser = chrome::FindBrowserWithWebContents( |
534 web_ui()->GetWebContents()); | 534 web_ui()->GetWebContents()); |
535 WebContents* old_contents = NULL; | 535 WebContents* old_contents = NULL; |
536 if (browser) | 536 if (browser) |
537 old_contents = browser->tab_strip_model()->GetActiveWebContents(); | 537 old_contents = browser->tab_strip_model()->GetActiveWebContents(); |
538 | 538 |
539 AppLaunchParams params(profile, extension, | 539 AppLaunchParams params(profile, extension, |
540 old_contents ? CURRENT_TAB : NEW_FOREGROUND_TAB, | 540 old_contents ? CURRENT_TAB : NEW_FOREGROUND_TAB); |
541 extensions::SOURCE_NEW_TAB_PAGE); | |
542 params.override_url = GURL(url); | 541 params.override_url = GURL(url); |
| 542 params.source = extensions::SOURCE_NEW_TAB_PAGE; |
543 WebContents* new_contents = OpenApplication(params); | 543 WebContents* new_contents = OpenApplication(params); |
544 | 544 |
545 // This will also destroy the handler, so do not perform any actions after. | 545 // This will also destroy the handler, so do not perform any actions after. |
546 if (new_contents != old_contents && browser && | 546 if (new_contents != old_contents && browser && |
547 browser->tab_strip_model()->count() > 1) { | 547 browser->tab_strip_model()->count() > 1) { |
548 chrome::CloseWebContents(browser, old_contents, true); | 548 chrome::CloseWebContents(browser, old_contents, true); |
549 } | 549 } |
550 } | 550 } |
551 } | 551 } |
552 | 552 |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 Browser* browser = chrome::FindBrowserWithWebContents( | 845 Browser* browser = chrome::FindBrowserWithWebContents( |
846 web_ui()->GetWebContents()); | 846 web_ui()->GetWebContents()); |
847 extension_uninstall_dialog_.reset( | 847 extension_uninstall_dialog_.reset( |
848 extensions::ExtensionUninstallDialog::Create( | 848 extensions::ExtensionUninstallDialog::Create( |
849 extension_service_->profile(), | 849 extension_service_->profile(), |
850 browser->window()->GetNativeWindow(), | 850 browser->window()->GetNativeWindow(), |
851 this)); | 851 this)); |
852 } | 852 } |
853 return extension_uninstall_dialog_.get(); | 853 return extension_uninstall_dialog_.get(); |
854 } | 854 } |
OLD | NEW |