diff --git a/public/proxy.js b/public/proxy.js
index d3353e7..a6508a5 100644
--- a/public/proxy.js
+++ b/public/proxy.js
@@ -52,6 +52,61 @@ async function handleSetProxyConfig(config, sendResponse) {
return;
}
+ // 添加系统代理的处理
+ if (config.proxyType === 'system') {
+ try {
+ // 先清除当前的代理设置
+ await new Promise((resolve) => {
+ chrome.proxy.settings.clear({
+ scope: 'regular'
+ }, resolve);
+ });
+
+ // 然后设置为系统代理
+ await new Promise((resolve) => {
+ chrome.proxy.settings.set({
+ value: {mode: "system"},
+ scope: 'regular'
+ }, resolve);
+ });
+
+ const settings = await getProxySettings();
+ const isSuccess = settings.value.mode === "system";
+
+ if (isSuccess) {
+ // 更新存储
+ await proxyStore.setCurrentProxy({
+ ...config,
+ timestamp: Date.now()
+ });
+
+ // 更新代理列表状态
+ const configs = await proxyStore.getProxyConfigs();
+ const updatedConfigs = configs.map(c => ({
+ ...c,
+ enabled: c.id === config.id
+ }));
+ await proxyStore.saveProxyConfigs(updatedConfigs);
+
+ console.log('System proxy set successfully');
+ sendResponse({success: true});
+ } else {
+ console.error('Failed to set system proxy');
+ sendResponse({
+ success: false,
+ error: '无法设置系统代理'
+ });
+ }
+ } catch (error) {
+ console.error('Error setting system proxy:', error);
+ sendResponse({
+ success: false,
+ error: error.message || '设置系统代理时发生错误'
+ });
+ }
+ return;
+ }
+
// 处理代理服务器的情况
if (!config || !config.host || !config.port) {
sendResponse({
diff --git a/src/components/ProxySwitch/index.tsx b/src/components/ProxySwitch/index.tsx
index b08ed56..d3f8600 100644
--- a/src/components/ProxySwitch/index.tsx
+++ b/src/components/ProxySwitch/index.tsx
@@ -16,7 +16,8 @@ const FIXED_MODES = [
config: {
id: 'direct',
name: '[直接连接]',
- proxyType: 'direct'
+ proxyType: 'direct',
+ enabled: false
}
},
{
@@ -27,7 +28,8 @@ const FIXED_MODES = [
config: {
id: 'system',
name: '[系统代理]',
- proxyType: 'system'
+ proxyType: 'system',
+ enabled: false
}
}
];
diff --git a/src/index.tsx b/src/index.tsx
index 47aec8d..742b7ff 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -9,9 +9,5 @@ if (!container) throw new Error('Failed to find the root element');
// 创建根
const root = createRoot(container);
-// 渲染应用
-root.render(
-
-
-
-);
\ No newline at end of file
+// 渲染应用,移除 StrictMode
+root.render();
\ No newline at end of file
diff --git a/src/types/proxy.ts b/src/types/proxy.ts
index 0bf885c..33ae989 100644
--- a/src/types/proxy.ts
+++ b/src/types/proxy.ts
@@ -2,7 +2,7 @@ export interface ProxyConfig {
id: string;
name: string;
enabled: boolean;
- proxyType: "direct" | "fixed_server" | "pac_script" | "auto_detect" | "bypass_list";
+ proxyType: "direct" | "system" | "fixed_servers" | "pac_script" | "auto_detect";
host?: string;
port?: number;
scheme?: "http" | "https" | "socks4" | "socks5";