Skip to content

Commit 88a1597

Browse files
authored
Merge pull request #77 from rdkcentral/topic/RDK-59629
RDKEMW-9765 : UserAgent string need to be aligned with browser for diff…
2 parents b60efc0 + 881b332 commit 88a1597

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

include/NativeJSRenderer.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434

3535
namespace JsRuntime {
3636

37+
extern std::string DEFAULT_USER_AGENT;
38+
3739
struct MemoryStruct
3840
{
3941
MemoryStruct()
@@ -125,12 +127,12 @@ namespace JsRuntime {
125127
void setEnvForConsoleMode(ModuleSettings& moduleSettings);
126128
bool runApplication(uint32_t id, std::string url);
127129
bool runJavaScript(uint32_t id, std::string code);
128-
uint32_t createApplication(ModuleSettings& moduleSettings, std::string userAgent) ;
130+
uint32_t createApplication(ModuleSettings& moduleSettings, std::string userAgent = DEFAULT_USER_AGENT) ;
129131
bool terminateApplication(uint32_t id);
130132
std::list<ApplicationDetails> getApplications();
131-
void setExternalApplicationHandler(std::shared_ptr<IExternalApplicationHandler> handler);
133+
void setExternalApplicationHandler(std::shared_ptr<IExternalApplicationHandler> handler);
132134
std::string getBaseUserAgent();
133-
private:
135+
private:
134136
bool downloadFile(std::string& url, MemoryStruct& chunk);
135137
void processDevConsoleRequests();
136138
void runDeveloperConsole(ModuleSettings moduleSettings);
@@ -154,6 +156,7 @@ namespace JsRuntime {
154156
std::map<uint32_t, ApplicationData> mContextMap;
155157
std::vector<ApplicationRequest> gPendingRequests;
156158
std::shared_ptr<IExternalApplicationHandler> mExternalApplicationHandler;
157-
std::string mBaseUserAgent;
159+
std::string mBaseUserAgent;
160+
158161
};
159162
};

src/JSRuntimeServer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ void JSRuntimeServer::onMessage(websocketpp::connection_hdl hdl, message_ptr msg
217217
std::string options = jParams.getString("moduleSettings", error);
218218
ModuleSettings moduleSettings;
219219
moduleSettings.fromString(options);
220-
uint32_t id = mRenderer->createApplication(moduleSettings, mRenderer->getBaseUserAgent());
220+
uint32_t id = mRenderer->createApplication(moduleSettings);
221221
mRenderer->runApplication(id, url);
222222
std::ostringstream oss;
223223
oss<< "ID : " << id;
@@ -237,7 +237,7 @@ void JSRuntimeServer::onMessage(websocketpp::connection_hdl hdl, message_ptr msg
237237
}
238238
ModuleSettings moduleSettings;
239239
moduleSettings.fromString(options);
240-
uint32_t id = mRenderer->createApplication(moduleSettings,mRenderer->getBaseUserAgent());
240+
uint32_t id = mRenderer->createApplication(moduleSettings);
241241
std::ostringstream oss;
242242
oss<< "ID : " << id;
243243
result = oss.str();

src/NativeJSRenderer.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ using namespace JsRuntime;
5454
rtThreadQueue* gUIThreadQueue = NULL;
5555
#endif
5656

57+
namespace JsRuntime {
58+
std::string DEFAULT_USER_AGENT = "Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15 ";
59+
}
60+
5761
static size_t HeaderCallback(void *contents, size_t size, size_t nmemb, void *userp)
5862
{
5963
size_t downloadSize = size * nmemb;
@@ -92,7 +96,7 @@ static size_t WriteMemoryCallback(void *contents, size_t size, size_t nmemb, voi
9296
return downloadSize;
9397
}
9498

95-
NativeJSRenderer::NativeJSRenderer(std::string waylandDisplay): mEngine(nullptr), mRunning(true), mEnableTestFileDOMSupport(false), mEmbedThunderJS(false), mEmbedRdkWebBridge(false), mEnableWebSocketServer(false), mContextMap(), mEssosInitialized(false), mConsoleMode(false)
99+
NativeJSRenderer::NativeJSRenderer(std::string waylandDisplay): mEngine(nullptr), mRunning(true), mEnableTestFileDOMSupport(false), mEmbedThunderJS(false), mEmbedRdkWebBridge(false), mEnableWebSocketServer(false), mContextMap(), mEssosInitialized(false), mConsoleMode(false), mBaseUserAgent(DEFAULT_USER_AGENT)
96100
{
97101
if (waylandDisplay.size() > 0)
98102
{
@@ -104,9 +108,6 @@ NativeJSRenderer::NativeJSRenderer(std::string waylandDisplay): mEngine(nullptr)
104108

105109
const char* levelFromEnv = getenv("NATIVEJS_LOG_LEVEL");
106110

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-
110111
// checking for ethan log env
111112
#ifdef USE_ETHANLOG
112113
NativeJSLogger::isEthanLogEnabled();
@@ -305,7 +306,8 @@ void NativeJSRenderer::createApplicationInternal(ApplicationRequest& appRequest)
305306
std::stringstream uagent;
306307
uagent << "window.navigator.userAgent = \"" << userAgent << "\";";
307308
context->runScript(uagent.str().c_str(),true, userAgent, nullptr, true);
308-
309+
310+
NativeJSLogger::log(INFO, "UserAgent set to : %s", userAgent.c_str());
309311
NativeJSLogger::log(DEBUG, "Context created for ID: %d\n", id);
310312
if (mExternalApplicationHandler) {
311313
context->setExternalApplicationHandler(mExternalApplicationHandler);

src/jsruntime.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ int main(int argc, char* argv[])
134134

135135
applicationThreads.emplace_back([renderer, url, &moduleSettings]() {
136136
NativeJSLogger::log(INFO, "Application URL is %s\n", (url.size() ? url.c_str() : "empty"));
137-
uint32_t id = renderer->createApplication(moduleSettings,renderer->getBaseUserAgent());
137+
uint32_t id = renderer->createApplication(moduleSettings);
138138
renderer->runApplication(id, url);
139139
//renderer->runJavaScript(id,url);
140140
#if defined(NATIVEJS_DEVELOPER_MODE)

0 commit comments

Comments
 (0)