diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2009-11-29 23:00:26 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-11-29 23:00:26 (GMT) |
commit | bdd34f907b919ea0742f28ba25b6a3c1ebe97e86 (patch) | |
tree | 587bfd6b97c2ce84f2eebf525c46437b96049d89 /src/3rdparty/webkit/WebKit/qt/tests | |
parent | 1fe08312164a8eef87b3efe9b77452b86224999f (diff) | |
download | Qt-bdd34f907b919ea0742f28ba25b6a3c1ebe97e86.zip Qt-bdd34f907b919ea0742f28ba25b6a3c1ebe97e86.tar.gz Qt-bdd34f907b919ea0742f28ba25b6a3c1ebe97e86.tar.bz2 |
Updated WebKit from /home/shausman/src/webkit/trunk to qtwebkit/qtwebkit-4.6 ( 37d059def88f94e4296a74dc524efda154c6bde6 )
Changes in WebKit/qt since the last update:
++ b/WebKit/qt/ChangeLog
2009-11-28 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] SoftwareInputPanelRequest event sent when clicking in newly loaded page
https://bugs.webkit.org/show_bug.cgi?id=31401
Don't set the event unless there is a focused node we can use
for editing afterwards.
* Api/qwebpage.cpp:
(QWebPagePrivate::handleSoftwareInputPanel):
* tests/qwebpage/tst_qwebpage.cpp:
(tst_QWebPage::inputMethods):
2009-11-23 David Boddie <dboddie@trolltech.com>
Reviewed by Simon Hausmann.
Updated the QWebElement documentation with links to examples and
external resources.
Fixed the project file for the webelement snippet and tidied up the
markers used for quoting the code.
* Api/qwebelement.cpp:
* docs/webkitsnippets/webelement/main.cpp:
(findAll):
* docs/webkitsnippets/webelement/webelement.pro:
2009-11-23 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Wrong runtime instance objects of wrapped QObjects may be used if
the wrapped object died before the gc removed the instance.
https://bugs.webkit.org/show_bug.cgi?id=31681
Added a unit-test to verify that wrapping a QObject with the
same identity as a previously but now dead object works.
* tests/qwebframe/tst_qwebframe.cpp:
Diffstat (limited to 'src/3rdparty/webkit/WebKit/qt/tests')
-rw-r--r-- | src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp | 38 | ||||
-rw-r--r-- | src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp | 15 |
2 files changed, 53 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index d88d905..8cc7953 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -605,6 +605,7 @@ private slots: void render(); void scrollPosition(); void evaluateWillCauseRepaint(); + void qObjectWrapperWithSameIdentity(); private: QString evalJS(const QString&s) { @@ -2785,6 +2786,43 @@ void tst_QWebFrame::evaluateWillCauseRepaint() QTest::qWait(2000); } +class TestFactory : public QObject +{ + Q_OBJECT +public: + TestFactory() + : obj(0), counter(0) + {} + + Q_INVOKABLE QObject* getNewObject() + { + delete obj; + obj = new QObject(this); + obj->setObjectName(QLatin1String("test") + QString::number(++counter)); + return obj; + + } + + QObject* obj; + int counter; +}; + +void tst_QWebFrame::qObjectWrapperWithSameIdentity() +{ + m_view->setHtml("<script>function triggerBug() { document.getElementById('span1').innerText = test.getNewObject().objectName; }</script>" + "<body><span id='span1'>test</span></body>"); + + QWebFrame* mainFrame = m_view->page()->mainFrame(); + QCOMPARE(mainFrame->toPlainText(), QString("test")); + + mainFrame->addToJavaScriptWindowObject("test", new TestFactory, QScriptEngine::ScriptOwnership); + + mainFrame->evaluateJavaScript("triggerBug();"); + QCOMPARE(mainFrame->toPlainText(), QString("test1")); + + mainFrame->evaluateJavaScript("triggerBug();"); + QCOMPARE(mainFrame->toPlainText(), QString("test2")); +} QTEST_MAIN(tst_QWebFrame) #include "tst_qwebframe.moc" diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index 32002e7..ee1969d 100644 --- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -1487,6 +1487,21 @@ void tst_QWebPage::inputMethods() QVERIFY(!(inputMethodHints(view) & Qt::ImhHiddenText)); #endif + page->mainFrame()->setHtml("<html><body><p>nothing to input here"); + viewEventSpy.clear(); + + QWebElement para = page->mainFrame()->findFirstElement("p"); + { + QMouseEvent evpres(QEvent::MouseButtonPress, para.geometry().center(), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); + page->event(&evpres); + QMouseEvent evrel(QEvent::MouseButtonRelease, para.geometry().center(), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); + page->event(&evrel); + } + +#if QT_VERSION >= QT_VERSION_CHECK(4, 6, 0) + QVERIFY(!viewEventSpy.contains(QEvent::RequestSoftwareInputPanel)); +#endif + delete container; } |