void DumpRenderTree::resetToConsistentStateBeforeTesting(const QUrl& url) { // reset so that any current loads are stopped // NOTE: that this has to be done before the layoutTestController is // reset or we get timeouts for some tests. m_page->blockSignals(true); m_page->triggerAction(QWebPage::Stop); m_page->blockSignals(false); QList<QWebSecurityOrigin> knownOrigins = QWebSecurityOrigin::allOrigins(); for (int i = 0; i < knownOrigins.size(); ++i) knownOrigins[i].setDatabaseQuota(databaseDefaultQuota); // reset the layoutTestController at this point, so that we under no // circumstance dump (stop the waitUntilDone timer) during the reset // of the DRT. m_controller->reset(); // reset mouse clicks counter m_eventSender->resetClickCount(); closeRemainingWindows(); m_page->resetSettings(); #ifndef QT_NO_UNDOSTACK m_page->undoStack()->clear(); #endif m_page->mainFrame()->setZoomFactor(1.0); clearHistory(m_page); DumpRenderTreeSupportQt::clearFrameName(m_page->mainFrame()); m_page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAsNeeded); m_page->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAsNeeded); if (url.scheme() == "http" || url.scheme() == "https") { // credentials may exist from previous tests. m_page->setNetworkAccessManager(0); delete m_networkAccessManager; m_networkAccessManager = new NetworkAccessManager(this); m_page->setNetworkAccessManager(m_networkAccessManager); } WorkQueue::shared()->clear(); WorkQueue::shared()->setFrozen(false); DumpRenderTreeSupportQt::resetOriginAccessWhiteLists(); // Qt defaults to Windows editing behavior. DumpRenderTreeSupportQt::setEditingBehavior(m_page, "win"); QLocale::setDefault(QLocale::c()); layoutTestController()->setDeveloperExtrasEnabled(true); #ifndef Q_OS_WINCE setlocale(LC_ALL, ""); #endif }
void DumpRenderTree::open(const QUrl& url) { DumpRenderTreeSupportQt::dumpResourceLoadCallbacksPath(QFileInfo(url.toString()).path()); resetToConsistentStateBeforeTesting(url); if (isWebInspectorTest(m_page->mainFrame()->url())) layoutTestController()->closeWebInspector(); if (isWebInspectorTest(url)) layoutTestController()->showWebInspector(); if (isDumpAsTextTest(url)) { layoutTestController()->dumpAsText(); setDumpPixels(false); } if (isGlobalHistoryTest(url)) layoutTestController()->dumpHistoryCallbacks(); // W3C SVG tests expect to be 480x360 bool isW3CTest = url.toString().contains("svg/W3C-SVG-1.1"); int width = isW3CTest ? 480 : LayoutTestController::maxViewWidth; int height = isW3CTest ? 360 : LayoutTestController::maxViewHeight; m_mainView->resize(QSize(width, height)); m_page->setPreferredContentsSize(QSize()); m_page->setViewportSize(QSize(width, height)); QFocusEvent ev(QEvent::FocusIn); m_page->event(&ev); QWebSettings::clearMemoryCaches(); #if !(QT_VERSION <= QT_VERSION_CHECK(4, 6, 2)) QFontDatabase::removeAllApplicationFonts(); #endif WebKit::initializeTestFonts(); DumpRenderTreeSupportQt::dumpFrameLoader(url.toString().contains("loading/")); setTextOutputEnabled(true); m_page->mainFrame()->load(url); }