* [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
* 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
* [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
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