From 9d1a77b5be56a6a1dade613573eaeea63070969f Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Wed, 4 Mar 2015 12:39:29 +0100 Subject: Enable building Qt WebEngine without accessiblity enabled. This adds guards that for QT_NO_ACCESSIBILITY being not defined around the code that uses accessibility types. It disables the quicknanobrowser and quicktestbrowser examples which need Qt QuickControls, which has a hard dependency to accessibility being enabled. Backport of d95b9295c970401939d2779cbdc9e2a8c7965277 from 5.5 Change-Id: I2a2a0a6196fcb3baa39603d9c929183b454f39ed Reviewed-by: Andras Becsi --- src/core/browser_accessibility_manager_qt.cpp | 6 ++++++ src/core/browser_accessibility_manager_qt.h | 2 ++ src/core/browser_accessibility_qt.cpp | 4 ++++ src/core/browser_accessibility_qt.h | 3 +++ src/core/render_widget_host_view_qt.cpp | 13 ++++++++++++- src/core/render_widget_host_view_qt.h | 6 +++++- src/core/web_contents_adapter.cpp | 2 ++ src/core/web_contents_adapter_client.h | 2 ++ 8 files changed, 36 insertions(+), 2 deletions(-) (limited to 'src/core') diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp index 28d0dd7e3..672986631 100644 --- a/src/core/browser_accessibility_manager_qt.cpp +++ b/src/core/browser_accessibility_manager_qt.cpp @@ -45,9 +45,14 @@ namespace content { BrowserAccessibility *BrowserAccessibilityFactoryQt::Create() { +#ifndef QT_NO_ACCESSIBILITY return new BrowserAccessibilityQt(); +#else + return 0; +#endif // QT_NO_ACCESSIBILITY } +#ifndef QT_NO_ACCESSIBILITY BrowserAccessibilityManagerQt::BrowserAccessibilityManagerQt( QObject* parentObject, const ui::AXTreeUpdate& initialTree, @@ -131,5 +136,6 @@ void BrowserAccessibilityManagerQt::NotifyAccessibilityEvent(ui::AXEvent event_t break; } } +#endif // QT_NO_ACCESSIBILITY } diff --git a/src/core/browser_accessibility_manager_qt.h b/src/core/browser_accessibility_manager_qt.h index 5d8498d01..49b3af3b2 100644 --- a/src/core/browser_accessibility_manager_qt.h +++ b/src/core/browser_accessibility_manager_qt.h @@ -38,6 +38,7 @@ #define BROWSER_ACCESSIBILITY_MANAGER_QT_H #include "content/browser/accessibility/browser_accessibility_manager.h" +#ifndef QT_NO_ACCESSIBILITY #include QT_BEGIN_NAMESPACE @@ -74,4 +75,5 @@ private: } +#endif // QT_NO_ACCESSIBILITY #endif diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp index b5cd26f2f..4b8e97a3f 100644 --- a/src/core/browser_accessibility_qt.cpp +++ b/src/core/browser_accessibility_qt.cpp @@ -40,6 +40,8 @@ #include "browser_accessibility_qt.h" +#ifndef QT_NO_ACCESSIBILITY + #include "third_party/WebKit/public/web/WebAXEnums.h" #include "ui/accessibility/ax_node_data.h" @@ -898,3 +900,5 @@ void BrowserAccessibilityQt::modelChange(QAccessibleTableModelChangeEvent *) } } // namespace content + +#endif // QT_NO_ACCESSIBILITY diff --git a/src/core/browser_accessibility_qt.h b/src/core/browser_accessibility_qt.h index db190ffc4..e87b5d8fc 100644 --- a/src/core/browser_accessibility_qt.h +++ b/src/core/browser_accessibility_qt.h @@ -38,6 +38,8 @@ #define BROWSER_ACCESSIBILITY_QT_H #include + +#ifndef QT_NO_ACCESSIBILITY #include "content/browser/accessibility/browser_accessibility.h" namespace content { @@ -145,4 +147,5 @@ public: } +#endif // QT_NO_ACCESSIBILITY #endif diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index c221e94e3..18d64e84c 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -198,15 +198,18 @@ RenderWidgetHostViewQt::RenderWidgetHostViewQt(content::RenderWidgetHost* widget , m_initPending(false) { m_host->SetView(this); - +#ifndef QT_NO_ACCESSIBILITY QAccessible::installActivationObserver(this); if (QAccessible::isActive()) content::BrowserAccessibilityStateImpl::GetInstance()->EnableAccessibility(); +#endif // QT_NO_ACCESSIBILITY } RenderWidgetHostViewQt::~RenderWidgetHostViewQt() { +#ifndef QT_NO_ACCESSIBILITY QAccessible::removeActivationObserver(this); +#endif // QT_NO_ACCESSIBILITY } void RenderWidgetHostViewQt::setDelegate(RenderWidgetHostViewQtDelegate* delegate) @@ -296,6 +299,7 @@ gfx::NativeViewAccessible RenderWidgetHostViewQt::GetNativeViewAccessible() void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded() { +#ifndef QT_NO_ACCESSIBILITY if (GetBrowserAccessibilityManager()) return; @@ -303,6 +307,9 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded() m_adapterClient->accessibilityParentObject(), content::BrowserAccessibilityManagerQt::GetEmptyDocument(), this)); +#else + return 0; +#endif // QT_NO_ACCESSIBILITY } // Set focus to the associated View component. @@ -953,6 +960,7 @@ void RenderWidgetHostViewQt::AccessibilityFatalError() SetBrowserAccessibilityManager(NULL); } +#ifndef QT_NO_ACCESSIBILITY void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active) { if (active) @@ -960,6 +968,7 @@ void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active) else content::BrowserAccessibilityStateImpl::GetInstance()->DisableAccessibility(); } +#endif // QT_NO_ACCESSIBILITY void RenderWidgetHostViewQt::handleWheelEvent(QWheelEvent *ev) { @@ -1042,6 +1051,7 @@ void RenderWidgetHostViewQt::handleFocusEvent(QFocusEvent *ev) } } +#ifndef QT_NO_ACCESSIBILITY QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible() { // Assume we have a screen reader doing stuff @@ -1051,6 +1061,7 @@ QAccessibleInterface *RenderWidgetHostViewQt::GetQtAccessible() content::BrowserAccessibilityQt *accQt = static_cast(acc); return accQt; } +#endif // QT_NO_ACCESSIBILITY void RenderWidgetHostViewQt::didFirstVisuallyNonEmptyLayout() { diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h index d4a3ff248..fac7efd14 100644 --- a/src/core/render_widget_host_view_qt.h +++ b/src/core/render_widget_host_view_qt.h @@ -50,6 +50,7 @@ #include #include #include +#include #include "delegated_frame_node.h" @@ -59,7 +60,6 @@ class QFocusEvent; class QHoverEvent; class QKeyEvent; class QMouseEvent; -class QTouchEvent; class QVariant; class QWheelEvent; class QAccessibleInterface; @@ -93,7 +93,9 @@ class RenderWidgetHostViewQt , public RenderWidgetHostViewQtDelegateClient , public content::BrowserAccessibilityDelegate , public base::SupportsWeakPtr +#ifndef QT_NO_ACCESSIBILITY , public QAccessible::ActivationObserver +#endif // QT_NO_ACCESSIBILITY { public: RenderWidgetHostViewQt(content::RenderWidgetHost* widget); @@ -213,9 +215,11 @@ public: 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; +#ifndef QT_NO_ACCESSIBILITY virtual void accessibilityActiveChanged(bool active) Q_DECL_OVERRIDE; QAccessibleInterface *GetQtAccessible(); +#endif // QT_NO_ACCESSIBILITY void didFirstVisuallyNonEmptyLayout(); diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 3f223f733..e41acd070 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -628,12 +628,14 @@ void WebContentsAdapter::enableInspector(bool enable) ContentBrowserClientQt::Get()->enableInspector(enable); } +#ifndef QT_NO_ACCESSIBILITY QAccessibleInterface *WebContentsAdapter::browserAccessible() { Q_D(const WebContentsAdapter); RenderWidgetHostViewQt *rwhv = static_cast(d->webContents->GetRenderWidgetHostView()); return rwhv ? rwhv->GetQtAccessible() : Q_NULLPTR; } +#endif // QT_NO_ACCESSIBILITY void WebContentsAdapter::runJavaScript(const QString &javaScript) { diff --git a/src/core/web_contents_adapter_client.h b/src/core/web_contents_adapter_client.h index 8fd401fe4..df1898064 100644 --- a/src/core/web_contents_adapter_client.h +++ b/src/core/web_contents_adapter_client.h @@ -168,7 +168,9 @@ public: virtual void passOnFocus(bool reverse) = 0; // returns the last QObject (QWidget/QQuickItem) based object in the accessibility // hierarchy before going into the BrowserAccessibility tree +#ifndef QT_NO_ACCESSIBILITY virtual QObject *accessibilityParentObject() = 0; +#endif // QT_NO_ACCESSIBILITY virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) = 0; virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) = 0; virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) = 0; -- cgit v1.2.3 From 8b2cb3b6b4546d333ff7d265d3875d2ed46c2c0a Mon Sep 17 00:00:00 2001 From: Stephan Binner Date: Thu, 5 Mar 2015 16:50:08 +0100 Subject: Fix non-accessible build without -fpermissive Change-Id: I0279f26374070614cf8df0e6601b17e5b01b3be6 Reviewed-by: Andras Becsi --- src/core/render_widget_host_view_qt.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/core') diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index 18d64e84c..4c8a2c10e 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -307,8 +307,6 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded() m_adapterClient->accessibilityParentObject(), content::BrowserAccessibilityManagerQt::GetEmptyDocument(), this)); -#else - return 0; #endif // QT_NO_ACCESSIBILITY } -- cgit v1.2.3