summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael BrĂ¼ning <michael.bruning@theqtcompany.com>2015-01-20 16:20:42 +0100
committerMichael BrĂ¼ning <michael.bruning@theqtcompany.com>2015-01-23 11:52:08 +0100
commitd95b9295c970401939d2779cbdc9e2a8c7965277 (patch)
tree16dacd587d16ebf84369783faeca45c5e8178ff8
parent82bef8eb423bc7a9f607fda95cd980a8b2816056 (diff)
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. Task-number: QTBUG-43305 Change-Id: Ifa39e3ce447ebc2124f52e00b29b1d7d2231035e Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
-rw-r--r--examples/webengine/quicknanobrowser/quicknanobrowser.pro2
-rw-r--r--src/core/browser_accessibility_manager_qt.cpp6
-rw-r--r--src/core/browser_accessibility_manager_qt.h2
-rw-r--r--src/core/browser_accessibility_qt.cpp3
-rw-r--r--src/core/browser_accessibility_qt.h2
-rw-r--r--src/core/render_widget_host_view_qt.cpp11
-rw-r--r--src/core/render_widget_host_view_qt.h7
-rw-r--r--src/core/web_contents_adapter.cpp2
-rw-r--r--src/core/web_contents_adapter_client.h2
-rw-r--r--src/webengine/api/qquickwebengineview.cpp12
-rw-r--r--src/webengine/api/qquickwebengineview_p.h2
-rw-r--r--src/webengine/api/qquickwebengineview_p_p.h5
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp2
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h2
-rw-r--r--src/webenginewidgets/api/qwebenginepage_p.h2
-rw-r--r--src/webenginewidgets/api/qwebengineview.cpp7
-rw-r--r--src/webenginewidgets/api/qwebengineview_p.h3
-rw-r--r--tests/quicktestbrowser/quicktestbrowser.pro2
18 files changed, 68 insertions, 6 deletions
diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
index 3628b817e..a8e57b0a4 100644
--- a/examples/webengine/quicknanobrowser/quicknanobrowser.pro
+++ b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
@@ -1,3 +1,5 @@
+requires(contains(QT_CONFIG, accessibility))
+
TEMPLATE = app
TARGET = quicknanobrowser
diff --git a/src/core/browser_accessibility_manager_qt.cpp b/src/core/browser_accessibility_manager_qt.cpp
index 1adb69be7..0157c8602 100644
--- a/src/core/browser_accessibility_manager_qt.cpp
+++ b/src/core/browser_accessibility_manager_qt.cpp
@@ -48,9 +48,14 @@ BrowserAccessibilityManager* BrowserAccessibilityManager::Create(
BrowserAccessibilityDelegate* delegate,
BrowserAccessibilityFactory* factory)
{
+#ifndef QT_NO_ACCESSIBILITY
return new BrowserAccessibilityManagerQt(0, initial_tree, delegate);
+#else
+ return 0;
+#endif // QT_NO_ACCESSIBILITY
}
+#ifndef QT_NO_ACCESSIBILITY
BrowserAccessibility *BrowserAccessibilityFactoryQt::Create()
{
return new BrowserAccessibilityQt();
@@ -128,5 +133,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 <QtCore/qobject.h>
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 8f0dd0572..9d7dbe8d8 100644
--- a/src/core/browser_accessibility_qt.cpp
+++ b/src/core/browser_accessibility_qt.cpp
@@ -38,6 +38,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#ifndef QT_NO_ACCESSIBILITY
#include "browser_accessibility_qt.h"
#include "third_party/WebKit/public/web/WebAXEnums.h"
@@ -896,3 +897,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..6baab98b3 100644
--- a/src/core/browser_accessibility_qt.h
+++ b/src/core/browser_accessibility_qt.h
@@ -36,6 +36,7 @@
#ifndef BROWSER_ACCESSIBILITY_QT_H
#define BROWSER_ACCESSIBILITY_QT_H
+#ifndef QT_NO_ACCESSIBILITY
#include <QtGui/qaccessible.h>
#include "content/browser/accessibility/browser_accessibility.h"
@@ -145,4 +146,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 e17459634..bf4d5bf37 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -245,15 +245,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)
@@ -347,10 +350,14 @@ gfx::NativeViewAccessible RenderWidgetHostViewQt::GetNativeViewAccessible()
content::BrowserAccessibilityManager* RenderWidgetHostViewQt::CreateBrowserAccessibilityManager(content::BrowserAccessibilityDelegate* delegate)
{
+#ifndef QT_NO_ACCESSIBILITY
return new content::BrowserAccessibilityManagerQt(
m_adapterClient->accessibilityParentObject(),
content::BrowserAccessibilityManagerQt::GetEmptyDocument(),
delegate);
+#else
+ return 0;
+#endif // QT_NO_ACCESSIBILITY
}
// Set focus to the associated View component.
@@ -941,6 +948,7 @@ void RenderWidgetHostViewQt::handleInputMethodEvent(QInputMethodEvent *ev)
}
}
+#ifndef QT_NO_ACCESSIBILITY
void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active)
{
if (active)
@@ -948,6 +956,7 @@ void RenderWidgetHostViewQt::accessibilityActiveChanged(bool active)
else
content::BrowserAccessibilityStateImpl::GetInstance()->DisableAccessibility();
}
+#endif // QT_NO_ACCESSIBILITY
void RenderWidgetHostViewQt::handleWheelEvent(QWheelEvent *ev)
{
diff --git a/src/core/render_widget_host_view_qt.h b/src/core/render_widget_host_view_qt.h
index ee11888ad..93e7e75b4 100644
--- a/src/core/render_widget_host_view_qt.h
+++ b/src/core/render_widget_host_view_qt.h
@@ -52,6 +52,7 @@
#include <QRect>
#include <QtGlobal>
#include <QtGui/qaccessible.h>
+#include <QtGui/QTouchEvent>
#include "delegated_frame_node.h"
@@ -61,7 +62,6 @@ class QFocusEvent;
class QHoverEvent;
class QKeyEvent;
class QMouseEvent;
-class QTouchEvent;
class QVariant;
class QWheelEvent;
class QAccessibleInterface;
@@ -94,7 +94,9 @@ class RenderWidgetHostViewQt
, public ui::GestureProviderClient
, public RenderWidgetHostViewQtDelegateClient
, public base::SupportsWeakPtr<RenderWidgetHostViewQt>
+#ifndef QT_NO_ACCESSIBILITY
, public QAccessible::ActivationObserver
+#endif // QT_NO_ACCESSIBILITY
{
public:
RenderWidgetHostViewQt(content::RenderWidgetHost* widget);
@@ -198,8 +200,9 @@ public:
// Overridden from content::BrowserAccessibilityDelegate
virtual content::BrowserAccessibilityManager* CreateBrowserAccessibilityManager(content::BrowserAccessibilityDelegate* delegate) Q_DECL_OVERRIDE;
+#ifndef QT_NO_ACCESSIBILITY
virtual void accessibilityActiveChanged(bool active) Q_DECL_OVERRIDE;
-
+#endif // QT_NO_ACCESSIBILITY
void didFirstVisuallyNonEmptyLayout();
private:
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index d7dfcb97c..38573d833 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -670,6 +670,7 @@ BrowserContextQt* WebContentsAdapter::browserContext()
return d->browserContextAdapter->browserContext();
}
+#ifndef QT_NO_ACCESSIBILITY
QAccessibleInterface *WebContentsAdapter::browserAccessible()
{
Q_D(const WebContentsAdapter);
@@ -680,6 +681,7 @@ QAccessibleInterface *WebContentsAdapter::browserAccessible()
content::BrowserAccessibilityQt *accQt = static_cast<content::BrowserAccessibilityQt*>(acc);
return accQt;
}
+#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 f4e2c658f..8252a73ca 100644
--- a/src/core/web_contents_adapter_client.h
+++ b/src/core/web_contents_adapter_client.h
@@ -169,7 +169,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 runGeolocationPermissionRequest(const QUrl &securityOrigin) = 0;
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 92807380f..a93cd7079 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -64,16 +64,20 @@
#include <QScreen>
#include <QStringBuilder>
#include <QUrl>
+#ifndef QT_NO_ACCESSIBILITY
#include <private/qquickaccessibleattached_p.h>
+#endif // QT_NO_ACCESSIBILITY
QT_BEGIN_NAMESPACE
+#ifndef QT_NO_ACCESSIBILITY
static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
{
if (QQuickWebEngineView *v = qobject_cast<QQuickWebEngineView*>(object))
return new QQuickWebEngineViewAccessible(v);
return 0;
}
+#endif // QT_NO_ACCESSIBILITY
QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
: adapter(0)
@@ -105,7 +109,9 @@ QQuickWebEngineViewPrivate::QQuickWebEngineViewPrivate()
// 1x, 2x, 3x etc assets that fit an integral number of pixels.
setDevicePixelRatio(qMax(1, qRound(webPixelRatio)));
}
+#ifndef QT_NO_ACCESSIBILITY
QAccessible::installFactory(&webAccessibleFactory);
+#endif // QT_NO_ACCESSIBILITY
}
QQuickWebEngineViewPrivate::~QQuickWebEngineViewPrivate()
@@ -414,11 +420,13 @@ void QQuickWebEngineViewPrivate::runMouseLockPermissionRequest(const QUrl &secur
adapter->grantMouseLockPermission(false);
}
+#ifndef QT_NO_ACCESSIBILITY
QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
{
Q_Q(QQuickWebEngineView);
return q;
}
+#endif // QT_NO_ACCESSIBILITY
BrowserContextAdapter *QQuickWebEngineViewPrivate::browserContextAdapter()
{
@@ -438,6 +446,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
}
+#ifndef QT_NO_ACCESSIBILITY
QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
: QAccessibleObject(o)
{}
@@ -484,6 +493,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
QAccessible::State s;
return s;
}
+#endif // QT_NO_ACCESSIBILITY
void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
{
@@ -520,8 +530,10 @@ QQuickWebEngineView::QQuickWebEngineView(QQuickItem *parent)
this->setActiveFocusOnTab(true);
this->setFlag(QQuickItem::ItemIsFocusScope);
+#ifndef QT_NO_ACCESSIBILITY
QQuickAccessibleAttached *accessible = QQuickAccessibleAttached::qmlAttachedProperties(this);
accessible->setRole(QAccessible::Grouping);
+#endif // QT_NO_ACCESSIBILITY
}
QQuickWebEngineView::~QQuickWebEngineView()
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index f3ef133ae..d625dbdd9 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -168,7 +168,9 @@ private:
friend class QQuickWebEngineViewExperimental;
friend class QQuickWebEngineViewExperimentalExtension;
friend class QQuickWebEngineNewViewRequest;
+#ifndef QT_NO_ACCESSIBILITY
friend class QQuickWebEngineViewAccessible;
+#endif // QT_NO_ACCESSIBILITY
};
QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
index f97f2a8cf..964a4f0d9 100644
--- a/src/webengine/api/qquickwebengineview_p_p.h
+++ b/src/webengine/api/qquickwebengineview_p_p.h
@@ -174,7 +174,9 @@ public:
virtual void authenticationRequired(const QUrl&, const QString&, bool, const QString&, QString*, QString*) Q_DECL_OVERRIDE { }
virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE;
virtual void runMouseLockPermissionRequest(const QUrl &securityOrigin) Q_DECL_OVERRIDE;
+#ifndef QT_NO_ACCESSIBILITY
virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE;
+#endif // QT_NO_ACCESSIBILITY
virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE;
virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController);
virtual void runGeolocationPermissionRequest(QUrl const&) Q_DECL_OVERRIDE;
@@ -206,6 +208,7 @@ private:
qreal m_dpiScale;
};
+#ifndef QT_NO_ACCESSIBILITY
class QQuickWebEngineViewAccessible : public QAccessibleObject
{
public:
@@ -221,7 +224,7 @@ public:
private:
QQuickWebEngineView *engineView() const { return static_cast<QQuickWebEngineView*>(object()); }
};
-
+#endif // QT_NO_ACCESSIBILITY
QT_END_NAMESPACE
QML_DECLARE_TYPE(QQuickWebEngineViewExperimental)
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 991a17fe3..5f1c06d0b 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -358,10 +358,12 @@ void QWebEnginePagePrivate::runMouseLockPermissionRequest(const QUrl &securityOr
Q_EMIT q->featurePermissionRequested(securityOrigin, QWebEnginePage::MouseLock);
}
+#ifndef QT_NO_ACCESSIBILITY
QObject *QWebEnginePagePrivate::accessibilityParentObject()
{
return view;
}
+#endif // QT_NO_ACCESSIBILITY
void QWebEnginePagePrivate::updateAction(QWebEnginePage::WebAction action) const
{
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index 4b9208117..afc96c996 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -274,7 +274,9 @@ private:
friend class QWebEngineView;
friend class QWebEngineViewPrivate;
+#ifndef QT_NO_ACCESSIBILITY
friend class QWebEngineViewAccessible;
+#endif // QT_NO_ACCESSIBILITY
};
diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h
index a11c44ded..1f44b6124 100644
--- a/src/webenginewidgets/api/qwebenginepage_p.h
+++ b/src/webenginewidgets/api/qwebenginepage_p.h
@@ -138,7 +138,9 @@ public:
virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE;
virtual void runGeolocationPermissionRequest(const QUrl &securityOrigin) Q_DECL_OVERRIDE;
virtual void runMouseLockPermissionRequest(const QUrl &securityOrigin) Q_DECL_OVERRIDE;
+#ifndef QT_NO_ACCESSIBILITY
virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE;
+#endif // QT_NO_ACCESSIBILITY
virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE;
virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &controller) Q_DECL_OVERRIDE;
diff --git a/src/webenginewidgets/api/qwebengineview.cpp b/src/webenginewidgets/api/qwebengineview.cpp
index 8d2198998..63ac40571 100644
--- a/src/webenginewidgets/api/qwebengineview.cpp
+++ b/src/webenginewidgets/api/qwebengineview.cpp
@@ -85,19 +85,22 @@ void QWebEngineViewPrivate::bind(QWebEngineView *view, QWebEnginePage *page)
}
}
-
+#ifndef QT_NO_ACCESSIBILITY
static QAccessibleInterface *webAccessibleFactory(const QString &, QObject *object)
{
if (QWebEngineView *v = qobject_cast<QWebEngineView*>(object))
return new QWebEngineViewAccessible(v);
return Q_NULLPTR;
}
+#endif // QT_NO_ACCESSIBILITY
QWebEngineViewPrivate::QWebEngineViewPrivate()
: page(0)
, m_pendingContextMenuEvent(false)
{
+#ifndef QT_NO_ACCESSIBILITY
QAccessible::installFactory(&webAccessibleFactory);
+#endif // QT_NO_ACCESSIBILITY
}
QWebEngineView::QWebEngineView(QWidget *parent)
@@ -274,6 +277,7 @@ void QWebEngineView::contextMenuEvent(QContextMenuEvent *event)
menu->popup(event->globalPos());
}
+#ifndef QT_NO_ACCESSIBILITY
int QWebEngineViewAccessible::childCount() const
{
if (view() && child(0))
@@ -294,6 +298,7 @@ int QWebEngineViewAccessible::indexOfChild(const QAccessibleInterface *c) const
return 0;
return -1;
}
+#endif // QT_NO_ACCESSIBILITY
QT_END_NAMESPACE
diff --git a/src/webenginewidgets/api/qwebengineview_p.h b/src/webenginewidgets/api/qwebengineview_p.h
index 9db971f79..e0cc3f4ee 100644
--- a/src/webenginewidgets/api/qwebengineview_p.h
+++ b/src/webenginewidgets/api/qwebengineview_p.h
@@ -59,6 +59,7 @@ public:
bool m_pendingContextMenuEvent;
};
+#ifndef QT_NO_ACCESSIBILITY
class QWebEngineViewAccessible : public QAccessibleWidget
{
public:
@@ -72,7 +73,7 @@ public:
private:
QWebEngineView *view() const { return static_cast<QWebEngineView*>(object()); }
};
-
+#endif // QT_NO_ACCESSIBILITY
QT_END_NAMESPACE
diff --git a/tests/quicktestbrowser/quicktestbrowser.pro b/tests/quicktestbrowser/quicktestbrowser.pro
index 1da197590..942a54c7d 100644
--- a/tests/quicktestbrowser/quicktestbrowser.pro
+++ b/tests/quicktestbrowser/quicktestbrowser.pro
@@ -1,3 +1,5 @@
+requires(contains(QT_CONFIG, accessibility))
+
TEMPLATE = app
TARGET = quicktestbrowser