diff options
author | Kristian Monsen <kristianm@google.com> | 2010-05-21 16:53:46 +0100 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2010-05-25 10:24:15 +0100 |
commit | 6c2af9490927c3c5959b5cb07461b646f8b32f6c (patch) | |
tree | f7111b9b22befab472616c1d50ec94eb50f1ec8c /WebKitTools/DumpRenderTree/qt | |
parent | a149172322a9067c14e8b474a53e63649aa17cad (diff) | |
download | external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.zip external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.tar.gz external_webkit-6c2af9490927c3c5959b5cb07461b646f8b32f6c.tar.bz2 |
Merge WebKit at r59636: Initial merge by git
Change-Id: I59b289c4e6b18425f06ce41cc9d34c522515de91
Diffstat (limited to 'WebKitTools/DumpRenderTree/qt')
5 files changed, 49 insertions, 39 deletions
diff --git a/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp b/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp index 9d2a065..f9caca6 100644 --- a/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp +++ b/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp @@ -80,10 +80,6 @@ #include <qdebug.h> -extern void qt_dump_set_accepts_editing(bool b); -extern void qt_dump_frame_loader(bool b); -extern void qt_dump_resource_load_callbacks(bool b); - namespace WebCore { NetworkAccessManager::NetworkAccessManager(QObject* parent) @@ -192,6 +188,7 @@ void WebPage::resetSettings() settings()->resetAttribute(QWebSettings::LocalContentCanAccessRemoteUrls); settings()->resetAttribute(QWebSettings::PluginsEnabled); settings()->resetAttribute(QWebSettings::JavaScriptCanAccessClipboard); + settings()->resetAttribute(QWebSettings::AutoLoadImages); m_drt->layoutTestController()->setCaretBrowsingEnabled(false); m_drt->layoutTestController()->setFrameFlatteningEnabled(false); @@ -343,14 +340,11 @@ DumpRenderTree::DumpRenderTree() , m_stdin(0) , m_enableTextOutput(false) , m_singleFileMode(false) + , m_persistentStoragePath(QString(getenv("DUMPRENDERTREE_TEMP"))) { DumpRenderTreeSupportQt::overwritePluginDirectories(); - char* dumpRenderTreeTemp = getenv("DUMPRENDERTREE_TEMP"); - if (dumpRenderTreeTemp) - QWebSettings::enablePersistentStorage(QString(dumpRenderTreeTemp)); - else - QWebSettings::enablePersistentStorage(); + QWebSettings::enablePersistentStorage(m_persistentStoragePath); // create our primary testing page/view. m_mainView = new QWebView(0); @@ -480,6 +474,7 @@ static bool shouldEnableDeveloperExtras(const QUrl& url) void DumpRenderTree::open(const QUrl& url) { + DumpRenderTreeSupportQt::dumpResourceLoadCallbacksPath(QFileInfo(url.toString()).path()); resetToConsistentStateBeforeTesting(); if (shouldEnableDeveloperExtras(m_page->mainFrame()->url())) { @@ -512,7 +507,7 @@ void DumpRenderTree::open(const QUrl& url) initializeFonts(); #endif - qt_dump_frame_loader(url.toString().contains("loading/")); + DumpRenderTreeSupportQt::dumpFrameLoader(url.toString().contains("loading/")); setTextOutputEnabled(true); m_page->mainFrame()->load(url); } @@ -733,8 +728,8 @@ static const char *methodNameStringForFailedTest(LayoutTestController *controlle void DumpRenderTree::dump() { // Prevent any further frame load or resource load callbacks from appearing after we dump the result. - qt_dump_frame_loader(false); - qt_dump_resource_load_callbacks(false); + DumpRenderTreeSupportQt::dumpFrameLoader(false); + DumpRenderTreeSupportQt::dumpResourceLoadCallbacks(false); QWebFrame *mainFrame = m_page->mainFrame(); @@ -751,6 +746,7 @@ void DumpRenderTree::dump() resultString = mainFrame->renderTreeDump(); if (!resultString.isEmpty()) { + fprintf(stdout, "Content-Type: text/plain\n"); fprintf(stdout, "%s", resultString.toUtf8().constData()); if (m_controller->shouldDumpBackForwardList()) diff --git a/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.h b/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.h index 8309492..e6449b7 100644 --- a/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.h +++ b/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.h @@ -86,6 +86,7 @@ public: LayoutTestController *layoutTestController() const { return m_controller; } EventSender *eventSender() const { return m_eventSender; } TextInputController *textInputController() const { return m_textInputController; } + QString persistentStoragePath() const { return m_persistentStoragePath; } QWebPage *createWindow(); int windowCount() const; @@ -141,6 +142,7 @@ private: QList<QObject*> windows; bool m_enableTextOutput; bool m_singleFileMode; + QString m_persistentStoragePath; }; class NetworkAccessManager : public QNetworkAccessManager { diff --git a/WebKitTools/DumpRenderTree/qt/ImageDiff.cpp b/WebKitTools/DumpRenderTree/qt/ImageDiff.cpp index 704ca13..8ee68db 100644 --- a/WebKitTools/DumpRenderTree/qt/ImageDiff.cpp +++ b/WebKitTools/DumpRenderTree/qt/ImageDiff.cpp @@ -17,13 +17,14 @@ Boston, MA 02110-1301, USA. */ +#include <QtCore/qmath.h> + #include <QApplication> #include <QBuffer> #include <QByteArray> #include <QImage> #include <QStringList> -#include <math.h> #include <stdio.h> int main(int argc, char* argv[]) @@ -102,7 +103,7 @@ int main(int argc, char* argv[]) qreal green = (qGreen(pixel) - qGreen(basePixel)) / static_cast<float>(qMax(255 - qGreen(basePixel), qGreen(basePixel))); qreal blue = (qBlue(pixel) - qBlue(basePixel)) / static_cast<float>(qMax(255 - qBlue(basePixel), qBlue(basePixel))); qreal alpha = (qAlpha(pixel) - qAlpha(basePixel)) / static_cast<float>(qMax(255 - qAlpha(basePixel), qAlpha(basePixel))); - qreal distance = sqrt(red * red + green * green + blue * blue + alpha * alpha) / 2.0f; + qreal distance = qSqrt(red * red + green * green + blue * blue + alpha * alpha) / 2.0f; int gray = distance * qreal(255); diffImage.setPixel(x, y, qRgb(gray, gray, gray)); if (distance >= 1 / qreal(255)) { @@ -118,7 +119,7 @@ int main(int argc, char* argv[]) if (difference <= tolerance) { difference = 0; } else { - difference = round(difference * 100) / 100; + difference = qRound(difference * 100) / 100; difference = qMax(difference, qreal(0.01)); } diff --git a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp index 3f92b8a..1fadd61 100644 --- a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp +++ b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp @@ -37,22 +37,13 @@ #include <QLocale> #include <qwebsettings.h> -extern void qt_dump_editing_callbacks(bool b); -extern void qt_dump_frame_loader(bool b); -extern void qt_dump_resource_load_callbacks(bool b); -extern void qt_set_will_send_request_returns_null_on_redirect(bool b); -extern void qt_set_will_send_request_returns_null(bool b); -extern void qt_set_will_send_request_clear_headers(const QStringList& headers); - -extern void qt_dump_notification(bool b); - LayoutTestController::LayoutTestController(WebCore::DumpRenderTree* drt) : QObject() , m_drt(drt) { qRegisterMetaType<QWebElement>("QWebElement"); reset(); - qt_dump_notification(true); + DumpRenderTreeSupportQt::dumpNotification(true); } void LayoutTestController::reset() @@ -73,12 +64,13 @@ void LayoutTestController::reset() m_handleErrorPages = false; m_webHistory = 0; m_globalFlag = false; - qt_dump_editing_callbacks(false); - qt_dump_frame_loader(false); - qt_dump_resource_load_callbacks(false); - qt_set_will_send_request_returns_null_on_redirect(false); - qt_set_will_send_request_returns_null(false); - qt_set_will_send_request_clear_headers(QStringList()); + DumpRenderTreeSupportQt::dumpEditingCallbacks(false); + DumpRenderTreeSupportQt::dumpFrameLoader(false); + DumpRenderTreeSupportQt::dumpResourceLoadCallbacks(false); + DumpRenderTreeSupportQt::setWillSendRequestReturnsNullOnRedirect(false); + DumpRenderTreeSupportQt::setWillSendRequestReturnsNull(false); + DumpRenderTreeSupportQt::setWillSendRequestClearHeaders(QStringList()); + setIconDatabaseEnabled(false); emit hidePage(); } @@ -217,32 +209,32 @@ QString LayoutTestController::pathToLocalResource(const QString& url) void LayoutTestController::dumpEditingCallbacks() { qDebug() << ">>>dumpEditingCallbacks"; - qt_dump_editing_callbacks(true); + DumpRenderTreeSupportQt::dumpEditingCallbacks(true); } void LayoutTestController::dumpFrameLoadCallbacks() { - qt_dump_frame_loader(true); + DumpRenderTreeSupportQt::dumpFrameLoader(true); } void LayoutTestController::dumpResourceLoadCallbacks() { - qt_dump_resource_load_callbacks(true); + DumpRenderTreeSupportQt::dumpResourceLoadCallbacks(true); } void LayoutTestController::setWillSendRequestReturnsNullOnRedirect(bool enabled) { - qt_set_will_send_request_returns_null_on_redirect(enabled); + DumpRenderTreeSupportQt::setWillSendRequestReturnsNullOnRedirect(enabled); } void LayoutTestController::setWillSendRequestReturnsNull(bool enabled) { - qt_set_will_send_request_returns_null(enabled); + DumpRenderTreeSupportQt::setWillSendRequestReturnsNull(enabled); } void LayoutTestController::setWillSendRequestClearHeader(const QStringList& headers) { - qt_set_will_send_request_clear_headers(headers); + DumpRenderTreeSupportQt::setWillSendRequestClearHeaders(headers); } void LayoutTestController::queueBackNavigation(int howFarBackward) @@ -465,8 +457,7 @@ unsigned LayoutTestController::numberOfActiveAnimations() const void LayoutTestController::disableImageLoading() { - // FIXME: Implement for testing fix for https://bugs.webkit.org/show_bug.cgi?id=27896 - // Also need to make sure image loading is re-enabled for each new test. + m_drt->webPage()->settings()->setAttribute(QWebSettings::AutoLoadImages, false); } void LayoutTestController::dispatchPendingLoadRequests() @@ -624,11 +615,28 @@ QString LayoutTestController::markerTextForListItem(const QWebElement& listItem) return DumpRenderTreeSupportQt::markerTextForListItem(listItem); } +QVariantMap LayoutTestController::computedStyleIncludingVisitedInfo(const QWebElement& element) const +{ + return DumpRenderTreeSupportQt::computedStyleIncludingVisitedInfo(element); +} + +bool LayoutTestController::elementDoesAutoCompleteForElementWithId(const QString& elementId) +{ + return DumpRenderTreeSupportQt::elementDoesAutoCompleteForElementWithId(m_drt->webPage()->mainFrame(), elementId); +} + void LayoutTestController::authenticateSession(const QString&, const QString&, const QString&) { // FIXME: If there is a concept per-session (per-process) credential storage, the credentials should be added to it for later use. } +void LayoutTestController::setIconDatabaseEnabled(bool enable) +{ + if (enable && !m_drt->persistentStoragePath().isEmpty()) + QWebSettings::setIconDatabasePath(m_drt->persistentStoragePath()); + else + QWebSettings::setIconDatabasePath(QString()); +} const unsigned LayoutTestController::maxViewWidth = 800; const unsigned LayoutTestController::maxViewHeight = 600; diff --git a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h index 44b80b7..1359a6f 100644 --- a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h +++ b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h @@ -157,6 +157,7 @@ public slots: bool pauseAnimationAtTimeOnElementWithId(const QString& animationName, double time, const QString& elementId); bool pauseTransitionAtTimeOnElementWithId(const QString& propertyName, double time, const QString& elementId); bool sampleSVGAnimationForElementAtTime(const QString& animationId, double time, const QString& elementId); + bool elementDoesAutoCompleteForElementWithId(const QString& elementId); unsigned numberOfActiveAnimations() const; @@ -168,6 +169,7 @@ public slots: void setDatabaseQuota(int size); void clearAllDatabases(); + void setIconDatabaseEnabled(bool enable); void waitForPolicyDelegate(); void overridePreference(const QString& name, const QVariant& value); @@ -186,6 +188,7 @@ public slots: void setScrollbarPolicy(const QString& orientation, const QString& policy); QString markerTextForListItem(const QWebElement& listItem); + QVariantMap computedStyleIncludingVisitedInfo(const QWebElement& element) const; // Simulate a request an embedding application could make, populating per-session credential storage. void authenticateSession(const QString& url, const QString& username, const QString& password); |