| Index: chrome/browser/extensions/extension_accessibility_api.h
|
| ===================================================================
|
| --- chrome/browser/extensions/extension_accessibility_api.h (revision 0)
|
| +++ chrome/browser/extensions/extension_accessibility_api.h (revision 0)
|
| @@ -0,0 +1,96 @@
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_ACCESSIBILITY_API_H_
|
| +#define CHROME_BROWSER_EXTENSIONS_EXTENSION_ACCESSIBILITY_API_H_
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "base/singleton.h"
|
| +#include "chrome/browser/extensions/extension_function.h"
|
| +#include "chrome/common/accessibility_events.h"
|
| +#include "chrome/common/notification_service.h"
|
| +#include "chrome/common/notification_registrar.h"
|
| +
|
| +// Observes the profile and routes accessibility notifications as events
|
| +// to the extension system.
|
| +class ExtensionAccessibilityEventRouter : public NotificationObserver {
|
| + public:
|
| + // Single instance of the event router.
|
| + static ExtensionAccessibilityEventRouter* GetInstance();
|
| +
|
| + // Safe to call multiple times.
|
| + void ObserveProfile(Profile* profile);
|
| +
|
| + // Get the dict representing the last control that received an
|
| + // OnControlFocus event.
|
| + DictionaryValue* last_focused_control_dict() {
|
| + return &last_focused_control_dict_;
|
| + }
|
| +
|
| + // Accessibility support is disabled until an extension expicitly enables
|
| + // it, so that this extension api has no impact on Chrome's performance
|
| + // otherwise. These methods handle enabling, disabling, querying the
|
| + // status, and installing callbacks to execute when accessibility support
|
| + // is enabled or disabled.
|
| + void SetAccessibilityEnabled(bool enabled);
|
| + bool IsAccessibilityEnabled() const;
|
| + typedef Callback0::Type Callback;
|
| + void AddOnEnabledListener(Callback* callback);
|
| + void AddOnDisabledListener(Callback* callback);
|
| +
|
| + private:
|
| + friend struct DefaultSingletonTraits<ExtensionAccessibilityEventRouter>;
|
| +
|
| + ExtensionAccessibilityEventRouter()
|
| + : enabled_(false) {}
|
| + virtual ~ExtensionAccessibilityEventRouter() {}
|
| +
|
| + // NotificationObserver::Observe.
|
| + virtual void Observe(NotificationType type,
|
| + const NotificationSource& source,
|
| + const NotificationDetails& details);
|
| +
|
| + void OnWindowOpened(const AccessibilityWindowInfo* details);
|
| + void OnWindowClosed(const AccessibilityWindowInfo* details);
|
| + void OnControlFocused(const AccessibilityControlInfo* details);
|
| + void OnControlAction(const AccessibilityControlInfo* details);
|
| + void OnTextChanged(const AccessibilityControlInfo* details);
|
| +
|
| + void DispatchEvent(Profile* profile,
|
| + const char* event_name,
|
| + const std::string& json_args);
|
| +
|
| + // Used for tracking registrations to history service notifications.
|
| + NotificationRegistrar registrar_;
|
| +
|
| + DictionaryValue last_focused_control_dict_;
|
| +
|
| + bool enabled_;
|
| + std::vector<Callback*> on_enabled_listeners_;
|
| + std::vector<Callback*> on_disabled_listeners_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ExtensionAccessibilityEventRouter);
|
| +};
|
| +
|
| +// API function that enables or disables accessibility support. Event
|
| +// listeners are only installed when accessibility support is enabled, to
|
| +// minimize the impact.
|
| +class SetAccessibilityEnabledFunction : public SyncExtensionFunction {
|
| + virtual ~SetAccessibilityEnabledFunction() {}
|
| + virtual bool RunImpl();
|
| + DECLARE_EXTENSION_FUNCTION_NAME(
|
| + "experimental.accessibility.setAccessibilityEnabled")
|
| +};
|
| +
|
| +// API function that returns the most recent focused control.
|
| +class GetFocusedControlFunction : public SyncExtensionFunction {
|
| + virtual ~GetFocusedControlFunction() {}
|
| + virtual bool RunImpl();
|
| + DECLARE_EXTENSION_FUNCTION_NAME(
|
| + "experimental.accessibility.getFocusedControl")
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ACCESSIBILITY_API_H_
|
|
|
| Property changes on: chrome/browser/extensions/extension_accessibility_api.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|