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

Unified Diff: chrome/browser/ui/views/accessibility_event_router_views.cc

Issue 6961027: Change event routers from singletons to being owned by the ExtensionService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: all is built on sand Created 9 years, 7 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/ui/views/accessibility_event_router_views.cc
diff --git a/chrome/browser/ui/views/accessibility_event_router_views.cc b/chrome/browser/ui/views/accessibility_event_router_views.cc
index 34fb85e5432977f2818036a44098d8b9b54adc7c..58aa6aab4b6f310b18761880c36b31ecefbee422 100644
--- a/chrome/browser/ui/views/accessibility_event_router_views.cc
+++ b/chrome/browser/ui/views/accessibility_event_router_views.cc
@@ -10,6 +10,7 @@
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/extension_accessibility_api.h"
+#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
@@ -34,7 +35,9 @@ using views::FocusManager;
AccessibilityEventRouterViews::AccessibilityEventRouterViews()
: most_recent_profile_(NULL),
- ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
+ ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
+ accessibility_enabled_overridden_for_testing_(false),
+ accessibility_enabled_override_value_(false) {
}
AccessibilityEventRouterViews::~AccessibilityEventRouterViews() {
@@ -47,11 +50,6 @@ AccessibilityEventRouterViews* AccessibilityEventRouterViews::GetInstance() {
void AccessibilityEventRouterViews::HandleAccessibilityEvent(
views::View* view, ui::AccessibilityTypes::Event event_type) {
- if (!ExtensionAccessibilityEventRouter::GetInstance()->
- IsAccessibilityEnabled()) {
- return;
- }
-
switch (event_type) {
case ui::AccessibilityTypes::EVENT_FOCUS:
DispatchAccessibilityNotification(
@@ -92,13 +90,12 @@ void AccessibilityEventRouterViews::HandleMenuItemFocused(
int item_index,
int item_count,
bool has_submenu) {
- if (!ExtensionAccessibilityEventRouter::GetInstance()->
- IsAccessibilityEnabled()) {
+ if (!most_recent_profile_)
return;
- }
- if (!most_recent_profile_)
+ if (!IsAccessibilityEnabled(most_recent_profile_)) {
return;
+ }
AccessibilityMenuItemInfo info(
most_recent_profile_,
@@ -114,6 +111,15 @@ void AccessibilityEventRouterViews::HandleMenuItemFocused(
// Private methods
//
+bool AccessibilityEventRouterViews::IsAccessibilityEnabled(Profile* profile) {
+ if (accessibility_enabled_overridden_for_testing_) {
+ return accessibility_enabled_override_value_;
+ }
+ DCHECK(profile);
+ return profile->GetExtensionService()->accessibility_event_router()->
+ IsAccessibilityEnabled();
+}
+
std::string AccessibilityEventRouterViews::GetViewName(views::View* view) {
ui::AccessibleViewState state;
view->GetAccessibleState(&state);
@@ -141,6 +147,10 @@ void AccessibilityEventRouterViews::DispatchAccessibilityNotification(
return;
}
+ if (!IsAccessibilityEnabled(profile)) {
+ return;
+ }
+
most_recent_profile_ = profile;
std::string class_name = view->GetClassName();
@@ -295,3 +305,8 @@ void AccessibilityEventRouterViews::SendCheckboxNotification(
SendAccessibilityNotification(type, &info);
}
+void AccessibilityEventRouterViews::SetAccessibilityEnabledForTesting(
+ bool enabled) {
+ accessibility_enabled_overridden_for_testing_ = true;
+ accessibility_enabled_override_value_ = enabled;
+}

Powered by Google App Engine
This is Rietveld 408576698