From f9747d8a446e819bbfca457d39e6ae1e695879b3 Mon Sep 17 00:00:00 2001 From: humbletim Date: Tue, 1 Nov 2016 11:46:09 -0400 Subject: [PATCH 1/3] match requested hash key url when populating batch-loaded script contents --- libraries/script-engine/src/BatchLoader.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/script-engine/src/BatchLoader.cpp b/libraries/script-engine/src/BatchLoader.cpp index 964807894e..43cc4e8e62 100644 --- a/libraries/script-engine/src/BatchLoader.cpp +++ b/libraries/script-engine/src/BatchLoader.cpp @@ -44,7 +44,6 @@ void BatchLoader::start() { return; } - for (const auto& rawURL : _urls) { QUrl url = expandScriptUrl(normalizeScriptURL(rawURL)); @@ -57,12 +56,12 @@ void BatchLoader::start() { // anything. ScriptCacheSignalProxy* proxy = new ScriptCacheSignalProxy(scriptCache.data()); - connect(proxy, &ScriptCacheSignalProxy::contentAvailable, this, [this](const QString& url, const QString& contents, bool isURL, bool success) { + connect(proxy, &ScriptCacheSignalProxy::contentAvailable, this, [this, rawURL](const QString& url, const QString& contents, bool isURL, bool success) { if (isURL && success) { - _data.insert(url, contents); + _data.insert(rawURL, contents); qCDebug(scriptengine) << "Loaded: " << url; } else { - _data.insert(url, QString()); + _data.insert(rawURL, QString()); qCDebug(scriptengine) << "Could not load: " << url; } From d749f243c669f9a3f5f1c36c42bb552b528f5975 Mon Sep 17 00:00:00 2001 From: humbletim Date: Wed, 2 Nov 2016 14:58:50 -0400 Subject: [PATCH 2/3] revert f9747d8a (rawURL) + apply alternative approach for aligning batch-loaded script URLs --- libraries/script-engine/src/BatchLoader.cpp | 7 ++++--- libraries/script-engine/src/ScriptEngine.cpp | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libraries/script-engine/src/BatchLoader.cpp b/libraries/script-engine/src/BatchLoader.cpp index 43cc4e8e62..964807894e 100644 --- a/libraries/script-engine/src/BatchLoader.cpp +++ b/libraries/script-engine/src/BatchLoader.cpp @@ -44,6 +44,7 @@ void BatchLoader::start() { return; } + for (const auto& rawURL : _urls) { QUrl url = expandScriptUrl(normalizeScriptURL(rawURL)); @@ -56,12 +57,12 @@ void BatchLoader::start() { // anything. ScriptCacheSignalProxy* proxy = new ScriptCacheSignalProxy(scriptCache.data()); - connect(proxy, &ScriptCacheSignalProxy::contentAvailable, this, [this, rawURL](const QString& url, const QString& contents, bool isURL, bool success) { + connect(proxy, &ScriptCacheSignalProxy::contentAvailable, this, [this](const QString& url, const QString& contents, bool isURL, bool success) { if (isURL && success) { - _data.insert(rawURL, contents); + _data.insert(url, contents); qCDebug(scriptengine) << "Loaded: " << url; } else { - _data.insert(rawURL, QString()); + _data.insert(url, QString()); qCDebug(scriptengine) << "Could not load: " << url; } diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 776c7cfec6..d3b5f6576c 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -1187,6 +1187,8 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac thisURL = resolvePath(file); } + thisURL = expandScriptUrl(normalizeScriptURL(ResourceManager::normalizeURL(thisURL))); + if (!_includedURLs.contains(thisURL)) { if (!isStandardLibrary && !currentSandboxURL.isEmpty() && (thisURL.scheme() == "file") && (currentSandboxURL.scheme() != "file" || From 28eadc149f791a7d8a2de676a874a561003a3246 Mon Sep 17 00:00:00 2001 From: humbletim Date: Sun, 6 Nov 2016 16:08:42 -0500 Subject: [PATCH 3/3] switch to apply normalizeURL only and move to top of for loop --- libraries/script-engine/src/ScriptEngine.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index d3b5f6576c..0becf6a8dd 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -1172,7 +1172,8 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac // Guard against meaningless query and fragment parts. // Do NOT use PreferLocalFile as its behavior is unpredictable (e.g., on defaultScriptsLocation()) const auto strippingFlags = QUrl::RemoveFilename | QUrl::RemoveQuery | QUrl::RemoveFragment; - for (QString file : includeFiles) { + for (QString includeFile : includeFiles) { + QString file = ResourceManager::normalizeURL(includeFile); QUrl thisURL; bool isStandardLibrary = false; if (file.startsWith("/~/")) { @@ -1187,8 +1188,6 @@ void ScriptEngine::include(const QStringList& includeFiles, QScriptValue callbac thisURL = resolvePath(file); } - thisURL = expandScriptUrl(normalizeScriptURL(ResourceManager::normalizeURL(thisURL))); - if (!_includedURLs.contains(thisURL)) { if (!isStandardLibrary && !currentSandboxURL.isEmpty() && (thisURL.scheme() == "file") && (currentSandboxURL.scheme() != "file" ||