Browse Source

#IQRV #comment [Module] Chromium 启动添加自定义页面

gifur 4 years ago
parent
commit
dd1024b0bd

+ 8 - 1
Module/mod_chromium/CModTools.cpp

@@ -17,7 +17,7 @@ using namespace FreeRDPWrap;
 #include <boost/thread.hpp>
 
 #include "../mod_upload/Upload_client_g.h"
-
+#include "mod_chromium.h"
 
 
 extern std::pair<bool, std::string> DetectActiveHttp(std::vector<std::string> urlArr);
@@ -687,6 +687,13 @@ std::tuple<CSimpleStringA, CSimpleStringA, CSimpleStringA, CSimpleStringA, CSimp
 	if (Error_Succeed == table.Load(spCerConfig))
 		DbgEx(CSimpleString::Format("read centersetting config : UserMgrUrl-%s, UserMgrUrlNoSidebar-%s, UserMgrUrlNoSidebarMuti-%s, UserMgrUrlFulture-%s, UserMgrAd-%s",
 			str.GetData(), strNew.GetData(), strEx.GetData(), strFulture.GetData(), strAd.GetData()));
+
+	CChromiumEntity* pChromiumEntity = reinterpret_cast<CChromiumEntity*>(m_pEntity);
+	if (pChromiumEntity != nullptr && pChromiumEntity->HasCustomMainUrl()) {
+		strFulture = pChromiumEntity->GetCustomMainUrl();
+		DbgEx("Replace FultureUrl with %s", strFulture.GetData());
+	}
+
 	return std::make_tuple(str, strNew, strEx, strFulture, strAd);
 }
 

+ 11 - 1
Module/mod_chromium/mod_chromium.cpp

@@ -37,7 +37,7 @@
 
 namespace Chromium {
 
-	CChromiumEntity::CChromiumEntity() :m_pWsServer(NULL), m_iTcpBridgePort(4504), m_pTimerListener(NULL)
+	CChromiumEntity::CChromiumEntity() :m_pWsServer(NULL), m_iTcpBridgePort(4504), m_pTimerListener(NULL), m_strCustomMainUrl(true)
 	{
 		DbgEx("CChromiumEntity constructor");
 
@@ -139,6 +139,16 @@ namespace Chromium {
 			pTransactionContext->SendAnswer(Error);
 			return;
 		}
+		const int ArgsCount = strArgs.GetCount();
+		LOG_TRACE("strArgs.GetCount() = %d", ArgsCount);
+        for (int i = 0; i < ArgsCount; ++i) {
+            Dbg("strArgs[%d] = %s", i, strArgs[i].GetData());
+        }
+		if(ArgsCount == 1) {
+			m_strCustomMainUrl = strArgs[0];
+			Dbg("Get custom main ulr: %s", m_strCustomMainUrl.GetData());
+		}
+
 		CModTools::get_mutable_instance().InitCModTools(this);
 		CModTools::get_mutable_instance().killAllChromium();
 		// load all struct define xml & start websocket server

+ 9 - 4
Module/mod_chromium/mod_chromium.h

@@ -1,7 +1,7 @@
 #ifndef _CHROMIUM_ENTITY_H
 #define _CHROMIUM_ENTITY_H
 #include "Chromium_server_g.h"
-
+#include "CWebsocketServer.h"
 #include<map>
 #include<string>
 #include<tuple>
@@ -11,7 +11,7 @@
 #include "..\\mod_browser\\IEBrowser_def_g.h"
 #include "..\\mod_browser\\IEBrowser_msg_g.h"
 #endif
-
+#include "modVer.h"
 #include "guitask/enum.h"
 #include "../mod_healthmanager/HealthManager_msg_g.h"
 
@@ -43,12 +43,16 @@ namespace Chromium {
 		CChromiumEntity();
 		virtual ~CChromiumEntity();
 		virtual const char* GetEntityName() const { return "Chromium"; }
+		const char* GetEntityVersion() const { return MODULE_VERSION_FULL; }
 		virtual bool IsService()const { return true; }
 
-
 		virtual void OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPointer<ITransactionContext> pTransactionContext);
 		virtual void OnPreClose(EntityCloseCauseEnum eCloseCause, CSmartPointer<ITransactionContext> pTransactionContext);
 		void CefClintNotify();
+
+        bool HasCustomMainUrl() const { return !m_strCustomMainUrl.IsNullOrEmpty(); }
+        const char* GetCustomMainUrl()  const { return m_strCustomMainUrl; }
+
 	private:
 		void OnTaskTimerListener(void* pData);
 #if (defined _WIN32 || defined _WIN64)
@@ -57,6 +61,7 @@ namespace Chromium {
 #endif
 		void generateCefclientTimer();
 		void generateBussinessLimitTimer();
+
 	private:
 		CSystemStaticInfo m_sysInfo;
 		CWebsocketServer* m_pWsServer;
@@ -65,7 +70,7 @@ namespace Chromium {
 		std::map<std::string, std::tuple<HANDLE, HANDLE, std::string>> m_cefArr;//open discribe: slv, job Handle, process Handle, cmdline
 		HANDLE m_hIOCP;
 		HANDLE m_hThreadIOCP;
-
+		CSimpleStringA m_strCustomMainUrl;
 	private:
 		//subscribe
 		CUUID m_uidCameraListener, m_uuidAccessAuth, m_uidBrowserListenser;

+ 7 - 2
addin/cfg/SpShell.ini

@@ -2,8 +2,9 @@
 ;用于在应用程序窗口菜单栏添加自定义菜单,配置后将作为菜单项展示在【附件】菜单中
 ;目前仅用于启动特定应用程序和实体,后者适合带参启动实体
 [Menu]
-Count=1
+Count=2
 1=startInit
+2=startChromium
 
 ;[Demo]
 ;Type={0|1|2} 不添加改键值或者配成0,表示启动特定程序;1表示启动特定的实体
@@ -14,4 +15,8 @@ Count=1
 
 [startInit]
 TextName=Begin Initiailze
-CmdLine=./res/RunScript/startInit.sh
+CmdLine=./res/RunScript/startInit.sh
+
+[startChromium]
+Type=1
+CmdLine=Chromium	http://55.14.95.131:8100/