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

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: (rebasing) 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..585129a84b38c017e7ac1a6d3bc9a161c1d70db4
--- /dev/null
+++ b/content/shell/renderer/test_runner/accessibility_controller.h
@@ -0,0 +1,80 @@
+// 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 <vector>
+
+#include "base/memory/weak_ptr.h"
+#include "content/shell/renderer/test_runner/unsafe_persistent.h"
+#include "content/shell/renderer/test_runner/web_ax_object_proxy.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 SetFocusedElement(const blink::WebAXObject&);
+ bool ShouldLogAccessibilityEvents();
+ void NotificationReceived(const blink::WebAXObject& target,
+ const std::string& notification_name);
+
+ void SetDelegate(WebTestRunner::WebTestDelegate* delegate);
+ void SetWebView(blink::WebView* web_view);
+
+ private:
+ friend class AccessibilityControllerBindings;
+
+ // Bound methods and properties
+ void LogAccessibilityEvents();
+ void AddNotificationListener(v8::Handle<v8::Function> callback);
+ void RemoveNotificationListener();
+ v8::Handle<v8::Object> FocusedElement();
+ v8::Handle<v8::Object> RootElement();
+ v8::Handle<v8::Object> AccessibleElementById(const std::string& id);
+
+ v8::Handle<v8::Object> FindAccessibleElementByIdRecursive(
+ const blink::WebAXObject&, const blink::WebString& id);
+ void ClearNotificationCallbacks();
+
+ // If true, will log all accessibility notifications.
+ bool log_accessibility_events_;
+
+ blink::WebAXObject focused_element_;
+ blink::WebAXObject root_element_;
+
+ WebAXObjectProxyList elements_;
+
+ typedef std::vector<UnsafePersistent<v8::Function> > CallbackList;
+ CallbackList notification_callbacks_;
+
+ WebTestRunner::WebTestDelegate* delegate_;
+ blink::WebView* web_view_;
+
+ base::WeakPtrFactory<AccessibilityController> weak_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(AccessibilityController);
+};
+
+} // namespace content
+
+#endif // CONTENT_SHELL_RENDERER_TEST_RUNNER_ACCESSIBILITY_CONTROLLER_H_

Powered by Google App Engine
This is Rietveld 408576698