Jelajahi Sumber

!10384 日志重复、安装时候启动MediaController、其他修复
Merge pull request !10384 from 80174847/ST2

杨诗友80174847 1 tahun lalu
induk
melakukan
70a746ce20

+ 1 - 1
DevAdapter/CMakeLists.txt

@@ -288,7 +288,7 @@ if(DEVADAPTER_USING_CONAN)
         #合入目前全量包中的DEP文件内容
         conan_cmake_run(REQUIRES VendorDLL/7.6.0@LR04.02_VendorLib/testing
             BASIC_SETUP CMAKE_TARGETS)
-        set(SELF_CONAN_LIB_NAME self/2024.0607.01@LR04.02_VendorLib/testing)
+        set(SELF_CONAN_LIB_NAME self/2024.0808.02@LR04.02_VendorLib/testing)
         add_subdirectory(self)
     endif(MSVC)
 

+ 13 - 0
Framework/RvcLogSdk/log_api.cpp

@@ -200,6 +200,19 @@ if (result->statusCode / 100 == 2)
 
 */
 
+int LOG_OS_TestLogPost(const char* url, const char* body)
+{
+	HttpClientResponseResult result;
+	HttpClientRequestConfig config(HttpRequestMethod::POST, url);
+
+	std::string str((const char*)body);
+	config.SetJsonBody(str.c_str());
+	RestfulClient client = RestfulClient::getInstance();
+	config.PreDo();
+	client.Do(&config, &result);
+	return 0;
+}
+
 int LOG_OS_HttpPost(const char* url,
 	char** header_array,
 	int header_count,

+ 2 - 0
Framework/RvcLogSdk/log_api.h

@@ -29,5 +29,7 @@ post_log_result * post_logs(const char *endpoint, const char * accesskeyId, cons
 
 void post_log_result_destroy(post_log_result * result);
 
+int LOG_OS_TestLogPost(const char* url, const char* body);
+
 LOG_CPP_END
 #endif

+ 8 - 2
Framework/RvcLogSdk/log_db.cpp

@@ -229,9 +229,11 @@ int open_db(log_db_manager * manager) {
 				COLUMN_Encrypt + " INTEGER DEFAULT 0," +
 				COLUMN_Content + " TEXT" +
 				");");
+			
 			int CTRet = manager->db->execDML(strCreateTable.c_str());
 			//aos_debug_log((LB, "create log table result %d, db name %s", CTRet, name));
 		}
+		//manager->db->execDML("PRAGMA synchronous = FULL;");
 	}
 	catch (CppSQLite3Exception& e)
 	{
@@ -575,7 +577,7 @@ log_group_builder* db_read_table_last_logs(log_db_manager* manager, int count) {
 			//if can not find, try to get LOG_TYPE_SYS_SKYEYE logs
 			std::string searchSys= "select * from ";
 			searchSys.append(manager->table_name);
-			searchSys.append(" where " + COLUMN_Status + " != ").append(strStatus).append(strStatus).append(" AND ").append(COLUMN_Type).append("=").append(std::to_string(LOG_TYPE_SYS_SKYEYE));
+			searchSys.append(" where " + COLUMN_Status + " != ").append(strStatus).append(" AND ").append(COLUMN_Type).append("=").append(std::to_string(LOG_TYPE_SYS_SKYEYE));
 			searchSys.append(/*" order by " + COLUMN_DateTime + */" LIMIT ").append(strCount).append(";");
 			q = manager->db->execQuery(searchSys.c_str());
 		}
@@ -718,7 +720,11 @@ int db_delete_one(log_db_manager* manager, char* uuid) {
 
 	try {
 		int CTRet = manager->db->execDML(sql.c_str());
-		//aos_debug_log((LB, "db %s delete one uuid:%s log result %d", manager->file_name.c_str(), uuid, CTRet));
+		/*
+		aos_debug_log((LB, "db %s delete one uuid:%s log result %d", manager->file_name.c_str(), uuid, CTRet));
+		if (CTRet != 1)
+			MessageBox(NULL, NULL, NULL, 0);
+		*/
 	}
 	catch (CppSQLite3Exception& e)
 	{

+ 17 - 1
Framework/RvcLogSdk/log_producer_manager.c

@@ -187,6 +187,17 @@ void* log_producer_read_persistent_thread(void* param)
 
 
                         send_param = create_log_producer_send_param(config, producer_manager, lz4_buf, builder);
+                        /*
+                        int i = 0;
+                        for (i = 0; i < send_param->log_buf->n_logs; i++)
+                        {
+                            char uuid[MAX_UUID_LEN];
+                            memset(uuid, 0, MAX_UUID_LEN);
+                            memcpy(uuid, send_param->log_buf->uuid[i], MAX_UUID_LEN);
+                            send_log_data("http://127.0.0.1:9000/read_uuid", uuid);
+                        }
+                            */
+
                         producer_manager->send_param_queue[producer_manager->send_param_queue_write++ % producer_manager->send_param_queue_size] = send_param;//放入发送队列
                         CS_LEAVE(producer_manager->lock);
                     }
@@ -242,6 +253,7 @@ void* log_producer_read_persistent_thread(void* param)
             {
                 log_producer_send_param* send_param = producer_manager->send_param_queue[producer_manager->send_param_queue_read++ % producer_manager->send_param_queue_size];
                 // push always success
+                
                 log_queue_push(producer_manager->sender_data_queue, send_param);//往发送队列存
             }
         }
@@ -290,6 +302,7 @@ void* log_producer_write_persistent_thread(void* param)
             continue;
         }
         //第一次执行清理
+        
         if (producer_manager->producer_config->enableGuarder && first_process) {
             int recoverRst;
             CS_ENTER(persistent_manager->lock);
@@ -306,6 +319,7 @@ void* log_producer_write_persistent_thread(void* param)
             CS_LEAVE(persistent_manager->lock);
             first_process = 0;
         }
+        
 
         //huchen add,注意事务不能被其他线程打断,通过lock保证事务执行完成
         CS_ENTER(persistent_manager->lock);
@@ -487,7 +501,9 @@ log_producer_manager* create_log_producer_manager(log_producer_config* producer_
             producer_manager->sender_data_queue = log_queue_create(base_queue_size * 2);
             threadId = 0;
             for (; threadId < producer_manager->producer_config->sendThreadCount; ++threadId)
-            {
+            {              
+               
+
                 THREAD_INIT(producer_manager->send_threads[threadId], log_producer_send_thread, producer_manager);
             }
             producer_manager->read_thread = (THREAD*)malloc(sizeof(THREAD));

+ 4 - 0
Framework/RvcLogSdk/log_producer_sender.c

@@ -133,6 +133,10 @@ void * log_producer_send_thread(void * param)
 
     return 0;
 }
+void send_log_data(const char* url, const char* body)
+{
+    LOG_OS_TestLogPost(url, body);
+}
 
 void * log_producer_send_fun(void * param)
 {

+ 2 - 0
Framework/RvcLogSdk/log_producer_sender.h

@@ -49,6 +49,8 @@ extern log_producer_send_param * create_log_producer_send_param(log_producer_con
                                                                 lz4_log_buf* log_buf,
                                                                 log_group_builder * builder);
 
+//extern void send_log_data(const char* url, const char* body);
+
 LOG_CPP_END
 
 #endif //LOG_C_SDK_LOG_PRODUCER_SENDER_H

+ 2 - 2
Framework/spbase/sp_tbs_win.cpp

@@ -771,7 +771,7 @@ static void __bcm_on_message_raw(sp_bcm_listener_t *listener, int from_client_id
 	*msg_pkt = NULL;
 	sp_bcm_listener_inc_ref(listener); //@
 	post_msg(entry->conn->tbs, MSG_ON_EVENT, (int)entry, (int)pkt);
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("post event from_client_id:%d", from_client_id);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("post event from_client_id:%d", from_client_id);
 }
 
 static void __bcm_on_destroy(sp_bcm_listener_t *listener, void *user_data)
@@ -780,7 +780,7 @@ static void __bcm_on_destroy(sp_bcm_listener_t *listener, void *user_data)
 	entry->conn->register_cnt--;
 	hlist_del(&entry->hentry);
 	sock_connection_dec_ref(entry->conn);
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("unregister event ok! register_id = %d", entry->register_id);
+	DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("unregister event ok! register_id = %d", entry->register_id);
 	free(entry);
 }
 

+ 9 - 8
Module/mod_ResourceWatcher/ResourceWatcherFSM.cpp

@@ -247,7 +247,7 @@ bool ResourceWatcherFSM::GetMonitorInfo(CSimpleStringA& outInfo)
     std::string sucContent, failedContent;
     CSimpleStringA strCmd("xrandr | grep \" connected\" | sed -e \"s/\([A-Z0-9]\+\) connected.*/\1/\"");
     bool ret = SP::Module::Util::ShellExecute(strCmd.GetData(), sucContent, failedContent);
-    DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("{%s}:{%s}{%s}", strCmd.GetData(), sucContent.c_str(), failedContent.c_str());
+    //DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("{%s}:{%s}{%s}", strCmd.GetData(), sucContent.c_str(), failedContent.c_str());
     std::string msg = SP::Utility::ToTrim(sucContent);
     SP::Utility::replaceInPlace(msg, "\n", "|");
     outInfo = msg.c_str();
@@ -348,9 +348,8 @@ ErrorCodeEnum ResourceWatcherFSM::OnInit()
     m_strTerminalNo = m_RvcSysinfo.strTerminalID;
     m_bFirstRunAfterBoot = DetectIsFirstRunAtBoot();
     if (m_bFirstRunAfterBoot) {
-        DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("First time to run after system boot.");
+        DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("First time to run after system boot.");
     }
-
     if (m_bFirstRunAfterBoot) {
 #if defined(RVC_OS_WIN)
 		//GetSystemMetrics (SM_CMONITORS) 计数仅显示可见的显示器
@@ -3558,7 +3557,7 @@ void ResourceWatcherFSM::AlarmSystemBasicInfo()
 
 BOOL ResourceWatcherFSM::DetectIsFirstRunAtBoot()
 {
-    const BOOL bSet = SP::Module::Comm::IsFirsRunAppAfterSystemBoot(GetEntityBase());
+    const BOOL bSet = SP::Module::Comm::IsFirsRunAppAfterSystemBoot(GetEntityBase(), LOG_RESOURCEWATCHER_FIRST_RUN_AFTER_BOOT);
     if (bSet) {
 		ErrorCodeEnum eRet = GetEntityBase()->GetFunction()->SetSysVar(SYSVAR_FRAMEWORK_FIRST_BOOT, SYSVAR_FRAMEWORK_FIRST_BOOT_YES);
 		if (eRet != Error_Succeed) {
@@ -3647,16 +3646,18 @@ void ResourceWatcherFSM::DetectSoftwareInstallStatus()
         if (value.IsNullOrEmpty()) {
             break;
         }
+        DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("CenterSettings:[%s]", value.GetData());
         if (value.IndexOf("#") != -1) {
-            CAutoArray<CSimpleStringA> items = value.Split('#');
-            strSoftwaresNames[i] = items[0];
-            strSoftwaresVers[i] = items[1];
+            /** CSimpleString会带Trim操作,在这里不适用  [Gifur@202485]*/
+            auto items = SP::Utility::Split(std::string(value.GetData()), '#');
+            strSoftwaresNames[i] = items[0].c_str();
+            strSoftwaresVers[i] = items[1].c_str();
         }
         else
         {
             strSoftwaresNames[i] = value;
         }
-        DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Detect SoftDetect from CentralSetting, %d: %s,%s,%s."
+        DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("Detect SoftDetect from CentralSetting, %d: [%s],[%s],[%s]"
             , i, item.GetData(), strSoftwaresNames[i].GetData(), strSoftwaresVers[i].GetData());
         nNameCounts++;
     }

+ 8 - 8
Module/mod_ScannerSet/ScannerSetFSM.cpp

@@ -387,7 +387,7 @@ int CScannerFSM::StartPreview(SpReqAnsContext<ScannerService_StartPreview_Req,
 
 	if(!IsSuitableEntityAvailable())
 	{
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_StartPreview).setResultCode("RTA2O01")("entity HSPScanner is not avaible");
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_StartPreview).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}
@@ -427,7 +427,7 @@ int CScannerFSM::StopPreview(SpReqAnsContext<ScannerService_CancelPreview_Req,
 	if(!IsSuitableEntityAvailable())
 	{
 		//Error_DevNotAvailable,识别该错误码,并提示客户,但不纳入万笔硬件故障统计 主 题:Re: 【阅知】万笔业务故障web端优化
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_CancelPreview).setResultCode("RTA2O01")();
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_CancelPreview).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}
@@ -459,7 +459,7 @@ int CScannerFSM::ScanImage(SpReqAnsContext<ScannerService_ScanImage_Req,
 
 	if(!IsSuitableEntityAvailable())
 	{
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_ScanImage).setResultCode("RTA2O01")();
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_ScanImage).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}
@@ -525,7 +525,7 @@ int CScannerFSM::SetProperty(SpReqAnsContext<ScannerService_SetProperty_Req,
 	int nRes = 0;
 	if(!IsSuitableEntityAvailable())
 	{
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_SetProperty).setResultCode("RTA2O01")();
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_SetProperty).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}
@@ -559,7 +559,7 @@ int CScannerFSM::ShowLTProperty(SpReqAnsContext<ScannerService_ShowProperty_Req,
 	int retCode = 0;
 	if(!IsSuitableEntityAvailable())
 	{
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_ShowProperty).setResultCode("RTA2O01")();
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_ShowProperty).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}
@@ -593,7 +593,7 @@ int CScannerFSM::SetWinPos(SpReqAnsContext<ScannerService_SetWindowPos_Req,
 	DWORD dwUserCode(0);
 	if(!IsSuitableEntityAvailable())
 	{
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_SetWindowPos).setResultCode("RTA2O01")();
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_SetWindowPos).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}
@@ -636,7 +636,7 @@ int CScannerFSM::GetDevStatus(SpReqAnsContext<ScannerService_GetDevStatus_Req,
 
 	if(!IsSuitableEntityAvailable())
 	{
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_GetDevStatus).setResultCode("RTA2O01")();
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_GetDevStatus).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}
@@ -667,7 +667,7 @@ int CScannerFSM::GetDevInfo(SpReqAnsContext<ScannerService_GetDevInfo_Req,
 
 	if(!IsSuitableEntityAvailable())
 	{
-		DbgWithLink(LOG_LEVEL_ERROR, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_GetDevInfo).setResultCode("RTA2O01")();
+		DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__).setLogCode(ScannerService_LogCode_GetDevInfo).setResultCode("RTA2O01")("entity HSPScanner is not available");
 		ctx->Answer(Error_DevNotAvailable, LOG_WARN_MODULE_INVALID);
 		return 1;
 	}

+ 47 - 7
Module/mod_chromium/CModTools.cpp

@@ -34,6 +34,7 @@
 
 
 
+
 void SystemRunTest(const std::string& systemCmd);
 
 
@@ -293,7 +294,7 @@ namespace Chromium {
 		CSimpleString dstCmd = strChromiumPath + " --url=" + errPageUrl;
 
 #else
-        CSimpleString dstCmd = generateBrowserCMDForEverything(errPageUrl.GetData(), 2).c_str();
+        CSimpleString dstCmd = generateBrowserCMDForEverything(errPageUrl.GetData(), 2, false).c_str();
 #endif //RVC_OS_WIN
 
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("GenerateErrPage dstPage=%s", dstCmd.GetData());
@@ -468,7 +469,7 @@ namespace Chromium {
 	std::string CModTools::generateAdCmd(std::string AdUrl) {
 		
 #if defined(RVC_OS_LINUX)
-		return generateBrowserCMDForEverything(AdUrl, 1);
+		return generateBrowserCMDForEverything(AdUrl, 1, g_unsafeAd);
 #else
         CSimpleStringA strChromiumPath = GetCefHead(this->m_pEntity), strCmdLine = "";
         strCmdLine.Append(strChromiumPath).Append(" --url=").Append(AdUrl.c_str());
@@ -535,14 +536,14 @@ namespace Chromium {
 #if defined(_MSC_VER)
 		return generateCefclientCmd(false, mainUrl);
 #else
-        return generateBrowserCMDForEverything(mainUrl, 0);
+        return generateBrowserCMDForEverything(mainUrl, 0, false);
 #endif //_MSC_VER
 	}
 
 	std::string CModTools::generateInstallCmd(std::string installUrl)
 	{
 #if defined(RVC_OS_LINUX)
-		return generateBrowserCMDForEverything(installUrl, 0);
+		return generateBrowserCMDForEverything(installUrl, 0, false);
 #else
 		CSimpleStringA strChromiumPath = GetCefHead(this->m_pEntity), strCmdLine = "";
 		strCmdLine.Append(strChromiumPath).Append(" --url=").Append(installUrl.c_str());
@@ -708,11 +709,11 @@ namespace Chromium {
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("cmdline : %s", strCmdLine.GetData());
         return strCmdLine.GetData();
 #else
-        return generateBrowserCMDForEverything(mainUrl, 3);
+        return generateBrowserCMDForEverything(mainUrl, 3, false);
 #endif //RVC_OS_WIN
 	}
 #if defined(RVC_OS_LINUX)
-    std::string CModTools::generateBrowserCMDForEverything(const std::string& url, int pageType)
+    std::string CModTools::generateBrowserCMDForEverything(const std::string& url, int pageType, bool ignoreSecurity)
     {
         CSimpleStringA strBasePath(true);
         this->m_pEntity->GetFunction()->GetPath("BaseDir", strBasePath);
@@ -720,6 +721,31 @@ namespace Chromium {
         const std::string execute_newbrowser_path = strPath + SPLIT_SLASH_STR + "res" + SPLIT_SLASH_STR + "RunScript" + SPLIT_SLASH_STR + "startBrower.sh";
         const std::string execute_oldbrowser_path = strPath + SPLIT_SLASH_STR + "res" + SPLIT_SLASH_STR + "RunScript" + SPLIT_SLASH_STR + "startUOSBrower.sh";
 
+		auto getUnsafeDomain = [](const std::string& url)
+		{
+			// 移除协议部分
+			std::string::size_type pos = url.find("://");
+			if (pos != std::string::npos) {
+				pos += 3;
+			}
+			else {
+				pos = 0;
+			}
+
+			// 查找域名结束位置
+			std::string::size_type endPos = url.find('/', pos);
+			if (endPos == std::string::npos) {
+				endPos = url.length();
+			}
+
+			// 提取域名
+			std::string domain = url.substr(pos, endPos - pos);
+
+			domain = "http://" + domain;
+			return domain;
+		};
+
+
 		//旧版浏览器(系统自带)
         if (m_UseUOSBrowser == 1) {
 
@@ -750,6 +776,13 @@ namespace Chromium {
 				strParams.Append(" 	--use-fake-ui-for-media-stream");
 			}
 
+			if (ignoreSecurity)
+			{
+				auto unsafeDomain = getUnsafeDomain(url);
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("srcurl:%s, unsafeDomain:%s", url.c_str(), unsafeDomain.c_str());
+				strParams.Append(" 	--unsafely-treat-insecure-origin-as-secure=").Append(unsafeDomain.c_str());
+			}
+
             CSimpleStringA usrDataPath(tempPath);
             if (pageType == 0) {
                 usrDataPath.Append(SPLIT_SLASH_STR).Append("UOSBrowserConfigMain_").Append((+ERR_PAGE_REASON::main)._to_string());
@@ -803,6 +836,13 @@ namespace Chromium {
 				strParams.Append(" 	--use-fake-ui-for-media-stream");
 			}
 
+			if (ignoreSecurity)
+			{
+				auto unsafeDomain = getUnsafeDomain(url);
+				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("srcurl:%s, unsafeDomain:%s", url.c_str(), unsafeDomain.c_str());
+				strParams.Append(" 	--unsafely-treat-insecure-origin-as-secure=").Append(unsafeDomain.c_str());
+			}
+
             CSimpleStringA usrDataPath(tempPath);
             if (pageType == 0) {
                 usrDataPath.Append(SPLIT_SLASH_STR).Append("BrowserConfigMain_").Append((+ERR_PAGE_REASON::main)._to_string());
@@ -905,7 +945,7 @@ namespace Chromium {
 #if defined(RVC_OS_WIN)
 			auto strCmdLine = generateCefclientCmd(false, std::get<0>(normalParam));
 #else
-			auto strCmdLine = generateBrowserCMDForEverything(std::get<0>(normalParam), 3);
+			auto strCmdLine = generateBrowserCMDForEverything(std::get<0>(normalParam), 3, false);
 #endif //RVC_OS_WIN
 	        auto openCefRet = openCef(strCmdLine, false);
 	        if (Error_Succeed == openCefRet.first)

+ 1 - 1
Module/mod_chromium/CModTools.h

@@ -89,7 +89,7 @@ namespace Chromium {
 		std::string generateCommonPage(std::string url, std::string name, int width, int height, int point_x, int point_y, int top);
 #if defined(RVC_OS_LINUX)
         //pagetype: 0: 首页全屏, 1:副屏全屏,2:错误页;3:外部调用
-        std::string generateBrowserCMDForEverything(const std::string& url, int pageType);
+        std::string generateBrowserCMDForEverything(const std::string& url, int pageType, bool ignoreSecurity);
 #endif //RVC_OS_LINUX
 
 		/**  [Gifur@2022125]*/

+ 3 - 1
Module/mod_chromium/CWebsocketServer.cpp

@@ -14,6 +14,7 @@
 #include <iostream>
 #include <locale>
 #include <codecvt>
+#include "../mod_guiconsole/GUIConsole_msg_g.h"
 
 
 #define DEFAULT_SERVER_PORT 9002
@@ -1219,9 +1220,10 @@ namespace Chromium {
 				do_sendJson(js, msg.getMessageType(), i->second, id);
 				unaccurate_js = js;
 			}
+			auto signatureID = msg.getSignatureID();
 			if (sendArr.size() == 0)
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("message_from_socket event sendArr.size() == 0");
-			else
+			else if(signatureID != eMsgSig_LogInfo && signatureID != eMsgSig_EntityStatus && signatureID != eMsgSig_PerformanceList)//fiter guiconsole msg
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("message_from_socket event %s send to arr:%s"
 					, unaccurate_js.c_str(), formatVectorToString(sendArr).c_str());
 

+ 1 - 0
Module/mod_chromium/baseEx.cpp

@@ -43,6 +43,7 @@ bool g_withConsole = false;
 bool g_withSpecialTest = false;
 bool g_withLinkLog = false;
 bool g_hasInitCfg = false;
+bool g_unsafeAd = false;
 std::string g_usercodeTranslateFile = "";
 std::map<std::string, std::vector<std::string>> g_networkParse;
 std::map<std::string, clock_t> g_networkExpiredData;

+ 1 - 0
Module/mod_chromium/baseEx.h

@@ -12,6 +12,7 @@ extern bool g_withMedia;
 extern bool g_withConsole;
 extern bool g_withLinkLog;
 extern bool g_hasInitCfg;
+extern bool g_unsafeAd;
 
 #define DEFAULT_KEY_LEN 256
 

+ 68 - 39
Module/mod_chromium/mod_chromium.cpp

@@ -78,7 +78,7 @@ namespace Chromium {
 	CChromiumEntity::CChromiumEntity() :m_pWsServer(NULL), m_iTcpBridgePort(4504), m_pTimerListener(NULL), m_strCustomMainUrl(true)
 		, m_runAd(false), m_runMain(false), m_runExtend(false), m_runLogin(false), m_withBrowser(false), m_withMin(false), m_withClose(false)
 		, m_withDebugMode(false), m_withMagic(false), m_withNoFileLog(false), m_installMode(false), m_withMedia(false), m_withSpecialTest(false), m_withConsole(false),
-		m_withLinkLog(false)
+		m_withLinkLog(false), m_withUnsafeAd(false)
 	{
 		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CChromiumEntity constructor");
 
@@ -376,6 +376,8 @@ namespace Chromium {
 								m_withMagic = true;
 							else if (!trimStr.Compare("with_media", true))//the browser will support media play and RTC function
 								m_withMedia = true;
+							else if (!trimStr.Compare("with_unsafe_ad", true))
+								m_withUnsafeAd = g_unsafeAd = true;
 							else if (!trimStr.Compare("with_specialTest", true))//chromium will run specical test
 								m_withSpecialTest = true;
 							else if (!trimStr.Compare("with_LinkLog", true))//control do_sendJson to print more logs(request)
@@ -747,6 +749,10 @@ namespace Chromium {
 				auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
 #endif // RVC_OS_LINUX
 				startWithCfg();//it will open install page
+
+				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)
 				{
@@ -822,7 +828,6 @@ namespace Chromium {
 				boost::this_thread::sleep_for(boost::chrono::microseconds(100));
 				continue;
 			}
-
 			m_eventContorl.lock();
 			SYS_EVENT_PARAM curEvent = m_eventArr.front();
 			m_eventArr.pop_front();
@@ -848,72 +853,96 @@ namespace Chromium {
 			{
 				if (0 == CSimpleStringA("A").Compare(curEvent.value.c_str(), true))
 				{
-					if (CModTools::get_mutable_instance().IsConfigWork())//url正常时才关闭
+					try
 					{
+						if (CModTools::get_mutable_instance().IsConfigWork())//url正常时才关闭
+						{
 #if defined(RVC_OS_LINUX)
-						auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
+							auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
 #endif // RVC_OS_UOS
-						
-						if (m_runAd) openAdPage();
-						openMainPage();
-						CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::breakdown);
+
+							if (m_runAd) openAdPage();
+							openMainPage();
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::breakdown);
+
+							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());
-						}
+							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);
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
 #endif
-						
-						//DbgEx("UnregistSysVarEvent TerminalStage %s", Error_Succeed == GetFunction()->UnregistSysVarEvent("TerminalStage") ? "success" : "fail");
-					}
+
+							//DbgEx("UnregistSysVarEvent TerminalStage %s", Error_Succeed == GetFunction()->UnregistSysVarEvent("TerminalStage") ? "success" : "fail");
 				}
+			}
+					catch (const std::exception& e)
+					{
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("TerminalStage:A run exception, %s", e.what());
+					}
+		}
 				else if (0 == CSimpleStringA("X").Compare(curEvent.value.c_str(), true))
 					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("TerminalStage X, do nothing.");
 				else
 				{
-					if (!m_withBrowser)
+					try
 					{
+						if (!m_withBrowser)
+						{
 #if defined(RVC_OS_LINUX)
-						auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
+							auto srcPids = getUosBrowserPIDs(CModTools::get_mutable_instance().getUosBrowser());
 #endif // RVC_OS_UOS
 
 
 #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());
-						}
+							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);
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::startup);
 #endif
-						
-						auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(
-							0 == CSimpleStringA("S").Compare(curEvent.value.c_str(), true) ? ERR_PAGE_REASON::warnPrompt : ERR_PAGE_REASON::breakdown,
-							std::tuple < std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("access failed, open err page %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
-						CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::main);						
+
+							auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(
+								0 == CSimpleStringA("S").Compare(curEvent.value.c_str(), true) ? ERR_PAGE_REASON::warnPrompt : ERR_PAGE_REASON::breakdown,
+								std::tuple < std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
+							DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("access failed, open err page %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
+							CModTools::get_mutable_instance().StopChromiumBrowser(ERR_PAGE_REASON::main);
+						}
+					}
+					catch (const std::exception& e)
+					{
+						DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("TerminalStage:other run exception, %s", e.what());
 					}
 				}
 
 			}
 			else if (0 == CSimpleStringA("CardStoreInUse").Compare(curEvent.key.c_str(), true) && CheckIsCardStore())
 			{
-				if (0 == CSimpleStringA("Y").Compare(curEvent.value.c_str(), true))
+				try
 				{
-					auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::CardStoreIsBusy,
-						std::tuple <std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
-					DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CardStoreIsBusy, open page CardStoreIsBusy %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
+					if (0 == CSimpleStringA("Y").Compare(curEvent.value.c_str(), true))
+					{
+						auto openRet = CModTools::get_mutable_instance().StartChromiumBrowser(ERR_PAGE_REASON::CardStoreIsBusy,
+							std::tuple <std::string, std::string>(m_sysInfo.strTerminalID.GetData(), generateTimeStr()));
+						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CardStoreIsBusy, open page CardStoreIsBusy %s, %d", Error_Succeed == openRet.first ? "success" : "fail", openRet.second);
+					}
+					else
+					{
+						CModTools::get_mutable_instance().StopChromiumBrowser_security(ERR_PAGE_REASON::CardStoreIsBusy, 2);
+					}
 				}
-				else
+				catch (const std::exception& e)
 				{
-					CModTools::get_mutable_instance().StopChromiumBrowser_security(ERR_PAGE_REASON::CardStoreIsBusy, 2);
+					DbgWithLink(LOG_LEVEL_WARN, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("CardStoreInUse run exception, %s", e.what());
 				}
 			}
 		}

+ 1 - 0
Module/mod_chromium/mod_chromium.h

@@ -130,6 +130,7 @@ namespace Chromium {
 		CSimpleStringA m_strCustomMainUrl, m_strCustomAdUrl;
 		bool m_runAd/*广告*/, m_runMain/*业务*/, m_runExtend/*低柜副屏*/, m_runLogin/*用户桌面,可能木有用*/, m_withBrowser/*是否需要与browser交互*/;
 		bool m_withDebugMode/*是否启动debug模式*/, m_withMagic/*启用随机共享内存*/, m_withNoFileLog/*是否不需要本地日志落盘*/, m_withMedia/*开启多媒体选项*/;
+		bool m_withUnsafeAd/*Ad页面忽略安全选项*/;
 		bool m_withConsole;
 		bool m_withSpecialTest/*开启一些终端功能的测试*/, m_withLinkLog/*开启链路中的中间链路日志*/;
 		bool m_withMin, m_withClose, m_installMode;

+ 4 - 5
Module/mod_gpio/mod_gpio.cpp

@@ -1144,10 +1144,10 @@ void CGpioEntity::OnPositiveLevelTimerOut(void* pData)
                 if (DetectBit(btInput, PICKUPSENSOR)) {
 
                     if (m_ePickUpFlag == InActive) {
-
-                        if (IfHaveMoveDetect())
-                            LogEvent(Severity_Middle, LOG_EVT_PICKUP, "话机提起");
-
+						if (IfHaveMoveDetect()) {
+							LogEvent(Severity_Middle, LOG_EVT_PICKUP, "Life the Phone up");
+							DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER)("话机提起");
+						}
                         m_ePickUpFlag = Actived;
                         m_bPickUpRound = false;
 
@@ -1163,7 +1163,6 @@ void CGpioEntity::OnPositiveLevelTimerOut(void* pData)
 						LogEvent(Severity_Middle, LOG_EVT_ONHOOK, "Put the Phone down");
 						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER)("话机放下");
                     }
-
                     m_ePickUpFlag = InActive;
                     m_bPickUpRound = true;
 

+ 1 - 1
Module/mod_mediacontroller/capture.h

@@ -52,7 +52,7 @@ namespace MediaController {
 	typedef struct capture_t capture_t;
 	typedef struct rvc_sales_audio_capture_s rvc_sales_audio_capture_t;
 
-	typedef struct capture_config_t {
+	typedef struct capture_config_s {
 		int video_env_dev; // -1 means invalid
 		int video_opt_dev; // -1 means invalid
 		int video_env_rotate; // counter-clockwise degree, ignore currently

+ 11 - 10
Module/mod_mediacontroller/mod_mediacontroller.cpp

@@ -87,25 +87,29 @@ static int GetFormatString(char* strVala, size_t uValaLen, char* strValb, size_t
 }
 
 
-CMediaControllerEntity::CMediaControllerEntity(): m_capture(NULL), m_salesaudio_capture(NULL), m_lCaptureEnvCount(0), m_nCameraErrorCode(Error_Succeed),
-	m_lCaptureEnvOptCount(0), m_lCaptureOptCount(0), 
-	m_nCameraCount(2), m_pHMClient(NULL),m_pMediaControllerChannel(NULL),m_bIsRemoteRecord(false), m_bHasStartSpeakerRender(false), m_bConnectedAssist(false)
+CMediaControllerEntity::CMediaControllerEntity(): m_capture(NULL), m_salesaudio_capture(NULL), m_lCaptureEnvCount(0), m_lCaptureEnvOptCount(0), m_lCaptureOptCount(0),
+	m_pHMClient(NULL),m_pMediaControllerChannel(NULL),m_bIsRemoteRecord(false), m_bHasStartSpeakerRender(false), m_bConnectedAssist(false)
 {
-#ifdef RVC_OS_LINUX
+#ifdef RVC_OS_WIN
+	m_pAudioRenderObj = NULL;
+	m_bSpeakerCap = true;
+#else
 	m_env_mutex = PTHREAD_MUTEX_INITIALIZER;
 	m_opt_mutex = PTHREAD_MUTEX_INITIALIZER;
 	m_envopt_mutex = PTHREAD_MUTEX_INITIALIZER;
 	m_pAudioCap = NULL;
-#else
-	m_pAudioRenderObj = NULL;
-	m_bSpeakerCap = true;
 #endif
+
 	m_iCamTimeout = CAMERA_TIMEOUT;
 	m_iDelayTime = RVC_MAX_DELAY_TIME;
 	m_interValTime = RVC_CAM_INTERVAL_TIME;
 	m_bOnBusiness = false;
 	m_bJsOccupyCamera = false;
 	m_bCameraOffTimerOn = false;
+	m_eDeviceType = eStand2sType;
+	m_nCameraErrorCode = Error_Succeed;
+	memset(&conf, 0, sizeof(capture_config_t));
+	memset(&m_sales_audio_conf, 0, sizeof(rvc_audio_capture_config_t));
 }
 
 void CMediaControllerEntity::OnSysVarEvent(const char *pszKey, const char *pszValue,const char *pszOldValue,const char *pszEntityName)
@@ -240,9 +244,6 @@ void CMediaControllerEntity::OnStarted()
 	}
 #endif
 
-	memset(&conf,0,sizeof(capture_config_t));
-	memset(&m_sales_audio_conf, 0, sizeof(rvc_audio_capture_config_t));
-
 	int icamnum = 0;
 	Error = (ErrorCodeEnum)capture_lib_init(&icamnum);
 	if (Error == Error_Succeed)

+ 11 - 14
Module/mod_mediacontroller/mod_mediacontroller.h

@@ -124,14 +124,11 @@ public:
 	void LogTransactionRecordCtrEvt(int iEvtType);
 
 public:
-	bool m_bSendCameraError;
 	DeviceTypeEnum m_eDeviceType;
 	bool m_bStartCamera;
 	capture_config_t conf;
-	rvc_audio_capture_config_s m_sales_audio_conf;			
-	ErrorCodeEnum m_nCameraErrorCode;
-	int m_nCurActiveCamera;
-	int m_nCameraCount;  
+	rvc_audio_capture_config_t m_sales_audio_conf;
+	ErrorCodeEnum m_nCameraErrorCode; 
 	capture_t* m_capture;
 	rvc_sales_audio_capture_t* m_salesaudio_capture;
 	bool m_bHasStartSpeakerRender;
@@ -139,15 +136,6 @@ public:
 	bool m_bJsOccupyCamera;
 
 private:
-	LONG m_lCaptureEnvCount;
-	LONG m_lCaptureOptCount;
-	LONG m_lCaptureEnvOptCount;
-	CAutoArray<CUUID> m_arrListener;
-	ChannelMediaControllerClient* m_pMediaControllerChannel;
-	HealthManagerService_ClientBase* m_pHMClient;					
-	bool m_bIsRemoteRecord;					
-	bool m_bConnectedAssist;
-	int m_iCamTimeout;
 
 #ifdef RVC_OS_WIN
 	IAudioRender* m_pAudioRenderObj;
@@ -159,6 +147,15 @@ private:
 	IAudioMgr* m_pAudioCap;
 #endif
 
+	LONG m_lCaptureEnvCount;
+	LONG m_lCaptureOptCount;
+	LONG m_lCaptureEnvOptCount;
+	CAutoArray<CUUID> m_arrListener;
+	ChannelMediaControllerClient* m_pMediaControllerChannel;
+	HealthManagerService_ClientBase* m_pHMClient;					
+	bool m_bIsRemoteRecord;					
+	bool m_bConnectedAssist;
+	int m_iCamTimeout;
 	int m_iDelayTime;
 	int m_interValTime;
 	bool m_bCameraOffTimerOn;

+ 4 - 8
Other/libmediaplayer/audio.cpp

@@ -507,7 +507,7 @@ static void sdl_audio_callback(void *opaque, uint8_t*stream, int len)
 					if (is->m_baudio_decode_finished) {
 						is->rvc_hostapi->Debug(MEDIA_LOG_DEBUG, "audio_size is -1 sdl_audio_callback return, and set abort flag to true.");
 						is->on_audio_play_finished(is->user_data);
-                        is->rvc_hostapi->Debug(MEDIA_LOG_INFO, "SDL_SemPost m_audio_play_wait_sem.");
+                        is->rvc_hostapi->Debug(MEDIA_LOG_DEBUG, "SDL_SemPost m_audio_play_wait_sem.");
                         SDL_SemPost(is->m_audio_play_wait_sem);
 						return;
 					}
@@ -575,17 +575,13 @@ int open_audio(player_stat_t *is)
 	}
 	else {
         if (0 == open_audio_stream(is)) {
-            is->rvc_hostapi->Debug(MEDIA_LOG_DEBUG, "open audio stream success");
             iret = open_audio_playing(is);
-            if (0 == iret) {
-                is->rvc_hostapi->Debug(MEDIA_LOG_DEBUG, "open audio playing success");
-            }
-            else {
-                is->rvc_hostapi->Debug(MEDIA_LOG_DEBUG, "open audio playing failed");
+            if (0 != iret) {
+                is->rvc_hostapi->Debug(MEDIA_LOG_ERROR, "open audio playing failed");
             }
         }
         else {
-            is->rvc_hostapi->Debug(MEDIA_LOG_DEBUG, "open audio stream failed");
+            is->rvc_hostapi->Debug(MEDIA_LOG_ERROR, "open audio stream failed");
         }
 	}
 

+ 2 - 5
Other/libmediaplayer/player.cpp

@@ -228,16 +228,13 @@ static int mediaplay_thread_func(void* arg)
 						if (false == pPlayer->GetMediaPlayStartedFlag()) {
 							pPlayer->SetMediaPlayStartedFlag(true);
 						}
-						if (++icount % 20 == 0) {
-							pPlayer->GetMediaHostApi()->Debug(MEDIA_LOG_INFO, "audio playing ...........");
-						}
 					}
 					else {
 						pPlayer->GetMediaHostApi()->Debug(MEDIA_LOG_ERROR, "SDL_SemWaitTimeout error.");
 					}
 				}
 				else {
-					pPlayer->GetMediaHostApi()->Debug(MEDIA_LOG_INFO, "---------------stop audio playing thread---------------");
+					pPlayer->GetMediaHostApi()->Debug(MEDIA_LOG_DEBUG, "---------------stop audio playing thread---------------");
 					baudioplay_thread_exit = true;
 				}
 			}
@@ -685,7 +682,7 @@ int CMediaPlayer::StopMediaPlay()
 	SDL_LockMutex(m_meida_play_start_wait_mutex);
 
 	if (NULL != m_player_stat->m_audio_play_wait_sem) {
-		m_hostapi->Debug(MEDIA_LOG_INFO, "SDL_SemPost m_audio_play_wait_sem.");
+		m_hostapi->Debug(MEDIA_LOG_DEBUG, "SDL_SemPost m_audio_play_wait_sem.");
 		SDL_SemPost(m_player_stat->m_audio_play_wait_sem);
 	}
 

+ 1 - 3
Other/win/libwmpplayer/CPlayerDlg.cpp

@@ -419,9 +419,7 @@ BOOL CPlayerDlg::EndPlay()
 	m_playlist.clear();										// new added
 	
 	m_player->close();
-	
-	m_player->DestroyWindow();		// new added
-
+	//m_player->DestroyWindow();		// new added
 	// 关闭窗口
 	EndDialog(IDCANCEL);
 

+ 1 - 1
addin/cmake/DependencyConanFiles.cmake

@@ -69,7 +69,7 @@ if(MSVC)
 			#mod_chromium
 			CEFControl/1.0@LR04.02_ThirdParty/testing
 			#mod_chromium
-			cefclient_mutable/2.0.36@LR04.02_ThirdParty/testing
+			cefclient_mutable/2.0.37@LR04.02_ThirdParty/testing
 			#libaudiorender
 			speex/1.2.1@LR04.02_ThirdParty/testing
 			#libvideoframework