Bläddra i källkod

Z991239-1781 #comment other err 优化错误页显示,usercode会随打开传送过去

陈良瑜80374463 4 år sedan
förälder
incheckning
ae4d02eab2
2 ändrade filer med 10 tillägg och 12 borttagningar
  1. 8 10
      Module/mod_chromium/CModTools.cpp
  2. 2 2
      Module/mod_chromium/CModTools.h

+ 8 - 10
Module/mod_chromium/CModTools.cpp

@@ -117,7 +117,7 @@ std::pair<bool, std::string> CModTools::getErrUrl()
 	return std::make_pair(true, errPagePath.GetData());
 }
 
-std::pair<bool, std::string> CModTools::GenerateErrPage(ERR_PAGE_REASON errType, std::string exReason, std::string exMsg, std::string exRebootTime)
+std::pair<bool, std::string> CModTools::GenerateErrPage(ERR_PAGE_REASON errType, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam)
 {
 	auto errUrlRet = getErrUrl();
 	CSimpleStringA errPagePath = errUrlRet.second.c_str(), strChromiumPath = GetCefHead(this->m_pEntity).Append(CEFCLIENT_NAME);
@@ -152,9 +152,10 @@ std::pair<bool, std::string> CModTools::GenerateErrPage(ERR_PAGE_REASON errType,
 		errPagePath = CSimpleStringA("\'file:///") + errPagePath + CSimpleStringA("\'");
 		break;
 	case ERR_PAGE_REASON::ErrNotify:
-		errPagePath.Append(CSimpleStringA("?reason=")).Append(exReason.c_str()).Append("&errmsg=").Append(exMsg.c_str());
-		if (exRebootTime.length() > 5)
-			errPagePath.Append("&reboottime=").Append(exRebootTime.c_str());
+		errPagePath.Append(CSimpleStringA("?reason=")).Append(std::get<0>(exParam).c_str()).Append("&errmsg=").Append(std::get<1>(exParam).c_str());
+		errPagePath.Append(CSimpleStringA("?usercode=")).Append(std::to_string(std::get<4>(exParam)).c_str());
+		if (std::get<2>(exParam).length() > 5)
+			errPagePath.Append("&reboottime=").Append(std::get<2>(exParam).c_str());
 		errPagePath = CSimpleStringA("\'file:///") + errPagePath + CSimpleStringA("\'");
 		break;
 	default:
@@ -167,9 +168,7 @@ std::pair<bool, std::string> CModTools::GenerateErrPage(ERR_PAGE_REASON errType,
 	cachePath.Append(CSimpleStringA(SPLIT_SLASH_STR) + "cefCache");
 	errPagePath.Append(" --cache-path=").Append(cachePath);
 
-	errPagePath.Append(" --no-sandbox");
-	errPagePath.Append(" --hide-controls");
-	errPagePath.Append(" --always-on-top");
+	errPagePath.Append(" --no-sandbox").Append(" --hide-controls").Append(" --top=1");
 	switch (errType)
 	{
 	case ERR_PAGE_REASON::TerminalManagerKickOut:
@@ -330,7 +329,6 @@ std::string CModTools::generateCefclientCmd(bool isExtend, std::string mainUrl)
 	strCmdLine.Append(" --cache-path=").Append(cachePath);
 	strCmdLine.Append(" --no-sandbox");
 	strCmdLine.Append(" --hide-controls");
-	strCmdLine.Append(" --always-on-top");
 	strCmdLine.Append(" --logextend=").Append((+PAGE_TYPE::slv)._to_string());
 	strCmdLine.Append(R"( --errurl=file:///)").Append(getErrUrl().second.c_str());
 	DbgEx("cmdline : %s", strCmdLine.GetData());
@@ -360,7 +358,7 @@ void CModTools::openAdPage() {
 }
 
 
-std::pair<ErrorCodeEnum, int> CModTools::StartChromiumBrowser(ERR_PAGE_REASON reason, std::string exReason, std::string exMsg, std::string exRebootTime){
+std::pair<ErrorCodeEnum, int> CModTools::StartChromiumBrowser(ERR_PAGE_REASON reason, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam){
 
 	g_mutexFreerdp.lock();
 	std::shared_ptr<void> delHandleFun((void*)0, [&](void*) {
@@ -396,7 +394,7 @@ std::pair<ErrorCodeEnum, int> CModTools::StartChromiumBrowser(ERR_PAGE_REASON re
 			return std::make_pair(Error_Unexpect, 0);
 
 
-		auto errPageUrl = GenerateErrPage(reason, exReason, exMsg, exRebootTime);
+		auto errPageUrl = GenerateErrPage(reason, exParam);
 		
 		if (!errPageUrl.first)
 		{

+ 2 - 2
Module/mod_chromium/CModTools.h

@@ -33,7 +33,7 @@ private:
 	CEntityBase* m_pEntity;
 public:
 	void InitCModTools(CEntityBase* pEntity);
-	std::pair<ErrorCodeEnum, int> StartChromiumBrowser(ERR_PAGE_REASON reason = ERR_PAGE_REASON::normal, std::string exReason = "", std::string exMsg = "", std::string exRebootTime = "");
+	std::pair<ErrorCodeEnum, int> StartChromiumBrowser(ERR_PAGE_REASON reason = ERR_PAGE_REASON::normal, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam = {"", "", "", 0, 0});
 	bool killAllChromium();	//通过taskkill 关闭掉所有的cefclient
 	bool killChromiumByName(std::string name);
 	void RestartProxyServer();
@@ -50,7 +50,7 @@ private:
 	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::string exReason, std::string exMsg, std::string exRebootTime);
+	std::pair<bool, std::string> GenerateErrPage(ERR_PAGE_REASON errType, std::tuple<std::string, std::string, std::string, DWORD, DWORD> exParam);
 	std::string GetSpShellBootTime();
 	bool isOutsidePad();
 	void setLimitReason(const char* reason);