diff options
Diffstat (limited to 'Tools/QtTestBrowser')
-rw-r--r-- | Tools/QtTestBrowser/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Tools/QtTestBrowser/launcherwindow.cpp | 37 | ||||
-rw-r--r-- | Tools/QtTestBrowser/launcherwindow.h | 4 | ||||
-rw-r--r-- | Tools/QtTestBrowser/mainwindow.cpp | 1 | ||||
-rw-r--r-- | Tools/QtTestBrowser/webpage.cpp | 21 | ||||
-rw-r--r-- | Tools/QtTestBrowser/webpage.h | 2 |
6 files changed, 45 insertions, 24 deletions
diff --git a/Tools/QtTestBrowser/CMakeLists.txt b/Tools/QtTestBrowser/CMakeLists.txt index ccd8e0ff2..19827fd02 100644 --- a/Tools/QtTestBrowser/CMakeLists.txt +++ b/Tools/QtTestBrowser/CMakeLists.txt @@ -48,6 +48,10 @@ qt_wrap_cpp(WebKit QtTestBrowser_SOURCES webinspector.h ) +qt5_add_resources(QtTestBrowser_SOURCES + QtTestBrowser.qrc +) + if (Qt5OpenGL_FOUND) list(APPEND QtTestBrowser_SYSTEM_INCLUDE_DIRECTORIES ${Qt5OpenGL_INCLUDE_DIRS} diff --git a/Tools/QtTestBrowser/launcherwindow.cpp b/Tools/QtTestBrowser/launcherwindow.cpp index 716a6e3e8..6e9d388e9 100644 --- a/Tools/QtTestBrowser/launcherwindow.cpp +++ b/Tools/QtTestBrowser/launcherwindow.cpp @@ -106,6 +106,8 @@ LauncherWindow::LauncherWindow(WindowOptions* data, QGraphicsScene* sharedScene) createChrome(); #if !defined(QT_NO_FILEDIALOG) && !defined(QT_NO_MESSAGEBOX) connect(page(), SIGNAL(downloadRequested(const QNetworkRequest&)), this, SLOT(downloadRequest(const QNetworkRequest&))); + connect(page()->networkAccessManager(), SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)), + this, SLOT(showSSLErrorConfirmation(QNetworkReply*, const QList<QSslError>&))); #endif } @@ -222,6 +224,7 @@ void LauncherWindow::applyPrefs() settings->setAttribute(QWebSettings::TiledBackingStoreEnabled, m_windowOptions.useTiledBackingStore); settings->setAttribute(QWebSettings::FrameFlatteningEnabled, m_windowOptions.useFrameFlattening); settings->setAttribute(QWebSettings::WebGLEnabled, m_windowOptions.useWebGL); + settings->setAttribute(QWebSettings::MediaEnabled, m_windowOptions.useMedia); m_windowOptions.useWebAudio = settings->testAttribute(QWebSettings::WebAudioEnabled); m_windowOptions.useMediaSource = settings->testAttribute(QWebSettings::MediaSourceEnabled); @@ -326,6 +329,15 @@ void LauncherWindow::createChrome() toggleWebGL->setEnabled(false); #endif + QAction* toggleMedia = toolsMenu->addAction("Toggle Media", this, SLOT(toggleMedia(bool))); + toggleMedia->setCheckable(true); +#if ENABLE(VIDEO) + toggleMedia->setChecked(settings->testAttribute(QWebSettings::MediaEnabled)); +#else + toggleMedia->setChecked(false); + toggleMedia->setEnabled(false); +#endif + QAction* toggleWebAudio = toolsMenu->addAction("Toggle WebAudio", this, SLOT(toggleWebAudio(bool))); toggleWebAudio->setCheckable(true); #if ENABLE(WEB_AUDIO) @@ -336,7 +348,7 @@ void LauncherWindow::createChrome() QAction* toggleMediaSource = toolsMenu->addAction("Toggle MediaSource", this, SLOT(toggleMediaSource(bool))); toggleMediaSource->setCheckable(true); - toggleWebGL->setChecked(settings->testAttribute(QWebSettings::MediaSourceEnabled)); + toggleMediaSource->setChecked(settings->testAttribute(QWebSettings::MediaSourceEnabled)); #if !ENABLE(MEDIA_SOURCE) toggleMediaSource->setEnabled(false); #endif @@ -948,6 +960,12 @@ void LauncherWindow::toggleWebGL(bool toggle) page()->settings()->setAttribute(QWebSettings::WebGLEnabled, toggle); } +void LauncherWindow::toggleMedia(bool toggle) +{ + m_windowOptions.useMedia = toggle; + page()->settings()->setAttribute(QWebSettings::MediaEnabled, toggle); +} + void LauncherWindow::toggleWebAudio(bool toggle) { m_windowOptions.useWebAudio = toggle; @@ -1142,6 +1160,23 @@ void LauncherWindow::showUserAgentDialog() delete dialog; } +void LauncherWindow::showSSLErrorConfirmation(QNetworkReply* reply, const QList<QSslError>& errors) +{ + QString errorStrings = "<ul>"; + for (const QSslError& error : errors) + errorStrings += "<li>" + error.errorString() + "</li>"; + errorStrings += "</ul>"; + + QMessageBox sslWarningBox; + sslWarningBox.setText("TLS handshake problem"); + sslWarningBox.setInformativeText(errorStrings); + sslWarningBox.setStandardButtons(QMessageBox::Abort | QMessageBox::Ignore); + sslWarningBox.setDefaultButton(QMessageBox::Abort); + sslWarningBox.setIcon(QMessageBox::Warning); + if (sslWarningBox.exec() == QMessageBox::Ignore) + reply->ignoreSslErrors(); +} + void LauncherWindow::loadURLListFromFile() { QString selectedFile; diff --git a/Tools/QtTestBrowser/launcherwindow.h b/Tools/QtTestBrowser/launcherwindow.h index e475a8022..8a8baeeda 100644 --- a/Tools/QtTestBrowser/launcherwindow.h +++ b/Tools/QtTestBrowser/launcherwindow.h @@ -72,6 +72,7 @@ public: bool useCompositing { false }; bool useTiledBackingStore { false }; bool useWebGL { false }; + bool useMedia { true }; bool useWebAudio { false }; bool useMediaSource { false }; bool useFrameFlattening { false }; @@ -134,6 +135,7 @@ protected Q_SLOTS: void toggleTiledBackingStore(bool toggle); void toggleResizesToContents(bool toggle); void toggleWebGL(bool toggle); + void toggleMedia(bool toggle); void toggleWebAudio(bool toggle); void toggleMediaSource(bool toggle); void toggleSpatialNavigation(bool enable); @@ -170,6 +172,8 @@ protected Q_SLOTS: void clearSelection(); void showFPS(bool enable); void showUserAgentDialog(); + void showSSLErrorConfirmation(QNetworkReply*, const QList<QSslError>&); + void printURL(const QUrl&); #if !defined(QT_NO_FILEDIALOG) && !defined(QT_NO_MESSAGEBOX) diff --git a/Tools/QtTestBrowser/mainwindow.cpp b/Tools/QtTestBrowser/mainwindow.cpp index d342147ac..573bc77c9 100644 --- a/Tools/QtTestBrowser/mainwindow.cpp +++ b/Tools/QtTestBrowser/mainwindow.cpp @@ -43,6 +43,7 @@ #include <QFileDialog> #endif #include <QMenuBar> +#include <QMessageBox> MainWindow::MainWindow() : m_page(new WebPage(this)) diff --git a/Tools/QtTestBrowser/webpage.cpp b/Tools/QtTestBrowser/webpage.cpp index a0efed1d8..6188e4ca2 100644 --- a/Tools/QtTestBrowser/webpage.cpp +++ b/Tools/QtTestBrowser/webpage.cpp @@ -80,27 +80,6 @@ void WebPage::applyProxy() } } -bool WebPage::supportsExtension(QWebPage::Extension extension) const -{ - if (extension == ChooseMultipleFilesExtension || extension == QWebPage::ErrorPageExtension) - return true; - return false; -} - -bool WebPage::extension(Extension extension, const ExtensionOption* option, ExtensionReturn* output) -{ - if (extension == ChooseMultipleFilesExtension) - return QWebPage::extension(extension, option, output); - - const QWebPage::ErrorPageExtensionOption* info = static_cast<const QWebPage::ErrorPageExtensionOption*>(option); - QWebPage::ErrorPageExtensionReturn* errorPage = static_cast<QWebPage::ErrorPageExtensionReturn*>(output); - - errorPage->content = QString("<html><head><title>Failed loading page</title></head><body>%1</body></html>") - .arg(info->errorString).toUtf8(); - - return true; -} - bool WebPage::acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, NavigationType type) { QObject* view = parent(); diff --git a/Tools/QtTestBrowser/webpage.h b/Tools/QtTestBrowser/webpage.h index 0238354aa..77a19c14f 100644 --- a/Tools/QtTestBrowser/webpage.h +++ b/Tools/QtTestBrowser/webpage.h @@ -46,8 +46,6 @@ public: QWebPage* createWindow(QWebPage::WebWindowType) override; QObject* createPlugin(const QString&, const QUrl&, const QStringList&, const QStringList&) override; - bool supportsExtension(QWebPage::Extension) const override; - bool extension(Extension, const ExtensionOption*, ExtensionReturn*) override; bool acceptNavigationRequest(QWebFrame*, const QNetworkRequest&, NavigationType) override; |