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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_win.cc

Issue 8917020: Adds a BrowserAccessibilityManager accessor to RenderWidgetHostView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove forward declaration. Created 9 years 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/browser/renderer_host/render_widget_host_view_win.h" 5 #include "content/browser/renderer_host/render_widget_host_view_win.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 1064 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 return 1; 1075 return 1;
1076 } 1076 }
1077 1077
1078 LRESULT RenderWidgetHostViewWin::OnSetCursor(HWND window, UINT hittest_code, 1078 LRESULT RenderWidgetHostViewWin::OnSetCursor(HWND window, UINT hittest_code,
1079 UINT mouse_message_id) { 1079 UINT mouse_message_id) {
1080 UpdateCursorIfOverSelf(); 1080 UpdateCursorIfOverSelf();
1081 return 0; 1081 return 0;
1082 } 1082 }
1083 1083
1084 void RenderWidgetHostViewWin::OnSetFocus(HWND window) { 1084 void RenderWidgetHostViewWin::OnSetFocus(HWND window) {
1085 if (browser_accessibility_manager_.get()) 1085 if (browser_accessibility_manager())
1086 browser_accessibility_manager_->GotFocus(); 1086 browser_accessibility_manager()->GotFocus();
1087 if (render_widget_host_) { 1087 if (render_widget_host_) {
1088 render_widget_host_->GotFocus(); 1088 render_widget_host_->GotFocus();
1089 render_widget_host_->SetActive(true); 1089 render_widget_host_->SetActive(true);
1090 } 1090 }
1091 if (touch_state_.ReleaseTouchPoints()) 1091 if (touch_state_.ReleaseTouchPoints())
1092 render_widget_host_->ForwardTouchEvent(touch_state_.touch_event()); 1092 render_widget_host_->ForwardTouchEvent(touch_state_.touch_event());
1093 } 1093 }
1094 1094
1095 void RenderWidgetHostViewWin::OnKillFocus(HWND window) { 1095 void RenderWidgetHostViewWin::OnKillFocus(HWND window) {
1096 if (render_widget_host_) { 1096 if (render_widget_host_) {
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
1808 render_widget_host_->ForwardWheelEvent( 1808 render_widget_host_->ForwardWheelEvent(
1809 MakeFakeScrollWheelEvent(m_hWnd, start, delta)); 1809 MakeFakeScrollWheelEvent(m_hWnd, start, delta));
1810 } 1810 }
1811 } 1811 }
1812 ::CloseGestureInfoHandle(gi_handle); 1812 ::CloseGestureInfoHandle(gi_handle);
1813 return 0; 1813 return 0;
1814 } 1814 }
1815 1815
1816 void RenderWidgetHostViewWin::OnAccessibilityNotifications( 1816 void RenderWidgetHostViewWin::OnAccessibilityNotifications(
1817 const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params) { 1817 const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params) {
1818 if (!browser_accessibility_manager_.get()) { 1818 if (!browser_accessibility_manager()) {
1819 browser_accessibility_manager_.reset( 1819 browser_accessibility_manager(
1820 BrowserAccessibilityManager::CreateEmptyDocument( 1820 BrowserAccessibilityManager::CreateEmptyDocument(
1821 m_hWnd, static_cast<WebAccessibility::State>(0), this)); 1821 m_hWnd, static_cast<WebAccessibility::State>(0), this));
1822 } 1822 }
1823 browser_accessibility_manager_->OnAccessibilityNotifications(params); 1823 browser_accessibility_manager()->OnAccessibilityNotifications(params);
1824 } 1824 }
1825 1825
1826 bool RenderWidgetHostViewWin::LockMouse() { 1826 bool RenderWidgetHostViewWin::LockMouse() {
1827 if (mouse_locked_) 1827 if (mouse_locked_)
1828 return true; 1828 return true;
1829 1829
1830 mouse_locked_ = true; 1830 mouse_locked_ = true;
1831 1831
1832 // Hide the tooltip window if it is currently visible. When the mouse is 1832 // Hide the tooltip window if it is currently visible. When the mouse is
1833 // locked, no mouse message is relayed to the tooltip window, so we don't need 1833 // locked, no mouse message is relayed to the tooltip window, so we don't need
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1881 content::RenderProcessHost* render_process_host = 1881 content::RenderProcessHost* render_process_host =
1882 content::Source<content::RenderProcessHost>(source).ptr(); 1882 content::Source<content::RenderProcessHost>(source).ptr();
1883 DCHECK(render_process_host); 1883 DCHECK(render_process_host);
1884 if (!render_widget_host_ || 1884 if (!render_widget_host_ ||
1885 render_process_host != render_widget_host_->process()) 1885 render_process_host != render_widget_host_->process())
1886 return; 1886 return;
1887 1887
1888 // If it was our RenderProcessHost that posted the notification, 1888 // If it was our RenderProcessHost that posted the notification,
1889 // clear the BrowserAccessibilityManager, because the renderer is 1889 // clear the BrowserAccessibilityManager, because the renderer is
1890 // dead and any accessibility information we have is now stale. 1890 // dead and any accessibility information we have is now stale.
1891 browser_accessibility_manager_.reset(NULL); 1891 browser_accessibility_manager(NULL);
1892 } 1892 }
1893 1893
1894 static void PaintCompositorHostWindow(HWND hWnd) { 1894 static void PaintCompositorHostWindow(HWND hWnd) {
1895 PAINTSTRUCT paint; 1895 PAINTSTRUCT paint;
1896 BeginPaint(hWnd, &paint); 1896 BeginPaint(hWnd, &paint);
1897 1897
1898 RenderWidgetHostViewWin* win = static_cast<RenderWidgetHostViewWin*>( 1898 RenderWidgetHostViewWin* win = static_cast<RenderWidgetHostViewWin*>(
1899 ui::GetWindowUserData(hWnd)); 1899 ui::GetWindowUserData(hWnd));
1900 // Trigger composite to rerender window. 1900 // Trigger composite to rerender window.
1901 if (win) 1901 if (win)
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
2083 render_widget_host_->AccessibilitySetTextSelection( 2083 render_widget_host_->AccessibilitySetTextSelection(
2084 acc_obj_id, start_offset, end_offset); 2084 acc_obj_id, start_offset, end_offset);
2085 } 2085 }
2086 2086
2087 IAccessible* RenderWidgetHostViewWin::GetIAccessible() { 2087 IAccessible* RenderWidgetHostViewWin::GetIAccessible() {
2088 if (render_widget_host_ && !render_widget_host_->renderer_accessible()) { 2088 if (render_widget_host_ && !render_widget_host_->renderer_accessible()) {
2089 // Attempt to detect screen readers by sending an event with our custom id. 2089 // Attempt to detect screen readers by sending an event with our custom id.
2090 NotifyWinEvent(EVENT_SYSTEM_ALERT, m_hWnd, kIdCustom, CHILDID_SELF); 2090 NotifyWinEvent(EVENT_SYSTEM_ALERT, m_hWnd, kIdCustom, CHILDID_SELF);
2091 } 2091 }
2092 2092
2093 if (!browser_accessibility_manager_.get()) { 2093 if (!browser_accessibility_manager()) {
2094 // Return busy document tree while renderer accessibility tree loads. 2094 // Return busy document tree while renderer accessibility tree loads.
2095 WebAccessibility::State busy_state = 2095 WebAccessibility::State busy_state =
2096 static_cast<WebAccessibility::State>(1 << WebAccessibility::STATE_BUSY); 2096 static_cast<WebAccessibility::State>(1 << WebAccessibility::STATE_BUSY);
2097 browser_accessibility_manager_.reset( 2097 browser_accessibility_manager(
2098 BrowserAccessibilityManager::CreateEmptyDocument( 2098 BrowserAccessibilityManager::CreateEmptyDocument(
2099 m_hWnd, busy_state, this)); 2099 m_hWnd, busy_state, this));
2100 } 2100 }
2101 2101
2102 return browser_accessibility_manager_->GetRoot()->toBrowserAccessibilityWin(); 2102 return browser_accessibility_manager()->GetRoot()->
2103 toBrowserAccessibilityWin();
2103 } 2104 }
2104 2105
2105 LRESULT RenderWidgetHostViewWin::OnGetObject(UINT message, WPARAM wparam, 2106 LRESULT RenderWidgetHostViewWin::OnGetObject(UINT message, WPARAM wparam,
2106 LPARAM lparam, BOOL& handled) { 2107 LPARAM lparam, BOOL& handled) {
2107 if (kIdCustom == lparam) { 2108 if (kIdCustom == lparam) {
2108 // An MSAA client requestes our custom id. Assume that we have detected an 2109 // An MSAA client requestes our custom id. Assume that we have detected an
2109 // active windows screen reader. 2110 // active windows screen reader.
2110 BrowserAccessibilityState::GetInstance()->OnScreenReaderDetected(); 2111 BrowserAccessibilityState::GetInstance()->OnScreenReaderDetected();
2111 render_widget_host_->EnableRendererAccessibility(); 2112 render_widget_host_->EnableRendererAccessibility();
2112 2113
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
2471 2472
2472 size_t offset = selection_range_.GetMin() - selection_text_offset_; 2473 size_t offset = selection_range_.GetMin() - selection_text_offset_;
2473 memcpy(reinterpret_cast<char*>(reconv) + sizeof(RECONVERTSTRING), 2474 memcpy(reinterpret_cast<char*>(reconv) + sizeof(RECONVERTSTRING),
2474 selection_text_.c_str() + offset, len * sizeof(WCHAR)); 2475 selection_text_.c_str() + offset, len * sizeof(WCHAR));
2475 2476
2476 // According to Microsft API document, IMR_RECONVERTSTRING and 2477 // According to Microsft API document, IMR_RECONVERTSTRING and
2477 // IMR_DOCUMENTFEED should return reconv, but some applications return 2478 // IMR_DOCUMENTFEED should return reconv, but some applications return
2478 // need_size. 2479 // need_size.
2479 return reinterpret_cast<LRESULT>(reconv); 2480 return reinterpret_cast<LRESULT>(reconv);
2480 } 2481 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698