summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/WebPageProxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/WebPageProxy.cpp')
-rw-r--r--Source/WebKit2/UIProcess/WebPageProxy.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/Source/WebKit2/UIProcess/WebPageProxy.cpp b/Source/WebKit2/UIProcess/WebPageProxy.cpp
index 344ed9846..6cf260a36 100644
--- a/Source/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/Source/WebKit2/UIProcess/WebPageProxy.cpp
@@ -1136,7 +1136,7 @@ void WebPageProxy::handleKeyboardEvent(const NativeWebKeyboardEvent& event)
bool handled = false;
process()->sendSync(Messages::WebPage::KeyEventSyncForTesting(event), Messages::WebPage::KeyEventSyncForTesting::Reply(handled), m_pageID);
didReceiveEvent(event.type(), handled);
- } else
+ } else if (m_keyEventQueue.size() == 1) // Otherwise, sent from DidReceiveEvent message handler.
process()->send(Messages::WebPage::KeyEvent(event), m_pageID);
}
@@ -1221,7 +1221,7 @@ void WebPageProxy::receivedPolicyDecision(PolicyAction action, WebFrameProxy* fr
// Create a download proxy.
DownloadProxy* download = m_process->context()->createDownloadProxy();
downloadID = download->downloadID();
-#if PLATFORM(QT)
+#if PLATFORM(QT) || PLATFORM(EFL)
// Our design does not suppport downloads without a WebPage.
handleDownloadRequest(download);
#endif
@@ -2642,11 +2642,6 @@ void WebPageProxy::didReceiveMessageFromNavigatorQtObject(const String& contents
m_pageClient->didReceiveMessageFromNavigatorQtObject(contents);
}
-void WebPageProxy::handleDownloadRequest(DownloadProxy* download)
-{
- m_pageClient->handleDownloadRequest(download);
-}
-
void WebPageProxy::authenticationRequiredRequest(const String& hostname, const String& realm, const String& prefilledUsername, String& username, String& password)
{
m_pageClient->handleAuthenticationRequiredRequest(hostname, realm, prefilledUsername, username, password);
@@ -2663,6 +2658,13 @@ void WebPageProxy::certificateVerificationRequest(const String& hostname, bool&
}
#endif // PLATFORM(QT).
+#if PLATFORM(QT) || PLATFORM(EFL)
+void WebPageProxy::handleDownloadRequest(DownloadProxy* download)
+{
+ m_pageClient->handleDownloadRequest(download);
+}
+#endif // PLATFORM(QT) || PLATFORM(EFL)
+
#if ENABLE(TOUCH_EVENTS)
void WebPageProxy::needTouchEvents(bool needTouchEvents)
{
@@ -3253,8 +3255,10 @@ void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled)
m_keyEventQueue.removeFirst();
- m_pageClient->doneWithKeyEvent(event, handled);
+ if (!m_keyEventQueue.isEmpty())
+ process()->send(Messages::WebPage::KeyEvent(m_keyEventQueue.first()), m_pageID);
+ m_pageClient->doneWithKeyEvent(event, handled);
if (handled)
break;