* [meta-qt5][PATCH] fix build of qtwebengine if qtbase has no accessibility
@ 2015-03-03 17:25 Stephan Binner
2015-03-03 18:28 ` Martin Jansa
0 siblings, 1 reply; 8+ messages in thread
From: Stephan Binner @ 2015-03-03 17:25 UTC (permalink / raw)
To: openembedded-devel
Signed-off-by: Stephan Binner <stephan.binner@basyskom.com>
---
recipes-qt/qt5/qtbase.inc | 2 +-
.../0004-fix-build-without-accessiblity.diff | 498 +++++++++++++++++++++
recipes-qt/qt5/qtwebengine_5.4.1.bb | 1 +
3 files changed, 500 insertions(+), 1 deletion(-)
create mode 100644 recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index c6fe358..d7c027f 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -64,7 +64,7 @@ PACKAGECONFIG[examples] = "-make examples -compile-examples,-nomake examples"
PACKAGECONFIG[tools] = "-make tools,-nomake tools"
# only for completeness, configure will add libs even if you try to explicitly remove it
PACKAGECONFIG[libs] = "-make libs,-nomake libs"
-# accessibility is required to compile qtquickcontrols and qtwebengine
+# accessibility is required to compile qtquickcontrols
PACKAGECONFIG[accessibility] = "-accessibility,-no-accessibility"
PACKAGECONFIG[glib] = "-glib,-no-glib,glib-2.0"
# use either system freetype or bundled freetype, if you disable freetype completely
diff --git a/recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff b/recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff
new file mode 100644
index 0000000..85255d1
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff
@@ -0,0 +1,498 @@
+commit 11786ea03a2c474c5629c016ca5bf59d07c69a04
+Author: Stephan Binner <stephan.binner@basyskom.com>
+Date: Mon Mar 2 14:06:48 2015 +0100
+
+ Enable building Qt WebEngine without accessiblity enabled.
+
+ Backport of https://codereview.qt-project.org/#/c/104207/
+
+diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
+index 3628b81..a8e57b0 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 28d0dd7..6729866 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 5d8498d..49b3af3 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 b5cd26f..4b8e97a 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 db190ff..e87b5d8 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 <QtGui/qaccessible.h>
++
++#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 c221e94..349028e 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<content::BrowserAccessibilityQt*>(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 d4a3ff2..fac7efd 100644
+--- a/src/core/render_widget_host_view_qt.h
++++ b/src/core/render_widget_host_view_qt.h
+@@ -50,6 +50,7 @@
+ #include <QRect>
+ #include <QtGlobal>
+ #include <QtGui/qaccessible.h>
++#include <QtGui/QTouchEvent>
+
+ #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<RenderWidgetHostViewQt>
++#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 3f223f7..e41acd0 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<RenderWidgetHostViewQt*>(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 8fd401f..df18980 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;
+diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
+index 3497c16..a35cfc3 100644
+--- a/src/webengine/api/qquickwebengineview.cpp
++++ b/src/webengine/api/qquickwebengineview.cpp
+@@ -61,16 +61,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(new WebContentsAdapter)
+@@ -102,7 +106,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()
+@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
+ Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
+ }
+
++#ifndef QT_NO_ACCESSIBILITY
+ QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
+ {
+ Q_Q(QQuickWebEngineView);
+ return q;
+ }
++#endif // QT_NO_ACCESSIBILITY
+
+ WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
+ {
+@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
+ m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
+ }
+
++#ifndef QT_NO_ACCESSIBILITY
+ QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
+ : QAccessibleObject(o)
+ {}
+@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
+ QAccessible::State s;
+ return s;
+ }
++#endif // QT_NO_ACCESSIBILITY
+
+ void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
+ {
+@@ -497,8 +507,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 22713ee..f3ceb2c 100644
+--- a/src/webengine/api/qquickwebengineview_p.h
++++ b/src/webengine/api/qquickwebengineview_p.h
+@@ -155,7 +155,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 6662f1f..3ab95c6 100644
+--- a/src/webengine/api/qquickwebengineview_p_p.h
++++ b/src/webengine/api/qquickwebengineview_p_p.h
+@@ -175,7 +175,9 @@ public:
+ virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
+ 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;
++#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);
+
+@@ -202,6 +204,7 @@ private:
+ qreal m_dpiScale;
+ };
+
++#ifndef QT_NO_ACCESSIBILITY
+ class QQuickWebEngineViewAccessible : public QAccessibleObject
+ {
+ public:
+@@ -217,7 +220,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 72b16f2..068c175 100644
+--- a/src/webenginewidgets/api/qwebenginepage.cpp
++++ b/src/webenginewidgets/api/qwebenginepage.cpp
+@@ -39,6 +39,7 @@
+ #include <QApplication>
+ #include <QAuthenticator>
+ #include <QClipboard>
++#include <QContextMenuEvent>
+ #include <QFileDialog>
+ #include <QIcon>
+ #include <QInputDialog>
+@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
+ Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
+ }
+
++#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 7856b82..9fd81b0 100644
+--- a/src/webenginewidgets/api/qwebenginepage.h
++++ b/src/webenginewidgets/api/qwebenginepage.h
+@@ -258,7 +258,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 5412922..2307e7a 100644
+--- a/src/webenginewidgets/api/qwebenginepage_p.h
++++ b/src/webenginewidgets/api/qwebenginepage_p.h
+@@ -135,7 +135,9 @@ public:
+ virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
+ virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
+ virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) 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 8d21989..63ac405 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 9db971f..e0cc3f4 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 ac8fe74..51ea5a2 100644
+--- a/tests/quicktestbrowser/quicktestbrowser.pro
++++ b/tests/quicktestbrowser/quicktestbrowser.pro
+@@ -1,3 +1,5 @@
++requires(contains(QT_CONFIG, accessibility))
++
+ TEMPLATE = app
+ TARGET = quicktestbrowser
+
diff --git a/recipes-qt/qt5/qtwebengine_5.4.1.bb b/recipes-qt/qt5/qtwebengine_5.4.1.bb
index 92e8c04..2935f18 100644
--- a/recipes-qt/qt5/qtwebengine_5.4.1.bb
+++ b/recipes-qt/qt5/qtwebengine_5.4.1.bb
@@ -9,4 +9,5 @@ SRC_URI += " \
file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
+ file://0004-fix-build-without-accessiblity.diff \
"
--
1.9.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-qt5][PATCH] fix build of qtwebengine if qtbase has no accessibility
2015-03-03 17:25 [meta-qt5][PATCH] fix build of qtwebengine if qtbase has no accessibility Stephan Binner
@ 2015-03-03 18:28 ` Martin Jansa
2015-03-03 19:40 ` [meta-qt5][PATCHv2] " Martin Jansa
2015-03-05 14:00 ` [meta-qt5][PATCHv1] qtwebengine: Fix build with accessibility enabled Martin Jansa
0 siblings, 2 replies; 8+ messages in thread
From: Martin Jansa @ 2015-03-03 18:28 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 22850 bytes --]
On Tue, Mar 03, 2015 at 06:25:41PM +0100, Stephan Binner wrote:
> Signed-off-by: Stephan Binner <stephan.binner@basyskom.com>
> ---
> recipes-qt/qt5/qtbase.inc | 2 +-
> .../0004-fix-build-without-accessiblity.diff | 498 +++++++++++++++++++++
> recipes-qt/qt5/qtwebengine_5.4.1.bb | 1 +
> 3 files changed, 500 insertions(+), 1 deletion(-)
> create mode 100644 recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff
>
> diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
> index c6fe358..d7c027f 100644
> --- a/recipes-qt/qt5/qtbase.inc
> +++ b/recipes-qt/qt5/qtbase.inc
> @@ -64,7 +64,7 @@ PACKAGECONFIG[examples] = "-make examples -compile-examples,-nomake examples"
> PACKAGECONFIG[tools] = "-make tools,-nomake tools"
> # only for completeness, configure will add libs even if you try to explicitly remove it
> PACKAGECONFIG[libs] = "-make libs,-nomake libs"
> -# accessibility is required to compile qtquickcontrols and qtwebengine
> +# accessibility is required to compile qtquickcontrols
> PACKAGECONFIG[accessibility] = "-accessibility,-no-accessibility"
> PACKAGECONFIG[glib] = "-glib,-no-glib,glib-2.0"
> # use either system freetype or bundled freetype, if you disable freetype completely
> diff --git a/recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff b/recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff
> new file mode 100644
> index 0000000..85255d1
> --- /dev/null
> +++ b/recipes-qt/qt5/qtwebengine/0004-fix-build-without-accessiblity.diff
> @@ -0,0 +1,498 @@
> +commit 11786ea03a2c474c5629c016ca5bf59d07c69a04
> +Author: Stephan Binner <stephan.binner@basyskom.com>
> +Date: Mon Mar 2 14:06:48 2015 +0100
> +
> + Enable building Qt WebEngine without accessiblity enabled.
> +
> + Backport of https://codereview.qt-project.org/#/c/104207/
I'll fix it this time, but next time please use "git format-patch" to
create .patch files with proper headers (to apply with git am).
And the right syntax is:
Upstream-Status: Backport https://codereview.qt-project.org/#/c/104207/
and add information in which branch/version it's already applied.
> +
> +diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
> +index 3628b81..a8e57b0 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 28d0dd7..6729866 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 5d8498d..49b3af3 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 b5cd26f..4b8e97a 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 db190ff..e87b5d8 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 <QtGui/qaccessible.h>
> ++
> ++#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 c221e94..349028e 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<content::BrowserAccessibilityQt*>(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 d4a3ff2..fac7efd 100644
> +--- a/src/core/render_widget_host_view_qt.h
> ++++ b/src/core/render_widget_host_view_qt.h
> +@@ -50,6 +50,7 @@
> + #include <QRect>
> + #include <QtGlobal>
> + #include <QtGui/qaccessible.h>
> ++#include <QtGui/QTouchEvent>
> +
> + #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<RenderWidgetHostViewQt>
> ++#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 3f223f7..e41acd0 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<RenderWidgetHostViewQt*>(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 8fd401f..df18980 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;
> +diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
> +index 3497c16..a35cfc3 100644
> +--- a/src/webengine/api/qquickwebengineview.cpp
> ++++ b/src/webengine/api/qquickwebengineview.cpp
> +@@ -61,16 +61,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(new WebContentsAdapter)
> +@@ -102,7 +106,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()
> +@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
> + Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
> + }
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
> + {
> + Q_Q(QQuickWebEngineView);
> + return q;
> + }
> ++#endif // QT_NO_ACCESSIBILITY
> +
> + WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
> + {
> +@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
> + m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
> + }
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
> + : QAccessibleObject(o)
> + {}
> +@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
> + QAccessible::State s;
> + return s;
> + }
> ++#endif // QT_NO_ACCESSIBILITY
> +
> + void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
> + {
> +@@ -497,8 +507,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 22713ee..f3ceb2c 100644
> +--- a/src/webengine/api/qquickwebengineview_p.h
> ++++ b/src/webengine/api/qquickwebengineview_p.h
> +@@ -155,7 +155,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 6662f1f..3ab95c6 100644
> +--- a/src/webengine/api/qquickwebengineview_p_p.h
> ++++ b/src/webengine/api/qquickwebengineview_p_p.h
> +@@ -175,7 +175,9 @@ public:
> + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
> + 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;
> ++#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);
> +
> +@@ -202,6 +204,7 @@ private:
> + qreal m_dpiScale;
> + };
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + class QQuickWebEngineViewAccessible : public QAccessibleObject
> + {
> + public:
> +@@ -217,7 +220,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 72b16f2..068c175 100644
> +--- a/src/webenginewidgets/api/qwebenginepage.cpp
> ++++ b/src/webenginewidgets/api/qwebenginepage.cpp
> +@@ -39,6 +39,7 @@
> + #include <QApplication>
> + #include <QAuthenticator>
> + #include <QClipboard>
> ++#include <QContextMenuEvent>
> + #include <QFileDialog>
> + #include <QIcon>
> + #include <QInputDialog>
> +@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
> + Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
> + }
> +
> ++#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 7856b82..9fd81b0 100644
> +--- a/src/webenginewidgets/api/qwebenginepage.h
> ++++ b/src/webenginewidgets/api/qwebenginepage.h
> +@@ -258,7 +258,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 5412922..2307e7a 100644
> +--- a/src/webenginewidgets/api/qwebenginepage_p.h
> ++++ b/src/webenginewidgets/api/qwebenginepage_p.h
> +@@ -135,7 +135,9 @@ public:
> + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
> + virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
> + virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) 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 8d21989..63ac405 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 9db971f..e0cc3f4 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 ac8fe74..51ea5a2 100644
> +--- a/tests/quicktestbrowser/quicktestbrowser.pro
> ++++ b/tests/quicktestbrowser/quicktestbrowser.pro
> +@@ -1,3 +1,5 @@
> ++requires(contains(QT_CONFIG, accessibility))
> ++
> + TEMPLATE = app
> + TARGET = quicktestbrowser
> +
> diff --git a/recipes-qt/qt5/qtwebengine_5.4.1.bb b/recipes-qt/qt5/qtwebengine_5.4.1.bb
> index 92e8c04..2935f18 100644
> --- a/recipes-qt/qt5/qtwebengine_5.4.1.bb
> +++ b/recipes-qt/qt5/qtwebengine_5.4.1.bb
> @@ -9,4 +9,5 @@ SRC_URI += " \
> file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
> file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
> file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
> + file://0004-fix-build-without-accessiblity.diff \
> "
> --
> 1.9.1
>
>
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [meta-qt5][PATCHv2] fix build of qtwebengine if qtbase has no accessibility
2015-03-03 18:28 ` Martin Jansa
@ 2015-03-03 19:40 ` Martin Jansa
2015-03-04 2:25 ` Martin Jansa
2015-03-05 14:00 ` [meta-qt5][PATCHv1] qtwebengine: Fix build with accessibility enabled Martin Jansa
1 sibling, 1 reply; 8+ messages in thread
From: Martin Jansa @ 2015-03-03 19:40 UTC (permalink / raw)
To: openembedded-devel
From: Stephan Binner <stephan.binner@basyskom.com>
Signed-off-by: Stephan Binner <stephan.binner@basyskom.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
recipes-qt/qt5/qtbase.inc | 2 +-
...ding-Qt-WebEngine-without-accessiblity-en.patch | 533 +++++++++++++++++++++
...ding-Qt-WebEngine-without-accessiblity-en.patch | 533 +++++++++++++++++++++
recipes-qt/qt5/qtwebengine_5.4.1.bb | 1 +
recipes-qt/qt5/qtwebengine_git.bb | 1 +
5 files changed, 1069 insertions(+), 1 deletion(-)
create mode 100644 recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
create mode 100644 recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
index c6fe358..d7c027f 100644
--- a/recipes-qt/qt5/qtbase.inc
+++ b/recipes-qt/qt5/qtbase.inc
@@ -64,7 +64,7 @@ PACKAGECONFIG[examples] = "-make examples -compile-examples,-nomake examples"
PACKAGECONFIG[tools] = "-make tools,-nomake tools"
# only for completeness, configure will add libs even if you try to explicitly remove it
PACKAGECONFIG[libs] = "-make libs,-nomake libs"
-# accessibility is required to compile qtquickcontrols and qtwebengine
+# accessibility is required to compile qtquickcontrols
PACKAGECONFIG[accessibility] = "-accessibility,-no-accessibility"
PACKAGECONFIG[glib] = "-glib,-no-glib,glib-2.0"
# use either system freetype or bundled freetype, if you disable freetype completely
diff --git a/recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch b/recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
new file mode 100644
index 0000000..8a4c216
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
@@ -0,0 +1,533 @@
+From 8328f6941685d8a525629b9c0717dbab321fc09e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@theqtcompany.com>
+Date: Tue, 20 Jan 2015 16:20:42 +0100
+Subject: [PATCH 4/4] 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>
+
+Upstream-Status: Backport from 5.5
+https://codereview.qt-project.org/#/c/104207/
+---
+ examples/webengine/quicknanobrowser/quicknanobrowser.pro | 2 ++
+ 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 ++
+ src/webengine/api/qquickwebengineview.cpp | 12 ++++++++++++
+ src/webengine/api/qquickwebengineview_p.h | 2 ++
+ src/webengine/api/qquickwebengineview_p_p.h | 5 ++++-
+ src/webenginewidgets/api/qwebenginepage.cpp | 3 +++
+ src/webenginewidgets/api/qwebenginepage.h | 2 ++
+ src/webenginewidgets/api/qwebenginepage_p.h | 2 ++
+ src/webenginewidgets/api/qwebengineview.cpp | 7 ++++++-
+ src/webenginewidgets/api/qwebengineview_p.h | 3 ++-
+ tests/quicktestbrowser/quicktestbrowser.pro | 2 ++
+ 18 files changed, 73 insertions(+), 5 deletions(-)
+
+diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
+index 3628b81..a8e57b0 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 28d0dd7..6729866 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 5d8498d..49b3af3 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 b5cd26f..4b8e97a 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 db190ff..e87b5d8 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 <QtGui/qaccessible.h>
++
++#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 c221e94..349028e 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<content::BrowserAccessibilityQt*>(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 d4a3ff2..fac7efd 100644
+--- a/src/core/render_widget_host_view_qt.h
++++ b/src/core/render_widget_host_view_qt.h
+@@ -50,6 +50,7 @@
+ #include <QRect>
+ #include <QtGlobal>
+ #include <QtGui/qaccessible.h>
++#include <QtGui/QTouchEvent>
+
+ #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<RenderWidgetHostViewQt>
++#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 3f223f7..e41acd0 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<RenderWidgetHostViewQt*>(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 8fd401f..df18980 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;
+diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
+index 3497c16..a35cfc3 100644
+--- a/src/webengine/api/qquickwebengineview.cpp
++++ b/src/webengine/api/qquickwebengineview.cpp
+@@ -61,16 +61,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(new WebContentsAdapter)
+@@ -102,7 +106,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()
+@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
+ Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
+ }
+
++#ifndef QT_NO_ACCESSIBILITY
+ QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
+ {
+ Q_Q(QQuickWebEngineView);
+ return q;
+ }
++#endif // QT_NO_ACCESSIBILITY
+
+ WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
+ {
+@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
+ m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
+ }
+
++#ifndef QT_NO_ACCESSIBILITY
+ QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
+ : QAccessibleObject(o)
+ {}
+@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
+ QAccessible::State s;
+ return s;
+ }
++#endif // QT_NO_ACCESSIBILITY
+
+ void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
+ {
+@@ -497,8 +507,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 22713ee..f3ceb2c 100644
+--- a/src/webengine/api/qquickwebengineview_p.h
++++ b/src/webengine/api/qquickwebengineview_p.h
+@@ -155,7 +155,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 6662f1f..3ab95c6 100644
+--- a/src/webengine/api/qquickwebengineview_p_p.h
++++ b/src/webengine/api/qquickwebengineview_p_p.h
+@@ -175,7 +175,9 @@ public:
+ virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
+ 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;
++#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);
+
+@@ -202,6 +204,7 @@ private:
+ qreal m_dpiScale;
+ };
+
++#ifndef QT_NO_ACCESSIBILITY
+ class QQuickWebEngineViewAccessible : public QAccessibleObject
+ {
+ public:
+@@ -217,7 +220,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 72b16f2..068c175 100644
+--- a/src/webenginewidgets/api/qwebenginepage.cpp
++++ b/src/webenginewidgets/api/qwebenginepage.cpp
+@@ -39,6 +39,7 @@
+ #include <QApplication>
+ #include <QAuthenticator>
+ #include <QClipboard>
++#include <QContextMenuEvent>
+ #include <QFileDialog>
+ #include <QIcon>
+ #include <QInputDialog>
+@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
+ Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
+ }
+
++#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 7856b82..9fd81b0 100644
+--- a/src/webenginewidgets/api/qwebenginepage.h
++++ b/src/webenginewidgets/api/qwebenginepage.h
+@@ -258,7 +258,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 5412922..2307e7a 100644
+--- a/src/webenginewidgets/api/qwebenginepage_p.h
++++ b/src/webenginewidgets/api/qwebenginepage_p.h
+@@ -135,7 +135,9 @@ public:
+ virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
+ virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
+ virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) 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 8d21989..63ac405 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 9db971f..e0cc3f4 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 ac8fe74..51ea5a2 100644
+--- a/tests/quicktestbrowser/quicktestbrowser.pro
++++ b/tests/quicktestbrowser/quicktestbrowser.pro
+@@ -1,3 +1,5 @@
++requires(contains(QT_CONFIG, accessibility))
++
+ TEMPLATE = app
+ TARGET = quicktestbrowser
+
+--
+2.3.1
+
diff --git a/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch b/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
new file mode 100644
index 0000000..108e7f5
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
@@ -0,0 +1,533 @@
+From a2b64b1adf5da47248261dbe9621c64afa1d6e2e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@theqtcompany.com>
+Date: Tue, 20 Jan 2015 16:20:42 +0100
+Subject: [PATCH 4/4] 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>
+
+Upstream-Status: Backport from 5.5
+https://codereview.qt-project.org/#/c/104207/
+---
+ examples/webengine/quicknanobrowser/quicknanobrowser.pro | 2 ++
+ 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 ++
+ src/webengine/api/qquickwebengineview.cpp | 12 ++++++++++++
+ src/webengine/api/qquickwebengineview_p.h | 2 ++
+ src/webengine/api/qquickwebengineview_p_p.h | 5 ++++-
+ src/webenginewidgets/api/qwebenginepage.cpp | 3 +++
+ src/webenginewidgets/api/qwebenginepage.h | 2 ++
+ src/webenginewidgets/api/qwebenginepage_p.h | 2 ++
+ src/webenginewidgets/api/qwebengineview.cpp | 7 ++++++-
+ src/webenginewidgets/api/qwebengineview_p.h | 3 ++-
+ tests/quicktestbrowser/quicktestbrowser.pro | 2 ++
+ 18 files changed, 73 insertions(+), 5 deletions(-)
+
+diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
+index 3628b81..a8e57b0 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 28d0dd7..6729866 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 5d8498d..49b3af3 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 b5cd26f..4b8e97a 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 db190ff..e87b5d8 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 <QtGui/qaccessible.h>
++
++#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 c221e94..349028e 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<content::BrowserAccessibilityQt*>(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 d4a3ff2..fac7efd 100644
+--- a/src/core/render_widget_host_view_qt.h
++++ b/src/core/render_widget_host_view_qt.h
+@@ -50,6 +50,7 @@
+ #include <QRect>
+ #include <QtGlobal>
+ #include <QtGui/qaccessible.h>
++#include <QtGui/QTouchEvent>
+
+ #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<RenderWidgetHostViewQt>
++#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 3f223f7..e41acd0 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<RenderWidgetHostViewQt*>(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 8fd401f..df18980 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;
+diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
+index 3497c16..a35cfc3 100644
+--- a/src/webengine/api/qquickwebengineview.cpp
++++ b/src/webengine/api/qquickwebengineview.cpp
+@@ -61,16 +61,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(new WebContentsAdapter)
+@@ -102,7 +106,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()
+@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
+ Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
+ }
+
++#ifndef QT_NO_ACCESSIBILITY
+ QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
+ {
+ Q_Q(QQuickWebEngineView);
+ return q;
+ }
++#endif // QT_NO_ACCESSIBILITY
+
+ WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
+ {
+@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
+ m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
+ }
+
++#ifndef QT_NO_ACCESSIBILITY
+ QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
+ : QAccessibleObject(o)
+ {}
+@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
+ QAccessible::State s;
+ return s;
+ }
++#endif // QT_NO_ACCESSIBILITY
+
+ void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
+ {
+@@ -497,8 +507,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 22713ee..f3ceb2c 100644
+--- a/src/webengine/api/qquickwebengineview_p.h
++++ b/src/webengine/api/qquickwebengineview_p.h
+@@ -155,7 +155,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 6662f1f..3ab95c6 100644
+--- a/src/webengine/api/qquickwebengineview_p_p.h
++++ b/src/webengine/api/qquickwebengineview_p_p.h
+@@ -175,7 +175,9 @@ public:
+ virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
+ 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;
++#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);
+
+@@ -202,6 +204,7 @@ private:
+ qreal m_dpiScale;
+ };
+
++#ifndef QT_NO_ACCESSIBILITY
+ class QQuickWebEngineViewAccessible : public QAccessibleObject
+ {
+ public:
+@@ -217,7 +220,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 72b16f2..068c175 100644
+--- a/src/webenginewidgets/api/qwebenginepage.cpp
++++ b/src/webenginewidgets/api/qwebenginepage.cpp
+@@ -39,6 +39,7 @@
+ #include <QApplication>
+ #include <QAuthenticator>
+ #include <QClipboard>
++#include <QContextMenuEvent>
+ #include <QFileDialog>
+ #include <QIcon>
+ #include <QInputDialog>
+@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
+ Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
+ }
+
++#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 7856b82..9fd81b0 100644
+--- a/src/webenginewidgets/api/qwebenginepage.h
++++ b/src/webenginewidgets/api/qwebenginepage.h
+@@ -258,7 +258,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 5412922..2307e7a 100644
+--- a/src/webenginewidgets/api/qwebenginepage_p.h
++++ b/src/webenginewidgets/api/qwebenginepage_p.h
+@@ -135,7 +135,9 @@ public:
+ virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
+ virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
+ virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) 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 8d21989..63ac405 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 9db971f..e0cc3f4 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 ac8fe74..51ea5a2 100644
+--- a/tests/quicktestbrowser/quicktestbrowser.pro
++++ b/tests/quicktestbrowser/quicktestbrowser.pro
+@@ -1,3 +1,5 @@
++requires(contains(QT_CONFIG, accessibility))
++
+ TEMPLATE = app
+ TARGET = quicktestbrowser
+
+--
+2.3.1
+
diff --git a/recipes-qt/qt5/qtwebengine_5.4.1.bb b/recipes-qt/qt5/qtwebengine_5.4.1.bb
index 92e8c04..867d5bd 100644
--- a/recipes-qt/qt5/qtwebengine_5.4.1.bb
+++ b/recipes-qt/qt5/qtwebengine_5.4.1.bb
@@ -8,5 +8,6 @@ SRC_URI += " \
file://0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch \
file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
+ file://0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch \
file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
"
diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
index b451c37..133d80d 100644
--- a/recipes-qt/qt5/qtwebengine_git.bb
+++ b/recipes-qt/qt5/qtwebengine_git.bb
@@ -9,6 +9,7 @@ SRC_URI += " \
file://0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch \
file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
+ file://0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch \
file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
"
SRCREV_qtwebengine = "4eceed9ac0b646238e76d77569a619d4dc515ba5"
--
2.3.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-qt5][PATCHv2] fix build of qtwebengine if qtbase has no accessibility
2015-03-03 19:40 ` [meta-qt5][PATCHv2] " Martin Jansa
@ 2015-03-04 2:25 ` Martin Jansa
2015-03-04 8:47 ` Stephan Binner
0 siblings, 1 reply; 8+ messages in thread
From: Martin Jansa @ 2015-03-04 2:25 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 48405 bytes --]
On Tue, Mar 03, 2015 at 08:40:09PM +0100, Martin Jansa wrote:
> From: Stephan Binner <stephan.binner@basyskom.com>
>
> Signed-off-by: Stephan Binner <stephan.binner@basyskom.com>
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
> recipes-qt/qt5/qtbase.inc | 2 +-
> ...ding-Qt-WebEngine-without-accessiblity-en.patch | 533 +++++++++++++++++++++
> ...ding-Qt-WebEngine-without-accessiblity-en.patch | 533 +++++++++++++++++++++
> recipes-qt/qt5/qtwebengine_5.4.1.bb | 1 +
> recipes-qt/qt5/qtwebengine_git.bb | 1 +
> 5 files changed, 1069 insertions(+), 1 deletion(-)
> create mode 100644 recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
> create mode 100644 recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
>
> diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc
> index c6fe358..d7c027f 100644
> --- a/recipes-qt/qt5/qtbase.inc
> +++ b/recipes-qt/qt5/qtbase.inc
> @@ -64,7 +64,7 @@ PACKAGECONFIG[examples] = "-make examples -compile-examples,-nomake examples"
> PACKAGECONFIG[tools] = "-make tools,-nomake tools"
> # only for completeness, configure will add libs even if you try to explicitly remove it
> PACKAGECONFIG[libs] = "-make libs,-nomake libs"
> -# accessibility is required to compile qtquickcontrols and qtwebengine
> +# accessibility is required to compile qtquickcontrols
> PACKAGECONFIG[accessibility] = "-accessibility,-no-accessibility"
> PACKAGECONFIG[glib] = "-glib,-no-glib,glib-2.0"
> # use either system freetype or bundled freetype, if you disable freetype completely
> diff --git a/recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch b/recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
> new file mode 100644
> index 0000000..8a4c216
> --- /dev/null
> +++ b/recipes-qt/qt5/qtwebengine-git/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
> @@ -0,0 +1,533 @@
> +From 8328f6941685d8a525629b9c0717dbab321fc09e Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@theqtcompany.com>
> +Date: Tue, 20 Jan 2015 16:20:42 +0100
> +Subject: [PATCH 4/4] 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>
> +
> +Upstream-Status: Backport from 5.5
> +https://codereview.qt-project.org/#/c/104207/
> +---
> + examples/webengine/quicknanobrowser/quicknanobrowser.pro | 2 ++
> + 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 ++
> + src/webengine/api/qquickwebengineview.cpp | 12 ++++++++++++
> + src/webengine/api/qquickwebengineview_p.h | 2 ++
> + src/webengine/api/qquickwebengineview_p_p.h | 5 ++++-
> + src/webenginewidgets/api/qwebenginepage.cpp | 3 +++
> + src/webenginewidgets/api/qwebenginepage.h | 2 ++
> + src/webenginewidgets/api/qwebenginepage_p.h | 2 ++
> + src/webenginewidgets/api/qwebengineview.cpp | 7 ++++++-
> + src/webenginewidgets/api/qwebengineview_p.h | 3 ++-
> + tests/quicktestbrowser/quicktestbrowser.pro | 2 ++
> + 18 files changed, 73 insertions(+), 5 deletions(-)
> +
> +diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
> +index 3628b81..a8e57b0 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 28d0dd7..6729866 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 5d8498d..49b3af3 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 b5cd26f..4b8e97a 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 db190ff..e87b5d8 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 <QtGui/qaccessible.h>
> ++
> ++#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 c221e94..349028e 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
This doesn't look right and also fails to build.
| ../../../src/core/render_widget_host_view_qt.cpp: In member function 'virtual void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()':
| ../../../src/core/render_widget_host_view_qt.cpp:310:1: error: 'else' without a previous 'if'
| else
| ^
| ../../../src/core/render_widget_host_view_qt.cpp:311:12: error: return-statement with a value, in function returning 'void' [-fpermissive]
| return 0;
| ^
> + }
> +
> + // 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<content::BrowserAccessibilityQt*>(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 d4a3ff2..fac7efd 100644
> +--- a/src/core/render_widget_host_view_qt.h
> ++++ b/src/core/render_widget_host_view_qt.h
> +@@ -50,6 +50,7 @@
> + #include <QRect>
> + #include <QtGlobal>
> + #include <QtGui/qaccessible.h>
> ++#include <QtGui/QTouchEvent>
> +
> + #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<RenderWidgetHostViewQt>
> ++#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 3f223f7..e41acd0 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<RenderWidgetHostViewQt*>(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 8fd401f..df18980 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;
> +diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
> +index 3497c16..a35cfc3 100644
> +--- a/src/webengine/api/qquickwebengineview.cpp
> ++++ b/src/webengine/api/qquickwebengineview.cpp
> +@@ -61,16 +61,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(new WebContentsAdapter)
> +@@ -102,7 +106,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()
> +@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
> + Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
> + }
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
> + {
> + Q_Q(QQuickWebEngineView);
> + return q;
> + }
> ++#endif // QT_NO_ACCESSIBILITY
> +
> + WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
> + {
> +@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
> + m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
> + }
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
> + : QAccessibleObject(o)
> + {}
> +@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
> + QAccessible::State s;
> + return s;
> + }
> ++#endif // QT_NO_ACCESSIBILITY
> +
> + void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
> + {
> +@@ -497,8 +507,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 22713ee..f3ceb2c 100644
> +--- a/src/webengine/api/qquickwebengineview_p.h
> ++++ b/src/webengine/api/qquickwebengineview_p.h
> +@@ -155,7 +155,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 6662f1f..3ab95c6 100644
> +--- a/src/webengine/api/qquickwebengineview_p_p.h
> ++++ b/src/webengine/api/qquickwebengineview_p_p.h
> +@@ -175,7 +175,9 @@ public:
> + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
> + 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;
> ++#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);
> +
> +@@ -202,6 +204,7 @@ private:
> + qreal m_dpiScale;
> + };
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + class QQuickWebEngineViewAccessible : public QAccessibleObject
> + {
> + public:
> +@@ -217,7 +220,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 72b16f2..068c175 100644
> +--- a/src/webenginewidgets/api/qwebenginepage.cpp
> ++++ b/src/webenginewidgets/api/qwebenginepage.cpp
> +@@ -39,6 +39,7 @@
> + #include <QApplication>
> + #include <QAuthenticator>
> + #include <QClipboard>
> ++#include <QContextMenuEvent>
> + #include <QFileDialog>
> + #include <QIcon>
> + #include <QInputDialog>
> +@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
> + Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
> + }
> +
> ++#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 7856b82..9fd81b0 100644
> +--- a/src/webenginewidgets/api/qwebenginepage.h
> ++++ b/src/webenginewidgets/api/qwebenginepage.h
> +@@ -258,7 +258,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 5412922..2307e7a 100644
> +--- a/src/webenginewidgets/api/qwebenginepage_p.h
> ++++ b/src/webenginewidgets/api/qwebenginepage_p.h
> +@@ -135,7 +135,9 @@ public:
> + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
> + virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
> + virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) 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 8d21989..63ac405 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 9db971f..e0cc3f4 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 ac8fe74..51ea5a2 100644
> +--- a/tests/quicktestbrowser/quicktestbrowser.pro
> ++++ b/tests/quicktestbrowser/quicktestbrowser.pro
> +@@ -1,3 +1,5 @@
> ++requires(contains(QT_CONFIG, accessibility))
> ++
> + TEMPLATE = app
> + TARGET = quicktestbrowser
> +
> +--
> +2.3.1
> +
> diff --git a/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch b/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
> new file mode 100644
> index 0000000..108e7f5
> --- /dev/null
> +++ b/recipes-qt/qt5/qtwebengine/0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch
> @@ -0,0 +1,533 @@
> +From a2b64b1adf5da47248261dbe9621c64afa1d6e2e Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@theqtcompany.com>
> +Date: Tue, 20 Jan 2015 16:20:42 +0100
> +Subject: [PATCH 4/4] 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>
> +
> +Upstream-Status: Backport from 5.5
> +https://codereview.qt-project.org/#/c/104207/
> +---
> + examples/webengine/quicknanobrowser/quicknanobrowser.pro | 2 ++
> + 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 ++
> + src/webengine/api/qquickwebengineview.cpp | 12 ++++++++++++
> + src/webengine/api/qquickwebengineview_p.h | 2 ++
> + src/webengine/api/qquickwebengineview_p_p.h | 5 ++++-
> + src/webenginewidgets/api/qwebenginepage.cpp | 3 +++
> + src/webenginewidgets/api/qwebenginepage.h | 2 ++
> + src/webenginewidgets/api/qwebenginepage_p.h | 2 ++
> + src/webenginewidgets/api/qwebengineview.cpp | 7 ++++++-
> + src/webenginewidgets/api/qwebengineview_p.h | 3 ++-
> + tests/quicktestbrowser/quicktestbrowser.pro | 2 ++
> + 18 files changed, 73 insertions(+), 5 deletions(-)
> +
> +diff --git a/examples/webengine/quicknanobrowser/quicknanobrowser.pro b/examples/webengine/quicknanobrowser/quicknanobrowser.pro
> +index 3628b81..a8e57b0 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 28d0dd7..6729866 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 5d8498d..49b3af3 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 b5cd26f..4b8e97a 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 db190ff..e87b5d8 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 <QtGui/qaccessible.h>
> ++
> ++#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 c221e94..349028e 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<content::BrowserAccessibilityQt*>(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 d4a3ff2..fac7efd 100644
> +--- a/src/core/render_widget_host_view_qt.h
> ++++ b/src/core/render_widget_host_view_qt.h
> +@@ -50,6 +50,7 @@
> + #include <QRect>
> + #include <QtGlobal>
> + #include <QtGui/qaccessible.h>
> ++#include <QtGui/QTouchEvent>
> +
> + #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<RenderWidgetHostViewQt>
> ++#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 3f223f7..e41acd0 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<RenderWidgetHostViewQt*>(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 8fd401f..df18980 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;
> +diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
> +index 3497c16..a35cfc3 100644
> +--- a/src/webengine/api/qquickwebengineview.cpp
> ++++ b/src/webengine/api/qquickwebengineview.cpp
> +@@ -61,16 +61,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(new WebContentsAdapter)
> +@@ -102,7 +106,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()
> +@@ -395,11 +401,13 @@ void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &sec
> + Q_EMIT e->featurePermissionRequested(securityOrigin, feature);
> + }
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
> + {
> + Q_Q(QQuickWebEngineView);
> + return q;
> + }
> ++#endif // QT_NO_ACCESSIBILITY
> +
> + WebEngineSettings *QQuickWebEngineViewPrivate::webEngineSettings() const
> + {
> +@@ -414,6 +422,7 @@ void QQuickWebEngineViewPrivate::setDevicePixelRatio(qreal devicePixelRatio)
> + m_dpiScale = devicePixelRatio / screen->devicePixelRatio();
> + }
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + QQuickWebEngineViewAccessible::QQuickWebEngineViewAccessible(QQuickWebEngineView *o)
> + : QAccessibleObject(o)
> + {}
> +@@ -460,6 +469,7 @@ QAccessible::State QQuickWebEngineViewAccessible::state() const
> + QAccessible::State s;
> + return s;
> + }
> ++#endif // QT_NO_ACCESSIBILITY
> +
> + void QQuickWebEngineViewPrivate::adoptWebContents(WebContentsAdapter *webContents)
> + {
> +@@ -497,8 +507,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 22713ee..f3ceb2c 100644
> +--- a/src/webengine/api/qquickwebengineview_p.h
> ++++ b/src/webengine/api/qquickwebengineview_p.h
> +@@ -155,7 +155,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 6662f1f..3ab95c6 100644
> +--- a/src/webengine/api/qquickwebengineview_p_p.h
> ++++ b/src/webengine/api/qquickwebengineview_p_p.h
> +@@ -175,7 +175,9 @@ public:
> + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
> + 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;
> ++#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);
> +
> +@@ -202,6 +204,7 @@ private:
> + qreal m_dpiScale;
> + };
> +
> ++#ifndef QT_NO_ACCESSIBILITY
> + class QQuickWebEngineViewAccessible : public QAccessibleObject
> + {
> + public:
> +@@ -217,7 +220,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 72b16f2..068c175 100644
> +--- a/src/webenginewidgets/api/qwebenginepage.cpp
> ++++ b/src/webenginewidgets/api/qwebenginepage.cpp
> +@@ -39,6 +39,7 @@
> + #include <QApplication>
> + #include <QAuthenticator>
> + #include <QClipboard>
> ++#include <QContextMenuEvent>
> + #include <QFileDialog>
> + #include <QIcon>
> + #include <QInputDialog>
> +@@ -342,10 +343,12 @@ void QWebEnginePagePrivate::runMediaAccessPermissionRequest(const QUrl &security
> + Q_EMIT q->featurePermissionRequested(securityOrigin, requestedFeature);
> + }
> +
> ++#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 7856b82..9fd81b0 100644
> +--- a/src/webenginewidgets/api/qwebenginepage.h
> ++++ b/src/webenginewidgets/api/qwebenginepage.h
> +@@ -258,7 +258,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 5412922..2307e7a 100644
> +--- a/src/webenginewidgets/api/qwebenginepage_p.h
> ++++ b/src/webenginewidgets/api/qwebenginepage_p.h
> +@@ -135,7 +135,9 @@ public:
> + virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
> + virtual void authenticationRequired(const QUrl &requestUrl, const QString &realm, bool isProxy, const QString &challengingHost, QString *outUser, QString *outPassword) Q_DECL_OVERRIDE;
> + virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) 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 8d21989..63ac405 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 9db971f..e0cc3f4 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 ac8fe74..51ea5a2 100644
> +--- a/tests/quicktestbrowser/quicktestbrowser.pro
> ++++ b/tests/quicktestbrowser/quicktestbrowser.pro
> +@@ -1,3 +1,5 @@
> ++requires(contains(QT_CONFIG, accessibility))
> ++
> + TEMPLATE = app
> + TARGET = quicktestbrowser
> +
> +--
> +2.3.1
> +
> diff --git a/recipes-qt/qt5/qtwebengine_5.4.1.bb b/recipes-qt/qt5/qtwebengine_5.4.1.bb
> index 92e8c04..867d5bd 100644
> --- a/recipes-qt/qt5/qtwebengine_5.4.1.bb
> +++ b/recipes-qt/qt5/qtwebengine_5.4.1.bb
> @@ -8,5 +8,6 @@ SRC_URI += " \
> file://0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch \
> file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
> file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
> + file://0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch \
> file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
> "
> diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
> index b451c37..133d80d 100644
> --- a/recipes-qt/qt5/qtwebengine_git.bb
> +++ b/recipes-qt/qt5/qtwebengine_git.bb
> @@ -9,6 +9,7 @@ SRC_URI += " \
> file://0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch \
> file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
> file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
> + file://0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch \
> file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
> "
> SRCREV_qtwebengine = "4eceed9ac0b646238e76d77569a619d4dc515ba5"
> --
> 2.3.1
>
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-qt5][PATCHv2] fix build of qtwebengine if qtbase has no accessibility
2015-03-04 2:25 ` Martin Jansa
@ 2015-03-04 8:47 ` Stephan Binner
2015-03-05 14:04 ` Martin Jansa
0 siblings, 1 reply; 8+ messages in thread
From: Stephan Binner @ 2015-03-04 8:47 UTC (permalink / raw)
To: openembedded-devel
On Wednesday 04 March 2015 03:25:46 Martin Jansa wrote:
> > ++else
> This doesn't look right and also fails to build.
Yeah, dunno how I messed that up yesterday evening. :-/
I will try to get the backport reviewed and integrated into 5.4 branch
upstream and then will post patch with proper branch annotation etc.
Regards,
Stephan
^ permalink raw reply [flat|nested] 8+ messages in thread
* [meta-qt5][PATCHv1] qtwebengine: Fix build with accessibility enabled
2015-03-03 18:28 ` Martin Jansa
2015-03-03 19:40 ` [meta-qt5][PATCHv2] " Martin Jansa
@ 2015-03-05 14:00 ` Martin Jansa
1 sibling, 0 replies; 8+ messages in thread
From: Martin Jansa @ 2015-03-05 14:00 UTC (permalink / raw)
To: openembedded-devel
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
...et_host_view_qt-Fix-build-with-accessibil.patch | 30 ++++++++++++++++++++++
...et_host_view_qt-Fix-build-with-accessibil.patch | 30 ++++++++++++++++++++++
recipes-qt/qt5/qtwebengine_5.4.1.bb | 1 +
recipes-qt/qt5/qtwebengine_git.bb | 1 +
4 files changed, 62 insertions(+)
create mode 100644 recipes-qt/qt5/qtwebengine-git/0004-render_widget_host_view_qt-Fix-build-with-accessibil.patch
create mode 100644 recipes-qt/qt5/qtwebengine/0005-render_widget_host_view_qt-Fix-build-with-accessibil.patch
diff --git a/recipes-qt/qt5/qtwebengine-git/0004-render_widget_host_view_qt-Fix-build-with-accessibil.patch b/recipes-qt/qt5/qtwebengine-git/0004-render_widget_host_view_qt-Fix-build-with-accessibil.patch
new file mode 100644
index 0000000..e938474
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine-git/0004-render_widget_host_view_qt-Fix-build-with-accessibil.patch
@@ -0,0 +1,30 @@
+From bb798fc9ad6bde88ecfd06841b6f4de8d4543853 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 5 Mar 2015 14:58:32 +0100
+Subject: [PATCH 4/4] render_widget_host_view_qt: Fix build with accessibility
+
+* fixes following error when accessibility is enabled:
+ ../../../src/core/render_widget_host_view_qt.cpp:311:12: error: return-statement with a value, in function returning 'void' [-fpermissive]
+ | return 0;
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/core/render_widget_host_view_qt.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
+index 18d64e8..1ca9dea 100644
+--- a/src/core/render_widget_host_view_qt.cpp
++++ b/src/core/render_widget_host_view_qt.cpp
+@@ -308,7 +308,7 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
+ content::BrowserAccessibilityManagerQt::GetEmptyDocument(),
+ this));
+ #else
+- return 0;
++ return;
+ #endif // QT_NO_ACCESSIBILITY
+ }
+
+--
+2.3.1
+
diff --git a/recipes-qt/qt5/qtwebengine/0005-render_widget_host_view_qt-Fix-build-with-accessibil.patch b/recipes-qt/qt5/qtwebengine/0005-render_widget_host_view_qt-Fix-build-with-accessibil.patch
new file mode 100644
index 0000000..a94cb50
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/0005-render_widget_host_view_qt-Fix-build-with-accessibil.patch
@@ -0,0 +1,30 @@
+From 039965ecfe950cd530a2a466505cafca2672f155 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 5 Mar 2015 14:58:32 +0100
+Subject: [PATCH 5/5] render_widget_host_view_qt: Fix build with accessibility
+
+* fixes following error when accessibility is enabled:
+ ../../../src/core/render_widget_host_view_qt.cpp:311:12: error: return-statement with a value, in function returning 'void' [-fpermissive]
+ | return 0;
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/core/render_widget_host_view_qt.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
+index 18d64e8..1ca9dea 100644
+--- a/src/core/render_widget_host_view_qt.cpp
++++ b/src/core/render_widget_host_view_qt.cpp
+@@ -308,7 +308,7 @@ void RenderWidgetHostViewQt::CreateBrowserAccessibilityManagerIfNeeded()
+ content::BrowserAccessibilityManagerQt::GetEmptyDocument(),
+ this));
+ #else
+- return 0;
++ return;
+ #endif // QT_NO_ACCESSIBILITY
+ }
+
+--
+2.3.1
+
diff --git a/recipes-qt/qt5/qtwebengine_5.4.1.bb b/recipes-qt/qt5/qtwebengine_5.4.1.bb
index 867d5bd..e1930f5 100644
--- a/recipes-qt/qt5/qtwebengine_5.4.1.bb
+++ b/recipes-qt/qt5/qtwebengine_5.4.1.bb
@@ -9,5 +9,6 @@ SRC_URI += " \
file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
file://0004-Enable-building-Qt-WebEngine-without-accessiblity-en.patch \
+ file://0005-render_widget_host_view_qt-Fix-build-with-accessibil.patch \
file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
"
diff --git a/recipes-qt/qt5/qtwebengine_git.bb b/recipes-qt/qt5/qtwebengine_git.bb
index 89a83d4..650811c 100644
--- a/recipes-qt/qt5/qtwebengine_git.bb
+++ b/recipes-qt/qt5/qtwebengine_git.bb
@@ -9,6 +9,7 @@ SRC_URI += " \
file://0001-functions.prf-Don-t-match-QMAKE_EXT_CPP-or-QMAKE_EXT.patch \
file://0002-functions.prf-Make-sure-we-only-use-the-file-name-to.patch \
file://0003-functions.prf-allow-build-for-linux-oe-g-platform.patch \
+ file://0004-render_widget_host_view_qt-Fix-build-with-accessibil.patch \
file://0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch \
"
SRCREV_qtwebengine = "9d1a77b5be56a6a1dade613573eaeea63070969f"
--
2.3.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-qt5][PATCHv2] fix build of qtwebengine if qtbase has no accessibility
2015-03-04 8:47 ` Stephan Binner
@ 2015-03-05 14:04 ` Martin Jansa
2015-03-06 7:27 ` Stephan Binner
0 siblings, 1 reply; 8+ messages in thread
From: Martin Jansa @ 2015-03-05 14:04 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 896 bytes --]
On Wed, Mar 04, 2015 at 09:47:23AM +0100, Stephan Binner wrote:
> On Wednesday 04 March 2015 03:25:46 Martin Jansa wrote:
>
> > > ++else
> > This doesn't look right and also fails to build.
>
> Yeah, dunno how I messed that up yesterday evening. :-/
I've sent additional patch to fix building with accessibility enabled.
Please get it merged in upstream, because your patch seems to be broken
in upstream 5.4 as well.
Regards,
> I will try to get the backport reviewed and integrated into 5.4 branch
> upstream and then will post patch with proper branch annotation etc.
>
> Regards,
> Stephan
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-qt5][PATCHv2] fix build of qtwebengine if qtbase has no accessibility
2015-03-05 14:04 ` Martin Jansa
@ 2015-03-06 7:27 ` Stephan Binner
0 siblings, 0 replies; 8+ messages in thread
From: Stephan Binner @ 2015-03-06 7:27 UTC (permalink / raw)
To: openembedded-devel
On Thursday 05 March 2015 15:04:03 Martin Jansa wrote:
> I've sent additional patch to fix building with accessibility enabled.
You mean "without accessibility" :-)... (damn double negation #ifdef)
> Please get it merged in upstream, because your patch seems to be broken
It's merged in 5.4 branch: https://codereview.qt-project.org/#/c/107873/
Regards,
Stephan
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-03-06 7:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-03 17:25 [meta-qt5][PATCH] fix build of qtwebengine if qtbase has no accessibility Stephan Binner
2015-03-03 18:28 ` Martin Jansa
2015-03-03 19:40 ` [meta-qt5][PATCHv2] " Martin Jansa
2015-03-04 2:25 ` Martin Jansa
2015-03-04 8:47 ` Stephan Binner
2015-03-05 14:04 ` Martin Jansa
2015-03-06 7:27 ` Stephan Binner
2015-03-05 14:00 ` [meta-qt5][PATCHv1] qtwebengine: Fix build with accessibility enabled Martin Jansa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox