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/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <windows.h> | 8 #include <windows.h> |
9 #include <shellapi.h> | 9 #include <shellapi.h> |
10 #endif // OS_WIN | 10 #endif // OS_WIN |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 #include "chrome/browser/ui/status_bubble.h" | 127 #include "chrome/browser/ui/status_bubble.h" |
128 #include "chrome/browser/ui/sync/browser_synced_window_delegate.h" | 128 #include "chrome/browser/ui/sync/browser_synced_window_delegate.h" |
129 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" | 129 #include "chrome/browser/ui/tab_contents/core_tab_helper.h" |
130 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 130 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
131 #include "chrome/browser/ui/tabs/dock_info.h" | 131 #include "chrome/browser/ui/tabs/dock_info.h" |
132 #include "chrome/browser/ui/tabs/tab_menu_model.h" | 132 #include "chrome/browser/ui/tabs/tab_menu_model.h" |
133 #include "chrome/browser/ui/web_applications/web_app_ui.h" | 133 #include "chrome/browser/ui/web_applications/web_app_ui.h" |
134 #include "chrome/browser/ui/webui/feedback_ui.h" | 134 #include "chrome/browser/ui/webui/feedback_ui.h" |
135 #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h" | 135 #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h" |
136 #include "chrome/browser/ui/webui/ntp/new_tab_page_handler.h" | 136 #include "chrome/browser/ui/webui/ntp/new_tab_page_handler.h" |
137 #include "chrome/browser/ui/webui/options/content_settings_handler.h" | 137 #include "chrome/browser/ui/webui/options2/content_settings_handler2.h" |
138 #include "chrome/browser/ui/webui/signin/login_ui_service.h" | 138 #include "chrome/browser/ui/webui/signin/login_ui_service.h" |
139 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" | 139 #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
140 #include "chrome/browser/ui/webui/sync_promo/sync_promo_ui.h" | 140 #include "chrome/browser/ui/webui/sync_promo/sync_promo_ui.h" |
141 #include "chrome/browser/ui/window_sizer.h" | 141 #include "chrome/browser/ui/window_sizer.h" |
142 #include "chrome/browser/upgrade_detector.h" | 142 #include "chrome/browser/upgrade_detector.h" |
143 #include "chrome/browser/web_applications/web_app.h" | 143 #include "chrome/browser/web_applications/web_app.h" |
144 #include "chrome/common/chrome_constants.h" | 144 #include "chrome/common/chrome_constants.h" |
145 #include "chrome/common/chrome_notification_types.h" | 145 #include "chrome/common/chrome_notification_types.h" |
146 #include "chrome/common/chrome_switches.h" | 146 #include "chrome/common/chrome_switches.h" |
147 #include "chrome/common/custom_handlers/protocol_handler.h" | 147 #include "chrome/common/custom_handlers/protocol_handler.h" |
(...skipping 2191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2339 // We record the user metric for this event in WrenchMenu::RunMenu. | 2339 // We record the user metric for this event in WrenchMenu::RunMenu. |
2340 window_->ShowAppMenu(); | 2340 window_->ShowAppMenu(); |
2341 } | 2341 } |
2342 | 2342 |
2343 void Browser::ShowAvatarMenu() { | 2343 void Browser::ShowAvatarMenu() { |
2344 window_->ShowAvatarBubbleFromAvatarButton(); | 2344 window_->ShowAvatarBubbleFromAvatarButton(); |
2345 } | 2345 } |
2346 | 2346 |
2347 void Browser::ShowHistoryTab() { | 2347 void Browser::ShowHistoryTab() { |
2348 content::RecordAction(UserMetricsAction("ShowHistory")); | 2348 content::RecordAction(UserMetricsAction("ShowHistory")); |
2349 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2349 browser::NavigateParams params(GetSingletonTabNavigateParams( |
2350 ShowSingletonTabOverwritingNTP( | 2350 GURL(std::string(chrome::kChromeUIUberURL) + |
2351 GetSingletonTabNavigateParams(GURL(chrome::kChromeUIHistoryFrameURL))); | 2351 chrome::kChromeUIHistoryHost))); |
2352 } else { | 2352 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; |
2353 browser::NavigateParams params(GetSingletonTabNavigateParams( | 2353 ShowSingletonTabOverwritingNTP(params); |
2354 GURL(std::string(chrome::kChromeUIUberURL) + | |
2355 chrome::kChromeUIHistoryHost))); | |
2356 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | |
2357 ShowSingletonTabOverwritingNTP(params); | |
2358 } | |
2359 } | 2354 } |
2360 | 2355 |
2361 void Browser::ShowDownloadsTab() { | 2356 void Browser::ShowDownloadsTab() { |
2362 content::RecordAction(UserMetricsAction("ShowDownloads")); | 2357 content::RecordAction(UserMetricsAction("ShowDownloads")); |
2363 #if !defined(OS_CHROMEOS) | 2358 #if !defined(OS_CHROMEOS) |
2364 // ChromiumOS uses ActiveDownloadsUI instead of of DownloadShelf. | 2359 // ChromiumOS uses ActiveDownloadsUI instead of of DownloadShelf. |
2365 if (window()) { | 2360 if (window()) { |
2366 DownloadShelf* shelf = window()->GetDownloadShelf(); | 2361 DownloadShelf* shelf = window()->GetDownloadShelf(); |
2367 if (shelf->IsShowing()) | 2362 if (shelf->IsShowing()) |
2368 shelf->Close(); | 2363 shelf->Close(); |
2369 } | 2364 } |
2370 #endif | 2365 #endif |
2371 ShowSingletonTabOverwritingNTP( | 2366 ShowSingletonTabOverwritingNTP( |
2372 GetSingletonTabNavigateParams(GURL(chrome::kChromeUIDownloadsURL))); | 2367 GetSingletonTabNavigateParams(GURL(chrome::kChromeUIDownloadsURL))); |
2373 } | 2368 } |
2374 | 2369 |
2375 void Browser::ShowExtensionsTab() { | 2370 void Browser::ShowExtensionsTab() { |
2376 content::RecordAction(UserMetricsAction("ShowExtensions")); | 2371 content::RecordAction(UserMetricsAction("ShowExtensions")); |
2377 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2372 browser::NavigateParams params(GetSingletonTabNavigateParams( |
2378 ShowOptionsTab(chrome::kExtensionsSubPage); | 2373 GURL(std::string(chrome::kChromeUIUberURL) + |
2379 } else { | 2374 chrome::kChromeUIExtensionsHost))); |
2380 browser::NavigateParams params(GetSingletonTabNavigateParams( | 2375 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; |
2381 GURL(std::string(chrome::kChromeUIUberURL) + | 2376 ShowSingletonTabOverwritingNTP(params); |
2382 chrome::kChromeUIExtensionsHost))); | |
2383 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | |
2384 ShowSingletonTabOverwritingNTP(params); | |
2385 } | |
2386 } | 2377 } |
2387 | 2378 |
2388 void Browser::ShowAboutConflictsTab() { | 2379 void Browser::ShowAboutConflictsTab() { |
2389 content::RecordAction(UserMetricsAction("AboutConflicts")); | 2380 content::RecordAction(UserMetricsAction("AboutConflicts")); |
2390 ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL)); | 2381 ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL)); |
2391 } | 2382 } |
2392 | 2383 |
2393 void Browser::ShowBrokenPageTab(WebContents* contents) { | 2384 void Browser::ShowBrokenPageTab(WebContents* contents) { |
2394 content::RecordAction(UserMetricsAction("Feedback")); | 2385 content::RecordAction(UserMetricsAction("Feedback")); |
2395 string16 page_title = contents->GetTitle(); | 2386 string16 page_title = contents->GetTitle(); |
2396 NavigationEntry* entry = contents->GetController().GetActiveEntry(); | 2387 NavigationEntry* entry = contents->GetController().GetActiveEntry(); |
2397 if (!entry) | 2388 if (!entry) |
2398 return; | 2389 return; |
2399 std::string page_url = entry->GetURL().spec(); | 2390 std::string page_url = entry->GetURL().spec(); |
2400 std::vector<std::string> subst; | 2391 std::vector<std::string> subst; |
2401 subst.push_back(UTF16ToASCII(page_title)); | 2392 subst.push_back(UTF16ToASCII(page_title)); |
2402 subst.push_back(page_url); | 2393 subst.push_back(page_url); |
2403 std::string report_page_url = | 2394 std::string report_page_url = |
2404 ReplaceStringPlaceholders(kBrokenPageUrl, subst, NULL); | 2395 ReplaceStringPlaceholders(kBrokenPageUrl, subst, NULL); |
2405 ShowSingletonTab(GURL(report_page_url)); | 2396 ShowSingletonTab(GURL(report_page_url)); |
2406 } | 2397 } |
2407 | 2398 |
2408 void Browser::ShowOptionsTab(const std::string& sub_page) { | 2399 void Browser::ShowOptionsTab(const std::string& sub_page) { |
2409 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2400 std::string url; |
2410 browser::NavigateParams params(GetSingletonTabNavigateParams( | 2401 if (sub_page == chrome::kExtensionsSubPage) { |
2411 GURL(chrome::kChromeUISettingsURL + sub_page))); | 2402 url = std::string(chrome::kChromeUIUberURL) + |
2412 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | 2403 chrome::kChromeUIExtensionsHost; |
2413 ShowSingletonTabOverwritingNTP(params); | 2404 #if defined(OS_CHROMEOS) |
| 2405 } else if (sub_page.find(chrome::kInternetOptionsSubPage, 0) != |
| 2406 std::string::npos) { |
| 2407 std::string::size_type loc = sub_page.find("?", 0); |
| 2408 std::string network_page = loc != std::string::npos ? |
| 2409 sub_page.substr(loc) : std::string(); |
| 2410 url = std::string(chrome::kChromeUIUberURL) + |
| 2411 chrome::kChromeUISettingsHost + network_page; |
| 2412 #endif |
2414 } else { | 2413 } else { |
2415 std::string url; | 2414 url = std::string(chrome::kChromeUIUberURL) + |
2416 if (sub_page == chrome::kExtensionsSubPage) { | 2415 chrome::kChromeUISettingsHost + '/' + sub_page; |
2417 url = std::string(chrome::kChromeUIUberURL) + | |
2418 chrome::kChromeUIExtensionsHost; | |
2419 #if defined(OS_CHROMEOS) | |
2420 } else if (sub_page.find(chrome::kInternetOptionsSubPage, 0) != | |
2421 std::string::npos) { | |
2422 std::string::size_type loc = sub_page.find("?", 0); | |
2423 std::string network_page = loc != std::string::npos ? | |
2424 sub_page.substr(loc) : std::string(); | |
2425 url = std::string(chrome::kChromeUIUberURL) + | |
2426 chrome::kChromeUISettingsHost + network_page; | |
2427 #endif | |
2428 } else { | |
2429 url = std::string(chrome::kChromeUIUberURL) + | |
2430 chrome::kChromeUISettingsHost + '/' + sub_page; | |
2431 } | |
2432 browser::NavigateParams params(GetSingletonTabNavigateParams(GURL(url))); | |
2433 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | |
2434 ShowSingletonTabOverwritingNTP(params); | |
2435 } | 2416 } |
| 2417 browser::NavigateParams params(GetSingletonTabNavigateParams(GURL(url))); |
| 2418 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; |
| 2419 ShowSingletonTabOverwritingNTP(params); |
2436 } | 2420 } |
2437 | 2421 |
2438 void Browser::OpenClearBrowsingDataDialog() { | 2422 void Browser::OpenClearBrowsingDataDialog() { |
2439 content::RecordAction(UserMetricsAction("ClearBrowsingData_ShowDlg")); | 2423 content::RecordAction(UserMetricsAction("ClearBrowsingData_ShowDlg")); |
2440 ShowOptionsTab(chrome::kClearBrowserDataSubPage); | 2424 ShowOptionsTab(chrome::kClearBrowserDataSubPage); |
2441 } | 2425 } |
2442 | 2426 |
2443 void Browser::OpenOptionsDialog() { | 2427 void Browser::OpenOptionsDialog() { |
2444 content::RecordAction(UserMetricsAction("ShowOptions")); | 2428 content::RecordAction(UserMetricsAction("ShowOptions")); |
2445 ShowOptionsTab(""); | 2429 ShowOptionsTab(""); |
2446 } | 2430 } |
2447 | 2431 |
2448 void Browser::OpenPasswordManager() { | 2432 void Browser::OpenPasswordManager() { |
2449 content::RecordAction(UserMetricsAction("Options_ShowPasswordManager")); | 2433 content::RecordAction(UserMetricsAction("Options_ShowPasswordManager")); |
2450 ShowOptionsTab(chrome::kPasswordManagerSubPage); | 2434 ShowOptionsTab(chrome::kPasswordManagerSubPage); |
2451 } | 2435 } |
2452 | 2436 |
2453 void Browser::OpenImportSettingsDialog() { | 2437 void Browser::OpenImportSettingsDialog() { |
2454 content::RecordAction(UserMetricsAction("Import_ShowDlg")); | 2438 content::RecordAction(UserMetricsAction("Import_ShowDlg")); |
2455 ShowOptionsTab(chrome::kImportDataSubPage); | 2439 ShowOptionsTab(chrome::kImportDataSubPage); |
2456 } | 2440 } |
2457 | 2441 |
2458 void Browser::OpenInstantConfirmDialog() { | 2442 void Browser::OpenInstantConfirmDialog() { |
2459 ShowOptionsTab(chrome::kInstantConfirmPage); | 2443 ShowOptionsTab(chrome::kInstantConfirmPage); |
2460 } | 2444 } |
2461 | 2445 |
2462 void Browser::OpenAboutChromeDialog() { | 2446 void Browser::OpenAboutChromeDialog() { |
2463 content::RecordAction(UserMetricsAction("AboutChrome")); | 2447 content::RecordAction(UserMetricsAction("AboutChrome")); |
2464 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2448 #if !defined(OS_WIN) |
2465 #if defined(OS_CHROMEOS) | 2449 ShowSingletonTab(GURL(chrome::kChromeUIUberURL)); |
2466 std::string chrome_settings(chrome::kChromeUISettingsURL); | |
2467 ShowSingletonTab( | |
2468 GURL(chrome_settings.append(chrome::kAboutOptionsSubPage))); | |
2469 #else | 2450 #else |
2470 window_->ShowAboutChromeDialog(); | 2451 // crbug.com/115123. |
| 2452 window_->ShowAboutChromeDialog(); |
2471 #endif | 2453 #endif |
2472 } else { | |
2473 #if !defined(OS_WIN) | |
2474 ShowSingletonTab(GURL(chrome::kChromeUIUberURL)); | |
2475 #else | |
2476 // crbug.com/115123. | |
2477 window_->ShowAboutChromeDialog(); | |
2478 #endif | |
2479 } | |
2480 } | 2454 } |
2481 | 2455 |
2482 void Browser::OpenUpdateChromeDialog() { | 2456 void Browser::OpenUpdateChromeDialog() { |
2483 content::RecordAction(UserMetricsAction("UpdateChrome")); | 2457 content::RecordAction(UserMetricsAction("UpdateChrome")); |
2484 window_->ShowUpdateChromeDialog(); | 2458 window_->ShowUpdateChromeDialog(); |
2485 } | 2459 } |
2486 | 2460 |
2487 void Browser::ShowHelpTab() { | 2461 void Browser::ShowHelpTab() { |
2488 content::RecordAction(UserMetricsAction("ShowHelpTab")); | 2462 content::RecordAction(UserMetricsAction("ShowHelpTab")); |
2489 ShowSingletonTab(GURL(chrome::kChromeHelpURL)); | 2463 ShowSingletonTab(GURL(chrome::kChromeHelpURL)); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2527 void Browser::Shutdown() { | 2501 void Browser::Shutdown() { |
2528 content::RecordAction(UserMetricsAction("Shutdown")); | 2502 content::RecordAction(UserMetricsAction("Shutdown")); |
2529 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> | 2503 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> |
2530 RequestShutdown(); | 2504 RequestShutdown(); |
2531 } | 2505 } |
2532 | 2506 |
2533 void Browser::OpenAdvancedOptionsDialog() { | 2507 void Browser::OpenAdvancedOptionsDialog() { |
2534 // TODO(csilv): The main purpose of this method is to expose the date & time | 2508 // TODO(csilv): The main purpose of this method is to expose the date & time |
2535 // settings from the clock. Simply showing the options tab not quite enough. | 2509 // settings from the clock. Simply showing the options tab not quite enough. |
2536 content::RecordAction(UserMetricsAction("OpenSystemOptionsDialog")); | 2510 content::RecordAction(UserMetricsAction("OpenSystemOptionsDialog")); |
2537 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) | 2511 ShowOptionsTab(""); |
2538 ShowOptionsTab(chrome::kSystemOptionsSubPage); | |
2539 else | |
2540 ShowOptionsTab(""); | |
2541 } | 2512 } |
2542 | 2513 |
2543 void Browser::OpenInternetOptionsDialog() { | 2514 void Browser::OpenInternetOptionsDialog() { |
2544 content::RecordAction(UserMetricsAction("OpenInternetOptionsDialog")); | 2515 content::RecordAction(UserMetricsAction("OpenInternetOptionsDialog")); |
2545 ShowOptionsTab(chrome::kInternetOptionsSubPage); | 2516 ShowOptionsTab(chrome::kInternetOptionsSubPage); |
2546 } | 2517 } |
2547 | 2518 |
2548 void Browser::OpenLanguageOptionsDialog() { | 2519 void Browser::OpenLanguageOptionsDialog() { |
2549 content::RecordAction(UserMetricsAction("OpenLanguageOptionsDialog")); | 2520 content::RecordAction(UserMetricsAction("OpenLanguageOptionsDialog")); |
2550 ShowOptionsTab(chrome::kLanguageOptionsSubPage); | 2521 ShowOptionsTab(chrome::kLanguageOptionsSubPage); |
(...skipping 1525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4076 | 4047 |
4077 void Browser::ShowRepostFormWarningDialog(WebContents* source) { | 4048 void Browser::ShowRepostFormWarningDialog(WebContents* source) { |
4078 browser::ShowTabModalConfirmDialog( | 4049 browser::ShowTabModalConfirmDialog( |
4079 new RepostFormWarningController(source), | 4050 new RepostFormWarningController(source), |
4080 TabContentsWrapper::GetCurrentWrapperForContents(source)); | 4051 TabContentsWrapper::GetCurrentWrapperForContents(source)); |
4081 } | 4052 } |
4082 | 4053 |
4083 void Browser::ShowContentSettingsPage(ContentSettingsType content_type) { | 4054 void Browser::ShowContentSettingsPage(ContentSettingsType content_type) { |
4084 ShowOptionsTab( | 4055 ShowOptionsTab( |
4085 chrome::kContentSettingsExceptionsSubPage + std::string(kHashMark) + | 4056 chrome::kContentSettingsExceptionsSubPage + std::string(kHashMark) + |
4086 ContentSettingsHandler::ContentSettingsTypeToGroupName(content_type)); | 4057 options2::ContentSettingsHandler::ContentSettingsTypeToGroupName( |
| 4058 content_type)); |
4087 } | 4059 } |
4088 | 4060 |
4089 void Browser::ShowCollectedCookiesDialog(TabContentsWrapper* wrapper) { | 4061 void Browser::ShowCollectedCookiesDialog(TabContentsWrapper* wrapper) { |
4090 browser::ShowCollectedCookiesDialog(window()->GetNativeHandle(), wrapper); | 4062 browser::ShowCollectedCookiesDialog(window()->GetNativeHandle(), wrapper); |
4091 } | 4063 } |
4092 | 4064 |
4093 bool Browser::ShouldAddNavigationToHistory( | 4065 bool Browser::ShouldAddNavigationToHistory( |
4094 const history::HistoryAddPageArgs& add_page_args, | 4066 const history::HistoryAddPageArgs& add_page_args, |
4095 content::NavigationType navigation_type) { | 4067 content::NavigationType navigation_type) { |
4096 // Don't update history if running as app. | 4068 // Don't update history if running as app. |
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5705 } else { | 5677 } else { |
5706 LoginUIServiceFactory::GetForProfile( | 5678 LoginUIServiceFactory::GetForProfile( |
5707 profile()->GetOriginalProfile())->ShowLoginUI(false); | 5679 profile()->GetOriginalProfile())->ShowLoginUI(false); |
5708 } | 5680 } |
5709 #endif | 5681 #endif |
5710 } | 5682 } |
5711 | 5683 |
5712 void Browser::ToggleSpeechInput() { | 5684 void Browser::ToggleSpeechInput() { |
5713 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput(); | 5685 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput(); |
5714 } | 5686 } |
OLD | NEW |