diff --git a/include/JavaScriptContextBase.h b/include/JavaScriptContextBase.h index 0f19fcc..a1e573d 100644 --- a/include/JavaScriptContextBase.h +++ b/include/JavaScriptContextBase.h @@ -53,6 +53,7 @@ class JavaScriptContextBase:public IJavaScriptContext, public JavaScriptKeyListe virtual bool runScript(const char *script, bool isModule=true, std::string name="", const char *args = nullptr, bool isApplication=false); virtual bool runFile(const char *file, const char* args, bool isApplication=false); std::string getUrl(); + void setUrl(std::string url); virtual void onKeyPress(struct JavaScriptKeyDetails& details); virtual void onKeyRelease(struct JavaScriptKeyDetails& details); ModuleSettings getModuleSettings(); diff --git a/src/JavaScriptContextBase.cpp b/src/JavaScriptContextBase.cpp index e936654..88ea331 100644 --- a/src/JavaScriptContextBase.cpp +++ b/src/JavaScriptContextBase.cpp @@ -129,6 +129,11 @@ std::string JavaScriptContextBase::getUrl() return mApplicationUrl; } +void JavaScriptContextBase::setUrl(std::string url) +{ + mApplicationUrl = url; +} + void JavaScriptContextBase::onKeyPress(struct JavaScriptKeyDetails& details) { processKeyEvent(details, true); diff --git a/src/NativeJSRenderer.cpp b/src/NativeJSRenderer.cpp index c24aaf3..a646360 100644 --- a/src/NativeJSRenderer.cpp +++ b/src/NativeJSRenderer.cpp @@ -326,6 +326,7 @@ void NativeJSRenderer::runApplicationInternal(ApplicationRequest& appRequest) return ; } JavaScriptContext* context = (JavaScriptContext*)mContextMap[id].context; + context->setUrl(mContextMap[id].url); if(context->getModuleSettings().enableJSDOM) { std::stringstream window; @@ -344,7 +345,8 @@ void NativeJSRenderer::runApplicationInternal(ApplicationRequest& appRequest) { NativeJSLogger::log(INFO, "About to launch local app\n"); JavaScriptContext* context = (JavaScriptContext*)mContextMap[id].context; - if(context->getModuleSettings().enableJSDOM) + context->setUrl(mContextMap[id].url); + if(context->getModuleSettings().enableJSDOM) { std::stringstream window; window<<"window.location = {\"href\":\"file:/" << url << "\"};"; diff --git a/src/jsc/JavaScriptUtils.cpp b/src/jsc/JavaScriptUtils.cpp index 66d1ea5..debc108 100644 --- a/src/jsc/JavaScriptUtils.cpp +++ b/src/jsc/JavaScriptUtils.cpp @@ -234,7 +234,8 @@ class rtHttpRequestEx : public rtHttpRequest metrics->method = this->method(); std::vector headerValues = this->headers(); metrics->headers = headerValues; - + metrics->statusCode = downloadRequest->httpStatusCode(); + rtObjectRef timeMetrics = downloadRequest->downloadMetrics(); rtValue keys; if (timeMetrics->Get("allKeys", &keys) == RT_OK) {