diff options
Diffstat (limited to 'WebKitTools/QtTestBrowser/main.cpp')
-rw-r--r-- | WebKitTools/QtTestBrowser/main.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/WebKitTools/QtTestBrowser/main.cpp b/WebKitTools/QtTestBrowser/main.cpp index ca3bf7a..bd3be9e 100644 --- a/WebKitTools/QtTestBrowser/main.cpp +++ b/WebKitTools/QtTestBrowser/main.cpp @@ -92,6 +92,28 @@ static bool gUseFrameFlattening = false; static bool gUseQGLWidgetViewport = false; #endif +class NotificationsPermissionController : public QObject { + Q_OBJECT +public: + NotificationsPermissionController(QObject* parent) : QObject(parent) + { + DumpRenderTreeSupportQt::setNotificationsReceiver(this); + DumpRenderTreeSupportQt::setCheckPermissionFunction(checkPermission); + DumpRenderTreeSupportQt::setRequestPermissionFunction(requestPermission); + } + + static void checkPermission(QObject*, const QUrl&, NotificationPermission& permission) + { + permission = NotificationAllowed; + } + + static void requestPermission(QObject*, const QString& origin) + { + DumpRenderTreeSupportQt::allowNotificationForOrigin(origin); + } +}; + +NotificationsPermissionController* notificationsPermissionController = 0; class LauncherWindow : public MainWindow { Q_OBJECT @@ -144,6 +166,7 @@ protected slots: void changeViewportUpdateMode(int mode); void toggleFrameFlattening(bool toggle); void toggleInterruptingJavaScriptEnabled(bool enable); + void toggleJavascriptCanOpenWindows(bool enable); #if defined(QT_CONFIGURED_WITH_OPENGL) void toggleQGLWidgetViewport(bool enable); @@ -210,6 +233,8 @@ LauncherWindow::LauncherWindow(LauncherWindow* other, bool shareScene) } createChrome(); + if (!notificationsPermissionController) + notificationsPermissionController = new NotificationsPermissionController(QCoreApplication::instance()); } LauncherWindow::~LauncherWindow() @@ -238,8 +263,10 @@ void LauncherWindow::init(bool useGraphicsView) connect(this, SIGNAL(enteredFullScreenMode(bool)), this, SLOT(toggleFullScreenMode(bool))); m_inspector = new WebInspector(splitter); +#ifndef QT_NO_PROPERTIES if (!gInspectorUrl.isEmpty()) m_inspector->setProperty("_q_inspectorUrl", gInspectorUrl); +#endif m_inspector->setPage(page()); m_inspector->hide(); connect(this, SIGNAL(destroyed()), m_inspector, SLOT(deleteLater())); @@ -705,6 +732,11 @@ void LauncherWindow::toggleInterruptingJavaScriptEnabled(bool enable) page()->setInterruptingJavaScriptEnabled(enable); } +void LauncherWindow::toggleJavascriptCanOpenWindows(bool enable) +{ + page()->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, enable); +} + #if defined(QT_CONFIGURED_WITH_OPENGL) void LauncherWindow::toggleQGLWidgetViewport(bool enable) { @@ -904,6 +936,10 @@ void LauncherWindow::createChrome() toggleInterruptingJavaScripteEnabled->setCheckable(true); toggleInterruptingJavaScripteEnabled->setChecked(false); + QAction* toggleJavascriptCanOpenWindows = toolsMenu->addAction("Enable js popup windows", this, SLOT(toggleJavascriptCanOpenWindows(bool))); + toggleJavascriptCanOpenWindows->setCheckable(true); + toggleJavascriptCanOpenWindows->setChecked(false); + #if defined(QT_CONFIGURED_WITH_OPENGL) QAction* toggleQGLWidgetViewport = graphicsViewMenu->addAction("Toggle use of QGLWidget Viewport", this, SLOT(toggleQGLWidgetViewport(bool))); toggleQGLWidgetViewport->setCheckable(true); |