namespace wrt {
-const char* kPreloadTag = "http://samsung.com/appcontrol/data/launch_mode";
+const char* kLaunchModeTag = "http://samsung.com/appcontrol/data/launch_mode";
const char* kPreloadVal =
"UwAAAAEEAAAvAAAAaHR0cDovL3NhbXN1bmcuY29tL2FwcGNvbnRyb2wvZGF0YS9sYXVuY2hfbW"
"9kZQAUAAAAYmFja2dyb3VuZEF0U3RhcnR1cAA=";
+const char* kBackgroundExcutionVal =
+ "UwAAAAEEAAAvAAAAaHR0cDovL3NhbXN1bmcuY29tL2FwcGNvbnRyb2wvZGF0YS9sYXVuY2hfbW"
+ "9kZQAUAAAAYmFja2dyb3VuZEV4ZWN1dGlvbgA=";
namespace {
native_runtime_tv.SetLocaleDir();
}
-void CheckArguments(int argc, char** argv) {
- for (int i = 1; i < argc; ++i) {
- if (!strcmp(argv[i], "PayLoad") || !strcmp(argv[i], "PAYLOAD")) {
- NativeWebRuntimeDelegateTV::GetInstance().SetPayloadData();
- break;
- }
- }
-}
-
void SetPriority(int absolute) {
setpriority(PRIO_PROCESS, 0, absolute);
LOG(INFO) << "Set process priority : " << absolute;
return CheckWindowManagerReady();
}
-void WRTMainDelegateTV::BoostUpMainThread(int argc, char** argv) {
+void WRTMainDelegateTV::BoostUpMainThread() {
#if defined(THREAD_BOOSTER_SERVICE)
- for (int i = 1; i < argc; ++i) {
- if (strncmp(argv[i], kPreloadTag, strlen(kPreloadTag)) == 0) {
- if (strncmp(argv[i + 1], kPreloadVal, strlen(kPreloadVal)) == 0) {
- LOG(INFO) << "preload app, just return";
- return;
- }
- }
+ if (appcontrol_preload_ || appcontrol_background_execution_) {
+ LOG(INFO) << "preload or background execution app, just skip";
+ return;
}
WRT_thread_booster::GetInstance()->BoostUpByTid(gettid());
#endif
LOG(INFO) << file_path << " create successfully";
}
+void WRTMainDelegateTV::CheckArguments(int argc, char** argv) {
+ for (int i = 1; i < argc; ++i) {
+ std::string mode = argv[i];
+ if ((mode == "PayLoad") || (mode == "PAYLOAD")) {
+ NativeWebRuntimeDelegateTV::GetInstance().SetPayloadData();
+ } else if (mode == kLaunchModeTag) {
+ std::string launch_type = argv[i + 1];
+ appcontrol_preload_ = (launch_type == kPreloadVal) ? true : false;
+ appcontrol_background_execution_ =
+ (launch_type == kBackgroundExcutionVal) ? true : false;
+ }
+ }
+}
+
ZoneFramework::ZoneFramework() {}
ZoneFramework::~ZoneFramework() {
bool PreSetup() override;
absl::optional<int> PostEarlyInitialization(InvokedIn invoked_in) override;
- void BoostUpMainThread(int argc, char** argv) override;
+ void BoostUpMainThread() override;
void ConfirmRunMode() override;
static void AdjustloaderPriority(const std::string& loader_work,
const std::string& pre_dlopen_work);
+ void CheckArguments(int argc, char** argv);
+
content::ContentBrowserClient* CreateContentBrowserClient() override;
content::ContentRendererClient* CreateContentRendererClient() override;
#if BUILDFLAG(USE_ALLOCATOR_SHIM)
memory_system::MemorySystem memory_system_;
#endif
+
+ bool appcontrol_preload_ = false;
+ bool appcontrol_background_execution_ = false;
};
} // namespace wrt
Loader loader(this);
return loader.Load(argc, argv);
} else {
- main_delegate_->BoostUpMainThread(argc, argv);
+ main_delegate_->BoostUpMainThread();
}
Initialize();
}
virtual void ConfirmRunMode();
- virtual void BoostUpMainThread(int argc, char** argv) {}
+ virtual void BoostUpMainThread() {}
protected:
// content::ContentMainDelegate:
if (IsLiteMemoryBoard() && GetCurrentSystemTime() > 500000)
return;
- LOG(INFO) << "boost NetworkService as RR";
+ LOG(INFO) << "register NetworkService thread as RR";
WRT_thread_booster::GetInstance()->RegisterThreadByName("NetworkService");
#endif
}
void WRT_thread_booster::BoostUpRegisteredThreads() {
base::AutoLock lock(thread_list_lock);
generic_info.event = BOOST_GENERIC_EVENT_START;
- LOG(INFO) << "boost up registered all thread!";
+ LOG(INFO) << "start to boost up registed thread!";
for (auto value : thread_list_) {
- LOG(INFO) << "register boost up thread : " << value;
+ LOG(INFO) << "boost up registed thread : " << value;
boost_request_by_thread_name(current_pid, value.c_str(),
(const boost_info_t *)&generic_info);
}
void WRT_thread_booster::BoostDownRegisteredThreads() {
base::AutoLock lock(thread_list_lock);
generic_info.event = BOOST_GENERIC_EVENT_STOP;
- LOG(INFO) << "boost down registered thread!";
+ LOG(INFO) << "start to boost down registed thread!";
for (auto value : thread_list_) {
boost_request_by_thread_name(current_pid, value.c_str(),
(const boost_info_t *)&generic_info);
- LOG(INFO) << "register boost down thread : " << value;
+ LOG(INFO) << "boost down registed thread : " << value;
}
}
if (IsLiteMemoryBoard() && GetCurrentSystemTime() > 500000)
return;
- LOG(INFO) << "boost Renderer/GPU threads as RR";
+ LOG(INFO) << "register Renderer/GPU threads as RR";
WRT_thread_booster::GetInstance()->RegisterThreadByName("Chrome_InProcRe");
WRT_thread_booster::GetInstance()->RegisterThreadByName("Chrome_InProcGp");
if (IsLiteMemoryBoard()) {
- LOG(INFO) << "boost Compositor threads as RR (LiteMemory Model)";
+ LOG(INFO) << "register Compositor threads as RR (Only LiteMemory Model)";
WRT_thread_booster::GetInstance()->RegisterThreadByName("VizCompositorTh");
WRT_thread_booster::GetInstance()->RegisterThreadByName("Compositor");
}