| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/search/hotword_service.h" | 5 #include "chrome/browser/search/hotword_service.h" |
| 6 | 6 |
| 7 #include "base/i18n/case_conversion.h" | 7 #include "base/i18n/case_conversion.h" |
| 8 #include "base/metrics/field_trial.h" | 8 #include "base/metrics/field_trial.h" |
| 9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 UMA_HISTOGRAM_ENUMERATION("Hotword.Enabled", enabled_state, | 155 UMA_HISTOGRAM_ENUMERATION("Hotword.Enabled", enabled_state, |
| 156 NUM_HOTWORD_ENABLED_METRICS); | 156 NUM_HOTWORD_ENABLED_METRICS); |
| 157 | 157 |
| 158 pref_registrar_.Init(profile_->GetPrefs()); | 158 pref_registrar_.Init(profile_->GetPrefs()); |
| 159 pref_registrar_.Add( | 159 pref_registrar_.Add( |
| 160 prefs::kHotwordSearchEnabled, | 160 prefs::kHotwordSearchEnabled, |
| 161 base::Bind(&HotwordService::OnHotwordSearchEnabledChanged, | 161 base::Bind(&HotwordService::OnHotwordSearchEnabledChanged, |
| 162 base::Unretained(this))); | 162 base::Unretained(this))); |
| 163 | 163 |
| 164 registrar_.Add(this, | 164 registrar_.Add(this, |
| 165 chrome::NOTIFICATION_EXTENSION_INSTALLED, | 165 chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED, |
| 166 content::Source<Profile>(profile_)); | 166 content::Source<Profile>(profile_)); |
| 167 | 167 |
| 168 // Clear the old user pref because it became unusable. | 168 // Clear the old user pref because it became unusable. |
| 169 // TODO(rlp): Remove this code per crbug.com/358789. | 169 // TODO(rlp): Remove this code per crbug.com/358789. |
| 170 if (profile_->GetPrefs()->HasPrefPath( | 170 if (profile_->GetPrefs()->HasPrefPath( |
| 171 hotword_internal::kHotwordUnusablePrefName)) { | 171 hotword_internal::kHotwordUnusablePrefName)) { |
| 172 profile_->GetPrefs()->ClearPref(hotword_internal::kHotwordUnusablePrefName); | 172 profile_->GetPrefs()->ClearPref(hotword_internal::kHotwordUnusablePrefName); |
| 173 } | 173 } |
| 174 } | 174 } |
| 175 | 175 |
| 176 HotwordService::~HotwordService() { | 176 HotwordService::~HotwordService() { |
| 177 } | 177 } |
| 178 | 178 |
| 179 void HotwordService::Observe(int type, | 179 void HotwordService::Observe(int type, |
| 180 const content::NotificationSource& source, | 180 const content::NotificationSource& source, |
| 181 const content::NotificationDetails& details) { | 181 const content::NotificationDetails& details) { |
| 182 if (type == chrome::NOTIFICATION_EXTENSION_INSTALLED) { | 182 if (type == chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED) { |
| 183 const extensions::Extension* extension = | 183 const extensions::Extension* extension = |
| 184 content::Details<const extensions::InstalledExtensionInfo>(details) | 184 content::Details<const extensions::InstalledExtensionInfo>(details) |
| 185 ->extension; | 185 ->extension; |
| 186 // Disabling the extension automatically on install should only occur | 186 // Disabling the extension automatically on install should only occur |
| 187 // if the user is in the field trial for auto-install which is gated | 187 // if the user is in the field trial for auto-install which is gated |
| 188 // by the IsHotwordAllowed check. | 188 // by the IsHotwordAllowed check. |
| 189 if (IsHotwordAllowed() && | 189 if (IsHotwordAllowed() && |
| 190 extension->id() == extension_misc::kHotwordExtensionId && | 190 extension->id() == extension_misc::kHotwordExtensionId && |
| 191 !profile_->GetPrefs()->GetBoolean(prefs::kHotwordSearchEnabled)) { | 191 !profile_->GetPrefs()->GetBoolean(prefs::kHotwordSearchEnabled)) { |
| 192 DisableHotwordExtension(GetExtensionService(profile_)); | 192 DisableHotwordExtension(GetExtensionService(profile_)); |
| 193 // Once the extension is disabled, it will not be enabled until the | 193 // Once the extension is disabled, it will not be enabled until the |
| 194 // user opts in at which point the pref registrar will take over | 194 // user opts in at which point the pref registrar will take over |
| 195 // enabling and disabling. | 195 // enabling and disabling. |
| 196 registrar_.Remove(this, | 196 registrar_.Remove(this, |
| 197 chrome::NOTIFICATION_EXTENSION_INSTALLED, | 197 chrome::NOTIFICATION_EXTENSION_INSTALLED_DEPRECATED, |
| 198 content::Source<Profile>(profile_)); | 198 content::Source<Profile>(profile_)); |
| 199 } | 199 } |
| 200 } | 200 } |
| 201 } | 201 } |
| 202 | 202 |
| 203 bool HotwordService::ShouldShowOptInPopup() { | 203 bool HotwordService::ShouldShowOptInPopup() { |
| 204 if (profile_->IsOffTheRecord()) | 204 if (profile_->IsOffTheRecord()) |
| 205 return false; | 205 return false; |
| 206 | 206 |
| 207 // Profile is not off the record. | 207 // Profile is not off the record. |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 | 311 |
| 312 DCHECK(client_ == client); | 312 DCHECK(client_ == client); |
| 313 | 313 |
| 314 client_ = NULL; | 314 client_ = NULL; |
| 315 HotwordPrivateEventService* event_service = | 315 HotwordPrivateEventService* event_service = |
| 316 BrowserContextKeyedAPIFactory<HotwordPrivateEventService>::Get(profile_); | 316 BrowserContextKeyedAPIFactory<HotwordPrivateEventService>::Get(profile_); |
| 317 if (event_service) | 317 if (event_service) |
| 318 event_service->OnHotwordSessionStopped(); | 318 event_service->OnHotwordSessionStopped(); |
| 319 #endif | 319 #endif |
| 320 } | 320 } |
| OLD | NEW |