- add sources.
[platform/framework/web/crosswalk.git] / src / content / renderer / accessibility / renderer_accessibility.cc
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
3 // found in the LICENSE file.
4
5 #include "content/renderer/accessibility/renderer_accessibility.h"
6
7 #include "base/command_line.h"
8 #include "content/public/common/content_switches.h"
9 #include "content/renderer/render_view_impl.h"
10 #include "third_party/WebKit/public/web/WebAXObject.h"
11 #include "third_party/WebKit/public/web/WebDocument.h"
12 #include "third_party/WebKit/public/web/WebFrame.h"
13 #include "third_party/WebKit/public/web/WebView.h"
14
15 using WebKit::WebAXObject;
16 using WebKit::WebDocument;
17 using WebKit::WebFrame;
18 using WebKit::WebView;
19
20 namespace content {
21
22 RendererAccessibility::RendererAccessibility(
23     RenderViewImpl* render_view)
24     : RenderViewObserver(render_view),
25       render_view_(render_view),
26       logging_(false) {
27   const CommandLine& command_line = *CommandLine::ForCurrentProcess();
28   if (command_line.HasSwitch(switches::kEnableAccessibilityLogging))
29     logging_ = true;
30 }
31
32 RendererAccessibility::~RendererAccessibility() {
33 }
34
35 WebDocument RendererAccessibility::GetMainDocument() {
36   WebView* view = render_view()->GetWebView();
37   WebFrame* main_frame = view ? view->mainFrame() : NULL;
38
39   if (main_frame)
40     return main_frame->document();
41
42   return WebDocument();
43 }
44
45 #ifndef NDEBUG
46 const std::string RendererAccessibility::AccessibilityEventToString(
47     WebKit::WebAXEvent event) {
48   switch (event) {
49     case WebKit::WebAXEventActiveDescendantChanged:
50       return "active descendant changed";
51     case WebKit::WebAXEventAriaAttributeChanged:
52       return "aria attribute changed";
53     case WebKit::WebAXEventAutocorrectionOccured:
54       return "autocorrection occurred";
55     case WebKit::WebAXEventBlur:
56       return "blur";
57     case WebKit::WebAXEventAlert:
58       return "alert";
59     case WebKit::WebAXEventCheckedStateChanged:
60       return "check state changed";
61     case WebKit::WebAXEventChildrenChanged:
62       return "children changed";
63     case WebKit::WebAXEventFocus:
64       return "focus changed";
65     case WebKit::WebAXEventInvalidStatusChanged:
66       return "invalid status changed";
67     case WebKit::WebAXEventLayoutComplete:
68       return "layout complete";
69     case WebKit::WebAXEventLiveRegionChanged:
70       return "live region changed";
71     case WebKit::WebAXEventLoadComplete:
72       return "load complete";
73     case WebKit::WebAXEventMenuListItemSelected:
74       return "menu list item selected";
75     case WebKit::WebAXEventMenuListValueChanged:
76       return "menu list changed";
77     case WebKit::WebAXEventShow:
78       return "object show";
79     case WebKit::WebAXEventHide:
80       return "object hide";
81     case WebKit::WebAXEventRowCountChanged:
82       return "row count changed";
83     case WebKit::WebAXEventRowCollapsed:
84       return "row collapsed";
85     case WebKit::WebAXEventRowExpanded:
86       return "row expanded";
87     case WebKit::WebAXEventScrolledToAnchor:
88       return "scrolled to anchor";
89     case WebKit::WebAXEventSelectedChildrenChanged:
90       return "selected children changed";
91     case WebKit::WebAXEventSelectedTextChanged:
92       return "selected text changed";
93     case WebKit::WebAXEventTextChanged:
94       return "text changed";
95     case WebKit::WebAXEventTextInserted:
96       return "text inserted";
97     case WebKit::WebAXEventTextRemoved:
98       return "text removed";
99     case WebKit::WebAXEventValueChanged:
100       return "value changed";
101     default:
102       NOTREACHED();
103   }
104   return "";
105 }
106 #endif
107
108 }  // namespace content