History

Update script loaders to use ResourceRequest

Ryan Huffman committed 11 years ago

Commit acff31e1 parent 6b839482 files · +65 −59Browse files

Showing the changes to libraries/script-engine/src/ScriptCache.cpp (1 of 2 files). Show all

Unified · Split

libraries/script-engine/src/ScriptCache.cpp+10−21
@@ -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
71void ScriptCache::scriptDownloaded() {62void 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