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

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

Issue 1167703002: Move test runner to a component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updates Created 5 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: content/shell/renderer/test_runner/accessibility_controller.cc
diff --git a/content/shell/renderer/test_runner/accessibility_controller.cc b/content/shell/renderer/test_runner/accessibility_controller.cc
deleted file mode 100644
index 547e694a9cad9a3a662f0857a5a65bbdc9db0427..0000000000000000000000000000000000000000
--- a/content/shell/renderer/test_runner/accessibility_controller.cc
+++ /dev/null
@@ -1,278 +0,0 @@
-// 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.
-
-#include "content/shell/renderer/test_runner/accessibility_controller.h"
-
-#include "gin/handle.h"
-#include "gin/object_template_builder.h"
-#include "gin/wrappable.h"
-#include "third_party/WebKit/public/web/WebElement.h"
-#include "third_party/WebKit/public/web/WebFrame.h"
-#include "third_party/WebKit/public/web/WebKit.h"
-#include "third_party/WebKit/public/web/WebSettings.h"
-#include "third_party/WebKit/public/web/WebView.h"
-
-namespace content {
-
-class AccessibilityControllerBindings
- : public gin::Wrappable<AccessibilityControllerBindings> {
- public:
- static gin::WrapperInfo kWrapperInfo;
-
- static void Install(base::WeakPtr<AccessibilityController> controller,
- blink::WebFrame* frame);
-
- private:
- explicit AccessibilityControllerBindings(
- base::WeakPtr<AccessibilityController> controller);
- ~AccessibilityControllerBindings() override;
-
- // gin::Wrappable:
- gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
- v8::Isolate* isolate) override;
-
- void LogAccessibilityEvents();
- void SetNotificationListener(v8::Local<v8::Function> callback);
- void UnsetNotificationListener();
- v8::Local<v8::Object> FocusedElement();
- v8::Local<v8::Object> RootElement();
- v8::Local<v8::Object> AccessibleElementById(const std::string& id);
-
- base::WeakPtr<AccessibilityController> controller_;
-
- DISALLOW_COPY_AND_ASSIGN(AccessibilityControllerBindings);
-};
-
-gin::WrapperInfo AccessibilityControllerBindings::kWrapperInfo = {
- gin::kEmbedderNativeGin};
-
-// static
-void AccessibilityControllerBindings::Install(
- base::WeakPtr<AccessibilityController> controller,
- blink::WebFrame* frame) {
- v8::Isolate* isolate = blink::mainThreadIsolate();
- v8::HandleScope handle_scope(isolate);
- v8::Local<v8::Context> context = frame->mainWorldScriptContext();
- if (context.IsEmpty())
- return;
-
- v8::Context::Scope context_scope(context);
-
- gin::Handle<AccessibilityControllerBindings> bindings =
- gin::CreateHandle(isolate,
- new AccessibilityControllerBindings(controller));
- if (bindings.IsEmpty())
- return;
- v8::Local<v8::Object> global = context->Global();
- global->Set(gin::StringToV8(isolate, "accessibilityController"),
- bindings.ToV8());
-}
-
-AccessibilityControllerBindings::AccessibilityControllerBindings(
- base::WeakPtr<AccessibilityController> controller)
- : controller_(controller) {
-}
-
-AccessibilityControllerBindings::~AccessibilityControllerBindings() {
-}
-
-gin::ObjectTemplateBuilder
-AccessibilityControllerBindings::GetObjectTemplateBuilder(
- v8::Isolate* isolate) {
- return gin::Wrappable<AccessibilityControllerBindings>::
- GetObjectTemplateBuilder(isolate)
- .SetMethod("logAccessibilityEvents",
- &AccessibilityControllerBindings::LogAccessibilityEvents)
- .SetMethod("setNotificationListener",
- &AccessibilityControllerBindings::SetNotificationListener)
- .SetMethod("unsetNotificationListener",
- &AccessibilityControllerBindings::UnsetNotificationListener)
- .SetProperty("focusedElement",
- &AccessibilityControllerBindings::FocusedElement)
- .SetProperty("rootElement",
- &AccessibilityControllerBindings::RootElement)
- .SetMethod("accessibleElementById",
- &AccessibilityControllerBindings::AccessibleElementById)
- // TODO(hajimehoshi): These are for backward compatibility. Remove them.
- .SetMethod("addNotificationListener",
- &AccessibilityControllerBindings::SetNotificationListener)
- .SetMethod("removeNotificationListener",
- &AccessibilityControllerBindings::UnsetNotificationListener);
-}
-
-void AccessibilityControllerBindings::LogAccessibilityEvents() {
- if (controller_)
- controller_->LogAccessibilityEvents();
-}
-
-void AccessibilityControllerBindings::SetNotificationListener(
- v8::Local<v8::Function> callback) {
- if (controller_)
- controller_->SetNotificationListener(callback);
-}
-
-void AccessibilityControllerBindings::UnsetNotificationListener() {
- if (controller_)
- controller_->UnsetNotificationListener();
-}
-
-v8::Local<v8::Object> AccessibilityControllerBindings::FocusedElement() {
- return controller_ ? controller_->FocusedElement() : v8::Local<v8::Object>();
-}
-
-v8::Local<v8::Object> AccessibilityControllerBindings::RootElement() {
- return controller_ ? controller_->RootElement() : v8::Local<v8::Object>();
-}
-
-v8::Local<v8::Object> AccessibilityControllerBindings::AccessibleElementById(
- const std::string& id) {
- return controller_ ? controller_->AccessibleElementById(id)
- : v8::Local<v8::Object>();
-}
-
-AccessibilityController::AccessibilityController()
- : log_accessibility_events_(false),
- weak_factory_(this) {
-}
-
-AccessibilityController::~AccessibilityController() {}
-
-void AccessibilityController::Reset() {
- root_element_ = blink::WebAXObject();
- focused_element_ = blink::WebAXObject();
- elements_.Clear();
- notification_callback_.Reset();
- log_accessibility_events_ = false;
-}
-
-void AccessibilityController::Install(blink::WebFrame* frame) {
- frame->view()->settings()->setAccessibilityEnabled(true);
- frame->view()->settings()->setInlineTextBoxAccessibilityEnabled(true);
-
- AccessibilityControllerBindings::Install(weak_factory_.GetWeakPtr(), frame);
-}
-
-void AccessibilityController::SetFocusedElement(
- const blink::WebAXObject& focused_element) {
- focused_element_ = focused_element;
-}
-
-bool AccessibilityController::ShouldLogAccessibilityEvents() {
- return log_accessibility_events_;
-}
-
-void AccessibilityController::NotificationReceived(
- const blink::WebAXObject& target, const std::string& notification_name) {
- v8::Isolate* isolate = blink::mainThreadIsolate();
- v8::HandleScope handle_scope(isolate);
-
- blink::WebFrame* frame = web_view_->mainFrame();
- if (!frame || frame->isWebRemoteFrame())
- return;
-
- v8::Local<v8::Context> context = frame->mainWorldScriptContext();
- if (context.IsEmpty())
- return;
-
- v8::Context::Scope context_scope(context);
-
- // Call notification listeners on the element.
- v8::Local<v8::Object> element_handle = elements_.GetOrCreate(target);
- if (element_handle.IsEmpty())
- return;
-
- WebAXObjectProxy* element;
- bool result = gin::ConvertFromV8(isolate, element_handle, &element);
- DCHECK(result);
- element->NotificationReceived(frame, notification_name);
-
- if (notification_callback_.IsEmpty())
- return;
-
- // Call global notification listeners.
- v8::Local<v8::Value> argv[] = {
- element_handle,
- v8::String::NewFromUtf8(isolate, notification_name.data(),
- v8::String::kNormalString,
- notification_name.size()),
- };
- frame->callFunctionEvenIfScriptDisabled(
- v8::Local<v8::Function>::New(isolate, notification_callback_),
- context->Global(),
- arraysize(argv),
- argv);
-}
-
-void AccessibilityController::SetDelegate(WebTestDelegate* delegate) {
- delegate_ = delegate;
-}
-
-void AccessibilityController::SetWebView(blink::WebView* web_view) {
- web_view_ = web_view;
-}
-
-void AccessibilityController::LogAccessibilityEvents() {
- log_accessibility_events_ = true;
-}
-
-void AccessibilityController::SetNotificationListener(
- v8::Local<v8::Function> callback) {
- v8::Isolate* isolate = blink::mainThreadIsolate();
- notification_callback_.Reset(isolate, callback);
-}
-
-void AccessibilityController::UnsetNotificationListener() {
- notification_callback_.Reset();
-}
-
-v8::Local<v8::Object> AccessibilityController::FocusedElement() {
- if (focused_element_.isNull())
- focused_element_ = web_view_->accessibilityObject();
- return elements_.GetOrCreate(focused_element_);
-}
-
-v8::Local<v8::Object> AccessibilityController::RootElement() {
- if (root_element_.isNull())
- root_element_ = web_view_->accessibilityObject();
- return elements_.GetOrCreate(root_element_);
-}
-
-v8::Local<v8::Object>
-AccessibilityController::AccessibleElementById(const std::string& id) {
- if (root_element_.isNull())
- root_element_ = web_view_->accessibilityObject();
-
- if (!root_element_.updateLayoutAndCheckValidity())
- return v8::Local<v8::Object>();
-
- return FindAccessibleElementByIdRecursive(
- root_element_, blink::WebString::fromUTF8(id.c_str()));
-}
-
-v8::Local<v8::Object>
-AccessibilityController::FindAccessibleElementByIdRecursive(
- const blink::WebAXObject& obj, const blink::WebString& id) {
- if (obj.isNull() || obj.isDetached())
- return v8::Local<v8::Object>();
-
- blink::WebNode node = obj.node();
- if (!node.isNull() && node.isElementNode()) {
- blink::WebElement element = node.to<blink::WebElement>();
- element.getAttribute("id");
- if (element.getAttribute("id") == id)
- return elements_.GetOrCreate(obj);
- }
-
- unsigned childCount = obj.childCount();
- for (unsigned i = 0; i < childCount; i++) {
- v8::Local<v8::Object> result =
- FindAccessibleElementByIdRecursive(obj.childAt(i), id);
- if (*result)
- return result;
- }
-
- return v8::Local<v8::Object>();
-}
-
-} // namespace content
« no previous file with comments | « content/shell/renderer/test_runner/accessibility_controller.h ('k') | content/shell/renderer/test_runner/app_banner_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698