forked from qt-creator/qt-creator
QmlDesigner: Use http as fallback if SSL is not supported
Task-number: QDS-10011 Change-Id: Id3f2e406414a4e103471b9351db3fea3f686c83d Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
committed by
Tim Jenssen
parent
5464d60728
commit
e30873adeb
@@ -9,6 +9,7 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QQmlEngine>
|
#include <QQmlEngine>
|
||||||
#include <QRandomGenerator>
|
#include <QRandomGenerator>
|
||||||
|
#include <QSslSocket>
|
||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
@@ -38,6 +39,22 @@ bool FileDownloader::deleteFileAtTheEnd() const
|
|||||||
return m_targetFilePath.isEmpty();
|
return m_targetFilePath.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QNetworkRequest FileDownloader::makeRequest() const
|
||||||
|
{
|
||||||
|
QUrl url = m_url;
|
||||||
|
|
||||||
|
if (url.scheme() == "https" && !QSslSocket::supportsSsl()) {
|
||||||
|
qWarning() << "SSL is not available. HTTP will be used instead of HTTPS.";
|
||||||
|
url.setScheme("http");
|
||||||
|
}
|
||||||
|
|
||||||
|
auto request = QNetworkRequest(url);
|
||||||
|
request.setAttribute(QNetworkRequest::RedirectPolicyAttribute,
|
||||||
|
QNetworkRequest::UserVerifiedRedirectPolicy);
|
||||||
|
|
||||||
|
return request;
|
||||||
|
}
|
||||||
|
|
||||||
void FileDownloader::start()
|
void FileDownloader::start()
|
||||||
{
|
{
|
||||||
emit downloadStarting();
|
emit downloadStarting();
|
||||||
@@ -48,9 +65,7 @@ void FileDownloader::start()
|
|||||||
m_outputFile.setFileName(tempFileName);
|
m_outputFile.setFileName(tempFileName);
|
||||||
m_outputFile.open(QIODevice::WriteOnly);
|
m_outputFile.open(QIODevice::WriteOnly);
|
||||||
|
|
||||||
auto request = QNetworkRequest(m_url);
|
QNetworkRequest request = makeRequest();
|
||||||
request.setAttribute(QNetworkRequest::RedirectPolicyAttribute,
|
|
||||||
QNetworkRequest::UserVerifiedRedirectPolicy);
|
|
||||||
QNetworkReply *reply = Utils::NetworkAccessManager::instance()->get(request);
|
QNetworkReply *reply = Utils::NetworkAccessManager::instance()->get(request);
|
||||||
m_reply = reply;
|
m_reply = reply;
|
||||||
|
|
||||||
@@ -255,9 +270,7 @@ void FileDownloader::doProbeUrl()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto request = QNetworkRequest(m_url);
|
QNetworkRequest request = makeRequest();
|
||||||
request.setAttribute(QNetworkRequest::RedirectPolicyAttribute,
|
|
||||||
QNetworkRequest::UserVerifiedRedirectPolicy);
|
|
||||||
QNetworkReply *reply = Utils::NetworkAccessManager::instance()->head(request);
|
QNetworkReply *reply = Utils::NetworkAccessManager::instance()->head(request);
|
||||||
|
|
||||||
QNetworkReply::connect(reply, &QNetworkReply::redirected, [reply](const QUrl &) {
|
QNetworkReply::connect(reply, &QNetworkReply::redirected, [reply](const QUrl &) {
|
||||||
|
@@ -78,6 +78,7 @@ signals:
|
|||||||
private:
|
private:
|
||||||
void doProbeUrl();
|
void doProbeUrl();
|
||||||
bool deleteFileAtTheEnd() const;
|
bool deleteFileAtTheEnd() const;
|
||||||
|
QNetworkRequest makeRequest() const;
|
||||||
|
|
||||||
QUrl m_url;
|
QUrl m_url;
|
||||||
bool m_probeUrl = false;
|
bool m_probeUrl = false;
|
||||||
|
Reference in New Issue
Block a user