diff --git a/libraries/script-engine/src/ScriptEngines.cpp b/libraries/script-engine/src/ScriptEngines.cpp index 2076657288..2e30e614c2 100644 --- a/libraries/script-engine/src/ScriptEngines.cpp +++ b/libraries/script-engine/src/ScriptEngines.cpp @@ -9,6 +9,7 @@ #include "ScriptEngines.h" #include +#include #include @@ -449,6 +450,7 @@ ScriptEngine* ScriptEngines::loadScript(const QUrl& scriptFilename, bool isUserL return result; } QUrl scriptUrl; + if (!scriptFilename.isValid() || (scriptFilename.scheme() != "http" && scriptFilename.scheme() != "https" && @@ -472,8 +474,11 @@ ScriptEngine* ScriptEngines::loadScript(const QUrl& scriptFilename, bool isUserL scriptEngine->deleteLater(); }, Qt::QueuedConnection); + // Check that the script is actually a script + QFileInfo fileInfo(scriptFilename.toString()); + bool hasValidScriptSuffix = (fileInfo.completeSuffix() == "js"); - if (scriptFilename.isEmpty() || !scriptUrl.isValid()) { + if (scriptFilename.isEmpty() || !scriptUrl.isValid() || !hasValidScriptSuffix) { launchScriptEngine(scriptEngine); } else { // connect to the appropriate signals of this script engine