Jelajahi Sumber

!2 fix stop browser

chenliangyu 3 bulan lalu
induk
melakukan
fff972ffc6
2 mengubah file dengan 14 tambahan dan 35 penghapusan
  1. 11 2
      Module/mod_chromium/CModTools.cpp
  2. 3 33
      Module/mod_chromium/mod_chromium.cpp

+ 11 - 2
Module/mod_chromium/CModTools.cpp

@@ -408,8 +408,17 @@ namespace Chromium {
 		if (stopAll)
 			killAllChromium();
 		else
-			LogWarn(Severity_Low, Error_NotSupport, LOG_WARN_CHROMIUM_NOT_SUPPORT_TOKILL_SPECIFIED_BROWSER,
-					CSimpleStringA::Format("StopChromiumBrowser: %s", reason._to_string()));
+		{
+			CSimpleStringA strBasePath(true);
+			this->m_pEntity->GetFunction()->GetPath("BaseDir", strBasePath);
+			std::string strPath(strBasePath.GetData());
+			std::string stopBrowser_path = "sudo " + strPath + SPLIT_SLASH_STR + "res" + SPLIT_SLASH_STR + "RunScript" + SPLIT_SLASH_STR + "stopBrowser.sh";
+			stopBrowser_path.append(" --vtm_browser_type=").append(reason._to_string());
+			do {
+				boost::process::child child_process(stopBrowser_path);
+				child_process.wait();
+			} while (false);
+		}
 #endif //_MSC_VER
 	}
 

+ 3 - 33
Module/mod_chromium/mod_chromium.cpp

@@ -872,16 +872,8 @@ namespace Chromium {
 
 				if (ConfigManager::getInstance().m_existRootIni && ConfigManager::getInstance().m_installMode)
 					return;//if root.ini exist and in install mode, do not close startup page
-#if defined(RVC_OS_LINUX)
-				for (auto it : srcPids)
-				{
-					CSimpleStringA cmd = CSimpleStringA::Format("sudo kill -9 %d", it);
-					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CloseCommonPage %s", cmd.GetData());
-					system(cmd.GetData());
-				}
-#else
+
 				CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
-#endif
 				startupPageClean();
 				return;
 			}
@@ -993,9 +985,6 @@ namespace Chromium {
 		{
 			if (CModTools::get_mutable_instance().IsConfigWork())//url正常时才关闭
 			{
-#if defined(RVC_OS_LINUX)
-				auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
-#endif // RVC_OS_UOS
 
 				if (ConfigManager::getInstance().m_runAd) openAdPage();
 				openMainPage();
@@ -1004,16 +993,9 @@ namespace Chromium {
 				std::this_thread::sleep_for(std::chrono::seconds(3));
 				LogWarn(Severity_Low, Error_Debug, LOG_SLV_CHROMIUM_URLOPEN, "正在启动业务界面");
 
-#if defined(RVC_OS_LINUX)
-				for (auto it : srcPids)
-				{
-					CSimpleStringA cmd = CSimpleStringA::Format("sudo kill -9 %d", it);
-					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CloseCommonPage %s", cmd.GetData());
-					system(cmd.GetData());
-				}
-#else
+
 				CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
-#endif
+
 				startupPageClean();
 
 				//DbgEx("UnregistSysVarEvent TerminalStage %s", Error_Succeed == GetFunction()->UnregistSysVarEvent("TerminalStage") ? "success" : "fail");
@@ -1036,22 +1018,10 @@ namespace Chromium {
 		{
 			if (!ConfigManager::getInstance().m_withBrowser)
 			{
-#if defined(RVC_OS_LINUX)
-				auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
-#endif // RVC_OS_UOS
 
 				if (ConfigManager::getInstance().m_existRootIni && ConfigManager::getInstance().m_installMode)
 					return;//if root.ini exist and in install mode, do not close startup page
-#if defined(RVC_OS_LINUX)
-				for (auto it : srcPids)
-				{
-					CSimpleStringA cmd = CSimpleStringA::Format("sudo kill -9 %d", it);
-					DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CloseCommonPage %s", cmd.GetData());
-					system(cmd.GetData());
-				}
-#else
 				CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
-#endif
 				startupPageClean();
 				ERR_PAGE_REASON reson = ERR_PAGE_REASON::breakdown;
 				if (0 == CSimpleStringA("S").Compare(terminalStageVal.c_str(), true))