summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/qt
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/qt')
-rw-r--r--Source/WebKit/qt/Api/qwebfullscreenrequest.cpp2
-rw-r--r--Source/WebKit/qt/Api/qwebsettings.cpp17
-rw-r--r--Source/WebKit/qt/Api/qwebsettings.h1
-rw-r--r--Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp3
-rw-r--r--Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp23
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage.cpp3
-rw-r--r--Source/WebKit/qt/WidgetSupport/PageClientQt.cpp50
-rw-r--r--Source/WebKit/qt/WidgetSupport/PageClientQt.h1
-rw-r--r--Source/WebKit/qt/tests/CMakeLists.txt21
-rw-r--r--Source/WebKit/qt/tests/hybridPixmap/tst_hybridPixmap.qrc (renamed from Source/WebKit/qt/tests/hybridPixmap/resources.qrc)0
-rw-r--r--Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp23
-rw-r--r--Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp23
12 files changed, 136 insertions, 31 deletions
diff --git a/Source/WebKit/qt/Api/qwebfullscreenrequest.cpp b/Source/WebKit/qt/Api/qwebfullscreenrequest.cpp
index 56e14f6c8..14f20a63a 100644
--- a/Source/WebKit/qt/Api/qwebfullscreenrequest.cpp
+++ b/Source/WebKit/qt/Api/qwebfullscreenrequest.cpp
@@ -107,7 +107,7 @@ void QWebFullScreenRequest::reject()
bool QWebFullScreenRequest::toggleOn() const
{
- return d->toggleOn;
+ return d->toggleOn;
}
QUrl QWebFullScreenRequest::origin() const
diff --git a/Source/WebKit/qt/Api/qwebsettings.cpp b/Source/WebKit/qt/Api/qwebsettings.cpp
index 9adc662b7..ddd617a67 100644
--- a/Source/WebKit/qt/Api/qwebsettings.cpp
+++ b/Source/WebKit/qt/Api/qwebsettings.cpp
@@ -148,14 +148,18 @@ void QWebSettingsPrivate::apply()
settings->setDNSPrefetchingEnabled(value);
value = attributes.value(QWebSettings::JavascriptEnabled,
- global->attributes.value(QWebSettings::JavascriptEnabled));
+ global->attributes.value(QWebSettings::JavascriptEnabled));
settings->setScriptEnabled(value);
value = attributes.value(QWebSettings::AcceleratedCompositingEnabled,
global->attributes.value(QWebSettings::AcceleratedCompositingEnabled));
- // FIXME: Temporary disabled until AC is fully working
- // settings->setAcceleratedCompositingEnabled(value);
- settings->setAcceleratedCompositingEnabled(false);
+ settings->setAcceleratedCompositingEnabled(value);
+
+#if ENABLE(ACCELERATED_2D_CANVAS)
+ value = value && attributes.value(QWebSettings::Accelerated2dCanvasEnabled,
+ global->attributes.value(QWebSettings::Accelerated2dCanvasEnabled));
+ settings->setAccelerated2dCanvasEnabled(value);
+#endif
bool showDebugVisuals = qgetenv("WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS") == "1";
settings->setShowDebugBorders(showDebugVisuals);
@@ -300,8 +304,10 @@ void QWebSettingsPrivate::apply()
global->attributes.value(QWebSettings::SiteSpecificQuirksEnabled));
settings->setNeedsSiteSpecificQuirks(value);
+#if ENABLE(FULLSCREEN_API)
value = attributes.value(QWebSettings::FullScreenSupportEnabled, global->attributes.value(QWebSettings::FullScreenSupportEnabled));
settings->setFullScreenEnabled(value);
+#endif
settings->setUsesPageCache(WebCore::PageCache::singleton().maxSize());
} else {
@@ -515,6 +521,8 @@ QWebSettings* QWebSettings::globalSettings()
\value CaretBrowsingEnabled This setting enables caret browsing. It is disabled by default.
\value NotificationsEnabled Specifies whether support for the HTML 5 web notifications is enabled
or not. This is enabled by default.
+ \value Accelerated2dCanvasEnabled Specifies whether the HTML5 2D canvas should be a OpenGL framebuffer.
+ This makes many painting operations faster, but slows down pixel access. This is disabled by default.
\value WebSecurityEnabled Specifies whether browser should enforce same-origin policy for scripts downloaded
from remote servers. This setting is set to true by default. Note that setting this flag to false is
strongly discouraged as it makes the browser more prone to malicious code. This setting is intended
@@ -577,6 +585,7 @@ QWebSettings::QWebSettings()
d->attributes.insert(QWebSettings::ScrollAnimatorEnabled, false);
d->attributes.insert(QWebSettings::CaretBrowsingEnabled, false);
d->attributes.insert(QWebSettings::NotificationsEnabled, true);
+ d->attributes.insert(QWebSettings::Accelerated2dCanvasEnabled, false);
d->attributes.insert(QWebSettings::WebSecurityEnabled, true);
d->attributes.insert(QWebSettings::FullScreenSupportEnabled, true);
d->offlineStorageDefaultQuota = 5 * 1024 * 1024;
diff --git a/Source/WebKit/qt/Api/qwebsettings.h b/Source/WebKit/qt/Api/qwebsettings.h
index 11fae751f..a0b75533e 100644
--- a/Source/WebKit/qt/Api/qwebsettings.h
+++ b/Source/WebKit/qt/Api/qwebsettings.h
@@ -86,6 +86,7 @@ public:
CaretBrowsingEnabled,
NotificationsEnabled,
WebAudioEnabled,
+ Accelerated2dCanvasEnabled,
MediaSourceEnabled,
MediaEnabled,
WebSecurityEnabled,
diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
index 597ba95dd..29879a08a 100644
--- a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
@@ -226,7 +226,8 @@ void InspectorClientQt::detachRemoteFrontend()
void InspectorClientQt::closeFrontendWindow()
{
- m_frontendClient->closeWindow();
+ if (m_frontendClient)
+ m_frontendClient->closeWindow();
}
void InspectorClientQt::highlight()
diff --git a/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp
index 2c6926c40..552fe6555 100644
--- a/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/TextureMapperLayerClientQt.cpp
@@ -70,9 +70,10 @@ void TextureMapperLayerClientQt::setRootGraphicsLayer(GraphicsLayer* layer)
m_rootGraphicsLayer->setDrawsContent(false);
m_rootGraphicsLayer->setMasksToBounds(false);
m_rootGraphicsLayer->setSize(IntSize(1, 1));
- if (!m_frame->pageAdapter->client->makeOpenGLContextCurrentIfAvailable())
- ASSERT_WITH_MESSAGE(false, "TextureMapper::SoftwareMode is not implemented");
- m_textureMapper = TextureMapper::create();
+ TextureMapper::AccelerationMode mode = TextureMapper::SoftwareMode;
+ if (m_frame->pageAdapter->client->makeOpenGLContextCurrentIfAvailable())
+ mode = TextureMapper::OpenGLMode;
+ m_textureMapper = TextureMapper::create(mode);
m_rootTextureMapperLayer->setTextureMapper(m_textureMapper.get());
syncRootLayer();
} else {
@@ -86,12 +87,13 @@ void TextureMapperLayerClientQt::syncLayers()
if (m_rootGraphicsLayer)
syncRootLayer();
- m_frame->frame->view()->flushCompositingStateIncludingSubframes();
+ bool didSync = m_frame->frame->view()->flushCompositingStateIncludingSubframes();
if (!m_rootGraphicsLayer)
return;
- downcast<GraphicsLayerTextureMapper>(*m_rootGraphicsLayer).updateBackingStoreIncludingSubLayers();
+ if (didSync)
+ downcast<GraphicsLayerTextureMapper>(*m_rootGraphicsLayer).updateBackingStoreIncludingSubLayers();
if (rootLayer()->descendantsOrSelfHaveRunningAnimations() && !m_syncTimer.isActive())
m_syncTimer.startOneShot(1.0 / 60.0);
@@ -115,7 +117,16 @@ void TextureMapperLayerClientQt::renderCompositedLayers(GraphicsContext& context
m_textureMapper->setTextDrawingMode(context.textDrawingMode());
QPainter* painter = context.platformContext();
- const QTransform transform = painter->worldTransform();
+ QTransform transform;
+ if (m_textureMapper->accelerationMode() == TextureMapper::OpenGLMode) {
+ // TextureMapperGL needs to duplicate the entire transform QPainter would do,
+ // including the transforms QPainter would normally do behind the scenes.
+ transform = painter->deviceTransform();
+ } else {
+ // TextureMapperImageBuffer needs a transform that can be used
+ // with QPainter::setWorldTransform.
+ transform = painter->worldTransform();
+ }
const TransformationMatrix matrix(
transform.m11(), transform.m12(), 0, transform.m13(),
transform.m21(), transform.m22(), 0, transform.m23(),
diff --git a/Source/WebKit/qt/WidgetApi/qwebpage.cpp b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
index 80fbf5697..a1ea49d35 100644
--- a/Source/WebKit/qt/WidgetApi/qwebpage.cpp
+++ b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
@@ -3075,7 +3075,8 @@ QWebPageAdapter *QWebPage::handle() const
*/
bool QWebPage::findText(const QString &subString, FindFlags options)
{
- return d->findText(subString, static_cast<QWebPageAdapter::FindFlag>(options.operator int()));
+ return d->findText(subString, static_cast<QWebPageAdapter::FindFlag>(
+ static_cast<FindFlags::Int>(options)));
}
/*!
diff --git a/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp b/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp
index 6ae5f12c4..7e5cb1fb7 100644
--- a/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp
+++ b/Source/WebKit/qt/WidgetSupport/PageClientQt.cpp
@@ -33,6 +33,9 @@
#ifdef QT_OPENGL_LIB
#include <QGLWidget>
#endif
+#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
+#include <QOpenGLWidget>
+#endif
QWindow* QWebPageClient::ownerWindow() const
{
@@ -140,7 +143,7 @@ QStyle* PageClientQWidget::style() const
QRectF PageClientQWidget::windowRect() const
{
- return QRectF(view->window()->geometry());
+ return QRectF(view->window()->frameGeometry());
}
void PageClientQWidget::setWidgetVisible(Widget* widget, bool visible)
@@ -183,20 +186,53 @@ void PageClientQGraphicsWidget::repaintViewport()
bool PageClientQGraphicsWidget::makeOpenGLContextCurrentIfAvailable()
{
-#if USE(TEXTURE_MAPPER_GL) && defined(QT_OPENGL_LIB)
+#if USE(TEXTURE_MAPPER_GL)
QGraphicsView* graphicsView = firstGraphicsView();
if (graphicsView && graphicsView->viewport()) {
- QGLWidget* glWidget = qobject_cast<QGLWidget*>(graphicsView->viewport());
- if (glWidget) {
+ QWidget* widget = graphicsView->viewport();
+#if defined(QT_OPENGL_LIB)
+ if (widget->inherits("QGLWidget")) {
+ QGLWidget* glWidget = static_cast<QGLWidget*>(widget);
// The GL context belonging to the QGLWidget viewport must be current when TextureMapper is being created.
glWidget->makeCurrent();
return true;
}
+#endif
+#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
+ if (widget->inherits("QOpenGLWidget")) {
+ QOpenGLWidget* qoglWidget = static_cast<QOpenGLWidget*>(widget);
+ qoglWidget->makeCurrent();
+ return true;
+ }
+#endif
}
#endif
return false;
}
+QOpenGLContext* PageClientQGraphicsWidget::openGLContextIfAvailable()
+{
+#if USE(TEXTURE_MAPPER_GL)
+ QGraphicsView* graphicsView = firstGraphicsView();
+ if (graphicsView && graphicsView->viewport()) {
+ QWidget* widget = graphicsView->viewport();
+#if defined(QT_OPENGL_LIB)
+ if (widget->inherits("QGLWidget")) {
+ QGLWidget* glWidget = static_cast<QGLWidget*>(widget);
+ return glWidget->context()->contextHandle();
+ }
+#endif
+#if QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
+ if (widget->inherits("QOpenGLWidget")) {
+ QOpenGLWidget* qoglWidget = static_cast<QOpenGLWidget*>(widget);
+ return qoglWidget->context();
+ }
+#endif
+ }
+#endif
+ return 0;
+}
+
void PageClientQGraphicsWidget::setInputMethodEnabled(bool enable)
{
view->setFlag(QGraphicsItem::ItemAcceptsInputMethod, enable);
@@ -257,10 +293,9 @@ QRect PageClientQGraphicsWidget::geometryRelativeToOwnerWidget() const
QPoint PageClientQGraphicsWidget::mapToOwnerWindow(const QPoint& point) const
{
if (const QGraphicsView* graphicsView = firstGraphicsView()) {
- if (const QWidget *nativeParent = graphicsView->nativeParentWidget())
+ if (const QWidget* nativeParent = graphicsView->nativeParentWidget())
return graphicsView->mapTo(nativeParent, graphicsView->mapFromScene(view->mapToScene(point)));
- else
- return graphicsView->mapFromScene(view->mapToScene(point));
+ return graphicsView->mapFromScene(view->mapToScene(point));
}
return point;
}
@@ -316,4 +351,3 @@ bool PageClientQGraphicsWidget::isViewVisible()
#endif // QT_NO_GRAPHICSVIEW
} // namespace WebCore
-
diff --git a/Source/WebKit/qt/WidgetSupport/PageClientQt.h b/Source/WebKit/qt/WidgetSupport/PageClientQt.h
index 649882990..cb8c3c79f 100644
--- a/Source/WebKit/qt/WidgetSupport/PageClientQt.h
+++ b/Source/WebKit/qt/WidgetSupport/PageClientQt.h
@@ -168,6 +168,7 @@ public:
#endif
bool makeOpenGLContextCurrentIfAvailable() final;
+ QOpenGLContext* openGLContextIfAvailable() final;
QRectF windowRect() const final;
diff --git a/Source/WebKit/qt/tests/CMakeLists.txt b/Source/WebKit/qt/tests/CMakeLists.txt
index 8c96f4cbf..685896bfe 100644
--- a/Source/WebKit/qt/tests/CMakeLists.txt
+++ b/Source/WebKit/qt/tests/CMakeLists.txt
@@ -1,26 +1,23 @@
cmake_minimum_required(VERSION 2.8.12)
include_directories(
- "${CMAKE_BINARY_DIR}"
"${CMAKE_SOURCE_DIR}/Source"
"${DERIVED_SOURCES_DIR}/ForwardingHeaders"
- "${DERIVED_SOURCES_WEBKIT_DIR}"
- "${WEBCORE_DIR}"
- "${WEBCORE_DIR}/platform"
- "${WEBCORE_DIR}/platform/qt"
"${WEBKIT_DIR}/qt/Api"
"${WEBKIT_DIR}/qt/WidgetApi"
-
- "${JAVASCRIPTCORE_DIR}"
- "${WTF_DIR}"
)
include_directories(SYSTEM
${ICU_INCLUDE_DIRS}
+ ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Test_INCLUDE_DIRS}
)
+if (ENABLE_TEST_SUPPORT)
+ add_definitions(-DHAVE_QTTESTSUPPORT)
+endif ()
+
set(QtWK1ApiTests_LIBRARIES
${Qt5Gui_LIBRARIES}
${Qt5Network_LIBRARIES}
@@ -35,6 +32,7 @@ set(QtWK1ApiTests_RUNTIME_OUTPUT_DIRECTORY
)
set(QtWK1ApiTests
+ hybridPixmap
qgraphicswebview
qobjectbridge
qwebelement
@@ -42,18 +40,23 @@ set(QtWK1ApiTests
qwebhistory
qwebhistoryinterface
qwebinspector
+ qwebpage
qwebsecurityorigin
qwebview
)
+set(tst_hybridPixmap_SOURCES hybridPixmap/widget.cpp)
+qt5_wrap_ui(tst_hybridPixmap_SOURCES hybridPixmap/widget.ui)
+
if (ENABLE_API_TESTS)
foreach (testName ${QtWK1ApiTests})
- set(tst_${testName}_SOURCES ${testName}/tst_${testName}.cpp)
+ list(APPEND tst_${testName}_SOURCES ${testName}/tst_${testName}.cpp)
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${testName}/tst_${testName}.qrc")
qt5_add_resources(tst_${testName}_SOURCES ${testName}/tst_${testName}.qrc)
endif ()
add_executable(tst_${testName} ${tst_${testName}_SOURCES})
+ target_include_directories(tst_${testName} PRIVATE ${testName})
target_link_libraries(tst_${testName} ${QtWK1ApiTests_LIBRARIES})
set_target_properties(tst_${testName} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${QtWK1ApiTests_RUNTIME_OUTPUT_DIRECTORY})
diff --git a/Source/WebKit/qt/tests/hybridPixmap/resources.qrc b/Source/WebKit/qt/tests/hybridPixmap/tst_hybridPixmap.qrc
index 5fd47e32d..5fd47e32d 100644
--- a/Source/WebKit/qt/tests/hybridPixmap/resources.qrc
+++ b/Source/WebKit/qt/tests/hybridPixmap/tst_hybridPixmap.qrc
diff --git a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index 6e239f67d..bef98fee6 100644
--- a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -20,7 +20,6 @@
*/
#include "../util.h"
-#include "../WebCoreSupport/DumpRenderTreeSupportQt.h"
#include <QClipboard>
#include <QDir>
#include <QGraphicsWidget>
@@ -50,6 +49,10 @@
#include <qwebview.h>
#include <qimagewriter.h>
+#ifdef HAVE_QTTESTSUPPORT
+#include "../WebCoreSupport/DumpRenderTreeSupportQt.h"
+#endif
+
static void removeRecursive(const QString& dirname)
{
QDir dir(dirname);
@@ -110,7 +113,11 @@ public Q_SLOTS:
private Q_SLOTS:
void initTestCase();
void cleanupTestCase();
+
+#ifdef HAVE_QTTESTSUPPORT
void thirdPartyCookiePolicy();
+#endif
+
void contextMenuCopy();
void contextMenuPopulatedOnce();
void acceptNavigationRequest();
@@ -135,7 +142,11 @@ private Q_SLOTS:
void createViewlessPlugin_data();
void createViewlessPlugin();
void graphicsWidgetPlugin();
+
+#ifdef HAVE_QTTESTSUPPORT
void multiplePageGroupsAndLocalStorage();
+#endif
+
void cursorMovements();
void textSelection();
void textEditing();
@@ -143,7 +154,11 @@ private Q_SLOTS:
void frameAt();
void requestCache();
void loadCachedPage();
+
+#ifdef HAVE_QTTESTSUPPORT
void protectBindingsRuntimeObjectsFromCollector();
+#endif
+
void localURLSchemes();
void testOptionalJSObjects();
void testLocalStorageVisibility();
@@ -1089,6 +1104,7 @@ void tst_QWebPage::createViewlessPlugin()
}
+#ifdef HAVE_QTTESTSUPPORT
void tst_QWebPage::multiplePageGroupsAndLocalStorage()
{
QDir dir(tmpDirPath());
@@ -1130,6 +1146,7 @@ void tst_QWebPage::multiplePageGroupsAndLocalStorage()
dir.rmdir(QDir::toNativeSeparators("./path1"));
dir.rmdir(QDir::toNativeSeparators("./path2"));
}
+#endif
class CursorTrackedPage : public QWebPage
{
@@ -2449,6 +2466,7 @@ void tst_QWebPage::inputMethodsTextFormat()
delete view;
}
+#ifdef HAVE_QTTESTSUPPORT
void tst_QWebPage::protectBindingsRuntimeObjectsFromCollector()
{
QSignalSpy loadSpy(m_view, SIGNAL(loadFinished(bool)));
@@ -2470,6 +2488,7 @@ void tst_QWebPage::protectBindingsRuntimeObjectsFromCollector()
// don't crash!
newPage->mainFrame()->evaluateJavaScript("testme('bar')");
}
+#endif
void tst_QWebPage::localURLSchemes()
{
@@ -3133,6 +3152,7 @@ void tst_QWebPage::navigatorCookieEnabled()
QVERIFY(m_page->mainFrame()->evaluateJavaScript("navigator.cookieEnabled").toBool());
}
+#ifdef HAVE_QTTESTSUPPORT
void tst_QWebPage::thirdPartyCookiePolicy()
{
QWebSettings::globalSettings()->setThirdPartyCookiePolicy(QWebSettings::AlwaysBlockThirdPartyCookies);
@@ -3171,6 +3191,7 @@ void tst_QWebPage::thirdPartyCookiePolicy()
QVERIFY(!DumpRenderTreeSupportQt::thirdPartyCookiePolicyAllows(m_page->handle(),
QUrl("http://anotherexample.co.uk"), QUrl("http://example.co.uk")));
}
+#endif
#ifdef Q_OS_MAC
void tst_QWebPage::macCopyUnicodeToClipboard()
diff --git a/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index 3824dda7b..f4db608d4 100644
--- a/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -59,6 +59,7 @@ private Q_SLOTS:
void setPalette_data();
void setPalette();
#endif
+ void innerOuterRect();
};
// This will be called before the first test function is executed.
@@ -518,6 +519,28 @@ void tst_QWebView::renderingAfterMaxAndBack()
QCOMPARE(image3, reference3);
}
+void tst_QWebView::innerOuterRect()
+{
+ QUrl url = QUrl("data:text/html,<html><head></head>"
+ "<body bgcolor=red>"
+ "</body>"
+ "</html>");
+ QWebView view;
+ view.page()->mainFrame()->load(url);
+ QVERIFY(waitForSignal(&view, SIGNAL(loadFinished(bool))));
+ view.showMaximized();
+ const QRect frameGeometry = view.frameGeometry();
+ const QRect geometry = view.geometry();
+ QVariant outerWidth = view.page()->mainFrame()->evaluateJavaScript("window.outerWidth;");
+ QCOMPARE(outerWidth.toInt(), frameGeometry.width());
+ QVariant innerWidth = view.page()->mainFrame()->evaluateJavaScript("window.innerWidth;");
+ QCOMPARE(innerWidth.toInt(), geometry.width());
+ QVariant outerHeight = view.page()->mainFrame()->evaluateJavaScript("window.outerHeight;");
+ QCOMPARE(outerHeight.toInt(), frameGeometry.height());
+ QVariant innerHeight = view.page()->mainFrame()->evaluateJavaScript("window.innerHeight;");
+ QCOMPARE(innerHeight.toInt(), geometry.height());
+}
+
QTEST_MAIN(tst_QWebView)
#include "tst_qwebview.moc"