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 2182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2330 // We record the user metric for this event in WrenchMenu::RunMenu. | 2330 // We record the user metric for this event in WrenchMenu::RunMenu. |
2331 window_->ShowAppMenu(); | 2331 window_->ShowAppMenu(); |
2332 } | 2332 } |
2333 | 2333 |
2334 void Browser::ShowAvatarMenu() { | 2334 void Browser::ShowAvatarMenu() { |
2335 window_->ShowAvatarBubbleFromAvatarButton(); | 2335 window_->ShowAvatarBubbleFromAvatarButton(); |
2336 } | 2336 } |
2337 | 2337 |
2338 void Browser::ShowHistoryTab() { | 2338 void Browser::ShowHistoryTab() { |
2339 content::RecordAction(UserMetricsAction("ShowHistory")); | 2339 content::RecordAction(UserMetricsAction("ShowHistory")); |
2340 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2340 browser::NavigateParams params(GetSingletonTabNavigateParams( |
2341 ShowSingletonTabOverwritingNTP( | 2341 GURL(std::string(chrome::kChromeUIUberURL) + |
2342 GetSingletonTabNavigateParams(GURL(chrome::kChromeUIHistoryFrameURL))); | 2342 chrome::kChromeUIHistoryHost))); |
2343 } else { | 2343 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; |
2344 browser::NavigateParams params(GetSingletonTabNavigateParams( | 2344 ShowSingletonTabOverwritingNTP(params); |
2345 GURL(std::string(chrome::kChromeUIUberURL) + | |
2346 chrome::kChromeUIHistoryHost))); | |
2347 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | |
2348 ShowSingletonTabOverwritingNTP(params); | |
2349 } | |
2350 } | 2345 } |
2351 | 2346 |
2352 void Browser::ShowDownloadsTab() { | 2347 void Browser::ShowDownloadsTab() { |
2353 content::RecordAction(UserMetricsAction("ShowDownloads")); | 2348 content::RecordAction(UserMetricsAction("ShowDownloads")); |
2354 #if !defined(OS_CHROMEOS) | 2349 #if !defined(OS_CHROMEOS) |
2355 // ChromiumOS uses ActiveDownloadsUI instead of of DownloadShelf. | 2350 // ChromiumOS uses ActiveDownloadsUI instead of of DownloadShelf. |
2356 if (window()) { | 2351 if (window()) { |
2357 DownloadShelf* shelf = window()->GetDownloadShelf(); | 2352 DownloadShelf* shelf = window()->GetDownloadShelf(); |
2358 if (shelf->IsShowing()) | 2353 if (shelf->IsShowing()) |
2359 shelf->Close(); | 2354 shelf->Close(); |
2360 } | 2355 } |
2361 #endif | 2356 #endif |
2362 ShowSingletonTabOverwritingNTP( | 2357 ShowSingletonTabOverwritingNTP( |
2363 GetSingletonTabNavigateParams(GURL(chrome::kChromeUIDownloadsURL))); | 2358 GetSingletonTabNavigateParams(GURL(chrome::kChromeUIDownloadsURL))); |
2364 } | 2359 } |
2365 | 2360 |
2366 void Browser::ShowExtensionsTab() { | 2361 void Browser::ShowExtensionsTab() { |
2367 content::RecordAction(UserMetricsAction("ShowExtensions")); | 2362 content::RecordAction(UserMetricsAction("ShowExtensions")); |
2368 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2363 browser::NavigateParams params(GetSingletonTabNavigateParams( |
2369 ShowOptionsTab(chrome::kExtensionsSubPage); | 2364 GURL(std::string(chrome::kChromeUIUberURL) + |
2370 } else { | 2365 chrome::kChromeUIExtensionsHost))); |
2371 browser::NavigateParams params(GetSingletonTabNavigateParams( | 2366 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; |
2372 GURL(std::string(chrome::kChromeUIUberURL) + | 2367 ShowSingletonTabOverwritingNTP(params); |
2373 chrome::kChromeUIExtensionsHost))); | |
2374 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | |
2375 ShowSingletonTabOverwritingNTP(params); | |
2376 } | |
2377 } | 2368 } |
2378 | 2369 |
2379 void Browser::ShowAboutConflictsTab() { | 2370 void Browser::ShowAboutConflictsTab() { |
2380 content::RecordAction(UserMetricsAction("AboutConflicts")); | 2371 content::RecordAction(UserMetricsAction("AboutConflicts")); |
2381 ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL)); | 2372 ShowSingletonTab(GURL(chrome::kChromeUIConflictsURL)); |
2382 } | 2373 } |
2383 | 2374 |
2384 void Browser::ShowBrokenPageTab(WebContents* contents) { | 2375 void Browser::ShowBrokenPageTab(WebContents* contents) { |
2385 content::RecordAction(UserMetricsAction("Feedback")); | 2376 content::RecordAction(UserMetricsAction("Feedback")); |
2386 string16 page_title = contents->GetTitle(); | 2377 string16 page_title = contents->GetTitle(); |
2387 NavigationEntry* entry = contents->GetController().GetActiveEntry(); | 2378 NavigationEntry* entry = contents->GetController().GetActiveEntry(); |
2388 if (!entry) | 2379 if (!entry) |
2389 return; | 2380 return; |
2390 std::string page_url = entry->GetURL().spec(); | 2381 std::string page_url = entry->GetURL().spec(); |
2391 std::vector<std::string> subst; | 2382 std::vector<std::string> subst; |
2392 subst.push_back(UTF16ToASCII(page_title)); | 2383 subst.push_back(UTF16ToASCII(page_title)); |
2393 subst.push_back(page_url); | 2384 subst.push_back(page_url); |
2394 std::string report_page_url = | 2385 std::string report_page_url = |
2395 ReplaceStringPlaceholders(kBrokenPageUrl, subst, NULL); | 2386 ReplaceStringPlaceholders(kBrokenPageUrl, subst, NULL); |
2396 ShowSingletonTab(GURL(report_page_url)); | 2387 ShowSingletonTab(GURL(report_page_url)); |
2397 } | 2388 } |
2398 | 2389 |
2399 void Browser::ShowOptionsTab(const std::string& sub_page) { | 2390 void Browser::ShowOptionsTab(const std::string& sub_page) { |
2400 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2391 std::string url; |
2401 browser::NavigateParams params(GetSingletonTabNavigateParams( | 2392 if (sub_page == chrome::kExtensionsSubPage) { |
2402 GURL(chrome::kChromeUISettingsURL + sub_page))); | 2393 url = std::string(chrome::kChromeUIUberURL) + |
2403 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | 2394 chrome::kChromeUIExtensionsHost; |
2404 ShowSingletonTabOverwritingNTP(params); | 2395 #if defined(OS_CHROMEOS) |
2396 } else if (sub_page.find(chrome::kInternetOptionsSubPage, 0) != | |
2397 std::string::npos) { | |
2398 std::string::size_type loc = sub_page.find("?", 0); | |
2399 std::string network_page = loc != std::string::npos ? | |
2400 sub_page.substr(loc) : std::string(); | |
2401 url = std::string(chrome::kChromeUIUberURL) + | |
2402 chrome::kChromeUISettingsHost + network_page; | |
2403 #endif | |
2405 } else { | 2404 } else { |
2406 std::string url; | 2405 url = std::string(chrome::kChromeUIUberURL) + |
2407 if (sub_page == chrome::kExtensionsSubPage) { | 2406 chrome::kChromeUISettingsHost + '/' + sub_page; |
2408 url = std::string(chrome::kChromeUIUberURL) + | |
2409 chrome::kChromeUIExtensionsHost; | |
2410 #if defined(OS_CHROMEOS) | |
2411 } else if (sub_page.find(chrome::kInternetOptionsSubPage, 0) != | |
2412 std::string::npos) { | |
2413 std::string::size_type loc = sub_page.find("?", 0); | |
2414 std::string network_page = loc != std::string::npos ? | |
2415 sub_page.substr(loc) : std::string(); | |
2416 url = std::string(chrome::kChromeUIUberURL) + | |
2417 chrome::kChromeUISettingsHost + network_page; | |
2418 #endif | |
2419 } else { | |
2420 url = std::string(chrome::kChromeUIUberURL) + | |
2421 chrome::kChromeUISettingsHost + '/' + sub_page; | |
2422 } | |
2423 browser::NavigateParams params(GetSingletonTabNavigateParams(GURL(url))); | |
2424 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | |
2425 ShowSingletonTabOverwritingNTP(params); | |
2426 } | 2407 } |
2408 browser::NavigateParams params(GetSingletonTabNavigateParams(GURL(url))); | |
2409 params.path_behavior = browser::NavigateParams::IGNORE_AND_NAVIGATE; | |
2410 ShowSingletonTabOverwritingNTP(params); | |
2427 } | 2411 } |
2428 | 2412 |
2429 void Browser::OpenClearBrowsingDataDialog() { | 2413 void Browser::OpenClearBrowsingDataDialog() { |
2430 content::RecordAction(UserMetricsAction("ClearBrowsingData_ShowDlg")); | 2414 content::RecordAction(UserMetricsAction("ClearBrowsingData_ShowDlg")); |
2431 ShowOptionsTab(chrome::kClearBrowserDataSubPage); | 2415 ShowOptionsTab(chrome::kClearBrowserDataSubPage); |
2432 } | 2416 } |
2433 | 2417 |
2434 void Browser::OpenOptionsDialog() { | 2418 void Browser::OpenOptionsDialog() { |
2435 content::RecordAction(UserMetricsAction("ShowOptions")); | 2419 content::RecordAction(UserMetricsAction("ShowOptions")); |
2436 ShowOptionsTab(""); | 2420 ShowOptionsTab(""); |
2437 } | 2421 } |
2438 | 2422 |
2439 void Browser::OpenPasswordManager() { | 2423 void Browser::OpenPasswordManager() { |
2440 content::RecordAction(UserMetricsAction("Options_ShowPasswordManager")); | 2424 content::RecordAction(UserMetricsAction("Options_ShowPasswordManager")); |
2441 ShowOptionsTab(chrome::kPasswordManagerSubPage); | 2425 ShowOptionsTab(chrome::kPasswordManagerSubPage); |
2442 } | 2426 } |
2443 | 2427 |
2444 void Browser::OpenImportSettingsDialog() { | 2428 void Browser::OpenImportSettingsDialog() { |
2445 content::RecordAction(UserMetricsAction("Import_ShowDlg")); | 2429 content::RecordAction(UserMetricsAction("Import_ShowDlg")); |
2446 ShowOptionsTab(chrome::kImportDataSubPage); | 2430 ShowOptionsTab(chrome::kImportDataSubPage); |
2447 } | 2431 } |
2448 | 2432 |
2449 void Browser::OpenInstantConfirmDialog() { | 2433 void Browser::OpenInstantConfirmDialog() { |
2450 ShowOptionsTab(chrome::kInstantConfirmPage); | 2434 ShowOptionsTab(chrome::kInstantConfirmPage); |
2451 } | 2435 } |
2452 | 2436 |
2453 void Browser::OpenAboutChromeDialog() { | 2437 void Browser::OpenAboutChromeDialog() { |
2454 content::RecordAction(UserMetricsAction("AboutChrome")); | 2438 content::RecordAction(UserMetricsAction("AboutChrome")); |
2455 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) { | 2439 #if !defined(OS_WIN) && !defined(OS_MACOSX) |
2456 #if defined(OS_CHROMEOS) | 2440 ShowSingletonTab(GURL(chrome::kChromeUIUberURL)); |
2457 std::string chrome_settings(chrome::kChromeUISettingsURL); | |
2458 ShowSingletonTab( | |
2459 GURL(chrome_settings.append(chrome::kAboutOptionsSubPage))); | |
2460 #else | 2441 #else |
2461 window_->ShowAboutChromeDialog(); | 2442 // crbug.com/115123. |
2443 window_->ShowAboutChromeDialog(); | |
2462 #endif | 2444 #endif |
csilv
2012/03/22 19:41:02
FYI, I commited a change for the Mac to use the we
| |
2463 } else { | |
2464 #if !defined(OS_WIN) && !defined(OS_MACOSX) | |
2465 ShowSingletonTab(GURL(chrome::kChromeUIUberURL)); | |
2466 #else | |
2467 // crbug.com/115123. | |
2468 window_->ShowAboutChromeDialog(); | |
2469 #endif | |
2470 } | |
2471 } | 2445 } |
2472 | 2446 |
2473 void Browser::OpenUpdateChromeDialog() { | 2447 void Browser::OpenUpdateChromeDialog() { |
2474 content::RecordAction(UserMetricsAction("UpdateChrome")); | 2448 content::RecordAction(UserMetricsAction("UpdateChrome")); |
2475 window_->ShowUpdateChromeDialog(); | 2449 window_->ShowUpdateChromeDialog(); |
2476 } | 2450 } |
2477 | 2451 |
2478 void Browser::ShowHelpTab() { | 2452 void Browser::ShowHelpTab() { |
2479 content::RecordAction(UserMetricsAction("ShowHelpTab")); | 2453 content::RecordAction(UserMetricsAction("ShowHelpTab")); |
2480 ShowSingletonTab(GURL(chrome::kChromeHelpURL)); | 2454 ShowSingletonTab(GURL(chrome::kChromeHelpURL)); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2518 void Browser::Shutdown() { | 2492 void Browser::Shutdown() { |
2519 content::RecordAction(UserMetricsAction("Shutdown")); | 2493 content::RecordAction(UserMetricsAction("Shutdown")); |
2520 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> | 2494 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> |
2521 RequestShutdown(); | 2495 RequestShutdown(); |
2522 } | 2496 } |
2523 | 2497 |
2524 void Browser::OpenAdvancedOptionsDialog() { | 2498 void Browser::OpenAdvancedOptionsDialog() { |
2525 // TODO(csilv): The main purpose of this method is to expose the date & time | 2499 // TODO(csilv): The main purpose of this method is to expose the date & time |
2526 // settings from the clock. Simply showing the options tab not quite enough. | 2500 // settings from the clock. Simply showing the options tab not quite enough. |
2527 content::RecordAction(UserMetricsAction("OpenSystemOptionsDialog")); | 2501 content::RecordAction(UserMetricsAction("OpenSystemOptionsDialog")); |
2528 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableUberPage)) | 2502 ShowOptionsTab(""); |
2529 ShowOptionsTab(chrome::kSystemOptionsSubPage); | |
2530 else | |
2531 ShowOptionsTab(""); | |
2532 } | 2503 } |
2533 | 2504 |
2534 void Browser::OpenInternetOptionsDialog() { | 2505 void Browser::OpenInternetOptionsDialog() { |
2535 content::RecordAction(UserMetricsAction("OpenInternetOptionsDialog")); | 2506 content::RecordAction(UserMetricsAction("OpenInternetOptionsDialog")); |
2536 ShowOptionsTab(chrome::kInternetOptionsSubPage); | 2507 ShowOptionsTab(chrome::kInternetOptionsSubPage); |
2537 } | 2508 } |
2538 | 2509 |
2539 void Browser::OpenLanguageOptionsDialog() { | 2510 void Browser::OpenLanguageOptionsDialog() { |
2540 content::RecordAction(UserMetricsAction("OpenLanguageOptionsDialog")); | 2511 content::RecordAction(UserMetricsAction("OpenLanguageOptionsDialog")); |
2541 ShowOptionsTab(chrome::kLanguageOptionsSubPage); | 2512 ShowOptionsTab(chrome::kLanguageOptionsSubPage); |
(...skipping 1522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4064 | 4035 |
4065 void Browser::ShowRepostFormWarningDialog(WebContents* source) { | 4036 void Browser::ShowRepostFormWarningDialog(WebContents* source) { |
4066 browser::ShowTabModalConfirmDialog( | 4037 browser::ShowTabModalConfirmDialog( |
4067 new RepostFormWarningController(source), | 4038 new RepostFormWarningController(source), |
4068 TabContentsWrapper::GetCurrentWrapperForContents(source)); | 4039 TabContentsWrapper::GetCurrentWrapperForContents(source)); |
4069 } | 4040 } |
4070 | 4041 |
4071 void Browser::ShowContentSettingsPage(ContentSettingsType content_type) { | 4042 void Browser::ShowContentSettingsPage(ContentSettingsType content_type) { |
4072 ShowOptionsTab( | 4043 ShowOptionsTab( |
4073 chrome::kContentSettingsExceptionsSubPage + std::string(kHashMark) + | 4044 chrome::kContentSettingsExceptionsSubPage + std::string(kHashMark) + |
4074 ContentSettingsHandler::ContentSettingsTypeToGroupName(content_type)); | 4045 options2::ContentSettingsHandler::ContentSettingsTypeToGroupName( |
4046 content_type)); | |
4075 } | 4047 } |
4076 | 4048 |
4077 void Browser::ShowCollectedCookiesDialog(TabContentsWrapper* wrapper) { | 4049 void Browser::ShowCollectedCookiesDialog(TabContentsWrapper* wrapper) { |
4078 browser::ShowCollectedCookiesDialog(window()->GetNativeHandle(), wrapper); | 4050 browser::ShowCollectedCookiesDialog(window()->GetNativeHandle(), wrapper); |
4079 } | 4051 } |
4080 | 4052 |
4081 bool Browser::ShouldAddNavigationToHistory( | 4053 bool Browser::ShouldAddNavigationToHistory( |
4082 const history::HistoryAddPageArgs& add_page_args, | 4054 const history::HistoryAddPageArgs& add_page_args, |
4083 content::NavigationType navigation_type) { | 4055 content::NavigationType navigation_type) { |
4084 // Don't update history if running as app. | 4056 // Don't update history if running as app. |
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5693 } else { | 5665 } else { |
5694 LoginUIServiceFactory::GetForProfile( | 5666 LoginUIServiceFactory::GetForProfile( |
5695 profile()->GetOriginalProfile())->ShowLoginUI(false); | 5667 profile()->GetOriginalProfile())->ShowLoginUI(false); |
5696 } | 5668 } |
5697 #endif | 5669 #endif |
5698 } | 5670 } |
5699 | 5671 |
5700 void Browser::ToggleSpeechInput() { | 5672 void Browser::ToggleSpeechInput() { |
5701 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput(); | 5673 GetSelectedWebContents()->GetRenderViewHost()->ToggleSpeechInput(); |
5702 } | 5674 } |
OLD | NEW |