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

Unified Diff: chrome/browser/accessibility/accessibility_extension_api.cc

Issue 22922003: Remove notifications from Accessibility API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nits and rebase Created 7 years, 4 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/accessibility/accessibility_extension_api.cc
diff --git a/chrome/browser/accessibility/accessibility_extension_api.cc b/chrome/browser/accessibility/accessibility_extension_api.cc
index 033a843da3b9dfb7815c42a35a6762bfd2d4dd43..80f0bd52c84e451e62b835c58f1812a51e8c5839 100644
--- a/chrome/browser/accessibility/accessibility_extension_api.cc
+++ b/chrome/browser/accessibility/accessibility_extension_api.cc
@@ -8,7 +8,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "chrome/browser/accessibility/accessibility_extension_api_constants.h"
-#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/api/tabs/tabs_constants.h"
#include "chrome/browser/extensions/event_router.h"
#include "chrome/browser/extensions/extension_system.h"
@@ -18,7 +17,6 @@
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/browser_accessibility_state.h"
-#include "content/public/browser/notification_service.h"
#include "extensions/common/error_utils.h"
namespace keys = extension_accessibility_api_constants;
@@ -43,76 +41,74 @@ ExtensionAccessibilityEventRouter*
ExtensionAccessibilityEventRouter::ExtensionAccessibilityEventRouter()
: enabled_(false) {
- registrar_.Add(this,
- chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED,
- content::NotificationService::AllSources());
- registrar_.Add(this,
- chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED,
- content::NotificationService::AllSources());
- registrar_.Add(this,
- chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED,
- content::NotificationService::AllSources());
- registrar_.Add(this,
- chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION,
- content::NotificationService::AllSources());
- registrar_.Add(this,
- chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED,
- content::NotificationService::AllSources());
- registrar_.Add(this,
- chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED,
- content::NotificationService::AllSources());
- registrar_.Add(this,
- chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED,
- content::NotificationService::AllSources());
}
ExtensionAccessibilityEventRouter::~ExtensionAccessibilityEventRouter() {
+ control_event_callback_.Reset();
}
-void ExtensionAccessibilityEventRouter::Observe(
- int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) {
- switch (type) {
- case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_OPENED:
- OnWindowOpened(
- content::Details<const AccessibilityWindowInfo>(details).ptr());
- break;
- case chrome::NOTIFICATION_ACCESSIBILITY_WINDOW_CLOSED:
- OnWindowClosed(
- content::Details<const AccessibilityWindowInfo>(details).ptr());
- break;
- case chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_FOCUSED:
- OnControlFocused(
- content::Details<const AccessibilityControlInfo>(details).ptr());
- break;
- case chrome::NOTIFICATION_ACCESSIBILITY_CONTROL_ACTION:
- OnControlAction(
- content::Details<const AccessibilityControlInfo>(details).ptr());
- break;
- case chrome::NOTIFICATION_ACCESSIBILITY_TEXT_CHANGED:
- OnTextChanged(
- content::Details<const AccessibilityControlInfo>(details).ptr());
- break;
- case chrome::NOTIFICATION_ACCESSIBILITY_MENU_OPENED:
- OnMenuOpened(
- content::Details<const AccessibilityMenuInfo>(details).ptr());
+void ExtensionAccessibilityEventRouter::SetAccessibilityEnabled(bool enabled) {
+ enabled_ = enabled;
+}
+
+bool ExtensionAccessibilityEventRouter::IsAccessibilityEnabled() const {
+ return enabled_;
+}
+
+void ExtensionAccessibilityEventRouter::SetControlEventCallbackForTesting(
+ ControlEventCallback control_event_callback) {
+ DCHECK(control_event_callback_.is_null());
+ control_event_callback_ = control_event_callback;
+}
+
+void ExtensionAccessibilityEventRouter::ClearControlEventCallback() {
+ control_event_callback_.Reset();
+}
+
+void ExtensionAccessibilityEventRouter::HandleWindowEvent(
+ ui::AccessibilityTypes::Event event,
+ const AccessibilityWindowInfo* info) {
+ if (event == ui::AccessibilityTypes::EVENT_ALERT)
+ OnWindowOpened(info);
+}
+
+void ExtensionAccessibilityEventRouter::HandleMenuEvent(
+ ui::AccessibilityTypes::Event event,
+ const AccessibilityMenuInfo* info) {
+ switch (event) {
+ case ui::AccessibilityTypes::EVENT_MENUSTART:
+ case ui::AccessibilityTypes::EVENT_MENUPOPUPSTART:
+ OnMenuOpened(info);
break;
- case chrome::NOTIFICATION_ACCESSIBILITY_MENU_CLOSED:
- OnMenuClosed(
- content::Details<const AccessibilityMenuInfo>(details).ptr());
+ case ui::AccessibilityTypes::EVENT_MENUEND:
+ case ui::AccessibilityTypes::EVENT_MENUPOPUPEND:
+ OnMenuClosed(info);
break;
default:
NOTREACHED();
}
}
-void ExtensionAccessibilityEventRouter::SetAccessibilityEnabled(bool enabled) {
- enabled_ = enabled;
-}
+void ExtensionAccessibilityEventRouter::HandleControlEvent(
+ ui::AccessibilityTypes::Event event,
+ const AccessibilityControlInfo* info) {
+ if (!control_event_callback_.is_null())
+ control_event_callback_.Run(event, info);
-bool ExtensionAccessibilityEventRouter::IsAccessibilityEnabled() const {
- return enabled_;
+ switch (event) {
+ case ui::AccessibilityTypes::EVENT_TEXT_CHANGED:
+ case ui::AccessibilityTypes::EVENT_SELECTION_CHANGED:
+ OnTextChanged(info);
+ break;
+ case ui::AccessibilityTypes::EVENT_VALUE_CHANGED:
+ OnControlAction(info);
+ break;
+ case ui::AccessibilityTypes::EVENT_FOCUS:
+ OnControlFocused(info);
+ break;
+ default:
+ NOTREACHED();
+ }
}
void ExtensionAccessibilityEventRouter::OnWindowOpened(
@@ -121,12 +117,6 @@ void ExtensionAccessibilityEventRouter::OnWindowOpened(
DispatchEvent(info->profile(), keys::kOnWindowOpened, args.Pass());
}
-void ExtensionAccessibilityEventRouter::OnWindowClosed(
- const AccessibilityWindowInfo* info) {
- scoped_ptr<ListValue> args(ControlInfoToEventArguments(info));
- DispatchEvent(info->profile(), keys::kOnWindowClosed, args.Pass());
-}
-
void ExtensionAccessibilityEventRouter::OnControlFocused(
const AccessibilityControlInfo* info) {
last_focused_control_dict_.Clear();
« no previous file with comments | « chrome/browser/accessibility/accessibility_extension_api.h ('k') | chrome/browser/chrome_notification_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698