summaryrefslogtreecommitdiffstats
path: root/WebKitTools/DumpRenderTree/qt
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2010-05-21 16:53:46 +0100
committerKristian Monsen <kristianm@google.com>2010-05-25 10:24:15 +0100
commit6c2af9490927c3c5959b5cb07461b646f8b32f6c (patch)
treef7111b9b22befab472616c1d50ec94eb50f1ec8c /WebKitTools/DumpRenderTree/qt
parenta149172322a9067c14e8b474a53e63649aa17cad (diff)
downloadexternal_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')
-rw-r--r--WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp20
-rw-r--r--WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.h2
-rw-r--r--WebKitTools/DumpRenderTree/qt/ImageDiff.cpp7
-rw-r--r--WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp56
-rw-r--r--WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h3
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);