diff --git a/src/core/gyp_run.pro b/src/core/gyp_run.pro
index 98ff29f7806b9dca040eba898d9c63ac064edfa9..4fab6cb97765adf260607efffc094992bff70ff6 100644
--- a/src/core/gyp_run.pro
+++ b/src/core/gyp_run.pro
@@ -79,7 +79,7 @@ contains(QT_ARCH, "arm") {
         # If the toolchain does not explicitly specify to use NEON instructions
         # we use arm_neon_optional for ARMv7 and newer and let chromium decide
         # about the mfpu option.
-        contains(MFPU, "neon")|contains(MFPU, "neon-vfpv4"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1
+        contains(MFPU, ".*neon.*"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1
         else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1
         else: GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=0
     } else {
diff --git a/src/webengine/api/qtwebengineglobal.cpp b/src/webengine/api/qtwebengineglobal.cpp
index 8010527828de0560e1c94686026cb8cc15c786f6..a242fc6aa1b1a926d93915a22b3fb6994d75e750 100644
--- a/src/webengine/api/qtwebengineglobal.cpp
+++ b/src/webengine/api/qtwebengineglobal.cpp
@@ -62,7 +62,7 @@ namespace QtWebEngine {
 /*!
     \fn QtWebEngine::initialize()
 
-    Sets up an OpenGL Context that can be shared between processes. This has to be done after
+    Sets up an OpenGL Context that can be shared between threads. This has to be done after
     QGuiApplication is created, but before a Qt Quick window is created.
 
     This has the same effect as setting the Qt::AA_ShareOpenGLContexts
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
index 80bf0b49a55c38e1050c341fa5f3ddb8472a2d08..48217f4a2cee19fcfeec2315d61921d7ec39b9f7 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
@@ -315,6 +315,16 @@ void RenderWidgetHostViewQtDelegateQuick::inputMethodEvent(QInputMethodEvent *ev
 void RenderWidgetHostViewQtDelegateQuick::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
 {
     QQuickItem::geometryChanged(newGeometry, oldGeometry);
+
+    if (window()) {
+        // TODO(pvarga): Use QQuickItem::mapToGlobal from Qt 5.7
+        const QPoint globalPos = window()->mapToGlobal(position().toPoint());
+        if (globalPos != m_lastGlobalPos) {
+            m_lastGlobalPos = globalPos;
+            m_client->windowBoundsChanged();
+        }
+    }
+
     m_client->notifyResize();
 }
 
@@ -347,6 +357,10 @@ QSGNode *RenderWidgetHostViewQtDelegateQuick::updatePaintNode(QSGNode *oldNode,
 
 void RenderWidgetHostViewQtDelegateQuick::onWindowPosChanged()
 {
+    if (window()) {
+        // TODO(pvarga): Use QQuickItem::mapToGlobal from Qt 5.7
+        m_lastGlobalPos = window()->mapToGlobal(position().toPoint());
+    }
     m_client->windowBoundsChanged();
 }
 
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.h b/src/webengine/render_widget_host_view_qt_delegate_quick.h
index c51ca3408043c59b0b9b4b4397055dcd00b73659..8d6a5d90776a573b848f9ce2c550ba12a8b85313 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.h
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.h
@@ -103,6 +103,7 @@ private:
     QList<QMetaObject::Connection> m_windowConnections;
     bool m_isPopup;
     bool m_initialized;
+    QPoint m_lastGlobalPos;
 };
 
 } // namespace QtWebEngineCore
diff --git a/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp b/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp
index 28c94a6e833150b97417a6e3d405ebaa1ca4fbe6..b71b9dd08dd95fc71a308f7aad8af038ddd69768 100644
--- a/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp
+++ b/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp
@@ -248,9 +248,8 @@ void tst_QQuickWebEngineView::loadProgress()
     QSignalSpy loadProgressChangedSpy(webEngineView(), SIGNAL(loadProgressChanged()));
     QVERIFY(waitForLoadSucceeded(webEngineView()));
 
-    QVERIFY(loadProgressChangedSpy.count() >= 1);
-
-    QCOMPARE(webEngineView()->loadProgress(), 100);
+    loadProgressChangedSpy.wait();
+    QTRY_COMPARE(webEngineView()->loadProgress(), 100);
 }
 
 void tst_QQuickWebEngineView::show()