Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 1 file). Show all
Unified · Split
| @@ -1187,20 +1187,15 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac · 1186 unmodified lines | ||
| 1187 | 1187 | thisURL = resolvePath(file); |
| 1188 | 1188 | } |
| 1189 | 1189 | |
| 1190 | − if (!_includedURLs.contains(thisURL)) { | |
| 1191 | − if (!isStandardLibrary && !currentSandboxURL.isEmpty() && (thisURL.scheme() == "file") && | |
| 1192 | − (currentSandboxURL.scheme() != "file" || | |
| 1193 | − !thisURL.toString(strippingFlags).startsWith(currentSandboxURL.toString(strippingFlags), getSensitivity()))) { | |
| 1194 | − qCWarning(scriptengine) << "Script.include() ignoring file path" | |
| 1195 | − << thisURL << "outside of original entity script" << currentSandboxURL; | |
| 1196 | − } else { | |
| 1197 | − // We could also check here for CORS, but we don't yet. | |
| 1198 | − // It turns out that QUrl.resolve will not change hosts and copy authority, so we don't need to check that here. | |
| 1199 | − urls.append(thisURL); | |
| 1200 | − _includedURLs << thisURL; | |
| 1201 | − } | |
| 1190 | + if (!isStandardLibrary && !currentSandboxURL.isEmpty() && (thisURL.scheme() == "file") && | |
| 1191 | + (currentSandboxURL.scheme() != "file" || | |
| 1192 | + !thisURL.toString(strippingFlags).startsWith(currentSandboxURL.toString(strippingFlags), getSensitivity()))) { | |
| 1193 | + qCWarning(scriptengine) << "Script.include() ignoring file path" | |
| 1194 | + << thisURL << "outside of original entity script" << currentSandboxURL; | |
| 1202 | 1195 | } else { |
| 1203 | − qCDebug(scriptengine) << "Script.include() ignoring previously included url:" << thisURL; | |
| 1196 | + // We could also check here for CORS, but we don't yet. | |
| 1197 | + // It turns out that QUrl.resolve will not change hosts and copy authority, so we don't need to check that here. | |
| 1198 | + urls.append(thisURL); | |
| 1204 | 1199 | } |
| 1205 | 1200 | } |
| 1206 | 1201 | |
| @@ -1219,13 +1214,15 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac · 12 unmodified lines | ||
| 1219 | 1214 | QString contents = data[url]; |
| 1220 | 1215 | if (contents.isNull()) { |
| 1221 | 1216 | qCDebug(scriptengine) << "Error loading file: " << url << "line:" << __LINE__; |
| 1222 | − } else { | |
| 1217 | + } else if (!_includedURLs.contains(url)) { | |
| 1218 | + _includedURLs << url; | |
| 1223 | 1219 | // Set the parent url so that path resolution will be relative |
| 1224 | 1220 | // to this script's url during its initial evaluation |
| 1225 | 1221 | _parentURL = url.toString(); |
| 1226 | 1222 | auto operation = [&]() { |
| 1227 | 1223 | evaluate(contents, url.toString()); |
| 1228 | 1224 | }; |
| 1225 | + | |
| 1229 | 1226 | doWithEnvironment(capturedEntityIdentifier, capturedSandboxURL, operation); |
| 1230 | 1227 | } |
| 1231 | 1228 | } |