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

Unified Diff: chrome/browser/chromeos/accessibility/accessibility_manager.cc

Issue 123443002: Track all profiles ChromeVox loads to. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 12 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
Index: chrome/browser/chromeos/accessibility/accessibility_manager.cc
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
index 2b67f9bcf31959fbc79ffb03ecb0e266afcc717b..9840b0a0982acddb23a412764b636d257026441b 100644
--- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc
+++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -343,8 +343,10 @@ AccessibilityManager::~AccessibilityManager() {
// Component extensions don't always notify us when they're unloaded. Ensure
// we clean up ChromeVox observers here.
- if (profile_) {
- extensions::ExtensionSystem::Get(profile_)->
+ for (std::set<Profile*>::iterator it = chromevox_profiles_.begin();
+ it != chromevox_profiles_.end();
+ it++) {
+ extensions::ExtensionSystem::Get(*it)->
event_router()->UnregisterObserver(this);
}
}
@@ -745,6 +747,9 @@ void AccessibilityManager::SetProfile(Profile* profile) {
if (!profile && profile_) {
extensions::ExtensionSystem::Get(profile_)->
event_router()->UnregisterObserver(this);
+ std::set<Profile*>::iterator item = chromevox_profiles_.find(profile_);
+ if (item != chromevox_profiles_.end())
+ chromevox_profiles_.erase(item);
James Cook 2014/01/06 20:38:19 I think you can just do chromevox_profiles_.erase(
}
if (profile && spoken_feedback_enabled_)
@@ -944,6 +949,7 @@ void AccessibilityManager::SetUpPreLoadChromeVox(Profile* profile) {
event_router()->RegisterObserver(this,
extensions::api::experimental_accessibility::
OnChromeVoxLoadStateChanged::kEventName);
+ chromevox_profiles_.insert(profile);
}
}
@@ -952,12 +958,14 @@ void AccessibilityManager::TearDownPostUnloadChromeVox(Profile* profile) {
if (profile) {
extensions::ExtensionSystem::Get(profile)->
event_router()->UnregisterObserver(this);
+ std::set<Profile*>::iterator item = chromevox_profiles_.find(profile_);
+ if (item != chromevox_profiles_.end())
James Cook 2014/01/06 20:38:19 same thing, I don't think you need to check if it
+ chromevox_profiles_.erase(item);
}
}
void AccessibilityManager::PlaySound(int sound_key) const {
- if (system_sounds_enabled_)
- media::SoundsManager::Get()->Play(sound_key);
+ media::SoundsManager::Get()->Play(sound_key);
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698