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

Side by Side Diff: chrome/browser/chromeos/accessibility/accessibility_manager.cc

Issue 2291133005: Re-land: Move ChromeVox loading out of ComponentLoader. (Closed)
Patch Set: Update component_loader comment Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/extensions/component_loader.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/chromeos/accessibility/accessibility_manager.h" 5 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 int render_view_id_; 206 int render_view_id_;
207 std::queue<extensions::ExtensionResource> resources_; 207 std::queue<extensions::ExtensionResource> resources_;
208 }; 208 };
209 209
210 void InjectChromeVoxContentScript( 210 void InjectChromeVoxContentScript(
211 ExtensionService* extension_service, 211 ExtensionService* extension_service,
212 int render_process_id, 212 int render_process_id,
213 int render_view_id, 213 int render_view_id,
214 const base::Closure& done_cb); 214 const base::Closure& done_cb);
215 215
216 void AddChromeVoxExtensionToComponentLoader(
217 extensions::ComponentLoader* component_loader,
218 base::Closure done_cb) {
219 component_loader->AddComponentFromDir(
220 GetChromeVoxPath(), extension_misc::kChromeVoxExtensionId, done_cb);
221 }
222
216 void LoadChromeVoxExtension( 223 void LoadChromeVoxExtension(
217 Profile* profile, 224 Profile* profile,
218 RenderViewHost* render_view_host, 225 RenderViewHost* render_view_host,
219 base::Closure done_cb) { 226 base::Closure done_cb) {
220 ExtensionService* extension_service = 227 ExtensionService* extension_service =
221 extensions::ExtensionSystem::Get(profile)->extension_service(); 228 extensions::ExtensionSystem::Get(profile)->extension_service();
222 if (render_view_host) { 229 if (render_view_host) {
223 // Wrap the passed in callback to inject the content script. 230 // Wrap the passed in callback to inject the content script.
224 done_cb = base::Bind( 231 done_cb = base::Bind(
225 &InjectChromeVoxContentScript, 232 &InjectChromeVoxContentScript,
226 extension_service, 233 extension_service,
227 render_view_host->GetProcess()->GetID(), 234 render_view_host->GetProcess()->GetID(),
228 render_view_host->GetRoutingID(), 235 render_view_host->GetRoutingID(),
229 done_cb); 236 done_cb);
230 } 237 }
231 extension_service->component_loader()->AddChromeVoxExtension(done_cb); 238
239 AddChromeVoxExtensionToComponentLoader(extension_service->component_loader(),
240 done_cb);
232 } 241 }
233 242
234 void InjectChromeVoxContentScript( 243 void InjectChromeVoxContentScript(
235 ExtensionService* extension_service, 244 ExtensionService* extension_service,
236 int render_process_id, 245 int render_process_id,
237 int render_view_id, 246 int render_view_id,
238 const base::Closure& done_cb) { 247 const base::Closure& done_cb) {
239 // Make sure to always run |done_cb|. ChromeVox was loaded even if we end up 248 // Make sure to always run |done_cb|. ChromeVox was loaded even if we end up
240 // not injecting into this particular render view. 249 // not injecting into this particular render view.
241 base::ScopedClosureRunner done_runner(done_cb); 250 base::ScopedClosureRunner done_runner(done_cb);
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 spoken_feedback_notification_ = ash::A11Y_NOTIFICATION_NONE; 616 spoken_feedback_notification_ = ash::A11Y_NOTIFICATION_NONE;
608 } 617 }
609 618
610 void AccessibilityManager::UpdateSpokenFeedbackFromPref() { 619 void AccessibilityManager::UpdateSpokenFeedbackFromPref() {
611 if (!profile_) 620 if (!profile_)
612 return; 621 return;
613 622
614 const bool enabled = profile_->GetPrefs()->GetBoolean( 623 const bool enabled = profile_->GetPrefs()->GetBoolean(
615 prefs::kAccessibilitySpokenFeedbackEnabled); 624 prefs::kAccessibilitySpokenFeedbackEnabled);
616 625
626 // If ChromeVox was already enabled, but not for this profile,
627 // add it to this profile.
628 auto* extension_service =
629 extensions::ExtensionSystem::Get(profile_)->extension_service();
630 auto* component_loader = extension_service->component_loader();
631 bool is_already_loaded =
632 component_loader->Exists(extension_misc::kChromeVoxExtensionId);
633 if (spoken_feedback_enabled_ && enabled && !is_already_loaded)
634 AddChromeVoxExtensionToComponentLoader(component_loader, base::Closure());
635
617 if (spoken_feedback_enabled_ == enabled) 636 if (spoken_feedback_enabled_ == enabled)
618 return; 637 return;
619 638
620 spoken_feedback_enabled_ = enabled; 639 spoken_feedback_enabled_ = enabled;
621 640
622 AccessibilityStatusEventDetails details( 641 AccessibilityStatusEventDetails details(
623 ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK, 642 ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK,
624 enabled, 643 enabled,
625 spoken_feedback_notification_); 644 spoken_feedback_notification_);
626 645
(...skipping 916 matching lines...) Expand 10 before | Expand all | Expand 10 after
1543 content::BrowserContext* context) { 1562 content::BrowserContext* context) {
1544 keyboard_listener_extension_id_ = id; 1563 keyboard_listener_extension_id_ = id;
1545 1564
1546 extensions::ExtensionRegistry* registry = 1565 extensions::ExtensionRegistry* registry =
1547 extensions::ExtensionRegistry::Get(context); 1566 extensions::ExtensionRegistry::Get(context);
1548 if (!extension_registry_observer_.IsObserving(registry) && !id.empty()) 1567 if (!extension_registry_observer_.IsObserving(registry) && !id.empty())
1549 extension_registry_observer_.Add(registry); 1568 extension_registry_observer_.Add(registry);
1550 } 1569 }
1551 1570
1552 } // namespace chromeos 1571 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/component_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698