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

Unified Diff: content/shell/renderer/test_runner/accessibility_controller.h

Issue 172263002: Move WebAXObjectProxy and AccessibleController from CppBoundClass to gin::Wrappable (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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: content/shell/renderer/test_runner/accessibility_controller.h
diff --git a/content/shell/renderer/test_runner/accessibility_controller.h b/content/shell/renderer/test_runner/accessibility_controller.h
new file mode 100644
index 0000000000000000000000000000000000000000..061cad0347d6d1628616d7dad52b41ef3e1b45bd
--- /dev/null
+++ b/content/shell/renderer/test_runner/accessibility_controller.h
@@ -0,0 +1,84 @@
+// Copyright 2014 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 CONTENT_SHELL_RENDERER_TEST_RUNNER_ACCESSIBILITY_CONTROLLER_H_
+#define CONTENT_SHELL_RENDERER_TEST_RUNNER_ACCESSIBILITY_CONTROLLER_H_
+
+#include "base/memory/weak_ptr.h"
+#include "content/shell/renderer/test_runner/WebAXObjectProxy.h"
+#include "third_party/WebKit/public/web/WebAXObject.h"
+#include "v8/include/v8.h"
+
+namespace blink {
+class WebFrame;
+class WebString;
+class WebView;
+}
+
+namespace WebTestRunner {
+class WebTestDelegate;
+}
+
+namespace content {
+
+class AccessibilityController :
+ public base::SupportsWeakPtr<AccessibilityController> {
+ public:
+ AccessibilityController();
+ ~AccessibilityController();
+
+ void Reset();
+ void Install(blink::WebFrame* frame);
+ void SetDelegate(WebTestRunner::WebTestDelegate* delegate);
+
+ void SetFocusedElement(const blink::WebAXObject&);
+ WebTestRunner::WebAXObjectProxy* GetAccessibleElementById(
+ const std::string& id);
+
+ bool ShouldLogAccessibilityEvents();
+
+ void NotificationReceived(const blink::WebAXObject& target,
+ const char* notificationName);
+
+ void set_delegate(WebTestRunner::WebTestDelegate* delegate) {
+ delegate_ = delegate;
+ }
+ void set_webView(blink::WebView* webView) { web_view_ = webView; }
+
+ private:
+ friend class AccessibilityControllerBindings;
+
+ // Bound methods and properties
+ void LogAccessibilityEvents();
+ void AddNotificationListener(v8::Handle<v8::Function> callback);
+ void RemoveNotificationListener(v8::Handle<v8::Function> callback);
+ WebTestRunner::WebAXObjectProxy* FocusedElement();
+ WebTestRunner::WebAXObjectProxy* RootElement();
+ void AccessibleElementById();
+ void Fallback();
+
+ WebTestRunner::WebAXObjectProxy* FindAccessibleElementByIdRecursive(
+ const blink::WebAXObject&, const blink::WebString& id);
+
+ // If true, will log all accessibility notifications.
+ bool log_accessibility_events_;
+
+ blink::WebAXObject focused_element_;
+ blink::WebAXObject root_element_;
+
+ WebTestRunner::WebAXObjectProxyList elements_;
+
+ std::vector<v8::Handle<v8::Function> > notification_callbacks_;
+
+ WebTestRunner::WebTestDelegate* delegate_;
+ blink::WebView* web_view_;
+
+ base::WeakPtrFactory<AccessibilityController> weak_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(AccessibilityController);
+};
+
+}
+
+#endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_ACCESSIBILITY_CONTROLLER_H_

Powered by Google App Engine
This is Rietveld 408576698