package com.tencent.xweb.util; import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import com.tencent.xweb.CommandCfg; import com.tencent.xweb.WebDebugCfg; import com.tencent.xweb.WebStorage; import com.tencent.xweb.WebView; import com.tencent.xweb.XWebChildProcessMonitor; import com.tencent.xweb.XWebSdk; import com.tencent.xweb.debug.CommandResult; import com.tencent.xweb.debug.CommandSourceType; import com.tencent.xweb.debug.DebugCommand; import com.tencent.xweb.debug.ICommandHandler; import com.tencent.xweb.debug.IDebugView; import com.tencent.xweb.debug.XWebDebugPluginHelper; import com.tencent.xweb.debug.XWebDebugRuntimeHelper; import com.tencent.xweb.debug.XWebSavePageHelper; import com.tencent.xweb.internal.ConstValue; import com.tencent.xweb.internal.IWebViewProvider; import com.tencent.xweb.updater.IXWebBroadcastListener; import com.tencent.xweb.updater.XWalkRuntimeRevertHelper; import com.tencent.xweb.updater.XWebAutoUpdater; import com.tencent.xweb.updater.XWebCorePredownScheduler; import com.tencent.xweb.updater.XWebCoreScheduler; import com.tencent.xweb.updater.XWebRuntimeUpdater; import com.tencent.xweb.updater.XWebUpdater; import com.tencent.xweb.util.NumberUtil; import com.tencent.xweb.xwalk.plugin.XWalkPluginUpdater; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import org.xwalk.core.XWalkEnvironment; public class XWebCommandHandler { public static final String BUNDLE_KEY_COMMAND = "command"; public static final String BUNDLE_KEY_SOURCE = "source"; private static final String COMMAND_APPBRAND_WEBVIEW_MODE = "appbrand_webview_mode"; private static final String COMMAND_BROWSER_NATIVE_CRASH = "browser_native_crash"; private static final String COMMAND_CHECK_FILES = "check_files"; private static final String COMMAND_CHECK_PLUGIN_UPDATE = "check_plugin_update"; private static final String COMMAND_CHECK_UPDATE = "check_update"; private static final String COMMAND_CHECK_UPDATE_OLD = "check_xwalk_update"; private static final String COMMAND_CLEAR_ALL_PLUGIN = "clear_all_plugin"; private static final String COMMAND_CLEAR_ALL_VERSION = "clear_all_version"; private static final String COMMAND_CLEAR_CACHE = "clear_cache"; private static final String COMMAND_CLEAR_CONFIG_COMMANDS = "clear_config_commands"; private static final String COMMAND_CLEAR_CONFIG_TIMESTAMP = "clear_config_timestamp"; private static final String COMMAND_CLEAR_CONFIG_TIMESTAMP_OLD = "clear_config_time_stamp"; private static final String COMMAND_CLEAR_OLD_VERSION = "clear_old_version"; private static final String COMMAND_CLEAR_SAVED_PAGE = "clear_saved_page"; private static final String COMMAND_CLEAR_SCHEDULE = "clear_schedule"; private static final String COMMAND_CLEAR_TEST_SETTING = "clear_test_setting"; private static final String COMMAND_DELETE_ORIGIN = "delete_origin"; private static final String COMMAND_DISABLE_FILE_READER_CACHE = "disable_file_reader_cache"; private static final String COMMAND_DISABLE_FILE_READER_CRASH_DETECT = "disable_file_reader_crash_detect"; private static final String COMMAND_ENABLE_AUTO_CHECK_UPDATE = "enable_auto_check_update"; private static final String COMMAND_ENABLE_CHECK_STORAGE = "enable_check_storage"; private static final String COMMAND_ENABLE_CHECK_THREAD = "enable_check_thread"; private static final String COMMAND_ENABLE_DEBUG_PACKAGE = "enable_debug_package"; private static final String COMMAND_ENABLE_FORBID_DOWNLOAD_CODE = "enable_forbid_download_code"; private static final String COMMAND_ENABLE_NEW_DEBUG_PAGE = "enable_new_debug_page"; private static final String COMMAND_ENABLE_REMOTE_DEBUG = "enable_remote_debug"; private static final String COMMAND_ENABLE_REMOTE_DEBUG_OLD = "inspector"; private static final String COMMAND_ENABLE_SHOW_FPS = "enable_show_fps"; private static final String COMMAND_ENABLE_SHOW_FPS_OLD = "show_fps"; private static final String COMMAND_ENABLE_SHOW_SAVE_PAGE = "enable_show_save_page"; private static final String COMMAND_ENABLE_SHOW_SAVE_PAGE_OLD = "save_page"; private static final String COMMAND_ENABLE_SHOW_VERSION = "enable_show_version"; private static final String COMMAND_ENABLE_TEST_BASE_CONFIG = "enable_test_base_config"; private static final String COMMAND_FORCE_USE_OFFICE_READER = "set_force_use_office_reader"; private static final String COMMAND_GPU_JAVA_CRASH = "gpu_java_crash"; private static final String COMMAND_GPU_NATIVE_CRASH = "gpu_native_crash"; private static final String COMMAND_IGNORE_CRASH_WATCH = "ignore_crash_watch"; private static final String COMMAND_IGNORE_CRASH_WATCH_OLD = "ignore_crashwatch"; private static final String COMMAND_INSTALL_EMBED_PLUGIN = "install_embed_plugin"; private static final String COMMAND_KILL_ALL_PROCESS = "kill_all_process"; private static final String COMMAND_KILL_GPU_PROCESS = "kill_gpu_process"; private static final String COMMAND_KILL_RENDER_PROCESS = "kill_render_process"; private static final String COMMAND_KILL_TOOLS_PROCESS = "kill_tools_process"; private static final String COMMAND_LOAD_CACHE_PACKAGE = "load_cache_package"; private static final String COMMAND_LOAD_CACHE_PACKAGE_OLD = "load_local_xwalk"; private static final String COMMAND_LOAD_SAVED_PAGE = "load_saved_page"; private static final String COMMAND_LOAD_SDCARD_PACKAGE = "load_sdcard_package"; private static final String COMMAND_MM_WEBVIEW_MODE = "mm_webview_mode"; private static final String COMMAND_RECHECK_CONFIG_COMMANDS = "recheck_config_commands"; private static final String COMMAND_RENDER_NATIVE_CRASH = "render_native_crash"; private static final String COMMAND_RESET_CRASH_COUNT = "reset_crash_count"; private static final String COMMAND_RESET_WEBVIEW_KIND = "reset_webview_kind"; private static final String COMMAND_RESET_WEBVIEW_KIND_SYS = "reset_webview_kind_sys"; private static final String COMMAND_RESET_WEBVIEW_KIND_XWEB = "reset_webview_kind_xweb"; private static final String COMMAND_REVERT_TO_APK = "revert_to_apk"; private static final String COMMAND_SET_APK_VERSION = "set_apk_version"; private static final String COMMAND_SET_APK_VERSION_OLD = "set_apkver"; private static final String COMMAND_SET_APPBRAND_CONFIG = "set_appbrand_config"; private static final String COMMAND_SET_CONFIG_URL = "set_config_url"; private static final String COMMAND_SET_DARK_MODE = "set_dark_mode"; private static final String COMMAND_SET_GRAY_VALUE = "set_gray_value"; private static final String COMMAND_SET_GRAY_VALUE_OLD = "set_grayvalue"; private static final String COMMAND_SET_MM_CONFIG = "set_mm_config"; private static final String COMMAND_SET_PLUGIN_CONFIG_URL = "set_plugin_config_url"; private static final String COMMAND_SET_TOOLS_CONFIG = "set_tools_config"; private static final String COMMAND_SET_TOOLS_CONFIG_OLD = "set_web_config"; private static final String COMMAND_SHOW_WEBVIEW_VERSION = "show_webview_version"; public static final String TAG = "XWebCommandHandler"; public static final String XWEB_DEBUG_URL = "debugxweb.qq.com"; public static final String XWEB_DEBUG_URL_PREFIX = "http://debugxweb.qq.com/?"; private static HashSet<DebugCommand> sDebugCommandSet; static { registerDebugCommand(COMMAND_ENABLE_REMOTE_DEBUG, COMMAND_ENABLE_REMOTE_DEBUG_OLD, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass1 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean booleanQueryParameter = uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_REMOTE_DEBUG_OLD, uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_REMOTE_DEBUG, false)); WebDebugCfg.getInst().setEnableRemoteDebug(booleanQueryParameter); if (!XWebSdk.setEnableRemoteDebug(booleanQueryParameter)) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_SHOW_WEBVIEW_VERSION, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass2 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (iDebugView == null) { return CommandResult.createFailResult(); } iDebugView.refreshAbstractView(); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_IGNORE_CRASH_WATCH, COMMAND_IGNORE_CRASH_WATCH_OLD, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass3 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setIgnoreCrashWatch(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_IGNORE_CRASH_WATCH_OLD, uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_IGNORE_CRASH_WATCH, false))); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_RESET_CRASH_COUNT, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass4 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebChildProcessMonitor.resetCrashCount(); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_CACHE, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass5 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebSdk.clearAllWebViewCache(true); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_OLD_VERSION, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass6 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebCleaner.tryClearOldVersion(context, true); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_ALL_VERSION, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass7 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebCleaner.clearAllVersion(context); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CHECK_UPDATE, COMMAND_CHECK_UPDATE_OLD, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass8 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean z15; if (iDebugView != null) { z15 = true; } else { z15 = false; } XWebDebugRuntimeHelper.forceCheckUpdate(context, z15); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CHECK_PLUGIN_UPDATE, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass9 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean z15; String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_CHECK_PLUGIN_UPDATE); if (iDebugView != null) { z15 = true; } else { z15 = false; } if (!XWebDebugPluginHelper.forceCheckUpdate(context, queryParameter, "1", z15)) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_SET_GRAY_VALUE, COMMAND_SET_GRAY_VALUE_OLD, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass10 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_GRAY_VALUE); if (uri.toString().contains(XWebCommandHandler.COMMAND_SET_GRAY_VALUE_OLD)) { queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_GRAY_VALUE_OLD); } if (TextUtils.isEmpty(queryParameter)) { return CommandResult.createFailResult(); } try { XWebGrayValueUtil.setGrayValueForTest(Integer.parseInt(queryParameter)); return CommandResult.createSuccessResult(); } catch (Exception e15) { XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set gray value error:" + e15.getMessage()); return CommandResult.createFailResult(); } } }); registerDebugCommand(COMMAND_SET_CONFIG_URL, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass11 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_CONFIG_URL); if (XWebUpdateConfigUtil.isValidConfigHost(queryParameter) || WebDebugCfg.getInst().getEnableLocalDebug()) { XWebUpdateConfigUtil.setTestBaseConfigUrl(queryParameter); return CommandResult.createSuccessResult(); } XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set config url error, config url:" + queryParameter); return CommandResult.createFailResult(); } }); registerDebugCommand(COMMAND_SET_PLUGIN_CONFIG_URL, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass12 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_PLUGIN_CONFIG_URL); if (XWebUpdateConfigUtil.isValidConfigHost(queryParameter) || WebDebugCfg.getInst().getEnableLocalDebug()) { XWebUpdateConfigUtil.setTestPluginConfigUrl(queryParameter); return CommandResult.createSuccessResult(); } XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set plugin config url error, config url:" + queryParameter); return CommandResult.createFailResult(); } }); registerDebugCommand(COMMAND_CLEAR_CONFIG_TIMESTAMP, COMMAND_CLEAR_CONFIG_TIMESTAMP_OLD, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass13 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebCoreScheduler.getXWebCoreScheduler().resetLastFetchConfigTime(); XWalkPluginUpdater.setLastCheckPluginUpdateTime(0); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_SCHEDULE, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass14 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebCorePredownScheduler.getXWebCorePredownScheduler().abandonCurrentScheduler(); XWebCoreScheduler.getXWebCoreScheduler().abandonCurrentScheduler(); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_TEST_SETTING, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass15 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebCleaner.tryClearTestSetting(context, true); return CommandResult.createSuccessResult(); } }); registerDebugCommand("enable_check_storage", false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass16 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean booleanQueryParameter = uri.getBooleanQueryParameter("enable_check_storage", false); WebDebugCfg.getInst().setEnableCheckStorage(booleanQueryParameter); if (booleanQueryParameter) { XWebCleaner.checkStorage(context); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_RESET_WEBVIEW_KIND, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass17 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg inst = WebDebugCfg.getInst(); WebView.WebViewKind webViewKind = WebView.WebViewKind.WV_KIND_NONE; inst.setHardCodeWebViewKind("mm", webViewKind); WebDebugCfg.getInst().setHardCodeWebViewKind("tools", webViewKind); WebDebugCfg.getInst().setHardCodeWebViewKind("appbrand", webViewKind); return new CommandResult(true, true); } }); registerDebugCommand(COMMAND_RESET_WEBVIEW_KIND_SYS, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass18 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg inst = WebDebugCfg.getInst(); WebView.WebViewKind webViewKind = WebView.WebViewKind.WV_KIND_SYS; inst.setHardCodeWebViewKind("mm", webViewKind); WebDebugCfg.getInst().setHardCodeWebViewKind("tools", webViewKind); WebDebugCfg.getInst().setHardCodeWebViewKind("appbrand", webViewKind); return new CommandResult(true, true); } }); registerDebugCommand(COMMAND_RESET_WEBVIEW_KIND_XWEB, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass19 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg inst = WebDebugCfg.getInst(); WebView.WebViewKind webViewKind = WebView.WebViewKind.WV_KIND_PINUS; inst.setHardCodeWebViewKind("mm", webViewKind); WebDebugCfg.getInst().setHardCodeWebViewKind("tools", webViewKind); WebDebugCfg.getInst().setHardCodeWebViewKind("appbrand", webViewKind); return new CommandResult(true, true); } }); registerDebugCommand(COMMAND_SET_MM_CONFIG, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass20 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_MM_CONFIG); if (!TextUtils.isEmpty(queryParameter)) { WebDebugCfg.getInst().setHardCodeWebViewKind("mm", WebView.WebViewKind.valueOf(queryParameter)); return new CommandResult(true, true); } XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set mm config error, config:" + queryParameter); return CommandResult.createFailResult(); } }); registerDebugCommand(COMMAND_SET_TOOLS_CONFIG, COMMAND_SET_TOOLS_CONFIG_OLD, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass21 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_TOOLS_CONFIG); if (uri.toString().contains(XWebCommandHandler.COMMAND_SET_TOOLS_CONFIG_OLD)) { queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_TOOLS_CONFIG_OLD); } if (!TextUtils.isEmpty(queryParameter)) { WebDebugCfg.getInst().setHardCodeWebViewKind("tools", WebView.WebViewKind.valueOf(queryParameter)); return CommandResult.createSuccessResult(); } XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set tools config error, config:" + queryParameter); return CommandResult.createFailResult(); } }); registerDebugCommand(COMMAND_SET_APPBRAND_CONFIG, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass22 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_APPBRAND_CONFIG); if (!TextUtils.isEmpty(queryParameter)) { WebDebugCfg.getInst().setHardCodeWebViewKind("appbrand", WebView.WebViewKind.valueOf(queryParameter)); return CommandResult.createSuccessResult(); } XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set appbrand config error, config:" + queryParameter); return CommandResult.createFailResult(); } }); registerDebugCommand("mm_webview_mode", false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass23 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter("mm_webview_mode"); NumberUtil.ParseResult safeParseInt = NumberUtil.safeParseInt(queryParameter); if (safeParseInt.parseSuc) { WebDebugCfg.getInst().setWebViewModeForMM(safeParseInt.intValue()); return new CommandResult(true, true); } XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set mm webview mode error, config:" + queryParameter); return CommandResult.createFailResult(); } }); registerDebugCommand(COMMAND_CHECK_FILES, false, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass24 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebCleaner.checkFiles(true); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_ENABLE_NEW_DEBUG_PAGE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass25 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setEnableNewDebugPage(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_NEW_DEBUG_PAGE, false)); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_ENABLE_SHOW_VERSION, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass26 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setEnableShowVersion(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_SHOW_VERSION, false)); if (iDebugView != null) { iDebugView.refreshVersionView(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_ENABLE_TEST_BASE_CONFIG, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass27 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setEnableTestBaseConfig(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_TEST_BASE_CONFIG, false)); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_ENABLE_SHOW_FPS, COMMAND_ENABLE_SHOW_FPS_OLD, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass28 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setEnableShowFps(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_SHOW_FPS_OLD, uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_SHOW_FPS, false))); if (iDebugView != null) { iDebugView.refreshFpsView(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_ENABLE_SHOW_SAVE_PAGE, COMMAND_ENABLE_SHOW_SAVE_PAGE_OLD, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass29 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setEnableShowSavePage(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_SHOW_SAVE_PAGE_OLD, uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_SHOW_SAVE_PAGE, false))); if (iDebugView != null) { iDebugView.refreshSavePageView(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_LOAD_SAVED_PAGE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass30 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (iDebugView == null || iDebugView.getWebView() == null || !XWebSavePageHelper.loadSavedPage(context, iDebugView.getWebView(), true)) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_SAVED_PAGE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass31 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean z15; if (iDebugView != null) { z15 = true; } else { z15 = false; } if (!XWebSavePageHelper.clearSavedPage(context, z15)) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_CONFIG_COMMANDS, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass32 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { try { CommandCfg.getInstance().applyCommand(null, "0"); XWebRuntimeUpdater.sendBroadcast(IXWebBroadcastListener.STAGE_MAINCFG_UPDATE, 0, 0); return CommandResult.createSuccessResult(); } catch (Exception e15) { XWebLog.w(XWebCommandHandler.TAG, "handleCommand, clear config commands error:" + e15.getMessage()); return CommandResult.createFailResult(); } } }); registerDebugCommand(COMMAND_RECHECK_CONFIG_COMMANDS, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass33 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { IWebViewProvider xWebViewProvider = WebViewWrapperFactory.getXWebViewProvider(); if (xWebViewProvider != null) { xWebViewProvider.execute(ConstValue.STR_CMD_SET_RECHECK_COMMAND, null); return CommandResult.createSuccessResult(); } XWebLog.w(XWebCommandHandler.TAG, "handleCommand, recheck config commands error, webview provider is null"); return CommandResult.createFailResult(); } }); registerDebugCommand(COMMAND_KILL_GPU_PROCESS, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass34 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { ProcessUtil.killGpuProcess(context); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_KILL_RENDER_PROCESS, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass35 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { ProcessUtil.killRenderProcess(context); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_KILL_TOOLS_PROCESS, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass36 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { ProcessUtil.killToolsProcess(context); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_KILL_ALL_PROCESS, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass37 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { ProcessUtil.killAllProcess(context); return new CommandResult(true, true); } }); registerDebugCommand(COMMAND_REVERT_TO_APK, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass38 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { try { int revertToApkVer = XWalkRuntimeRevertHelper.revertToApkVer(context, Integer.parseInt(uri.getQueryParameter(XWebCommandHandler.COMMAND_REVERT_TO_APK))); XWebLog.i(XWebCommandHandler.TAG, "handleCommand, revertToApkVer, version:" + revertToApkVer); return CommandResult.createSuccessResult(); } catch (Throwable th5) { XWebLog.w(XWebCommandHandler.TAG, "handleCommand, revertToApkVer error:" + th5.getMessage()); return CommandResult.createFailResult(); } } }); registerDebugCommand(COMMAND_SET_APK_VERSION, COMMAND_SET_APK_VERSION_OLD, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass39 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_APK_VERSION); if (uri.toString().contains(XWebCommandHandler.COMMAND_SET_APK_VERSION_OLD)) { queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_APK_VERSION_OLD); } try { int parseInt = Integer.parseInt(queryParameter); XWalkEnvironment.setCoreVersionInfo(parseInt, "1.0." + queryParameter, AbiUtil.getRuntimeAbi()); XWebLog.i(XWebCommandHandler.TAG, "handleCommand, setApkVersion, version:" + parseInt); return CommandResult.createSuccessResult(); } catch (Throwable th5) { XWebLog.w(XWebCommandHandler.TAG, "handleCommand, setApkVersion error:" + th5.getMessage()); return CommandResult.createFailResult(); } } }); registerDebugCommand(COMMAND_LOAD_CACHE_PACKAGE, COMMAND_LOAD_CACHE_PACKAGE_OLD, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass40 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean z15; if (iDebugView != null) { z15 = true; } else { z15 = false; } try { if (!XWebLocalPackageInstaller.loadPackageFromCacheDir(context, z15)) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } catch (Throwable th5) { XWebLog.w(XWebCommandHandler.TAG, "handleCommand, loadCachePackage error:" + th5.getMessage()); return CommandResult.createFailResult(); } } }); registerDebugCommand(COMMAND_LOAD_SDCARD_PACKAGE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass41 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean z15; if (iDebugView != null) { z15 = true; } else { z15 = false; } try { if (!XWebLocalPackageInstaller.loadPackageFromSdcardDir(context, z15)) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } catch (Throwable th5) { XWebLog.w(XWebCommandHandler.TAG, "handleCommand, loadSdcardPackage error:" + th5.getMessage()); return CommandResult.createFailResult(); } } }); registerDebugCommand(COMMAND_ENABLE_FORBID_DOWNLOAD_CODE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass42 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (XWalkEnvironment.getBuildConfigNeedTurnOffDynamicCode()) { XWebLog.i(XWebCommandHandler.TAG, "handleCommand, enableForbidDownloadCode, not support"); return CommandResult.createFailResult(); } XWebSdk.setForbidDownloadCode(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_FORBID_DOWNLOAD_CODE, false)); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_ENABLE_CHECK_THREAD, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass43 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setEnableCheckThread(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_CHECK_THREAD, false)); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_DELETE_ORIGIN, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass44 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_DELETE_ORIGIN); if (TextUtils.isEmpty(queryParameter)) { return CommandResult.createFailResult(); } WebStorage.getInstance().deleteOrigin(queryParameter); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_GPU_NATIVE_CRASH, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass45 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (iDebugView == null || iDebugView.getWebView() == null) { return CommandResult.createFailResult(); } iDebugView.getWebView().loadUrl("chrome://gpucrash/"); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_GPU_JAVA_CRASH, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass46 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (iDebugView == null || iDebugView.getWebView() == null) { return CommandResult.createFailResult(); } iDebugView.getWebView().loadUrl("chrome://gpu-java-crash/"); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_RENDER_NATIVE_CRASH, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass47 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (iDebugView == null || iDebugView.getWebView() == null) { return CommandResult.createFailResult(); } iDebugView.getWebView().loadUrl("chrome://crash"); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_BROWSER_NATIVE_CRASH, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass48 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (iDebugView == null || iDebugView.getWebView() == null) { return CommandResult.createFailResult(); } iDebugView.getWebView().loadUrl("chrome://inducebrowsercrashforrealz/"); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_SET_DARK_MODE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass49 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { String queryParameter = uri.getQueryParameter(XWebCommandHandler.COMMAND_SET_DARK_MODE); if (TextUtils.isEmpty(queryParameter)) { XWebLog.w(XWebCommandHandler.TAG, "handleCommand, set dark mode error, config:" + queryParameter); return CommandResult.createFailResult(); } else if (!XWebCommandHandler.setDarkMode(context, iDebugView, queryParameter)) { return CommandResult.createFailResult(); } else { return CommandResult.createSuccessResult(); } } }); registerDebugCommand(COMMAND_ENABLE_DEBUG_PACKAGE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass50 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setEnableDebugPackage(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_DEBUG_PACKAGE, false)); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_ENABLE_AUTO_CHECK_UPDATE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass51 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { XWebAutoUpdater.enableAutoCheckUpdate(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_ENABLE_AUTO_CHECK_UPDATE, false)); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_CLEAR_ALL_PLUGIN, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass52 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { if (!XWebDebugPluginHelper.clearAllPlugin()) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_INSTALL_EMBED_PLUGIN, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass53 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { boolean z15; if (iDebugView != null) { z15 = true; } else { z15 = false; } if (!XWebDebugPluginHelper.forceCheckUpdate(context, null, XWebUpdater.XWEB_UPDATER_START_CHECK_TYPE_NOTIFY_ONLY_INSTALL_EMBED_PLUGIN, z15)) { return CommandResult.createFailResult(); } return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_FORCE_USE_OFFICE_READER, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass54 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { return XWebDebugPluginHelper.forceUseOfficeReader(context, uri.getQueryParameter(XWebCommandHandler.COMMAND_FORCE_USE_OFFICE_READER)); } }); registerDebugCommand(COMMAND_DISABLE_FILE_READER_CACHE, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass55 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setDisableFileReaderCache(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_DISABLE_FILE_READER_CACHE, false)); return CommandResult.createSuccessResult(); } }); registerDebugCommand(COMMAND_DISABLE_FILE_READER_CRASH_DETECT, true, new ICommandHandler() { /* class com.tencent.xweb.util.XWebCommandHandler.AnonymousClass56 */ @Override // com.tencent.xweb.debug.ICommandHandler public CommandResult handleCommand(Context context, Uri uri, IDebugView iDebugView) { WebDebugCfg.getInst().setDisableFileReaderCrashDetect(uri.getBooleanQueryParameter(XWebCommandHandler.COMMAND_DISABLE_FILE_READER_CRASH_DETECT, false)); return CommandResult.createSuccessResult(); } }); } /* JADX WARNING: Removed duplicated region for block: B:7:0x0016 */ private static DebugCommand findDebugCommand(String str) { if (sDebugCommandSet == null || TextUtils.isEmpty(str)) { return null; } Iterator<DebugCommand> it = sDebugCommandSet.iterator(); while (it.hasNext()) { DebugCommand next = it.next(); if (next.getName().equals(str) || str.equals(next.getOldName())) { return next; } while (it.hasNext()) { } } return null; } public static CommandResult handleCommand(Bundle bundle, IDebugView iDebugView) { Context context; int i15 = bundle.getInt("source", CommandSourceType.UNKNOWN.ordinal()); String string = bundle.getString(BUNDLE_KEY_COMMAND, null); if (!shouldHandleCommand(string)) { XWebLog.w(TAG, "handleCommand, no need handle, source:" + CommandSourceType.values()[i15] + ", command:" + string); return CommandResult.createFailResult(); } if (iDebugView != null) { context = iDebugView.getContext(); } else { context = XWalkEnvironment.getApplicationContext(); } boolean enableLocalDebug = WebDebugCfg.getInst().getEnableLocalDebug(); XWebLog.w(TAG, "handleCommand, source:" + CommandSourceType.values()[i15] + ", command:" + string + ", enableLocalDebug:" + enableLocalDebug); CommandResult createSuccessResult = CommandResult.createSuccessResult(); Uri parse = Uri.parse(string); Set<String> queryParameterNames = parse.getQueryParameterNames(); if (queryParameterNames != null && queryParameterNames.size() != 0) { for (String str : queryParameterNames) { DebugCommand findDebugCommand = findDebugCommand(str); if (findDebugCommand == null) { XWebLog.w(TAG, "handleCommand, unknown command:" + str); } else { ICommandHandler commandHandler = findDebugCommand.getCommandHandler(); if (commandHandler == null) { XWebLog.w(TAG, "handleCommand, commandHandler is null, command:" + str); } else if (!findDebugCommand.isNeedLocalDebugPermission() || enableLocalDebug) { CommandResult handleCommand = commandHandler.handleCommand(context, parse, iDebugView); if (!handleCommand.mSuccess) { XWebLog.w(TAG, "handleCommand, failed command:" + findDebugCommand.getName()); createSuccessResult.mSuccess = false; } if (handleCommand.mSuccess && handleCommand.mShouldKillAllProcess) { createSuccessResult.mShouldKillAllProcess = true; } } } } } else if (enableLocalDebug && iDebugView != null) { iDebugView.refreshDebugView(); } XWebLog.w(TAG, "handleCommand, commandResult:" + createSuccessResult); return createSuccessResult; } private static void registerDebugCommand(String str, String str2, boolean z15, ICommandHandler iCommandHandler) { if (sDebugCommandSet == null) { sDebugCommandSet = new HashSet<>(); } if (findDebugCommand(str) != null) { XWebLog.e(TAG, "registerDebugCommand, name:" + str + " has been registered"); } sDebugCommandSet.add(new DebugCommand(str, str2, z15, iCommandHandler)); } /* access modifiers changed from: private */ public static boolean setDarkMode(Context context, IDebugView iDebugView, String str) { WebView webView; if (iDebugView != null) { webView = iDebugView.getWebView(); } else { webView = null; } if (webView == null) { XWebLog.w(TAG, "setDarkMode, no webview"); return false; } XWebLog.i(TAG, "setDarkMode, config:" + str); if (TextUtils.equals(str, "1")) { webView.getSettings().setForceDarkMode(2); webView.getSettings().setForceDarkBehavior(2); } else if (TextUtils.equals(str, "2")) { webView.getSettings().setForceDarkMode(2); webView.getSettings().setForceDarkBehavior(1); } else if (TextUtils.equals(str, "3")) { webView.getSettings().setForceDarkMode(0); } else if (!TextUtils.equals(str, XWebUpdater.XWEB_UPDATER_START_CHECK_TYPE_EMBEDINSTALL)) { XWebLog.w(TAG, "setDarkMode, config error:" + str); return false; } return true; } public static boolean shouldHandleCommand(String str) { if (str == null) { return false; } return str.contains(XWEB_DEBUG_URL); } private static void registerDebugCommand(String str, boolean z15, ICommandHandler iCommandHandler) { if (sDebugCommandSet == null) { sDebugCommandSet = new HashSet<>(); } if (findDebugCommand(str) != null) { XWebLog.e(TAG, "registerDebugCommand, name:" + str + " has been registered"); } sDebugCommandSet.add(new DebugCommand(str, z15, iCommandHandler)); } }