@@ -103,6 +103,10 @@ NativeJSRenderer::NativeJSRenderer(std::string waylandDisplay): mEngine(nullptr)
103103 }
104104
105105 const char * levelFromEnv = getenv (" NATIVEJS_LOG_LEVEL" );
106+
107+ // setting the base userAgent value
108+ mBaseUserAgent = " Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15" ;
109+
106110 // checking for ethan log env
107111 #ifdef USE_ETHANLOG
108112 NativeJSLogger::isEthanLogEnabled ();
@@ -214,12 +218,12 @@ uint32_t NativeJSRenderer::createApplicationIdentifier()
214218 return ret;
215219}
216220
217- uint32_t NativeJSRenderer::createApplication (ModuleSettings& moduleSettings)
221+ uint32_t NativeJSRenderer::createApplication (ModuleSettings& moduleSettings, std::string userAgent )
218222{
219223 uint32_t id=0 ;
220224 mUserMutex .lock ();
221225 id = createApplicationIdentifier ();
222- ApplicationRequest request (id, CREATE , " " , moduleSettings.enableHttp , moduleSettings.enableXHR , moduleSettings.enableWebSocket , moduleSettings.enableWebSocketEnhanced , moduleSettings.enableFetch , moduleSettings.enableJSDOM , moduleSettings.enableWindow , moduleSettings.enablePlayer );
226+ ApplicationRequest request (id, CREATE , " " , moduleSettings.enableHttp , moduleSettings.enableXHR , moduleSettings.enableWebSocket , moduleSettings.enableWebSocketEnhanced , moduleSettings.enableFetch , moduleSettings.enableJSDOM , moduleSettings.enableWindow , moduleSettings.enablePlayer , userAgent );
223227 gPendingRequests .push_back (request);
224228 mUserMutex .unlock ();
225229 return id;
@@ -289,15 +293,20 @@ void NativeJSRenderer::createApplicationInternal(ApplicationRequest& appRequest)
289293 settings.enableWindow = appRequest.mEnableWindow ;
290294 settings.enablePlayer = appRequest.mEnablePlayer ;
291295 uint32_t id= appRequest.mId ;
292-
296+ std::string userAgent = appRequest. mUserAgent ;
293297 JavaScriptContextFeatures features (mEmbedThunderJS , mEmbedRdkWebBridge , mEnableWebSocketServer , settings);
294298 JavaScriptContext* context = new JavaScriptContext (features, " " , mEngine );
295299 if (NULL == context)
296300 {
297301 NativeJSLogger::log (DEBUG , " Context not created for ID: %d\n " , id);
298302 return ;
299303 }
300- NativeJSLogger::log (DEBUG , " Context created for ID: %d\n " , id);
304+
305+ std::stringstream uagent;
306+ uagent << " window.navigator.userAgent = \" " << userAgent << " \" ;" ;
307+ context->runScript (uagent.str ().c_str (),true , userAgent, nullptr , true );
308+
309+ NativeJSLogger::log (DEBUG , " Context created for ID: %d\n " , id);
301310 if (mExternalApplicationHandler ) {
302311 context->setExternalApplicationHandler (mExternalApplicationHandler );
303312 }
@@ -619,3 +628,9 @@ void NativeJSRenderer::setExternalApplicationHandler(std::shared_ptr<IExternalAp
619628{
620629 mExternalApplicationHandler = handler;
621630}
631+
632+ std::string NativeJSRenderer::getBaseUserAgent ()
633+ {
634+ return mBaseUserAgent ;
635+ }
636+
0 commit comments