summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2010-08-05 13:32:56 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2010-08-05 13:33:26 (GMT)
commit13a0378151a5dc67d1dca91dffac573d051c37f8 (patch)
tree475aedd641eeb783252d539366513de8a585450e
parent719e22c7fd34112460cddecb1491c3575c5a8c86 (diff)
downloadQt-13a0378151a5dc67d1dca91dffac573d051c37f8.zip
Qt-13a0378151a5dc67d1dca91dffac573d051c37f8.tar.gz
Qt-13a0378151a5dc67d1dca91dffac573d051c37f8.tar.bz2
Updated WebKit to 413404da27312051bb3ff2cfd0f3fca42aa4b245
|| <https://webkit.org/b/43530> || [Qt] Input mode states are not reset after entering a password field ||
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog17
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp19
6 files changed, 48 insertions, 4 deletions
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index 718ea9d..fb2703e 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-d6aa024c84f61d0602bef4eef84efaed7cfeefcc
+413404da27312051bb3ff2cfd0f3fca42aa4b245
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 1826cb6..c256434 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from
and has the sha1 checksum
- d6aa024c84f61d0602bef4eef84efaed7cfeefcc
+ 413404da27312051bb3ff2cfd0f3fca42aa4b245
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index 94aca65..5083ba5 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,20 @@
+2010-08-05 David Leong <david.leong@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Input mode states are not reset after entering a password field
+ https://bugs.webkit.org/show_bug.cgi?id=43530
+
+ Input mode hints are not reset if clicking on password <input> elements then
+ clicking on <textarea> elements
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::setInputMethodState):
+ * tests/qwebview/resources/input_types.html:
+ * tests/qwebview/tst_qwebview.cpp:
+ (tst_QWebView::focusInputTypes):
+
+
2010-07-27 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index cdc4013..87e047e 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -599,6 +599,13 @@ void EditorClientQt::setInputMethodState(bool active)
QWebPageClient* webPageClient = m_page->d->client;
if (webPageClient) {
#if QT_VERSION >= 0x040600
+ // Make sure to reset input method hint
+ webPageClient->setInputMethodHint(Qt::ImhDialableCharactersOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhDigitsOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhEmailCharactersOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhUrlCharactersOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhHiddenText, false);
+
HTMLInputElement* inputElement = 0;
Frame* frame = m_page->d->page->focusController()->focusedOrMainFrame();
if (frame && frame->document() && frame->document()->focusedNode())
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
index 18ab314..2e893af 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
@@ -4,5 +4,6 @@
<input type='tel' style='position: absolute; left: 10px; top: 100px; height: 50px; width: 100px;'/><br>
<input type='number' style='position: absolute; left: 10px; top: 150px; height: 50px; width: 100px;'/><br>
<input type='email' style='position: absolute; left: 10px; top: 200px; height: 50px; width: 100px;'/><br>
-<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>"
-</body></html> \ No newline at end of file
+<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>
+<textarea style='position: absolute; left: 10px; top: 310px; height: 50px; width: 100px;' rows="2" cols="20">blah blah blah blah</textarea><br>
+</body></html>
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index 5dc5e41..bd19578 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -264,30 +264,37 @@ void tst_QWebView::focusInputTypes()
#else
QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
#endif
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
webView->fireMouseClick(QPoint(20, 60));
QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'tel' field
webView->fireMouseClick(QPoint(20, 110));
QVERIFY(webView->inputMethodHints() == Qt::ImhDialableCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'number' field
webView->fireMouseClick(QPoint(20, 160));
QVERIFY(webView->inputMethodHints() == Qt::ImhDigitsOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'email' field
webView->fireMouseClick(QPoint(20, 210));
QVERIFY(webView->inputMethodHints() == Qt::ImhEmailCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'url' field
webView->fireMouseClick(QPoint(20, 260));
QVERIFY(webView->inputMethodHints() == Qt::ImhUrlCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
webView->fireMouseClick(QPoint(20, 60));
QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'text' type
webView->fireMouseClick(QPoint(20, 10));
@@ -297,6 +304,18 @@ void tst_QWebView::focusInputTypes()
#else
QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
#endif
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+ // 'password' field
+ webView->fireMouseClick(QPoint(20, 60));
+ QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+ qWarning("clicking on text area");
+ // 'text area' field
+ webView->fireMouseClick(QPoint(20, 320));
+ QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
delete webView;