diff --git a/frameworks/native/ability/native/child_process_manager/child_process_manager.cpp b/frameworks/native/ability/native/child_process_manager/child_process_manager.cpp index 83e018db8bcbbb46abeddbe26fd1c6a669c2c41a..cbecc3ac7ed0c920ef6a46305d05bf5b4a71febf 100644 --- a/frameworks/native/ability/native/child_process_manager/child_process_manager.cpp +++ b/frameworks/native/ability/native/child_process_manager/child_process_manager.cpp @@ -282,7 +282,7 @@ void ChildProcessManager::HandleChildProcessBySelfFork(const std::string &srcEnt return; } eventRunner->Stop(); - + AppExecFwk::HapModuleInfo hapModuleInfo; if (!GetEntryHapModuleInfo(bundleInfo, hapModuleInfo)) { TAG_LOGE(AAFwkTag::PROCESSMGR, "GetHapModuleInfo failed"); @@ -343,7 +343,7 @@ bool ChildProcessManager::LoadNativeLib(const std::string &moduleName, TAG_LOGE(AAFwkTag::PROCESSMGR, "null childIpcProcess"); return false; } - + std::shared_ptr processStartInfo = std::make_shared(); processStartInfo->moduleName = moduleName; processStartInfo->name = std::filesystem::path(libPath).stem(); @@ -353,7 +353,7 @@ bool ChildProcessManager::LoadNativeLib(const std::string &moduleName, TAG_LOGE(AAFwkTag::PROCESSMGR, "NativeChildIpcProcess init failed"); return false; } - + childProcess->OnStart(); TAG_LOGD(AAFwkTag::PROCESSMGR, "end"); return true; @@ -506,12 +506,13 @@ void ChildProcessManager::SetForkProcessJITEnabled(bool jitEnabled) } void ChildProcessManager::SetForkProcessDebugOption(const std::string bundleName, const bool isStartWithDebug, - const bool isDebugApp, const bool isStartWithNative) + const bool isDebugApp, const bool isStartWithNative, const std::string arkTSMode) { g_debugOption.bundleName = bundleName; g_debugOption.isStartWithDebug = isStartWithDebug; g_debugOption.isDebugApp = isDebugApp; g_debugOption.isStartWithNative = isStartWithNative; + g_debugOption.arkTSMode = arkTSMode; } void ChildProcessManager::SetAppSpawnForkDebugOption(Runtime::DebugOption &debugOption, diff --git a/frameworks/native/appkit/app/main_thread.cpp b/frameworks/native/appkit/app/main_thread.cpp index 0c3a5a2a723b8739fec60e3b5b5a45dfc7f4167e..d41c6c634544bae1b383e34d44125f43f41e5916 100644 --- a/frameworks/native/appkit/app/main_thread.cpp +++ b/frameworks/native/appkit/app/main_thread.cpp @@ -1706,7 +1706,7 @@ void MainThread::HandleLaunchApplication(const AppLaunchData &appLaunchData, con TAG_LOGD(AAFwkTag::APPKIT, "isStartWithDebug:%{public}d, debug:%{public}d, isNativeStart:%{public}d", appLaunchData.GetDebugApp(), appInfo.debug, appLaunchData.isNativeStart()); AbilityRuntime::ChildProcessManager::GetInstance().SetForkProcessDebugOption(appInfo.bundleName, - appLaunchData.GetDebugApp(), appInfo.debug, appLaunchData.isNativeStart()); + appLaunchData.GetDebugApp(), appInfo.debug, appLaunchData.isNativeStart(), appInfo.arkTSMode); #endif // SUPPORT_CHILD_PROCESS if (!pluginBundleInfos.empty()) { for (auto &pluginBundleInfo : pluginBundleInfos) { diff --git a/interfaces/inner_api/child_process_manager/include/child_process_manager.h b/interfaces/inner_api/child_process_manager/include/child_process_manager.h index 742ec3bb3c97526b8c37450847aeb45cc5655950..eb47056ff29a0d34551ccc6c011cfb1f9839092a 100644 --- a/interfaces/inner_api/child_process_manager/include/child_process_manager.h +++ b/interfaces/inner_api/child_process_manager/include/child_process_manager.h @@ -64,7 +64,7 @@ public: const std::string &entryFunc, std::shared_ptr args); void SetForkProcessJITEnabled(bool jitEnabled); void SetForkProcessDebugOption(const std::string bundleName, const bool isStartWithDebug, const bool isDebugApp, - const bool isStartWithNative); + const bool isStartWithNative, const std::string arkTSMode); void SetAppSpawnForkDebugOption(Runtime::DebugOption &debugOption, std::shared_ptr processInfo); std::string GetModuleNameFromSrcEntry(const std::string &srcEntry); diff --git a/test/unittest/child_process_manager_test/child_process_manager_test.cpp b/test/unittest/child_process_manager_test/child_process_manager_test.cpp index e37dbe7d331fb2bbd580bec84c5b2ea81a56ed32..96e252d3e0bf1dc8fe1228f710a69bab621a921e 100644 --- a/test/unittest/child_process_manager_test/child_process_manager_test.cpp +++ b/test/unittest/child_process_manager_test/child_process_manager_test.cpp @@ -115,7 +115,7 @@ HWTEST_F(ChildProcessManagerTest, StartChildProcessBySelfFork_0300, TestSize.Lev appUtils.isMultiProcessModel_.value = false; appUtils.allowChildProcessInMultiProcessFeatureApp_.isLoaded = true; appUtils.allowChildProcessInMultiProcessFeatureApp_.value = false; - + pid_t pid; auto ret = ChildProcessManager::GetInstance().StartChildProcessBySelfFork("./ets/process/DemoProcess.ts", pid); EXPECT_EQ(ret, ChildProcessManagerErrorCode::ERR_MULTI_PROCESS_MODEL_DISABLED); @@ -308,7 +308,7 @@ HWTEST_F(ChildProcessManagerTest, SetForkProcessDebugOption_0100, TestSize.Level { TAG_LOGD(AAFwkTag::TEST, "SetForkProcessDebugOption called."); AbilityRuntime::Runtime::DebugOption debugOption; - ChildProcessManager::GetInstance().SetForkProcessDebugOption("test", false, false, false); + ChildProcessManager::GetInstance().SetForkProcessDebugOption("test", false, false, false, "dynamic"); EXPECT_EQ(ChildProcessManager::GetInstance().isChildProcessBySelfFork_, true); } @@ -573,7 +573,7 @@ HWTEST_F(ChildProcessManagerTest, GetErrorCodeCompat_0100, TestSize.Level2) TAG_LOGI(AAFwkTag::TEST, "GetErrorCodeCompat_0100 start."); auto &childProcessManager = ChildProcessManager::GetInstance(); - + auto ret = AAFwk::ERR_NOT_SUPPORT_CHILD_PROCESS; auto childProcessType = AppExecFwk::CHILD_PROCESS_TYPE_JS; auto errCode = childProcessManager.GetErrorCodeCompat(ret, childProcessType); @@ -583,7 +583,7 @@ HWTEST_F(ChildProcessManagerTest, GetErrorCodeCompat_0100, TestSize.Level2) childProcessType = AppExecFwk::CHILD_PROCESS_TYPE_ARK; errCode = childProcessManager.GetErrorCodeCompat(ret, childProcessType); EXPECT_NE(errCode, ChildProcessManagerErrorCode::ERR_MULTI_PROCESS_MODEL_DISABLED); - + ret = AAFwk::INNER_ERR; childProcessType = AppExecFwk::CHILD_PROCESS_TYPE_JS; errCode = childProcessManager.GetErrorCodeCompat(ret, childProcessType); diff --git a/test/unittest/native_child_process_test/mock/include/mock_child_process_manager.h b/test/unittest/native_child_process_test/mock/include/mock_child_process_manager.h index a0521a3c38d3b5775165906bfa337c18da935a42..020bd017a87ae611e4a0beb751b8a09736fec1e6 100644 --- a/test/unittest/native_child_process_test/mock/include/mock_child_process_manager.h +++ b/test/unittest/native_child_process_test/mock/include/mock_child_process_manager.h @@ -63,7 +63,7 @@ public: const std::string &entryFunc, std::shared_ptr args); void SetForkProcessJITEnabled(bool jitEnabled); void SetForkProcessDebugOption(const std::string bundleName, const bool isStartWithDebug, const bool isDebugApp, - const bool isStartWithNative); + const bool isStartWithNative, const std::string arkTSMode); void SetAppSpawnForkDebugOption(Runtime::DebugOption &debugOption, std::shared_ptr processInfo); std::string GetModuleNameFromSrcEntry(const std::string &srcEntry); diff --git a/test/unittest/native_child_process_test/mock/src/mock_child_process_manager.cpp b/test/unittest/native_child_process_test/mock/src/mock_child_process_manager.cpp index 3757a3b738c25ee173ddde2573077418b9ce6fb1..9c9478b5b8bbf43e6fea13e6e5a6ac763f5c663e 100644 --- a/test/unittest/native_child_process_test/mock/src/mock_child_process_manager.cpp +++ b/test/unittest/native_child_process_test/mock/src/mock_child_process_manager.cpp @@ -163,7 +163,7 @@ void ChildProcessManager::SetForkProcessJITEnabled(bool jitEnabled) } void ChildProcessManager::SetForkProcessDebugOption(const std::string bundleName, const bool isStartWithDebug, - const bool isDebugApp, const bool isStartWithNative) + const bool isDebugApp, const bool isStartWithNative, const std::string arkTSMode) { }