Index: chrome/browser/chromeos/accessibility/magnification_manager.cc |
diff --git a/chrome/browser/chromeos/accessibility/magnification_manager.cc b/chrome/browser/chromeos/accessibility/magnification_manager.cc |
index 5b2693c57e8bd3fa32b49362da0a77689ec5af29..c5285337d2c19725700bf11edbec899652133f18 100644 |
--- a/chrome/browser/chromeos/accessibility/magnification_manager.cc |
+++ b/chrome/browser/chromeos/accessibility/magnification_manager.cc |
@@ -64,10 +64,9 @@ class MagnificationManagerImpl : public MagnificationManager, |
if (profile_) { |
PrefService* prefs = profile_->GetPrefs(); |
if (prefs) { |
- std::string typeString = |
- accessibility::ScreenMagnifierNameFromType(type); |
- if (typeString != prefs->GetString(prefs::kMagnifierType)) { |
- prefs->SetString(prefs::kMagnifierType, typeString); |
+ bool enabled = (type != ash::MAGNIFIER_OFF); |
+ if (enabled != prefs->GetBoolean(prefs::kScreenMagnifierEnabled)) { |
+ prefs->SetBoolean(prefs::kScreenMagnifierEnabled, enabled); |
prefs->CommitPendingWrite(); |
} |
} |
@@ -120,8 +119,8 @@ class MagnificationManagerImpl : public MagnificationManager, |
if (!prefs) |
return ash::MAGNIFIER_OFF; |
- return accessibility::MagnifierTypeFromName( |
- prefs->GetString(prefs::kMagnifierType).c_str()); |
+ return prefs->GetBoolean(prefs::kScreenMagnifierEnabled) ? |
+ ash::MAGNIFIER_FULL : ash::MAGNIFIER_OFF; |
} |
void SetProfile(Profile* profile) { |
@@ -133,7 +132,7 @@ class MagnificationManagerImpl : public MagnificationManager, |
pref_change_registrar_.reset(new PrefChangeRegistrar); |
pref_change_registrar_->Init(profile->GetPrefs()); |
pref_change_registrar_->Add( |
- prefs::kMagnifierType, |
+ prefs::kScreenMagnifierEnabled, |
base::Bind(&MagnificationManagerImpl::UpdateMagnifierStatus, |
base::Unretained(this))); |
} |
@@ -143,30 +142,6 @@ class MagnificationManagerImpl : public MagnificationManager, |
} |
void UpdateMagnifierStatus() { |
- // Historycally, from r162080 to r170956, screen magnifier had been enabled |
- // with 1.0x scale on login screen by default, hence some users |
- // unintentionally have the pref to enable magnifier. Now, the default scale |
- // is 2.0x on login screen (same as other screens), so despite them, with |
- // the old pref, their screen might be magnified with 2.0x scale. |
- // The following code prevents it. If the user on login screen has full |
- // screen magnifier pref but no scale pref, doesn't make magnifier enabled. |
- // TODO(yoshiki): remove this in the near future: crbug.com/164627 |
- if (first_time_update_) { |
- first_time_update_ = false; |
- UserManager* manager = UserManager::Get(); |
- if (profile_ && |
- !profile_->GetPrefs()->HasPrefPath(prefs::kScreenMagnifierScale) && |
- accessibility::MagnifierTypeFromName(profile_->GetPrefs()->GetString( |
- prefs::kMagnifierType).c_str()) == ash::MAGNIFIER_FULL && |
- manager && |
- !manager->IsSessionStarted()) { |
- SetMagnifier(ash::MAGNIFIER_OFF); |
- profile_->GetPrefs()->SetDouble(prefs::kScreenMagnifierScale, |
- kInitialMagnifiedScale); |
- return; |
- } |
- } |
- |
ash::MagnifierType type = GetMagnifierTypeFromPref(); |
SetMagnifier(type); |
} |