summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/render_widget_host_view_qt.cpp66
-rw-r--r--src/core/render_widget_host_view_qt.h16
-rw-r--r--src/core/web_contents_adapter.cpp9
3 files changed, 11 insertions, 80 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 1e9d2bbf7..9555c85a5 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -305,15 +305,12 @@ gfx::NativeViewAccessible RenderWidgetHostViewQt::GetNativeViewAccessible()
return 0;
}
-void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
+content::BrowserAccessibilityManager* RenderWidgetHostViewQt::CreateBrowserAccessibilityManager(content::BrowserAccessibilityDelegate* delegate)
{
- if (GetBrowserAccessibilityManager())
- return;
-
- SetBrowserAccessibilityManager(new content::BrowserAccessibilityManagerQt(
+ return new content::BrowserAccessibilityManagerQt(
m_adapterClient->accessibilityParentObject(),
content::BrowserAccessibilityManagerQt::GetEmptyDocument(),
- this));
+ delegate);
}
// Set focus to the associated View component.
@@ -904,53 +901,6 @@ void RenderWidgetHostViewQt::handleInputMethodEvent(QInputMethodEvent *ev)
}
}
-void RenderWidgetHostViewQt::AccessibilitySetFocus(int acc_obj_id)
-{
- if (!m_host)
- return;
- m_host->AccessibilitySetFocus(acc_obj_id);
-}
-
-void RenderWidgetHostViewQt::AccessibilityDoDefaultAction(int acc_obj_id)
-{
- if (!m_host)
- return;
- m_host->AccessibilityDoDefaultAction(acc_obj_id);
-}
-void RenderWidgetHostViewQt::AccessibilityScrollToMakeVisible(int acc_obj_id, const gfx::Rect& subfocus)
-{
- if (!m_host)
- return;
- m_host->AccessibilityScrollToMakeVisible(acc_obj_id, subfocus);
-}
-
-void RenderWidgetHostViewQt::AccessibilityScrollToPoint(int acc_obj_id, const gfx::Point& point)
-{
- if (!m_host)
- return;
- m_host->AccessibilityScrollToPoint(acc_obj_id, point);
-}
-
-void RenderWidgetHostViewQt::AccessibilitySetTextSelection(int acc_obj_id, int start_offset, int end_offset)
-{
- if (!m_host)
- return;
- m_host->AccessibilitySetTextSelection(acc_obj_id, start_offset, end_offset);
-}
-
-bool RenderWidgetHostViewQt::AccessibilityViewHasFocus() const
-{
- return HasFocus();
-}
-
-void RenderWidgetHostViewQt::AccessibilityFatalError()
-{
- if (!m_host)
- return;
- m_host->AccessibilityFatalError();
- SetBrowserAccessibilityManager(NULL);
-}
-
void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active)
{
if (active)
@@ -1040,16 +990,6 @@ void RenderWidgetHostViewQt::handleFocusEvent(QFocusEvent *ev)
}
}
-QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible()
-{
- // Assume we have a screen reader doing stuff
- CreateBrowserAccessibilityManagerIfNeeded();
- content::BrowserAccessibilityState::GetInstance()->OnScreenReaderDetected();
- content::BrowserAccessibility *acc = GetBrowserAccessibilityManager()->GetRoot();
- content::BrowserAccessibilityQt *accQt = static_cast<content::BrowserAccessibilityQt*>(acc);
- return accQt;
-}
-
void RenderWidgetHostViewQt::didFirstVisuallyNonEmptyLayout()
{
m_didFirstVisuallyNonEmptyLayout = true;
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index 40fe72adc..ee11888ad 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -93,7 +93,6 @@ class RenderWidgetHostViewQt
: public content::RenderWidgetHostViewBase
, public ui::GestureProviderClient
, public RenderWidgetHostViewQtDelegateClient
- , public content::BrowserAccessibilityDelegate
, public base::SupportsWeakPtr<RenderWidgetHostViewQt>
, public QAccessible::ActivationObserver
{
@@ -198,21 +197,9 @@ public:
#endif // defined(OS_WIN)
// Overridden from content::BrowserAccessibilityDelegate
- virtual void AccessibilitySetFocus(int acc_obj_id) Q_DECL_OVERRIDE;
- virtual void AccessibilityDoDefaultAction(int acc_obj_id) Q_DECL_OVERRIDE;
- virtual void AccessibilityShowMenu(const gfx::Point& point) Q_DECL_OVERRIDE { }
- virtual void AccessibilityScrollToMakeVisible(int acc_obj_id, const gfx::Rect& subfocus) Q_DECL_OVERRIDE;
- virtual void AccessibilityScrollToPoint(int acc_obj_id, const gfx::Point& point) Q_DECL_OVERRIDE;
- virtual void AccessibilitySetTextSelection(int acc_obj_id, int start_offset, int end_offset) Q_DECL_OVERRIDE;
- virtual bool AccessibilityViewHasFocus() const Q_DECL_OVERRIDE;
- virtual gfx::Rect AccessibilityGetViewBounds() const Q_DECL_OVERRIDE { return GetViewBounds(); }
- virtual gfx::Point AccessibilityOriginInScreen(const gfx::Rect& bounds) const Q_DECL_OVERRIDE { return gfx::Point(); }
- virtual void AccessibilityHitTest(const gfx::Point& point) Q_DECL_OVERRIDE { }
- virtual void AccessibilityFatalError() Q_DECL_OVERRIDE;
+ virtual content::BrowserAccessibilityManager* CreateBrowserAccessibilityManager(content::BrowserAccessibilityDelegate* delegate) Q_DECL_OVERRIDE;
virtual void accessibilityActiveChanged(bool active) Q_DECL_OVERRIDE;
- QAccessibleInterface *GetQtAccessible();
-
void didFirstVisuallyNonEmptyLayout();
private:
@@ -222,7 +209,6 @@ private:
float dpiScale() const;
bool IsPopup() const;
- void CreateBrowserAccessibilityManagerIfNeeded();
content::RenderWidgetHostImpl *m_host;
ui::FilteredGestureProvider m_gestureProvider;
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 00f4bdbbe..b9c2018aa 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -41,6 +41,7 @@
#include "web_contents_adapter.h"
#include "web_contents_adapter_p.h"
+#include "browser_accessibility_qt.h"
#include "browser_context_adapter.h"
#include "browser_context_qt.h"
#include "content_browser_client_qt.h"
@@ -677,8 +678,12 @@ BrowserContextQt* WebContentsAdapter::browserContext()
QAccessibleInterface *WebContentsAdapter::browserAccessible()
{
Q_D(const WebContentsAdapter);
- RenderWidgetHostViewQt *rwhv = static_cast<RenderWidgetHostViewQt*>(d->webContents->GetRenderWidgetHostView());
- return rwhv ? rwhv->GetQtAccessible() : Q_NULLPTR;
+ content::RenderViewHost *rvh = d->webContents->GetRenderViewHost();
+ Q_ASSERT(rvh);
+ content::BrowserAccessibilityManager *manager = static_cast<content::RenderFrameHostImpl*>(rvh->GetMainFrame())->GetOrCreateBrowserAccessibilityManager();
+ content::BrowserAccessibility *acc = manager->GetRoot();
+ content::BrowserAccessibilityQt *accQt = static_cast<content::BrowserAccessibilityQt*>(acc);
+ return accQt;
}
void WebContentsAdapter::runJavaScript(const QString &javaScript)