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

Side by Side Diff: content/renderer/renderer_accessibility_focus_only.cc

Issue 10544099: Refactor all accessibility code out of webkit/glue. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More Mac compile errors Created 8 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/renderer/renderer_accessibility_complete.cc ('k') | webkit/glue/webaccessibility.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/renderer_accessibility_focus_only.h" 5 #include "content/renderer/renderer_accessibility_focus_only.h"
6 6
7 #include "content/common/accessibility_node_data.h"
7 #include "content/renderer/render_view_impl.h" 8 #include "content/renderer/render_view_impl.h"
8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" 9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
9 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
10 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNode.h" 11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebNode.h"
11 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" 12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
12 #include "webkit/glue/webaccessibility.h"
13 13
14 using WebKit::WebDocument; 14 using WebKit::WebDocument;
15 using WebKit::WebFrame; 15 using WebKit::WebFrame;
16 using WebKit::WebNode; 16 using WebKit::WebNode;
17 using WebKit::WebView; 17 using WebKit::WebView;
18 using webkit_glue::WebAccessibility;
19 18
20 namespace { 19 namespace {
21 // The root node will always have id 1. Let each child node have a new 20 // The root node will always have id 1. Let each child node have a new
22 // id starting with 2. 21 // id starting with 2.
23 const int kInitialId = 2; 22 const int kInitialId = 2;
24 } 23 }
25 24
26 namespace content { 25 namespace content {
27 26
28 RendererAccessibilityFocusOnly::RendererAccessibilityFocusOnly( 27 RendererAccessibilityFocusOnly::RendererAccessibilityFocusOnly(
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // This means that the new tree we send supercedes any previous tree, 79 // This means that the new tree we send supercedes any previous tree,
81 // not just a previous node. 80 // not just a previous node.
82 notification.includes_children = true; 81 notification.includes_children = true;
83 82
84 // Set the id that the notification applies to: the root node if nothing 83 // Set the id that the notification applies to: the root node if nothing
85 // has focus, otherwise the focused node. 84 // has focus, otherwise the focused node.
86 notification.id = node.isNull() ? 1 : next_id_; 85 notification.id = node.isNull() ? 1 : next_id_;
87 86
88 // Always include the root of the tree, the document. It always has id 1. 87 // Always include the root of the tree, the document. It always has id 1.
89 notification.acc_tree.id = 1; 88 notification.acc_tree.id = 1;
90 notification.acc_tree.role = WebAccessibility::ROLE_ROOT_WEB_AREA; 89 notification.acc_tree.role = AccessibilityNodeData::ROLE_ROOT_WEB_AREA;
91 notification.acc_tree.state = 90 notification.acc_tree.state =
92 (1 << WebAccessibility::STATE_READONLY) | 91 (1 << AccessibilityNodeData::STATE_READONLY) |
93 (1 << WebAccessibility::STATE_FOCUSABLE); 92 (1 << AccessibilityNodeData::STATE_FOCUSABLE);
94 if (node.isNull()) 93 if (node.isNull())
95 notification.acc_tree.state |= (1 << WebAccessibility::STATE_FOCUSED); 94 notification.acc_tree.state |= (1 << AccessibilityNodeData::STATE_FOCUSED);
96 notification.acc_tree.location = gfx::Rect(render_view_->size()); 95 notification.acc_tree.location = gfx::Rect(render_view_->size());
97 96
98 notification.acc_tree.children.push_back(WebAccessibility()); 97 notification.acc_tree.children.push_back(AccessibilityNodeData());
99 WebAccessibility& child = notification.acc_tree.children[0]; 98 AccessibilityNodeData& child = notification.acc_tree.children[0];
100 child.id = next_id_; 99 child.id = next_id_;
101 child.role = WebAccessibility::ROLE_GROUP; 100 child.role = AccessibilityNodeData::ROLE_GROUP;
102 child.location = gfx::Rect(render_view_->size()); 101 child.location = gfx::Rect(render_view_->size());
103 if (!node.isNull()) { 102 if (!node.isNull()) {
104 child.state = 103 child.state =
105 (1 << WebAccessibility::STATE_FOCUSABLE) | 104 (1 << AccessibilityNodeData::STATE_FOCUSABLE) |
106 (1 << WebAccessibility::STATE_FOCUSED); 105 (1 << AccessibilityNodeData::STATE_FOCUSED);
107 if (!render_view_->IsEditableNode(node)) 106 if (!render_view_->IsEditableNode(node))
108 child.state |= (1 << WebAccessibility::STATE_READONLY); 107 child.state |= (1 << AccessibilityNodeData::STATE_READONLY);
109 } 108 }
110 109
111 #ifndef NDEBUG 110 #ifndef NDEBUG
112 if (logging_) { 111 if (logging_) {
113 LOG(INFO) << "Accessibility update: \n" 112 LOG(INFO) << "Accessibility update: \n"
114 << "routing id=" << routing_id() 113 << "routing id=" << routing_id()
115 << " notification=" 114 << " notification="
116 << AccessibilityNotificationToString(notification.notification_type) 115 << AccessibilityNotificationToString(notification.notification_type)
117 << "\n" << notification.acc_tree.DebugString(true); 116 << "\n" << notification.acc_tree.DebugString(true);
118 } 117 }
119 #endif 118 #endif
120 119
121 Send(new AccessibilityHostMsg_Notifications(routing_id(), notifications)); 120 Send(new AccessibilityHostMsg_Notifications(routing_id(), notifications));
122 121
123 // Increment the id, wrap back when we get past a million. 122 // Increment the id, wrap back when we get past a million.
124 next_id_++; 123 next_id_++;
125 if (next_id_ > 1000000) 124 if (next_id_ > 1000000)
126 next_id_ = kInitialId; 125 next_id_ = kInitialId;
127 } 126 }
128 127
129 } // namespace content 128 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/renderer_accessibility_complete.cc ('k') | webkit/glue/webaccessibility.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698