| 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/help/help_handler.h" | 5 #include "chrome/browser/ui/webui/help/help_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 #if defined(OS_MACOSX) | 38 #if defined(OS_MACOSX) |
| 39 #include "chrome/browser/mac/obsolete_system.h" | 39 #include "chrome/browser/mac/obsolete_system.h" |
| 40 #endif | 40 #endif |
| 41 | 41 |
| 42 #if defined(OS_CHROMEOS) | 42 #if defined(OS_CHROMEOS) |
| 43 #include "base/files/file_util_proxy.h" | 43 #include "base/files/file_util_proxy.h" |
| 44 #include "base/i18n/time_formatting.h" | 44 #include "base/i18n/time_formatting.h" |
| 45 #include "base/prefs/pref_service.h" | 45 #include "base/prefs/pref_service.h" |
| 46 #include "base/sys_info.h" | 46 #include "base/sys_info.h" |
| 47 #include "chrome/browser/chromeos/login/users/user_manager.h" | |
| 48 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 47 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 49 #include "chrome/browser/chromeos/settings/cros_settings.h" | 48 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 50 #include "chrome/browser/profiles/profile.h" | 49 #include "chrome/browser/profiles/profile.h" |
| 51 #include "chrome/browser/ui/webui/help/help_utils_chromeos.h" | 50 #include "chrome/browser/ui/webui/help/help_utils_chromeos.h" |
| 52 #include "chromeos/chromeos_switches.h" | 51 #include "chromeos/chromeos_switches.h" |
| 53 #include "chromeos/dbus/dbus_thread_manager.h" | 52 #include "chromeos/dbus/dbus_thread_manager.h" |
| 54 #include "chromeos/dbus/power_manager_client.h" | 53 #include "chromeos/dbus/power_manager_client.h" |
| 54 #include "components/user_manager/user_manager.h" |
| 55 #endif | 55 #endif |
| 56 | 56 |
| 57 using base::ListValue; | 57 using base::ListValue; |
| 58 using content::BrowserThread; | 58 using content::BrowserThread; |
| 59 | 59 |
| 60 namespace { | 60 namespace { |
| 61 | 61 |
| 62 #if defined(OS_CHROMEOS) | 62 #if defined(OS_CHROMEOS) |
| 63 | 63 |
| 64 // Returns message that informs user that for update it's better to | 64 // Returns message that informs user that for update it's better to |
| (...skipping 20 matching lines...) Expand all Loading... |
| 85 chromeos::CrosSettings::Get()->GetBoolean(chromeos::kReleaseChannelDelegated, | 85 chromeos::CrosSettings::Get()->GetBoolean(chromeos::kReleaseChannelDelegated, |
| 86 &value); | 86 &value); |
| 87 | 87 |
| 88 // On a managed machine we delegate this setting to the users of the same | 88 // On a managed machine we delegate this setting to the users of the same |
| 89 // domain only if the policy value is "domain". | 89 // domain only if the policy value is "domain". |
| 90 if (IsEnterpriseManaged()) { | 90 if (IsEnterpriseManaged()) { |
| 91 if (!value) | 91 if (!value) |
| 92 return false; | 92 return false; |
| 93 // Get the currently logged in user and strip the domain part only. | 93 // Get the currently logged in user and strip the domain part only. |
| 94 std::string domain = ""; | 94 std::string domain = ""; |
| 95 std::string user = chromeos::UserManager::Get()->GetLoggedInUser()->email(); | 95 std::string user = |
| 96 user_manager::UserManager::Get()->GetLoggedInUser()->email(); |
| 96 size_t at_pos = user.find('@'); | 97 size_t at_pos = user.find('@'); |
| 97 if (at_pos != std::string::npos && at_pos + 1 < user.length()) | 98 if (at_pos != std::string::npos && at_pos + 1 < user.length()) |
| 98 domain = user.substr(user.find('@') + 1); | 99 domain = user.substr(user.find('@') + 1); |
| 99 policy::BrowserPolicyConnectorChromeOS* connector = | 100 policy::BrowserPolicyConnectorChromeOS* connector = |
| 100 g_browser_process->platform_part()->browser_policy_connector_chromeos(); | 101 g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
| 101 return domain == connector->GetEnterpriseDomain(); | 102 return domain == connector->GetEnterpriseDomain(); |
| 102 } else if (chromeos::UserManager::Get()->IsCurrentUserOwner()) { | 103 } else if (user_manager::UserManager::Get()->IsCurrentUserOwner()) { |
| 103 // On non managed machines we have local owner who is the only one to change | 104 // On non managed machines we have local owner who is the only one to change |
| 104 // anything. Ensure that ReleaseChannelDelegated is false. | 105 // anything. Ensure that ReleaseChannelDelegated is false. |
| 105 return !value; | 106 return !value; |
| 106 } | 107 } |
| 107 return false; | 108 return false; |
| 108 } | 109 } |
| 109 | 110 |
| 110 #endif // defined(OS_CHROMEOS) | 111 #endif // defined(OS_CHROMEOS) |
| 111 | 112 |
| 112 } // namespace | 113 } // namespace |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 base::string16 channel; | 424 base::string16 channel; |
| 424 bool is_powerwash_allowed; | 425 bool is_powerwash_allowed; |
| 425 if (!args->GetString(0, &channel) || | 426 if (!args->GetString(0, &channel) || |
| 426 !args->GetBoolean(1, &is_powerwash_allowed)) { | 427 !args->GetBoolean(1, &is_powerwash_allowed)) { |
| 427 LOG(ERROR) << "Can't parse SetChannel() args"; | 428 LOG(ERROR) << "Can't parse SetChannel() args"; |
| 428 return; | 429 return; |
| 429 } | 430 } |
| 430 | 431 |
| 431 version_updater_->SetChannel(base::UTF16ToUTF8(channel), | 432 version_updater_->SetChannel(base::UTF16ToUTF8(channel), |
| 432 is_powerwash_allowed); | 433 is_powerwash_allowed); |
| 433 if (chromeos::UserManager::Get()->IsCurrentUserOwner()) { | 434 if (user_manager::UserManager::Get()->IsCurrentUserOwner()) { |
| 434 // Check for update after switching release channel. | 435 // Check for update after switching release channel. |
| 435 version_updater_->CheckForUpdate(base::Bind(&HelpHandler::SetUpdateStatus, | 436 version_updater_->CheckForUpdate(base::Bind(&HelpHandler::SetUpdateStatus, |
| 436 base::Unretained(this))); | 437 base::Unretained(this))); |
| 437 } | 438 } |
| 438 } | 439 } |
| 439 | 440 |
| 440 void HelpHandler::RelaunchAndPowerwash(const base::ListValue* args) { | 441 void HelpHandler::RelaunchAndPowerwash(const base::ListValue* args) { |
| 441 DCHECK(args->empty()); | 442 DCHECK(args->empty()); |
| 442 | 443 |
| 443 if (IsEnterpriseManaged()) | 444 if (IsEnterpriseManaged()) |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 web_ui()->CallJavascriptFunction( | 549 web_ui()->CallJavascriptFunction( |
| 549 "help.HelpPage.updateCurrentChannel", base::StringValue(channel)); | 550 "help.HelpPage.updateCurrentChannel", base::StringValue(channel)); |
| 550 } | 551 } |
| 551 | 552 |
| 552 void HelpHandler::OnTargetChannel(const std::string& channel) { | 553 void HelpHandler::OnTargetChannel(const std::string& channel) { |
| 553 web_ui()->CallJavascriptFunction( | 554 web_ui()->CallJavascriptFunction( |
| 554 "help.HelpPage.updateTargetChannel", base::StringValue(channel)); | 555 "help.HelpPage.updateTargetChannel", base::StringValue(channel)); |
| 555 } | 556 } |
| 556 | 557 |
| 557 #endif // defined(OS_CHROMEOS) | 558 #endif // defined(OS_CHROMEOS) |
| OLD | NEW |