| Index: chrome/browser/ui/webui/options/managed_user_import_handler.cc
|
| diff --git a/chrome/browser/ui/webui/options/managed_user_import_handler.cc b/chrome/browser/ui/webui/options/managed_user_import_handler.cc
|
| deleted file mode 100644
|
| index 8455c971683db0130ae616a93d56d8a2c959be12..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/webui/options/managed_user_import_handler.cc
|
| +++ /dev/null
|
| @@ -1,251 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/ui/webui/options/managed_user_import_handler.h"
|
| -
|
| -#include <set>
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/prefs/pref_service.h"
|
| -#include "base/values.h"
|
| -#include "chrome/browser/browser_process.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/profiles/profile_avatar_icon_util.h"
|
| -#include "chrome/browser/profiles/profile_info_cache.h"
|
| -#include "chrome/browser/profiles/profile_manager.h"
|
| -#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| -#include "chrome/browser/signin/signin_manager_factory.h"
|
| -#include "chrome/browser/supervised_user/supervised_user_constants.h"
|
| -#include "chrome/browser/supervised_user/supervised_user_shared_settings_service.h"
|
| -#include "chrome/browser/supervised_user/supervised_user_shared_settings_service_factory.h"
|
| -#include "chrome/browser/supervised_user/supervised_user_sync_service.h"
|
| -#include "chrome/browser/supervised_user/supervised_user_sync_service_factory.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "chrome/common/url_constants.h"
|
| -#include "components/signin/core/browser/profile_oauth2_token_service.h"
|
| -#include "components/signin/core/browser/signin_error_controller.h"
|
| -#include "components/signin/core/browser/signin_manager.h"
|
| -#include "content/public/browser/web_ui.h"
|
| -#include "grit/generated_resources.h"
|
| -#include "grit/theme_resources.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -
|
| -namespace {
|
| -
|
| -scoped_ptr<base::ListValue> GetAvatarIcons() {
|
| - scoped_ptr<base::ListValue> avatar_icons(new base::ListValue);
|
| - for (size_t i = 0; i < profiles::GetDefaultAvatarIconCount(); ++i) {
|
| - std::string avatar_url = profiles::GetDefaultAvatarIconUrl(i);
|
| - avatar_icons->Append(new base::StringValue(avatar_url));
|
| - }
|
| -
|
| - return avatar_icons.Pass();
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace options {
|
| -
|
| -ManagedUserImportHandler::ManagedUserImportHandler()
|
| - : observer_(this),
|
| - weak_ptr_factory_(this) {}
|
| -
|
| -ManagedUserImportHandler::~ManagedUserImportHandler() {
|
| - Profile* profile = Profile::FromWebUI(web_ui());
|
| - if (!profile->IsSupervised()) {
|
| - SupervisedUserSyncService* service =
|
| - SupervisedUserSyncServiceFactory::GetForProfile(profile);
|
| - if (service)
|
| - service->RemoveObserver(this);
|
| - subscription_.reset();
|
| - }
|
| -}
|
| -
|
| -void ManagedUserImportHandler::GetLocalizedValues(
|
| - base::DictionaryValue* localized_strings) {
|
| - DCHECK(localized_strings);
|
| -
|
| - static OptionsStringResource resources[] = {
|
| - { "managedUserImportTitle", IDS_IMPORT_EXISTING_SUPERVISED_USER_TITLE },
|
| - { "managedUserImportText", IDS_IMPORT_EXISTING_SUPERVISED_USER_TEXT },
|
| - { "createNewUserLink", IDS_CREATE_NEW_USER_LINK },
|
| - { "managedUserImportOk", IDS_IMPORT_EXISTING_SUPERVISED_USER_OK },
|
| - { "managedUserImportSigninError",
|
| - IDS_SUPERVISED_USER_IMPORT_SIGN_IN_ERROR },
|
| - { "managedUserAlreadyOnThisDevice",
|
| - IDS_SUPERVISED_USER_ALREADY_ON_THIS_DEVICE },
|
| - { "noExistingManagedUsers", IDS_SUPERVISED_USER_NO_EXISTING_ERROR },
|
| - { "managedUserSelectAvatarTitle",
|
| - IDS_SUPERVISED_USER_SELECT_AVATAR_TITLE },
|
| - { "managedUserSelectAvatarText", IDS_SUPERVISED_USER_SELECT_AVATAR_TEXT },
|
| - { "managedUserSelectAvatarOk", IDS_SUPERVISED_USER_SELECT_AVATAR_OK },
|
| - };
|
| -
|
| - RegisterStrings(localized_strings, resources, arraysize(resources));
|
| - localized_strings->Set("avatarIcons", GetAvatarIcons().release());
|
| -}
|
| -
|
| -void ManagedUserImportHandler::InitializeHandler() {
|
| - Profile* profile = Profile::FromWebUI(web_ui());
|
| - if (!profile->IsSupervised()) {
|
| - SupervisedUserSyncService* sync_service =
|
| - SupervisedUserSyncServiceFactory::GetForProfile(profile);
|
| - if (sync_service) {
|
| - sync_service->AddObserver(this);
|
| - observer_.Add(ProfileOAuth2TokenServiceFactory::GetForProfile(profile)->
|
| - signin_error_controller());
|
| - SupervisedUserSharedSettingsService* settings_service =
|
| - SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext(
|
| - profile);
|
| - subscription_ = settings_service->Subscribe(
|
| - base::Bind(&ManagedUserImportHandler::OnSharedSettingChanged,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| - } else {
|
| - DCHECK(!SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext(
|
| - profile));
|
| - DCHECK(!ProfileOAuth2TokenServiceFactory::GetForProfile(profile));
|
| - }
|
| - }
|
| -}
|
| -
|
| -void ManagedUserImportHandler::RegisterMessages() {
|
| - web_ui()->RegisterMessageCallback("requestManagedUserImportUpdate",
|
| - base::Bind(&ManagedUserImportHandler::RequestManagedUserImportUpdate,
|
| - base::Unretained(this)));
|
| -}
|
| -
|
| -void ManagedUserImportHandler::OnSupervisedUsersChanged() {
|
| - FetchManagedUsers();
|
| -}
|
| -
|
| -void ManagedUserImportHandler::FetchManagedUsers() {
|
| - web_ui()->CallJavascriptFunction("options.ManagedUserListData.resetPromise");
|
| - RequestManagedUserImportUpdate(NULL);
|
| -}
|
| -
|
| -void ManagedUserImportHandler::RequestManagedUserImportUpdate(
|
| - const base::ListValue* /* args */) {
|
| - if (Profile::FromWebUI(web_ui())->IsSupervised())
|
| - return;
|
| -
|
| - if (!IsAccountConnected() || HasAuthError()) {
|
| - ClearManagedUsersAndShowError();
|
| - } else {
|
| - SupervisedUserSyncService* supervised_user_sync_service =
|
| - SupervisedUserSyncServiceFactory::GetForProfile(
|
| - Profile::FromWebUI(web_ui()));
|
| - if (supervised_user_sync_service) {
|
| - supervised_user_sync_service->GetSupervisedUsersAsync(
|
| - base::Bind(&ManagedUserImportHandler::SendExistingManagedUsers,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| - }
|
| - }
|
| -}
|
| -
|
| -void ManagedUserImportHandler::SendExistingManagedUsers(
|
| - const base::DictionaryValue* dict) {
|
| - DCHECK(dict);
|
| - const ProfileInfoCache& cache =
|
| - g_browser_process->profile_manager()->GetProfileInfoCache();
|
| -
|
| - // Collect the ids of local supervised user profiles.
|
| - std::set<std::string> supervised_user_ids;
|
| - for (size_t i = 0; i < cache.GetNumberOfProfiles(); ++i) {
|
| - if (cache.ProfileIsSupervisedAtIndex(i))
|
| - supervised_user_ids.insert(cache.GetSupervisedUserIdOfProfileAtIndex(i));
|
| - }
|
| -
|
| - base::ListValue supervised_users;
|
| - Profile* profile = Profile::FromWebUI(web_ui());
|
| - SupervisedUserSharedSettingsService* service =
|
| - SupervisedUserSharedSettingsServiceFactory::GetForBrowserContext(profile);
|
| - for (base::DictionaryValue::Iterator it(*dict); !it.IsAtEnd(); it.Advance()) {
|
| - const base::DictionaryValue* value = NULL;
|
| - bool success = it.value().GetAsDictionary(&value);
|
| - DCHECK(success);
|
| - std::string name;
|
| - value->GetString(SupervisedUserSyncService::kName, &name);
|
| -
|
| - base::DictionaryValue* supervised_user = new base::DictionaryValue;
|
| - supervised_user->SetString("id", it.key());
|
| - supervised_user->SetString("name", name);
|
| -
|
| - int avatar_index = SupervisedUserSyncService::kNoAvatar;
|
| - const base::Value* avatar_index_value =
|
| - service->GetValue(it.key(), supervised_users::kChromeAvatarIndex);
|
| - if (avatar_index_value) {
|
| - success = avatar_index_value->GetAsInteger(&avatar_index);
|
| - } else {
|
| - // Check if there is a legacy avatar index stored.
|
| - std::string avatar_str;
|
| - value->GetString(SupervisedUserSyncService::kChromeAvatar, &avatar_str);
|
| - success =
|
| - SupervisedUserSyncService::GetAvatarIndex(avatar_str, &avatar_index);
|
| - }
|
| - DCHECK(success);
|
| - supervised_user->SetBoolean(
|
| - "needAvatar",
|
| - avatar_index == SupervisedUserSyncService::kNoAvatar);
|
| -
|
| - std::string supervised_user_icon =
|
| - std::string(chrome::kChromeUIThemeURL) +
|
| - "IDR_SUPERVISED_USER_PLACEHOLDER";
|
| - std::string avatar_url =
|
| - avatar_index == SupervisedUserSyncService::kNoAvatar ?
|
| - supervised_user_icon :
|
| - profiles::GetDefaultAvatarIconUrl(avatar_index);
|
| - supervised_user->SetString("iconURL", avatar_url);
|
| - bool on_current_device =
|
| - supervised_user_ids.find(it.key()) != supervised_user_ids.end();
|
| - supervised_user->SetBoolean("onCurrentDevice", on_current_device);
|
| -
|
| - supervised_users.Append(supervised_user);
|
| - }
|
| -
|
| - web_ui()->CallJavascriptFunction(
|
| - "options.ManagedUserListData.receiveExistingManagedUsers",
|
| - supervised_users);
|
| -}
|
| -
|
| -void ManagedUserImportHandler::ClearManagedUsersAndShowError() {
|
| - web_ui()->CallJavascriptFunction("options.ManagedUserListData.onSigninError");
|
| -}
|
| -
|
| -bool ManagedUserImportHandler::IsAccountConnected() const {
|
| - Profile* profile = Profile::FromWebUI(web_ui());
|
| - SigninManagerBase* signin_manager =
|
| - SigninManagerFactory::GetForProfile(profile);
|
| - return signin_manager && !signin_manager->GetAuthenticatedUsername().empty();
|
| -}
|
| -
|
| -bool ManagedUserImportHandler::HasAuthError() const {
|
| - Profile* profile = Profile::FromWebUI(web_ui());
|
| - ProfileOAuth2TokenService* token_service =
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
|
| - if (!token_service)
|
| - return true;
|
| -
|
| - SigninErrorController* error_controller =
|
| - token_service->signin_error_controller();
|
| -
|
| - GoogleServiceAuthError::State state = error_controller->auth_error().state();
|
| -
|
| - return state == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS ||
|
| - state == GoogleServiceAuthError::USER_NOT_SIGNED_UP ||
|
| - state == GoogleServiceAuthError::ACCOUNT_DELETED ||
|
| - state == GoogleServiceAuthError::ACCOUNT_DISABLED;
|
| -}
|
| -
|
| -void ManagedUserImportHandler::OnSharedSettingChanged(
|
| - const std::string& supervised_user_id,
|
| - const std::string& key) {
|
| - if (key == supervised_users::kChromeAvatarIndex)
|
| - FetchManagedUsers();
|
| -}
|
| -
|
| -void ManagedUserImportHandler::OnErrorChanged() {
|
| - FetchManagedUsers();
|
| -}
|
| -
|
| -} // namespace options
|
|
|