Ver código fonte

#IQRV #comment [Chromium] 添加清缓存的操作

gifur 3 anos atrás
pai
commit
623c6b7236

+ 2 - 2
Module/include/EventCode.h

@@ -729,7 +729,7 @@ ERR_ACCESSAUTH_SHA1_HASH}
 #define LOG_EVT_USB_CONTROL_OP 0x21400003
 #define LOG_EVT_USB_LIGHT_ON 0x21400004
 #define LOG_EVT_USB_LIGHT_OFF 0x21400005
-#define LOG_DEVICECONTROL_BROWSER_CACHE_CLEAER 0x21400006
+//#define LOG_DEVICECONTROL_BROWSER_CACHE_CLEAER 0x21400006
 #define LOG_DEVICECONTROL_SOGOU_SCRIPTS_NOT_EXISTS 0x21400007
 #define LOG_DEVICECONTROL_SOGOU_SCRIPTS_EXECUTE_SUCC 0x21400008
 #define LOG_DEVICECONTROL_SOGOU_SCRIPTS_EXECUTE_FAILED 0x21400009
@@ -906,7 +906,7 @@ ERR_ACCESSAUTH_SHA1_HASH}
 #define	LOG_EVT_CHROMIUM_OPEN_MAIN_URL	0x40200014
 #define	LOG_EVT_CHROMIUM_OPEN_MAIN_WITH_UOS 0x40200015
 #define	LOG_EVT_CHROMIUM_OPEN_AD_WITH_UOS 0x40200016
-
+#define	LOG_EVT_CHROMIUM_BROWSER_CACHE_CLEAER 0x40200017
 
 #define EVENT_RESTART_SHELL      0x50300001  // 重启Shell
 #define EVENT_RESTART_MACHINE     0x50300002  // 重启终端

+ 45 - 3
Module/mod_chromium/mod_chromium.cpp

@@ -7,7 +7,9 @@
 #define SPLIT_SLASH_STR "\\"
 #else
 #include <signal.h>
+#include "toolkit.h"
 #include "path.h"
+#include "fileutil.h"
 #endif
 #include "baseEx.h"
 #include "CWebsocketServer.h"
@@ -173,6 +175,8 @@ namespace Chromium {
 			CModTools::get_mutable_instance().InitCModTools(this);
 			CModTools::get_mutable_instance().killAllChromium();
 
+			DoBrowserCacheClearJob();
+
 #if (defined _WIN32 || defined _WIN64)
 #else
 			CSimpleStringA strDbgPath;
@@ -201,8 +205,6 @@ namespace Chromium {
 				}).detach();
 #endif
 
-
-
 			GetFunction()->GetSystemStaticInfo(m_sysInfo);
 			if (!IsConfigMode()) {
 				CSmartPointer<IConfigInfo> spConfig;
@@ -732,7 +734,47 @@ namespace Chromium {
 		m_firstStartMain.unlock();
 	};
 
-	void CChromiumEntity::OnTaskTimerListener(void* pData)
+    void CChromiumEntity::DoBrowserCacheClearJob()
+    {
+        LOG_FUNCTION();
+
+        CSmartPointer<IConfigInfo> spConfig;
+        ErrorCodeEnum err = GetFunction()->OpenConfig(Config_Run, spConfig);
+        CSimpleStringA str(true);
+        err = spConfig->ReadConfigValue("Browser", "CacheClear", str);
+        if (str.Compare("true", true) == 0) {
+
+            BOOL bSucc(FALSE);
+            CSimpleStringA strCachePath;
+            GetFunction()->GetPath("Temp", strCachePath);
+            if (!strCachePath.IsNullOrEmpty()) {
+
+                bSucc = TRUE;
+
+                const char* cacheDirs[] = { "cefCache", "cefCache_Ad", "cefCache_breakdown", "cefCache_ErrNotify", "cefCache_main"
+                    , "UOSBrowser_Ad", "UOSBrowser_main" };
+
+                for (int i = 0; i < array_size(cacheDirs); ++i) {
+                    CSimpleStringA strcefCachePath(strCachePath);
+                    strcefCachePath += SPLIT_SLASH_STR;
+                    strcefCachePath += cacheDirs[i];
+
+                    if (ExistsDirA(strcefCachePath)) {
+                        RemoveDirRecursiveA(strcefCachePath);
+                        LogWarn(Severity_Middle, Error_Debug, LOG_EVT_CHROMIUM_BROWSER_CACHE_CLEAER,
+                                CSimpleStringA::Format("clear chromium browser cache: %s", strcefCachePath.GetData()));
+                    }
+
+                }
+            }
+
+            if (bSucc) {
+                spConfig->WriteConfigValue("Browser", "CacheClear", NULL);
+            }
+        }
+    }
+
+    void CChromiumEntity::OnTaskTimerListener(void* pData)
 	{
 		static int max_restartTime = 3;
 		DbgEx("OnTaskTimerListener");

+ 2 - 0
Module/mod_chromium/mod_chromium.h

@@ -150,6 +150,8 @@ namespace Chromium {
 
 		void checkUrlStartTime();
 
+		void DoBrowserCacheClearJob();
+
 		void OnPreStart_Init(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext);
 		bool OnPreStart_socketStart(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext);
 		bool OnPreStart_register(CAutoArray<CSimpleStringA>& strArgs, CSmartPointer<ITransactionContext>& pTransactionContext);