summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-11-15 09:45:33 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-11-15 15:41:16 +0100
commit5d3adf10341e1882b9c18f71591f9eb037a5f91d (patch)
treeeaff30c95ed32c103d22dbb803bbddfa29bd6be2 /src/core
parentcf6768d81ed7b9444e28ede6e26e125d5919b143 (diff)
parent61eb7b4ff6e4f2de5b5df6d7a76191cbf8dd9312 (diff)
Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts: src/3rdparty tests/auto/quick/qmltests/qmltests.pro tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp Change-Id: I2a1e3a83e29a1d6709f3e98fda3f7b4ab7ab297e
Diffstat (limited to 'src/core')
-rw-r--r--src/core/render_widget_host_view_qt.cpp4
-rw-r--r--src/core/renderer/web_channel_ipc_transport.cpp2
-rw-r--r--src/core/url_request_qrc_job_qt.cpp2
-rw-r--r--src/core/web_contents_adapter.cpp6
-rw-r--r--src/core/web_contents_adapter.h1
-rw-r--r--src/core/web_event_factory.cpp18
-rw-r--r--src/core/web_event_factory.h2
7 files changed, 30 insertions, 5 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index b30069c74..80c9121f5 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -1067,6 +1067,10 @@ bool RenderWidgetHostViewQt::forwardEvent(QEvent *event)
case QEvent::InputMethodQuery:
handleInputMethodQueryEvent(static_cast<QInputMethodQueryEvent*>(event));
break;
+ case QEvent::HoverLeave:
+ case QEvent::Leave:
+ m_host->ForwardMouseEvent(WebEventFactory::toWebMouseEvent(event));
+ break;
default:
return false;
}
diff --git a/src/core/renderer/web_channel_ipc_transport.cpp b/src/core/renderer/web_channel_ipc_transport.cpp
index 554bda2a8..94a7baa1d 100644
--- a/src/core/renderer/web_channel_ipc_transport.cpp
+++ b/src/core/renderer/web_channel_ipc_transport.cpp
@@ -186,7 +186,7 @@ void WebChannelIPCTransport::installWebChannel(uint worldId)
void WebChannelIPCTransport::uninstallWebChannel(uint worldId)
{
- Q_ASSERT(worldId = m_installedWorldId);
+ Q_ASSERT(worldId == m_installedWorldId);
blink::WebView *webView = render_view()->GetWebView();
if (!webView)
return;
diff --git a/src/core/url_request_qrc_job_qt.cpp b/src/core/url_request_qrc_job_qt.cpp
index b4e960921..a2712653d 100644
--- a/src/core/url_request_qrc_job_qt.cpp
+++ b/src/core/url_request_qrc_job_qt.cpp
@@ -112,7 +112,7 @@ int URLRequestQrcJobQt::ReadRawData(IOBuffer *buf, int bufSize)
void URLRequestQrcJobQt::startGetHead()
{
// Get qrc file path.
- QString qrcFilePath = ':' + toQt(request_->url()).path(QUrl::RemovePath | QUrl::RemoveQuery);
+ QString qrcFilePath = ':' + toQt(request_->url()).path();
m_file.setFileName(qrcFilePath);
QFileInfo qrcFileInfo(m_file);
// Get qrc file mime type.
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index ed13883c0..812a6f1c0 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -1465,6 +1465,12 @@ void WebContentsAdapter::focusIfNecessary()
d->webContents->Focus();
}
+bool WebContentsAdapter::isFindTextInProgress() const
+{
+ Q_D(const WebContentsAdapter);
+ return d->lastFindRequestId != d->webContentsDelegate->lastReceivedFindReply();
+}
+
WebContentsAdapterClient::RenderProcessTerminationStatus
WebContentsAdapterClient::renderProcessExitStatus(int terminationStatus) {
auto status = WebContentsAdapterClient::RenderProcessTerminationStatus(-1);
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 67fcbe7af..51fd2891d 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -184,6 +184,7 @@ public:
void viewSource();
bool canViewSource();
void focusIfNecessary();
+ bool isFindTextInProgress() const;
private:
diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp
index dcd81efe8..3193f885a 100644
--- a/src/core/web_event_factory.cpp
+++ b/src/core/web_event_factory.cpp
@@ -1019,12 +1019,14 @@ static ui::DomKey getDomKeyFromQKeyEvent(QKeyEvent *ev)
}
}
-static inline double currentTimeForEvent(const QInputEvent* event)
+static inline double currentTimeForEvent(const QEvent *event)
{
Q_ASSERT(event);
- if (event->timestamp())
- return static_cast<double>(event->timestamp()) / 1000;
+ if (const QInputEvent *inputEvent = static_cast<const QInputEvent *>(event)) {
+ if (inputEvent->timestamp())
+ return static_cast<double>(inputEvent->timestamp()) / 1000;
+ }
static QElapsedTimer timer;
if (!timer.isValid())
@@ -1210,6 +1212,16 @@ WebMouseEvent WebEventFactory::toWebMouseEvent(QHoverEvent *ev, double dpiScale)
return webKitEvent;
}
+WebMouseEvent WebEventFactory::toWebMouseEvent(QEvent *ev)
+{
+ Q_ASSERT(ev->type() == QEvent::Leave || ev->type() == QEvent::HoverLeave);
+
+ WebMouseEvent webKitEvent;
+ webKitEvent.SetTimeStampSeconds(currentTimeForEvent(ev));
+ webKitEvent.SetType(WebInputEvent::kMouseLeave);
+ return webKitEvent;
+}
+
#ifndef QT_NO_GESTURES
WebGestureEvent WebEventFactory::toWebGestureEvent(QNativeGestureEvent *ev, double dpiScale)
{
diff --git a/src/core/web_event_factory.h b/src/core/web_event_factory.h
index f4ce417cd..5b8f08968 100644
--- a/src/core/web_event_factory.h
+++ b/src/core/web_event_factory.h
@@ -50,6 +50,7 @@
#include <QtGlobal>
QT_BEGIN_NAMESPACE
+class QEvent;
class QHoverEvent;
class QKeyEvent;
class QMouseEvent;
@@ -64,6 +65,7 @@ class WebEventFactory {
public:
static blink::WebMouseEvent toWebMouseEvent(QMouseEvent*, double dpiScale);
static blink::WebMouseEvent toWebMouseEvent(QHoverEvent*, double dpiScale);
+ static blink::WebMouseEvent toWebMouseEvent(QEvent *);
#ifndef QT_NO_GESTURES
static blink::WebGestureEvent toWebGestureEvent(QNativeGestureEvent *, double dpiScale);
#endif