History

Merge pull request #7786 from sethalves/web-scripts-use-local-libs

allow scripts on the web to refer to local libraries with /~/

Brad Hefta-Gaub committed 10 years ago

Commit 754ef072 parents eb209c7 a9897f14 files · +42 −7Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+12−1
@@ -982,7 +982,18 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac · 981 unmodified lines
982982 // Do NOT use PreferLocalFile as its behavior is unpredictable (e.g., on defaultScriptsLocation())
983983 const auto strippingFlags = QUrl::RemoveFilename | QUrl::RemoveQuery | QUrl::RemoveFragment;
984984 for (QString file : includeFiles) {
985− QUrl thisURL { resolvePath(file) };
985+ QUrl thisURL;
986+ if (file.startsWith("/~/")) {
987+ thisURL = expandScriptUrl(QUrl::fromLocalFile(expandScriptPath(file)));
988+ QUrl defaultScriptsLoc = defaultScriptsLocation();
989+ if (!defaultScriptsLoc.isParentOf(thisURL)) {
990+ qDebug() << "ScriptEngine::include -- skipping" << file << "-- outside of standard libraries";
991+ continue;
992+ }
993+ } else {
994+ thisURL = resolvePath(file);
995+ }
996+
986997 if (!_includedURLs.contains(thisURL)) {
987998 if (!currentSandboxURL.isEmpty() && (thisURL.scheme() == "file") &&
988999 (