Title: [110098] trunk/Source/WebKit2
Revision
110098
Author
commit-qu...@webkit.org
Date
2012-03-07 13:43:37 -0800 (Wed, 07 Mar 2012)

Log Message

[Qt] Authentication dialog does not work
https://bugs.webkit.org/show_bug.cgi?id=79738

Patch by Dinu Jacob <dinu.ja...@nokia.com> on 2012-03-07
Reviewed by Simon Hausmann.

QQuickWebView should accept touch events only if there is
no active dialog.

* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewPrivate::QQuickWebViewPrivate):
(QQuickWebViewPrivate::runJavaScriptAlert):
(QQuickWebViewPrivate::runJavaScriptConfirm):
(QQuickWebViewPrivate::runJavaScriptPrompt):
(QQuickWebViewPrivate::handleAuthenticationRequiredRequest):
(QQuickWebViewPrivate::handleProxyAuthenticationRequiredRequest):
(QQuickWebViewPrivate::handleCertificateVerificationRequest):
(QQuickWebView::touchEvent):
* UIProcess/API/qt/qquickwebview_p_p.h:
(QQuickWebViewPrivate):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (110097 => 110098)


--- trunk/Source/WebKit2/ChangeLog	2012-03-07 21:42:29 UTC (rev 110097)
+++ trunk/Source/WebKit2/ChangeLog	2012-03-07 21:43:37 UTC (rev 110098)
@@ -1,3 +1,25 @@
+2012-03-07  Dinu Jacob  <dinu.ja...@nokia.com>
+
+        [Qt] Authentication dialog does not work
+        https://bugs.webkit.org/show_bug.cgi?id=79738
+
+        Reviewed by Simon Hausmann.
+
+        QQuickWebView should accept touch events only if there is
+        no active dialog.
+
+        * UIProcess/API/qt/qquickwebview.cpp:
+        (QQuickWebViewPrivate::QQuickWebViewPrivate):
+        (QQuickWebViewPrivate::runJavaScriptAlert):
+        (QQuickWebViewPrivate::runJavaScriptConfirm):
+        (QQuickWebViewPrivate::runJavaScriptPrompt):
+        (QQuickWebViewPrivate::handleAuthenticationRequiredRequest):
+        (QQuickWebViewPrivate::handleProxyAuthenticationRequiredRequest):
+        (QQuickWebViewPrivate::handleCertificateVerificationRequest):
+        (QQuickWebView::touchEvent):
+        * UIProcess/API/qt/qquickwebview_p_p.h:
+        (QQuickWebViewPrivate):
+
 2012-03-07  Dan Bernstein  <m...@apple.com>
 
         <rdar://problem/8494396> WebKit2 lacks API for obtaining a representation of the render tree of a page, like WebRenderNode

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp (110097 => 110098)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-03-07 21:42:29 UTC (rev 110097)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp	2012-03-07 21:43:37 UTC (rev 110098)
@@ -81,6 +81,7 @@
     , m_navigatorQtObjectEnabled(false)
     , m_renderToOffscreenBuffer(false)
     , m_loadStartedSignalSent(false)
+    , m_dialogRunnerActive(false)
 {
     viewport->setFlags(QQuickItem::ItemClipsChildrenToShape);
     QObject::connect(viewport, SIGNAL(visibleChanged()), viewport, SLOT(_q_onVisibleChanged()));
@@ -267,7 +268,10 @@
     setViewInAttachedProperties(dialogRunner.dialog());
 
     disableMouseEvents();
+    m_dialogRunnerActive = true;
+
     dialogRunner.exec();
+    m_dialogRunnerActive = false;
     enableMouseEvents();
 }
 
@@ -283,7 +287,10 @@
     setViewInAttachedProperties(dialogRunner.dialog());
 
     disableMouseEvents();
+    m_dialogRunnerActive = true;
+
     dialogRunner.exec();
+    m_dialogRunnerActive = false;
     enableMouseEvents();
 
     return dialogRunner.wasAccepted();
@@ -305,7 +312,10 @@
     setViewInAttachedProperties(dialogRunner.dialog());
 
     disableMouseEvents();
+    m_dialogRunnerActive = true;
+
     dialogRunner.exec();
+    m_dialogRunnerActive = false;
     enableMouseEvents();
 
     ok = dialogRunner.wasAccepted();
@@ -325,7 +335,10 @@
     setViewInAttachedProperties(dialogRunner.dialog());
 
     disableMouseEvents();
+    m_dialogRunnerActive = true;
+
     dialogRunner.exec();
+    m_dialogRunnerActive = false;
     enableMouseEvents();
 
     username = dialogRunner.username();
@@ -344,7 +357,10 @@
 
     setViewInAttachedProperties(dialogRunner.dialog());
     disableMouseEvents();
+    m_dialogRunnerActive = true;
+
     dialogRunner.exec();
+    m_dialogRunnerActive = false;
     enableMouseEvents();
 
     username = dialogRunner.username();
@@ -364,7 +380,10 @@
     setViewInAttachedProperties(dialogRunner.dialog());
 
     disableMouseEvents();
+    m_dialogRunnerActive = true;
+
     dialogRunner.exec();
+    m_dialogRunnerActive = false;
     enableMouseEvents();
 
     return dialogRunner.wasAccepted();
@@ -1343,6 +1362,11 @@
 void QQuickWebView::touchEvent(QTouchEvent* event)
 {
     Q_D(QQuickWebView);
+    if (d->m_dialogRunnerActive) {
+        event->ignore();
+        return;
+    }
+
     forceActiveFocus();
     d->pageView->eventHandler()->handleTouchEvent(event);
 }

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h (110097 => 110098)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-03-07 21:42:29 UTC (rev 110097)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h	2012-03-07 21:43:37 UTC (rev 110098)
@@ -163,6 +163,7 @@
     bool m_navigatorQtObjectEnabled;
     bool m_renderToOffscreenBuffer;
     bool m_loadStartedSignalSent;
+    bool m_dialogRunnerActive;
     QUrl m_iconURL;
     QUrl m_deferedUrlToLoad;
 };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to