Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(412)

Unified Diff: chrome/browser/ui/ash/system_tray_client.cc

Issue 2395523002: chromeos: Refactor system tray "show settings" commands to use mojo (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/ash/system_tray_client.h ('k') | chrome/browser/ui/ash/system_tray_common.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/ash/system_tray_client.cc
diff --git a/chrome/browser/ui/ash/system_tray_client.cc b/chrome/browser/ui/ash/system_tray_client.cc
index dd8a548458c6af6b7599d712e2592ec44887203c..68f796b041795a7b4c6d5f08437c74521a0c0491 100644
--- a/chrome/browser/ui/ash/system_tray_client.cc
+++ b/chrome/browser/ui/ash/system_tray_client.cc
@@ -6,20 +6,45 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "base/logging.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
+#include "chrome/browser/chromeos/accessibility/accessibility_util.h"
+#include "chrome/browser/chromeos/login/ui/login_display_host.h"
#include "chrome/browser/chromeos/system/system_clock.h"
+#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/ash/ash_util.h"
-#include "chrome/browser/ui/ash/system_tray_common.h"
+#include "chrome/browser/ui/chrome_pages.h"
+#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
+#include "chrome/browser/ui/singleton_tabs.h"
+#include "chrome/common/url_constants.h"
msw 2016/10/04 17:29:00 nit: remove if not used
James Cook 2016/10/04 17:54:11 Sadly, used for various k*SubPage constants, which
+#include "chrome/grit/generated_resources.h"
+#include "chromeos/login/login_state.h"
+#include "content/public/browser/user_metrics.h"
#include "content/public/common/mojo_shell_connection.h"
#include "services/shell/public/cpp/connector.h"
+#include "ui/base/l10n/l10n_util.h"
+
+using chromeos::LoginState;
namespace {
+const char kPaletteSettingsSubPageName[] = "stylus-overlay";
+
SystemTrayClient* g_instance = nullptr;
+void ShowSettingsSubPageForActiveUser(const std::string& sub_page) {
+ chrome::ShowSettingsSubPageForProfile(ProfileManager::GetActiveUserProfile(),
+ sub_page);
+}
+
} // namespace
+// static
+const char SystemTrayClient::kDisplaySettingsSubPageName[] = "display";
+const char SystemTrayClient::kDisplayOverscanSettingsSubPageName[] =
+ "displayOverscan";
+
SystemTrayClient::SystemTrayClient() {
// If this observes clock setting changes before ash comes up the IPCs will
// be queued on |system_tray_|.
@@ -67,55 +92,83 @@ void SystemTrayClient::OnClientConnectionError() {
// ash::mojom::SystemTrayClient:
void SystemTrayClient::ShowSettings() {
- SystemTrayCommon::ShowSettings();
+ ShowSettingsSubPageForActiveUser(std::string());
}
void SystemTrayClient::ShowDateSettings() {
- SystemTrayCommon::ShowDateSettings();
+ content::RecordAction(base::UserMetricsAction("ShowDateOptions"));
+ std::string sub_page =
+ std::string(chrome::kSearchSubPage) + "#" +
+ l10n_util::GetStringUTF8(IDS_OPTIONS_SETTINGS_SECTION_TITLE_DATETIME);
+ // Everybody can change the time zone (even though it is a device setting).
+ chrome::ShowSettingsSubPageForProfile(ProfileManager::GetActiveUserProfile(),
+ sub_page);
}
void SystemTrayClient::ShowDisplaySettings() {
- SystemTrayCommon::ShowDisplaySettings();
+ content::RecordAction(base::UserMetricsAction("ShowDisplayOptions"));
+ ShowSettingsSubPageForActiveUser(kDisplaySettingsSubPageName);
}
void SystemTrayClient::ShowPowerSettings() {
- SystemTrayCommon::ShowPowerSettings();
+ content::RecordAction(base::UserMetricsAction("Tray_ShowPowerOptions"));
+ ShowSettingsSubPageForActiveUser(chrome::kPowerOptionsSubPage);
}
void SystemTrayClient::ShowChromeSlow() {
- SystemTrayCommon::ShowChromeSlow();
+ chrome::ScopedTabbedBrowserDisplayer displayer(
+ ProfileManager::GetPrimaryUserProfile());
+ chrome::ShowSlow(displayer.browser());
}
void SystemTrayClient::ShowIMESettings() {
- SystemTrayCommon::ShowIMESettings();
+ content::RecordAction(base::UserMetricsAction("OpenLanguageOptionsDialog"));
+ ShowSettingsSubPageForActiveUser(chrome::kLanguageOptionsSubPage);
}
void SystemTrayClient::ShowHelp() {
- SystemTrayCommon::ShowHelp();
+ chrome::ShowHelpForProfile(ProfileManager::GetActiveUserProfile(),
+ chrome::HELP_SOURCE_MENU);
}
void SystemTrayClient::ShowAccessibilityHelp() {
- SystemTrayCommon::ShowAccessibilityHelp();
+ chrome::ScopedTabbedBrowserDisplayer displayer(
+ ProfileManager::GetActiveUserProfile());
+ chromeos::accessibility::ShowAccessibilityHelp(displayer.browser());
}
void SystemTrayClient::ShowAccessibilitySettings() {
- SystemTrayCommon::ShowAccessibilitySettings();
+ content::RecordAction(base::UserMetricsAction("ShowAccessibilitySettings"));
+ std::string sub_page = std::string(chrome::kSearchSubPage) + "#" +
+ l10n_util::GetStringUTF8(
+ IDS_OPTIONS_SETTINGS_SECTION_TITLE_ACCESSIBILITY);
+ ShowSettingsSubPageForActiveUser(sub_page);
}
void SystemTrayClient::ShowPaletteHelp() {
- SystemTrayCommon::ShowPaletteHelp();
+ chrome::ScopedTabbedBrowserDisplayer displayer(
+ ProfileManager::GetActiveUserProfile());
+ chrome::ShowSingletonTab(displayer.browser(),
+ GURL(chrome::kChromePaletteHelpURL));
}
void SystemTrayClient::ShowPaletteSettings() {
- SystemTrayCommon::ShowPaletteSettings();
+ content::RecordAction(base::UserMetricsAction("ShowPaletteOptions"));
+ ShowSettingsSubPageForActiveUser(kPaletteSettingsSubPageName);
}
void SystemTrayClient::ShowPublicAccountInfo() {
- SystemTrayCommon::ShowPublicAccountInfo();
+ chrome::ScopedTabbedBrowserDisplayer displayer(
+ ProfileManager::GetActiveUserProfile());
+ chrome::ShowPolicy(displayer.browser());
}
void SystemTrayClient::ShowProxySettings() {
- SystemTrayCommon::ShowProxySettings();
+ LoginState* login_state = LoginState::Get();
+ // User is not logged in.
+ CHECK(!login_state->IsUserLoggedIn() ||
+ login_state->GetLoggedInUserType() == LoginState::LOGGED_IN_USER_NONE);
+ chromeos::LoginDisplayHost::default_host()->OpenProxySettings();
}
////////////////////////////////////////////////////////////////////////////////
« no previous file with comments | « chrome/browser/ui/ash/system_tray_client.h ('k') | chrome/browser/ui/ash/system_tray_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698