diff options
author | Alexis Menard <alexis.menard@trolltech.com> | 2011-06-02 13:17:54 (GMT) |
---|---|---|
committer | Alexis Menard <alexis.menard@trolltech.com> | 2011-06-02 13:17:54 (GMT) |
commit | c3c0bb5fef8452b10bfaf38fe45fb29a606483b2 (patch) | |
tree | b742f080e263a376750b608d3c141ecde583a376 /src/3rdparty/webkit/Source/WebKit | |
parent | 00f54ea349fab3773331d2085335258f3aad11c6 (diff) | |
download | Qt-c3c0bb5fef8452b10bfaf38fe45fb29a606483b2.zip Qt-c3c0bb5fef8452b10bfaf38fe45fb29a606483b2.tar.gz Qt-c3c0bb5fef8452b10bfaf38fe45fb29a606483b2.tar.bz2 |
Updated WebKit to efbf910ad7c49e8cdf81411b4ac0abeea0efd8f8
Reviewed by: Andreas Kling
Diffstat (limited to 'src/3rdparty/webkit/Source/WebKit')
8 files changed, 229 insertions, 34 deletions
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog index 0c38ef0..57f79be 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog +++ b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog @@ -1,3 +1,144 @@ +2011-06-02 Andreas Kling <kling@webkit.org> + + Unreviewed build fix. + + To support building namespaced Qt, we require that forward-declarations + of Qt classes be wrapped in QT_BEGIN_NAMESPACE and QT_END_NAMESPACE. + + * WebCoreSupport/DumpRenderTreeSupportQt.h: + +2011-06-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt]Fix tst_QWebFrame::setUrlToInvalid() autotest after r84762 + https://bugs.webkit.org/show_bug.cgi?id=59345 + + KURL and QUrl disagree whether certain URLs are valid or not. The regression here + was caused by the fact that now KURL accepts "http:/example.com" (note only one + slash) and our test case used a strange edge case that's transformed into a + "one-slash" URL that now KURL can handle. + + QtWebKit approach in this case is to do a best effort and accept the QUrl if KURL + can understand it. So I've updated the test to use a more meaningful example and + show that an invalid URL gets converted to a valid URL if possible. + + * tests/qwebframe/tst_qwebframe.cpp: + (tst_QWebFrame::setUrlToInvalid): + +2011-06-01 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Reviewed by Tor Arne Vestbø. + + [Qt] Rewrite tst_QDeclarativeWebView::multipleWindows() to not depend on Grid internals + https://bugs.webkit.org/show_bug.cgi?id=61739 + + The skipped test was imported from Qt source repository, and used private headers + to peek in the QML Grid element. This patch changes the QML used to expose the + information we want to test: number of pages opened and the first page opened. + + * tests/qdeclarativewebview/resources/newwindows.html: + Added <body> tags. We have no reason to not use them in the test. + + * tests/qdeclarativewebview/resources/newwindows.qml: + Moved the timer out of the page component, used anchors for setting webview size, + changed the way we count pages opened. Also changed coding style a bit. + + * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp: + (tst_QDeclarativeWebView::multipleWindows): + We now look for properties with the information we want in the rootItem: pagesOpened and + firstPageOpened. + +2011-05-31 Rafael Brandao <rafael.lobo@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] tst_QWebFrame::render() failing + https://bugs.webkit.org/show_bug.cgi?id=60893 + + The test was expecting the frame contents to be already loaded + before rendering it into a QPicture. Renamed the test to fit + its real purpose more accordingly. + + * tests/qwebframe/tst_qwebframe.cpp: + (tst_QWebFrame::renderGeometry): + +2011-05-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] Fix unnecessary wait in API autotest tst_QWebFrame::scrollbarsOff + https://bugs.webkit.org/show_bug.cgi?id=61711 + + The loadFinished() signal was emitted directly inside the call for setHtml, so + the test was waiting the loadFinished() signal with a big timeout. Change this by + a very small timeout and a verification with signal spy. + + In practice, setHtml() will either directly call loadFinished() or queue it to + the next event loop run, and test will work for both situations. + + * tests/qwebframe/tst_qwebframe.cpp: + (tst_QWebFrame::scrollbarsOff): + +2011-05-20 Csaba Osztrogonác <ossy@webkit.org> + + Reviewed by Benjamin Poulain. + + [Qt] tst_QWebElement::style() fails because QWebElement::InlineStyle doesn't work as expected + https://bugs.webkit.org/show_bug.cgi?id=60372 + + * tests/qwebelement/tst_qwebelement.cpp: Mark failing test case as expected fail. + (tst_QWebElement::style): + +2011-05-20 Csaba Osztrogonác <ossy@webkit.org> + + Reviewed by Benjamin Poulain. + + [Qt] Fix tst_QDeclarativeWebView::basicProperties() and historyNav() autotests + https://bugs.webkit.org/show_bug.cgi?id=61042 + + * tests/qdeclarativewebview/tst_qdeclarativewebview.cpp: Mark failing test cases as expected fails. + (tst_QDeclarativeWebView::basicProperties): + (tst_QDeclarativeWebView::historyNav): + +2011-05-20 Csaba Osztrogonác <ossy@webkit.org> + + Reviewed by Benjamin Poulain. + + [Qt] Fix tst_QWebPage::testOptionalJSObjects() autotest + https://bugs.webkit.org/show_bug.cgi?id=61045 + + * tests/qwebpage/tst_qwebpage.cpp: + (tst_QWebPage::testOptionalJSObjects): Mark failing test cases as expected fails. + +2011-05-20 Csaba Osztrogonác <ossy@webkit.org> + + Reviewed by Benjamin Poulain. + + [Qt]Fix tst_QWebFrame::setUrlToInvalid() autotest after r84762 + https://bugs.webkit.org/show_bug.cgi?id=59345 + + * tests/qwebframe/tst_qwebframe.cpp: + (tst_QWebFrame::setUrlToInvalid): Mark failing test cases as expected fails. + +2011-05-10 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org> + + Reviewed by Csaba Osztrogonác. + + [Qt] tst_QWebPage creates temporary files in the current working dir + https://bugs.webkit.org/show_bug.cgi?id=60497 + + tst_QWebPage was using QDir::currentPath when creating temporary dirs + and leaving them after the test was run. I basically borrowed the fix + from tst_QDeclarativeWebView. + + * tests/qwebpage/tst_qwebpage.cpp: + (removeRecursive): + (tst_QWebPage::tmpDirPath): + (tst_QWebPage::cleanupFiles): + (tst_QWebPage::database): + (tst_QWebPage::multiplePageGroupsAndLocalStorage): + 2011-05-27 Alexis Menard <alexis.menard@openbossa.org> Reviewed by Csaba Osztrogonác. diff --git a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h index d40e096..82e5539 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h +++ b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h @@ -46,12 +46,14 @@ class QtDRTNodeRuntime; } #endif +QT_BEGIN_NAMESPACE class QWebElement; class QWebFrame; class QWebPage; class QWebHistoryItem; class QWebScriptWorld; class QUrl; +QT_END_NAMESPACE extern QMap<int, QWebScriptWorld*> m_worldMap; diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html index dd541f9..4252d9a 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.html @@ -1,3 +1,4 @@ +<!DOCTYPE html> <html> <head> <script type="text/javascript"> @@ -11,6 +12,9 @@ function clickTheLink() // --> </script> </head> +<body> <h1>Multiple windows...</h1> <a id=thelink target="_blank" href="newwindows.html">Popup!</a> +</body> +</html> diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml index e66631d..166722d 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/resources/newwindows.qml @@ -7,28 +7,45 @@ Grid { columns: 3 id: pages height: 300; width: 600 - property int total: 0 + property int pagesOpened: 0 + property Item firstPageOpened: null Component { id: webViewPage Rectangle { - width: webView.width - height: webView.height - border.color: "gray" + id: thisPage + width: 150 + height: 150 + property WebView webView: wv WebView { - id: webView - width: 150 // force predictable for test + id: wv + anchors.fill: parent newWindowComponent: webViewPage newWindowParent: pages url: "newwindows.html" - Timer { - interval: 10; running: total<4; repeat: false; - onTriggered: { if (webView.status==WebView.Ready) { total++; webView.evaluateJavaScript("clickTheLink()") } } + Component.onCompleted: { + if (pagesOpened == 1) { + pages.firstPageOpened = thisPage; + } } } } } - Loader { sourceComponent: webViewPage } + Loader { + id: originalPage + sourceComponent: webViewPage + property bool ready: status == Loader.Ready && item.webView.status == WebView.Ready + } + + Timer { + interval: 10 + running: originalPage.ready && pagesOpened < 4 + repeat: true + onTriggered: { + pagesOpened++; + originalPage.item.webView.evaluateJavaScript("clickTheLink()"); + } + } } diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp index fff1f2d..5ce1eb1 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qdeclarativewebview/tst_qdeclarativewebview.cpp @@ -101,6 +101,7 @@ void tst_QDeclarativeWebView::basicProperties() QVERIFY(wv); QTRY_COMPARE(wv->property("progress").toDouble(), 1.0); QCOMPARE(wv->property("title").toString(), QLatin1String("Basic")); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61042", Continue); QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 48); QEXPECT_FAIL("", "'icon' property isn't working", Continue); QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")), QPixmap("qrc:///resources/basic.png")); @@ -178,6 +179,7 @@ void tst_QDeclarativeWebView::historyNav() for (int i = 1; i <= 2; ++i) { QTRY_COMPARE(wv->property("progress").toDouble(), 1.0); QCOMPARE(wv->property("title").toString(), QLatin1String("Basic")); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61042", Continue); QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 48); QEXPECT_FAIL("", "'icon' property isn't working", Continue); QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")), QPixmap("qrc:///data/basic.png")); @@ -197,6 +199,7 @@ void tst_QDeclarativeWebView::historyNav() wv->setProperty("url", QUrl("qrc:///resources/forward.html")); QTRY_COMPARE(wv->property("progress").toDouble(), 1.0); QCOMPARE(wv->property("title").toString(), QLatin1String("Forward")); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61042", Continue); QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 32); QEXPECT_FAIL("", "'icon' property isn't working", Continue); QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")), QPixmap("qrc:///resources/forward.png")); @@ -269,17 +272,21 @@ void tst_QDeclarativeWebView::loadError() void tst_QDeclarativeWebView::multipleWindows() { - QSKIP("Rework this test to not depend on QDeclarativeGrid", SkipAll); QDeclarativeEngine engine; QDeclarativeComponent component(&engine, QUrl("qrc:///resources/newwindows.qml")); checkNoErrors(component); -// QDeclarativeGrid *grid = qobject_cast<QDeclarativeGrid*>(component.create()); -// QVERIFY(grid != 0); -// QTRY_COMPARE(grid->children().count(), 2+4); // Component, Loader (with 1 WebView), 4 new-window WebViews -// QDeclarativeItem* popup = qobject_cast<QDeclarativeItem*>(grid->children().at(2)); // first popup after Component and Loader. -// QVERIFY(popup != 0); -// QTRY_COMPARE(popup->x(), 150.0); + QDeclarativeItem* rootItem = qobject_cast<QDeclarativeItem*>(component.create()); + QVERIFY(rootItem); + + QTRY_COMPARE(rootItem->property("pagesOpened").toInt(), 4); + + QDeclarativeProperty prop(rootItem, "firstPageOpened"); + QObject* firstPageOpened = qvariant_cast<QObject*>(prop.read()); + QVERIFY(firstPageOpened); + + QDeclarativeProperty xProp(firstPageOpened, "x"); + QTRY_COMPARE(xProp.read().toReal(), qreal(150.0)); } void tst_QDeclarativeWebView::newWindowComponent() diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp index 9e9948a..0f05b2b 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp @@ -483,6 +483,7 @@ void tst_QWebElement::style() QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("green")); p.setStyleProperty("color", "blue"); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=60372", Continue); QCOMPARE(p.styleProperty("color", QWebElement::InlineStyle), QLatin1String("blue")); QCOMPARE(p.styleProperty("color", QWebElement::CascadedStyle), QLatin1String("green")); diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index a982119..b567784 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -637,7 +637,7 @@ private slots: void baseUrl_data(); void baseUrl(); void hasSetFocus(); - void render(); + void renderGeometry(); void renderHints(); void scrollPosition(); void scrollToAnchor(); @@ -2881,7 +2881,7 @@ void tst_QWebFrame::hasSetFocus() QTRY_VERIFY(m_page->mainFrame()->hasFocus()); } -void tst_QWebFrame::render() +void tst_QWebFrame::renderGeometry() { QString html("<html>" \ "<head><style>" \ @@ -2897,6 +2897,7 @@ void tst_QWebFrame::render() QWebFrame *frame = frames.at(0); QString innerHtml("<body style='margin: 0px;'><img src='qrc:/image.png'/></body>"); frame->setHtml(innerHtml); + waitForSignal(frame, SIGNAL(loadFinished(bool)), 200); QPicture picture; @@ -3134,8 +3135,10 @@ void tst_QWebFrame::scrollbarsOff() "</body>"); + QSignalSpy loadSpy(&view, SIGNAL(loadFinished(bool))); view.setHtml(html); - ::waitForSignal(&view, SIGNAL(loadFinished(bool))); + ::waitForSignal(&view, SIGNAL(loadFinished(bool)), 200); + QCOMPARE(loadSpy.count(), 1); mainFrame->evaluateJavaScript("checkScrollbar();"); QCOMPARE(mainFrame->documentElement().findAll("span").at(0).toPlainText(), QString("SUCCESS")); @@ -3453,15 +3456,17 @@ void tst_QWebFrame::setUrlToInvalid() QWebPage page; QWebFrame* frame = page.mainFrame(); - const QUrl invalidUrl("http://strange;hostname/here"); + const QUrl invalidUrl("http:/example.com"); QVERIFY(!invalidUrl.isEmpty()); QVERIFY(!invalidUrl.isValid()); QVERIFY(invalidUrl != QUrl()); + // QWebFrame will do its best to accept the URL, possible converting it to a valid equivalent URL. + const QUrl validUrl("http://example.com/"); frame->setUrl(invalidUrl); - QCOMPARE(frame->url(), invalidUrl); - QCOMPARE(frame->requestedUrl(), invalidUrl); - QCOMPARE(frame->baseUrl(), invalidUrl); + QCOMPARE(frame->url(), validUrl); + QCOMPARE(frame->requestedUrl(), validUrl); + QCOMPARE(frame->baseUrl(), validUrl); // QUrls equivalent to QUrl() will be treated as such. const QUrl aboutBlank("about:blank"); diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index 8b30dc2..81e1454 100644 --- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -45,6 +45,18 @@ #include <qwebview.h> #include <qimagewriter.h> +static void removeRecursive(const QString& dirname) +{ + QDir dir(dirname); + QFileInfoList entries(dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot)); + for (int i = 0; i < entries.count(); ++i) + if (entries[i].isDir()) + removeRecursive(entries[i].filePath()); + else + dir.remove(entries[i].fileName()); + QDir().rmdir(dirname); +} + class EventSpy : public QObject, public QList<QEvent::Type> { Q_OBJECT @@ -145,10 +157,16 @@ private slots: #ifdef Q_OS_MAC void macCopyUnicodeToClipboard(); #endif - + private: QWebView* m_view; QWebPage* m_page; + QString tmpDirPath() const + { + static QString tmpd = QDir::tempPath() + "/tst_qwebpage-" + + QDateTime::currentDateTime().toString(QLatin1String("yyyyMMddhhmmss")); + return tmpd; + } }; tst_QWebPage::tst_QWebPage() @@ -172,9 +190,7 @@ void tst_QWebPage::cleanup() void tst_QWebPage::cleanupFiles() { - QFile::remove("Databases.db"); - QDir::current().rmdir("http_www.myexample.com_0"); - QFile::remove("http_www.myexample.com_0.localstorage"); + removeRecursive(tmpDirPath()); } void tst_QWebPage::initTestCase() @@ -553,7 +569,7 @@ void tst_QWebPage::contextMenuCrash() void tst_QWebPage::database() { - QString path = QDir::currentPath(); + QString path = tmpDirPath(); m_page->settings()->setOfflineStoragePath(path); QVERIFY(m_page->settings()->offlineStoragePath() == path); @@ -907,7 +923,7 @@ void tst_QWebPage::createViewlessPlugin() void tst_QWebPage::multiplePageGroupsAndLocalStorage() { - QDir dir(QDir::currentPath()); + QDir dir(tmpDirPath()); dir.mkdir("path1"); dir.mkdir("path2"); @@ -915,10 +931,10 @@ void tst_QWebPage::multiplePageGroupsAndLocalStorage() QWebView view2; view1.page()->settings()->setAttribute(QWebSettings::LocalStorageEnabled, true); - view1.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(QDir::currentPath() + "/path1")); + view1.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path1")); DumpRenderTreeSupportQt::webPageSetGroupName(view1.page(), "group1"); view2.page()->settings()->setAttribute(QWebSettings::LocalStorageEnabled, true); - view2.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(QDir::currentPath() + "/path2")); + view2.page()->settings()->setLocalStoragePath(QDir::toNativeSeparators(tmpDirPath() + "/path2")); DumpRenderTreeSupportQt::webPageSetGroupName(view2.page(), "group2"); QCOMPARE(DumpRenderTreeSupportQt::webPageGroupName(view1.page()), QString("group1")); QCOMPARE(DumpRenderTreeSupportQt::webPageGroupName(view2.page()), QString("group2")); @@ -941,8 +957,8 @@ void tst_QWebPage::multiplePageGroupsAndLocalStorage() QTest::qWait(1000); - QFile::remove(QDir::toNativeSeparators(QDir::currentPath() + "/path1/http_www.myexample.com_0.localstorage")); - QFile::remove(QDir::toNativeSeparators(QDir::currentPath() + "/path2/http_www.myexample.com_0.localstorage")); + QFile::remove(QDir::toNativeSeparators(tmpDirPath() + "/path1/http_www.myexample.com_0.localstorage")); + QFile::remove(QDir::toNativeSeparators(tmpDirPath() + "/path2/http_www.myexample.com_0.localstorage")); dir.rmdir(QDir::toNativeSeparators("./path1")); dir.rmdir(QDir::toNativeSeparators("./path2")); } @@ -2323,8 +2339,10 @@ void tst_QWebPage::testOptionalJSObjects() QCOMPARE(testFlag(webPage2, QWebSettings::OfflineWebApplicationCacheEnabled, "applicationCache", false), true); QCOMPARE(testFlag(webPage1, QWebSettings::LocalStorageEnabled, "localStorage", false), false); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61045", Continue); QCOMPARE(testFlag(webPage2, QWebSettings::LocalStorageEnabled, "localStorage", true), true); QCOMPARE(testFlag(webPage1, QWebSettings::LocalStorageEnabled, "localStorage", false), false); + QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=61045", Continue); QCOMPARE(testFlag(webPage2, QWebSettings::LocalStorageEnabled, "localStorage", false), true); } |