Showing the changes to libraries/script-engine/src/ScriptCache.cpp (1 of 2 files). Show all
Unified · Split
| @@ -17,7 +17,6 @@ · 16 unmodified lines | |||
| 17 | #include <QObject> | 17 | #include <QObject> |
| 18 | 18 | ||
| 19 | #include <assert.h> | 19 | #include <assert.h> |
| 20 | #include <NetworkAccessManager.h> | ||
| 21 | #include <SharedUtil.h> | 20 | #include <SharedUtil.h> |
| 22 | 21 | ||
| 23 | #include "ScriptCache.h" | 22 | #include "ScriptCache.h" |
| @@ -44,18 +43,10 @@ QString ScriptCache::getScript(const QUrl& url, ScriptUser* scriptUser, bool& is · 20 unmodified lines | |||
| 44 | if (alreadyWaiting) { | 43 | if (alreadyWaiting) { |
| 45 | qCDebug(scriptengine) << "Already downloading script at:" << url.toString(); | 44 | qCDebug(scriptengine) << "Already downloading script at:" << url.toString(); |
| 46 | } else { | 45 | } else { |
| 47 | QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); | 46 | auto request = ResourceManager::createResourceRequest(this, url); |
| 48 | QNetworkRequest networkRequest = QNetworkRequest(url); | 47 | request->setCacheEnabled(!reload); |
| 49 | networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); | 48 | connect(request, &ResourceRequest::finished, this, &ScriptCache::scriptDownloaded); |
| 50 | if (reload) { | 49 | request->send(); |
| 51 | networkRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork); | ||
| 52 | qCDebug(scriptengine) << "Redownloading script at:" << url.toString(); | ||
| 53 | } else { | ||
| 54 | qCDebug(scriptengine) << "Downloading script at:" << url.toString(); | ||
| 55 | } | ||
| 56 | |||
| 57 | QNetworkReply* reply = networkAccessManager.get(networkRequest); | ||
| 58 | connect(reply, &QNetworkReply::finished, this, &ScriptCache::scriptDownloaded); | ||
| 59 | } | 50 | } |
| 60 | } | 51 | } |
| 61 | return scriptContents; | 52 | return scriptContents; |
| @@ -69,27 +60,25 @@ void ScriptCache::deleteScript(const QUrl& url) { · 7 unmodified lines | |||
| 69 | } | 60 | } |
| 70 | 61 | ||
| 71 | void ScriptCache::scriptDownloaded() { | 62 | void ScriptCache::scriptDownloaded() { |
| 72 | QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); | 63 | ResourceRequest* req = qobject_cast<ResourceRequest*>(sender()); |
| 73 | QUrl url = reply->url(); | 64 | QUrl url = req->getUrl(); |
| 74 | QList<ScriptUser*> scriptUsers = _scriptUsers.values(url); | 65 | QList<ScriptUser*> scriptUsers = _scriptUsers.values(url); |
| 75 | _scriptUsers.remove(url); | 66 | _scriptUsers.remove(url); |
| 76 | 67 | ||
| 77 | if (reply->error() == QNetworkReply::NoError && reply->attribute(QNetworkRequest::HttpStatusCodeAttribute) == 200) { | 68 | if (req->getResult() == ResourceRequest::SUCCESS) { |
| 78 | _scriptCache[url] = reply->readAll(); | 69 | _scriptCache[url] = req->moveData(); |
| 79 | qCDebug(scriptengine) << "Done downloading script at:" << url.toString(); | 70 | qCDebug(scriptengine) << "Done downloading script at:" << url.toString(); |
| 80 | 71 | ||
| 81 | foreach(ScriptUser* user, scriptUsers) { | 72 | foreach(ScriptUser* user, scriptUsers) { |
| 82 | user->scriptContentsAvailable(url, _scriptCache[url]); | 73 | user->scriptContentsAvailable(url, _scriptCache[url]); |
| 83 | } | 74 | } |
| 84 | } else { | 75 | } else { |
| 85 | qCWarning(scriptengine) << "Error loading script from URL " << reply->url().toString() | 76 | qCWarning(scriptengine) << "Error loading script from URL " << url; |
| 86 | << "- HTTP status code is" << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() | ||
| 87 | << "and error from QNetworkReply is" << reply->errorString(); | ||
| 88 | foreach(ScriptUser* user, scriptUsers) { | 77 | foreach(ScriptUser* user, scriptUsers) { |
| 89 | user->errorInLoadingScript(url); | 78 | user->errorInLoadingScript(url); |
| 90 | } | 79 | } |
| 91 | } | 80 | } |
| 92 | reply->deleteLater(); | 81 | req->deleteLater(); |
| 93 | } | 82 | } |
| 94 | 83 | ||
| 95 | 84 | ||