Browse Source

Z991239-2234 #comment 启动逻辑更改,根据集中配置启动对应机型选项

陈良瑜80374463 4 years ago
parent
commit
e18afa59f4

+ 8 - 0
Module/mod_chromium/CMakeLists.txt

@@ -2,6 +2,8 @@
 define_module("chromium")
 
 set(PROFILER_ON OFF)
+set(LINKINFO_ON OFF)
+
 
 file(GLOB REQUESTS_CPP_SRCS ${ThirdPartyHeadRoot}/requests/requests/*.cpp)
 file(GLOB PORTCHECK_SRCS portCheck/*)
@@ -44,6 +46,8 @@ set(${MODULE_PREFIX}_SRCS
 	mod_chromium.h
 	processControl.cpp
 	processControl.h
+	uuid4.h
+	uuid4.cpp
 	${PORTCHECK_SRCS}
 	${GUITASK_SRCS}
 	${ThirdPartyHeadRoot}/CJson/cJSON.c
@@ -102,6 +106,10 @@ if(PROFILER_ON)
 	endif()
 endif()
 
+if(LINKINFO_ON)
+	add_compile_definitions(OPEN_LINKINFO)
+endif()
+
 set(CMAKE_CXX_FLAGS "-g3 -rdynamic -lprofiler")
 
 

+ 88 - 54
Module/mod_chromium/CModTools.cpp

@@ -28,7 +28,11 @@ extern std::pair<bool, std::string> DetectActiveHttp(std::vector<std::string> ur
 auto GetCefHead = [](CEntityBase* curEntity)->CSimpleStringA {
 	CSimpleStringA strChromiumPath, basePath;
 	curEntity->GetFunction()->GetPath("Base", basePath);
-	strChromiumPath.Append("sudo ").Append(basePath);
+#if (defined _WIN32 || defined _WIN64)
+#else
+	strChromiumPath.Append("sudo ");
+#endif
+	strChromiumPath.Append(basePath);
 	strChromiumPath.Append(CSimpleStringA(SPLIT_SLASH_STR) + "bin" + SPLIT_SLASH_STR + "Chromium" + SPLIT_SLASH_STR);
 	return strChromiumPath;
 };
@@ -68,6 +72,13 @@ namespace Chromium {
 				DbgEx("ReadConfigValue, get MachineType value failed");
 			}
 		}
+
+		auto configRet = ReadCenterConfigStr();
+		m_UserMgrUrlStr = std::get<0>(configRet);
+		m_UserMgrUrlNoSidebarStr = std::get<1>(configRet);
+		m_UserMgrUrlNoSidebarMutiStr = std::get<2>(configRet);
+		m_UserMgrUrlFultureStr = std::get<3>(configRet);
+		m_UserMgrAdStr = std::get<4>(configRet);
 	}
 
 
@@ -126,8 +137,7 @@ namespace Chromium {
 
 	std::pair<bool, std::string> CModTools::getAdUrl()
 	{
-		auto configRet = ReadCenterConfigStr();
-		auto AdUrl = std::get<4>(configRet);
+		auto AdUrl = m_UserMgrAdStr;
 		auto strUrl = detectUrls(AdUrl.GetData());
 		return strUrl.length() > 0 ? std::make_pair(true, strUrl) : std::make_pair(false, strUrl);
 	}
@@ -156,7 +166,9 @@ namespace Chromium {
 		case ERR_PAGE_REASON::MachineTypeError:
 			errPagePath.Append(CSimpleStringA("?reason=") + errType._to_string() + "&errmsg=双屏版只检测到单屏");
 			setLimitReason("breakdown");
-			break;*/
+			break;
+		case ERR_PAGE_REASON::CameraConfig:
+			*/
 		case ERR_PAGE_REASON::breakdown:
 		{
 			CSimpleStringA m_sAuthErrMsg, ts;
@@ -172,10 +184,10 @@ namespace Chromium {
 			errPagePath = CSimpleStringA("\'file:///") + errPagePath + CSimpleStringA("\'");
 		}
 		break;
-		case ERR_PAGE_REASON::CameraConfig:
-		case ERR_PAGE_REASON::disabled:
 		case ERR_PAGE_REASON::TerminalManagerKickOut:
 		case ERR_PAGE_REASON::TerminalManagerOff:
+			/*
+		case ERR_PAGE_REASON::disabled:
 		case ERR_PAGE_REASON::jobuncomplete:
 			errPagePath.Append(CSimpleStringA("?reason=") + errType._to_string());
 
@@ -185,6 +197,7 @@ namespace Chromium {
 
 			errPagePath = CSimpleStringA("\'file:///") + errPagePath + CSimpleStringA("\'");
 			break;
+			*/
 		case ERR_PAGE_REASON::ErrNotify:
 		{
 			errPagePath.Append(CSimpleStringA("?reason=")).Append(std::get<0>(exParam).c_str()).Append("&errmsg=").Append(std::get<1>(exParam).c_str());
@@ -297,27 +310,26 @@ namespace Chromium {
 		this->m_pEntity->GetFunction()->GetPath("Base", strChromiumPath);
 		strChromiumPath.Append(CSimpleStringA(SPLIT_SLASH_STR) + "bin" + SPLIT_SLASH_STR + "Chromium" + SPLIT_SLASH_STR);
 
-		//get major version
-		CSystemStaticInfo sysInfo;
-		m_pEntity->GetFunction()->GetSystemStaticInfo(sysInfo);
-		auto majorVersion = sysInfo.MachineVersion.GetMajor();
+		CSimpleStringA strUrl;
+		bool isOpenExtend = false;
 
+		auto mainUrl = m_UserMgrUrlFultureStr;
+		strUrl = detectUrls(mainUrl.GetData()).c_str();
+		//detect main url
+		strUrl = mainUrl;
+		isOpenExtend = false;
 
-		auto configRet = ReadCenterConfigStr();
+		return std::make_pair(isOpenExtend, strUrl.GetData());
+	}
+
+	std::pair<bool, std::string> CModTools::getExtendUrl()
+	{
 		CSimpleStringA strUrl;
-		bool isOpenExtend = false;
-		if (majorVersion >= 5)
-		{
-			auto mainUrl = std::get<3>(configRet);
-			strUrl = detectUrls(mainUrl.GetData()).c_str();
-			//detect main url
-			strUrl = mainUrl;
-			isOpenExtend = false;
-		}
-		else if (std::get<1>(configRet).Compare(""))
+
+		if (m_UserMgrUrlNoSidebarStr.Compare(""))
 		{
-			auto mainUrl = std::get<1>(configRet);
-			auto exUrl = std::get<2>(configRet);
+			auto mainUrl = m_UserMgrUrlNoSidebarStr;
+			auto exUrl = m_UserMgrUrlNoSidebarMutiStr;
 			auto t_Arr = exUrl.Split('|');
 			std::vector<std::string> urlArr;
 			urlArr.push_back(mainUrl.GetData());
@@ -329,15 +341,11 @@ namespace Chromium {
 				strUrl = checkRet.second.c_str();
 			else
 				strUrl = mainUrl;
-			isOpenExtend = true;
 		}
 		else
-		{
-			strUrl = std::get<0>(configRet);
-			isOpenExtend = false;
-		}
+			strUrl = m_UserMgrUrlStr;
 
-		return std::make_pair(isOpenExtend, strUrl.GetData());
+		return std::make_pair(strUrl.GetLength() > 0, strUrl.GetData());
 	}
 
 
@@ -364,7 +372,6 @@ namespace Chromium {
 	std::string CModTools::generateCefclientCmd(bool isExtend, std::string mainUrl)
 	{
 		CSimpleStringA strChromiumPath = GetCefHead(this->m_pEntity), strCmdLine = "";
-
 		strCmdLine.Append(strChromiumPath).Append(CEFCLIENT_NAME).Append(" --url=").Append(mainUrl.c_str());
 
 		if (isExtend)
@@ -398,25 +405,37 @@ namespace Chromium {
 		return strCmdLine.GetData();
 	}
 
-	void CModTools::openAdPage() {
-		//get major version
-		CSystemStaticInfo sysInfo;
-		m_pEntity->GetFunction()->GetSystemStaticInfo(sysInfo);
-		auto majorVersion = sysInfo.MachineVersion.GetMajor();
-		if (majorVersion >= 5)
+	std::string CModTools::generateMainCmd(std::string mainUrl)
+	{
+		return generateCefclientCmd(false, mainUrl);
+	}
+
+	std::string CModTools::generateExtendCmd(std::string extendUrl)
+	{
+		return generateCefclientCmd(true, extendUrl);
+	}
+
+	std::pair<bool, std::string> CModTools::openAdPage() {
+		static bool adOpen = false;
+		if (adOpen)//only open ad in first time
+			return std::make_pair(false, "open AdPage failed! Already exist.");
+		
+		auto AdUrlRet = getAdUrl();
+		if (AdUrlRet.first)
 		{
-			auto AdUrlRet = getAdUrl();
-			if (AdUrlRet.first)
+			auto strAdCmd = generateAdCmd(AdUrlRet.second);
+			auto openAdRet = openCef(strAdCmd);
+			if (Error_Succeed != openAdRet.first)
+				return std::make_pair(false, "open Ad err!");
+			else
 			{
-				auto strAdCmd = generateAdCmd(AdUrlRet.second);
-				auto openAdRet = openCef(strAdCmd);
-				if (Error_Succeed != openAdRet.first)
-					DbgEx("open Ad err!");
+				adOpen = true;
+				return std::make_pair(true, "");
 			}
-			else
-				DbgEx("StartChromiumBrowser Ad url err!");
+				
 		}
-		//open ad do not affect the result of cef open
+		else
+			return std::make_pair(false, "StartChromiumBrowser Ad url err!");
 	}
 
 
@@ -426,28 +445,43 @@ namespace Chromium {
 		std::shared_ptr<void> delHandleFun((void*)0, [&](void*) {
 			g_mutexFreerdp.unlock();
 			});
-		static bool adOpen = false;
-		if (!adOpen) {//only open ad in first time
-			openAdPage();
-			adOpen = true;
-		}
 
-		if (reason._to_integral() == ERR_PAGE_REASON::normal)
+		if (reason._to_integral() == ERR_PAGE_REASON::main)
 		{
 			auto mainUrlRet = getMainUrl();
 
 			if (0 == mainUrlRet.second.length())
 			{
-				DbgEx("StartChromiumBrowser get url failed!");
+				DbgEx("StartChromiumBrowser get %s url failed!", reason._to_string());
 				return std::make_pair(Error_Unexpect, 0);
 			}
 
-			auto strCmdLine = generateCefclientCmd(mainUrlRet.first, mainUrlRet.second);
+			auto strCmdLine = generateMainCmd(mainUrlRet.second);
+
+			auto openCefRet = openCef(strCmdLine, true);//with guard
+			if (Error_Succeed == openCefRet.first)
+				return std::make_pair(Error_Succeed, openCefRet.second);
+		}
+		else if (reason._to_integral() == ERR_PAGE_REASON::extend)
+		{
+			auto extendUrlRet = getExtendUrl();
+			if (!extendUrlRet.first)
+			{
+				DbgEx("StartChromiumBrowser get %s url failed!", reason._to_string());
+				return std::make_pair(Error_Unexpect, 0);
+			}
 
-			auto openCefRet = openCef(strCmdLine, true);
+			auto strCmdLine = generateExtendCmd(extendUrlRet.second);
+			auto openCefRet = openCef(strCmdLine, true);//with guard
 			if (Error_Succeed == openCefRet.first)
 				return std::make_pair(Error_Succeed, openCefRet.second);
 		}
+		else if (reason._to_integral() == ERR_PAGE_REASON::Ad)
+		{
+			auto AdRet = openAdPage();
+			if (!AdRet.first) DbgEx("%s", AdRet.second.c_str());
+			return std::make_pair(AdRet.first ? Error_Succeed : Error_Unexpect, 0);
+		}
 		else
 		{
 			//open err page

+ 10 - 4
Module/mod_chromium/CModTools.h

@@ -19,7 +19,7 @@
 namespace Chromium{
 
 	BETTER_ENUM(ERR_PAGE_REASON, int, CameraConfig,	CardStoreIsBusy, MachineTypeError, TerminalManagerKickOut,
-		TerminalManagerOff,	breakdown, disabled, jobuncomplete, ErrNotify, normal)
+		TerminalManagerOff,	breakdown, disabled, jobuncomplete, ErrNotify, main, Ad, extend)
 
 	BETTER_ENUM(PAGE_TYPE, int,	CameraConfig, TerminalManager, errPage,	Ad,	slv, init, TradeManager, breakdown)
 
@@ -34,7 +34,7 @@ private:
 public:
 	void InitCModTools(CEntityBase* pEntity);
 	//绝望,c++98没有初始化列表
-	std::pair<ErrorCodeEnum, int> StartChromiumBrowser(ERR_PAGE_REASON reason = ERR_PAGE_REASON::normal,
+	std::pair<ErrorCodeEnum, int> StartChromiumBrowser(ERR_PAGE_REASON reason = ERR_PAGE_REASON::main,
 		std::tuple < std::string, std::string> normalParam = std::tuple <std::string, std::string>("", ""),
 		std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam = std::tuple<std::string, std::string, std::string, DWORD, DWORD>("", "", "", 0, 0 ));
 	bool killAllChromium();	//通过taskkill 关闭掉所有的cefclient
@@ -49,12 +49,17 @@ private:
 	std::pair<bool, std::string> getMainUrl();
 	std::pair<bool, std::string> getAdUrl();
 	std::pair<bool, std::string> getErrUrl();
+	std::pair<bool, std::string> getExtendUrl();
 	std::string generateCefclientCmd(bool isExtend, std::string mainUrl);
+	std::string generateMainCmd(std::string mainUrl);
+	std::string generateExtendCmd(std::string extendUrl);
 	std::string generateAdCmd(std::string AdUrl);
+	std::pair<bool, std::string> GenerateErrPage(ERR_PAGE_REASON errType,
+		std::tuple < std::string, std::string> norParam, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam);
 	std::pair<ErrorCodeEnum, int> openCef(std::string cmdline, bool isGuard = false);
 	void cefClientGuardian(std::string cmdline);
-	void openAdPage();
-	std::pair<bool, std::string> GenerateErrPage(ERR_PAGE_REASON errType, std::tuple < std::string, std::string> norParam, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam);
+	std::pair<bool, std::string> openAdPage();
+	
 	std::string GetSpShellBootTime();
 	bool isOutsidePad();
 	void setLimitReason(const char* reason);
@@ -64,6 +69,7 @@ private:
 	bool findRestartCode(DWORD userCode);
 private:
 	CSimpleString m_strSite, m_strMachineType;
+	CSimpleString m_UserMgrUrlStr, m_UserMgrUrlNoSidebarStr, m_UserMgrUrlNoSidebarMutiStr, m_UserMgrUrlFultureStr, m_UserMgrAdStr;
 
 };
 

+ 10 - 10
Module/mod_chromium/CWSCodec.cpp

@@ -1,12 +1,12 @@
 #include "stdafx.h"
 #if (defined _WIN32 || defined _WIN64)
-#include "uuid4.h"
 #else
 #include "SpUtility.h"
 #include "../../ThirdParty/Include/CJson/cJSON.h"
 #include <boost/locale.hpp>
 #include <variant>
 #endif
+#include "uuid4.h"
 #include "BufferOperation.h"
 #include "modp_b64.h"
 #include "SpHelper.h"
@@ -597,9 +597,7 @@ namespace Chromium {
 				m_AckCallbackList->insert(std::pair<int, entity_def_struct>(transid, st));
 			}
 		}
-
-		// 维护回调列表 Event
-		if (Register == messageType)
+		else if (Register == messageType)
 		{
 			std::vector<CMedthodInterface>* milist = NULL;
 			entity_def_struct st = { 0 };
@@ -608,8 +606,7 @@ namespace Chromium {
 			milist = mInterpreter->getAllMessageInterface(st.entity_name);
 			m_EventCallbackList->insert(std::pair<int, std::vector<CMedthodInterface>*>(transid, milist));
 		}
-
-		if (Broadcast == messageType)
+		else if (Broadcast == messageType)
 		{
 			ChromiumBroadcast e = {};
 			GetCJsonObjectValue(pJson, "data", e.broadcastJson, errmsg);
@@ -623,9 +620,8 @@ namespace Chromium {
 				DbgEx("josn is too long, do not send out sp broadcast!");
 			return std::make_pair(messageType, nullptr);
 		}
-
-		if (Event == messageType)
-		{
+		else if (Event == messageType)
+		{// 维护回调列表 Event
 			struct  GeneralEventStruct
 			{
 				CSimpleStringA data;
@@ -657,11 +653,15 @@ namespace Chromium {
 		WriteT(data, len, &wpos, &capacity);
 
 		//写入messageType,附带链路信息
+#ifdef OPEN_LINKINFO
 		int messageTypeWithControl = messageType | PKT_TYPE_CONTROL_LINKCONTEXT;
+#else
+		int messageTypeWithControl = messageType;
+#endif
 		WriteT(data, messageTypeWithControl, &wpos, &capacity);
 
 		auto linkContexFun = [&]() {
-#if (defined _WIN32 || defined _WIN64)
+#ifdef OPEN_LINKINFO
 			//添加链路信息,放到原数据最后
 			auto linkContextRet = GetLinkContex(pJson, data, errmsg);
 			if (linkContextRet.first)

+ 40 - 1
Module/mod_chromium/baseEx.cpp

@@ -155,4 +155,43 @@ std::string generateTimeStr(bool isSimple)
         sprintf(date, "%d-%02d-%02d-%02d:%02d:%02d", (int)ptm->tm_year + 1900, (int)ptm->tm_mon + 1, (int)ptm->tm_mday, (int)ptm->tm_hour, (int)ptm->tm_min, (int)ptm->tm_sec);
 
     return std::string(date);
-}
+}
+
+//singal,退出函数
+#if (defined _WIN32 || defined _WIN64)
+#else
+#include <signal.h>     // ::signal, ::raise
+#include <boost/stacktrace.hpp>
+#include "CModTools.h"
+#include "CWebsocketServer.h"
+
+std::string g_backtracePath = "";
+
+void seg_signal_handler(int signum)
+{
+    //boost::stacktrace::safe_dump_to(g_backtracePath.c_str());
+    Dbg("receive signal:%d, seg_signal_handler", signum);
+    auto dumpArr = boost::stacktrace::stacktrace().as_vector();
+    for (auto i = 0; i < dumpArr.size(); i++)
+        Dbg("SEG[%d]%X---%s(%s-%d)", i, dumpArr[i].address(), dumpArr[i].name().c_str(), dumpArr[i].source_file().c_str(), dumpArr[i].source_line());
+
+    Chromium::CModTools::get_mutable_instance().killAllChromium();
+    Chromium::CWebsocketServer::stopServer();
+    signal(signum, SIG_DFL);
+    raise(signum);
+}
+
+void normal_signal_handle(int signum)
+{
+    Dbg("receive signal:%d, normal_signal_handle", signum);
+    signal(signum, SIG_DFL);
+    raise(signum);
+}
+
+void set_traceback_path(std::string path)
+{
+    g_backtracePath = path + "/mod_chromium/" + generateTimeStr(true) + "_chromium_backtrace.dump";
+    Dbg("set_traceback_path %s", g_backtracePath.c_str());
+}
+#endif
+

+ 47 - 49
Module/mod_chromium/mod_chromium.cpp

@@ -190,7 +190,7 @@ namespace Chromium {
 				CSmartPointer<IConfigInfo> spConfig;
 				if (Error_Succeed == GetFunction()->OpenConfig(Config_CenterSetting, spConfig))
 				{
-					auto webMaskKey = CSimpleString::Format("WebMask_%s", m_sysInfo.strMachineType);
+					auto webMaskKey = CSimpleString::Format("WebMask_%s", m_sysInfo.strMachineType.GetData());
 					CSimpleString webMaskStr;
 					if (Error_Succeed == spConfig->ReadConfigValue("Chromium", webMaskKey.GetData(), webMaskStr))
 					{
@@ -209,7 +209,7 @@ namespace Chromium {
 							else if (trimStr.Compare("with_browser", true))
 								m_withBrowser = true;
 						}
-						DbgEx("find %s, readStr:%s, m_runAd:%d, m_runMain:%d, m_runExtend:%d, m_runLogin:%d, m_withBrowser:%d"
+						DbgEx("MachineType: %s, find %s, readStr:%s, m_runAd:%d, m_runMain:%d, m_runExtend:%d, m_runLogin:%d, m_withBrowser:%d", m_sysInfo.strMachineType.GetData()
 							, webMaskKey.GetData(), webMaskStr.GetData(), m_runAd, m_runMain, m_runExtend, m_runLogin, m_withBrowser);
 					}
 					else
@@ -274,35 +274,58 @@ namespace Chromium {
 #endif
 		GetFunction()->RegistSysVarEvent("UIState", this);
 		GetFunction()->RegistSysVarEvent("EntryPermit", this);
+		GetFunction()->RegistSysVarEvent("TerminalStage", this);
+		GetFunction()->RegistSysVarEvent("SessionID", this);
+		GetFunction()->RegistSysVarEvent("CustomerID", this);
+		GetFunction()->RegistSysVarEvent("CardStoreInUse", this);
 		return true;
 	}
 
 	bool CChromiumEntity::OnPreStart_openWeb(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext)
 	{
 		generateBussinessLimitTimer();
+		if (m_runAd) openAdPage();
+		if (m_runExtend) openExtendPage();
 
-		CSimpleStringA t_EntryPermit, t_terminalState;
-		GetFunction()->GetSysVar("EntryPermit", t_EntryPermit);
-		GetFunction()->GetSysVar("TerminalStage", t_terminalState);
-		if ('A' != t_terminalState[0])
+		if (m_runMain)
 		{
-			auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::breakdown,
-				std::tuple <std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
-			DbgEx("access failed, open page breakdown, %d, pid:%d", openRet.first, openRet.second);
+			CSimpleStringA t_EntryPermit, t_terminalState;
+			GetFunction()->GetSysVar("EntryPermit", t_EntryPermit);
+			GetFunction()->GetSysVar("TerminalStage", t_terminalState);
+			if ('A' != t_terminalState[0])
+			{
+				auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::breakdown,
+					std::tuple <std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
+				DbgEx("access failed, open page breakdown, %d, pid:%d", openRet.first, openRet.second);
+			}
+			else if (0 == t_EntryPermit.Compare("L", true))
+				openMainPage();
 		}
-		else if (0 == t_EntryPermit.Compare("L", true))
-		{
+		
+		return true;
+	}
+
+	void CChromiumEntity::openMainPage()
+	{
 #if (defined _WIN32 || defined _WIN64)
-			generateCefclientTimer();
+		generateCefclientTimer();
 #else
-			CSystemRunInfo sysruninfo;
-			GetFunction()->GetSystemRunInfo(sysruninfo);
-			if (!(sysruninfo.dwBootOption & SystemBootOptionEnum::BootOption_Test))
-				generateCefclientTimer();//非--test时,才会打开浏览器
+		CSystemRunInfo sysruninfo;
+		GetFunction()->GetSystemRunInfo(sysruninfo);
+		if (!(sysruninfo.dwBootOption & SystemBootOptionEnum::BootOption_Test))
+			generateCefclientTimer();//非--test时,才会打开浏览器
 #endif
+	}
 
-		}
-		return true;
+	void CChromiumEntity::openAdPage()
+	{
+		auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::Ad);
+		DbgEx("open page Ad, %d, pid:%d", openRet.first, openRet.second);
+	}
+	void CChromiumEntity::openExtendPage()
+	{
+		auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::extend);
+		DbgEx("open page extend, %d, pid:%d", openRet.first, openRet.second);
 	}
 
 	void CChromiumEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPointer<ITransactionContext> pTransactionContext)
@@ -333,6 +356,7 @@ namespace Chromium {
 					DbgEx("first Enter main page");
 					m_firstStartMain.unlock();
 				}
+				GetFunction()->UnregistSysVarEvent("UIState");
 			}
 		}
 		else if (0 == CSimpleStringA("EntryPermit").Compare(pszKey, true))
@@ -343,16 +367,8 @@ namespace Chromium {
 					std::tuple < std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
 				DbgEx("access failed, open page breakdown, %d", openRet.first);
 			}
-			else if (pszValue != NULL && 0 == CSimpleStringA("L").Compare(pszValue, true)) {
-				CSystemRunInfo sysruninfo;
-				GetFunction()->GetSystemRunInfo(sysruninfo);
-#if (defined _WIN32 || defined _WIN64)
-#else
-				if (!(sysruninfo.dwBootOption & SystemBootOptionEnum::BootOption_Test))
-					generateCefclientTimer();//非--test时,才会打开浏览器
-#endif
-
-			}
+			else if (pszValue != NULL && 0 == CSimpleStringA("L").Compare(pszValue, true))
+				openMainPage();
 		}
 
 	}
@@ -440,24 +456,6 @@ namespace Chromium {
 			DbgEx("end show Screen Camera config, close page cameraconfig");
 			CModTools::get_mutable_instance().killChromiumByName((+PAGE_TYPE::CameraConfig)._to_string());
 			break;
-			/*
-		case EVENT_ACCESSAUTH_SUCCEED:
-			DbgEx("access auth success, open page mainurl");
-			{
-				CSystemRunInfo sysruninfo;
-				GetFunction()->GetSystemRunInfo(sysruninfo);
-				if (!(sysruninfo.dwBootOption & SystemBootOptionEnum::BootOption_Test))
-					generateCefclientTimer();//非--test时,才会打开浏览器
-			}
-			break;
-		case EVENT_ACCESSAUTH_FAILED:
-		case EVENT_ACCESSAUTH_TIMEOUT:
-		{
-			auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::breakdown, {m_sysInfo.strTerminalID.GetData(), generateTimeStr(true)});
-			DbgEx("access failed, open page breakdown, %d", openRet.first);
-		}
-			break;
-			*/
 		default:
 			break;
 		}
@@ -563,8 +561,8 @@ namespace Chromium {
 					if (std::get<0>(startRet))
 						m_cefArr.insert(std::make_pair(info, std::make_tuple(std::get<1>(startRet), std::get<2>(startRet), cmdline)));
 					break;
-				}
-			}
+	}
+		}
 			boost::this_thread::sleep_for(boost::chrono::seconds(10));
 		}
 #endif
@@ -657,8 +655,8 @@ namespace Chromium {
 
 
 			chromiumCLoseInJob(info);
-		}
 	}
+}
 #endif
 
 	void CChromiumEntity::generateCefclientTimer()

+ 5 - 1
Module/mod_chromium/mod_chromium.h

@@ -66,6 +66,9 @@ namespace Chromium {
 #endif
 		void generateCefclientTimer();
 		void generateBussinessLimitTimer();
+		void openMainPage();
+		void openAdPage();
+		void openExtendPage();
 
 	private:
 		CSystemStaticInfo m_sysInfo;
@@ -76,7 +79,7 @@ namespace Chromium {
 		HANDLE m_hIOCP;
 		HANDLE m_hThreadIOCP;
 		CSimpleStringA m_strCustomMainUrl;
-		bool m_runAd, m_runMain, m_runExtend, m_runLogin, m_withBrowser;
+		bool m_runAd/*广告*/, m_runMain/*业务*/, m_runExtend/*低柜副屏*/, m_runLogin/*用户桌面,可能木有用*/, m_withBrowser/*是否需要与browser交互*/;
 	public:
 		boost::timed_mutex m_firstStartMain;//首次启动主页
 		int getBrowserStartTimes();
@@ -94,6 +97,7 @@ namespace Chromium {
 #endif
 		
 
+
 		virtual void OnSysVarEvent(const char* pszKey, const char* pszValue, const char* pszOldValue, const char* pszEntityName);
 
 		void OnTerminalManage(const char* pszEntityName, DWORD dwMessageId, DWORD dwMessageSignature, HealthManager::TerminalManager& evt);//终端锁定罚出