Chrome Switchy插件无法使用auto switch mode的解决方案

最新版本的switchy插件有个严重的兼容性bug,就是当你的chrome升级到最新版14.0以上后,Auto switch mode会失效。表现为你选了auto switch mode,但是重启chrome后switchy会选择到<Current Profile>,如果你选择回auto switch mode,则所有的代理规则失效。

此时打开选项->高级->更改代理设置->局域网设置会看到如下设置界面

问题在于生成的pac文件后缀多加一个c6。用socks的用户可能是多个c,没有6。

解决方案

  1. 打开?C:\Users\你的机器登录名\AppData\Local\Google\Chrome\User Data\Default\Extensions\caehdcpeofiiigpdhbabniblemipncjj\1.6.3_0\assets\scripts 目录
  2. 用文本编辑器打开?ruleManager.js
  3. 找到?RuleManager.getAutoPacScriptPath 这一行
  4. 在接下来的两段代码中,按注释说明修改,一共有两处

 

RuleManager.getAutoPacScriptPath = function getAutoPacScriptPath(withSalt) {
	if (RuleManager.autoPacScriptPath == undefined) {
		var plugin = chrome.extension.getBackgroundPage().plugin;
		try {
                        // 原先代码:
			// RuleManager.autoPacScriptPath = plugin.autoPacScriptPath;
                        // 修改后的代码:
			RuleManager.autoPacScriptPath = "C:/Users/你的机器登录名/AppData/Local/Google/Chrome/User%20Data/Default/Extensions/caehdcpeofiiigpdhbabniblemipncjj/SwitchyAuto.pac";
		} catch(ex) {
			Logger.log("Plugin Error @RuleManager.getAutoPacScriptPath() > " + ex.toString(), Logger.Types.error);
			return undefined;
		}
	}
 
	return RuleManager.autoPacScriptPath + (withSalt ? "?" + new Date().getTime() : "");
};
 
RuleManager.getSocksPacScriptPath = function getSocksPacScriptPath(withSalt) {
	if (RuleManager.socksPacScriptPath == undefined) {
		var plugin = chrome.extension.getBackgroundPage().plugin;
		try {
                        // 原先代码:
			// RuleManager.socksPacScriptPath = plugin.socksPacScriptPath;
                        // 修改后的代码:
			RuleManager.socksPacScriptPath = "C:/Users/你的机器登录名/AppData/Local/Google/Chrome/User%20Data/Default/Extensions/caehdcpeofiiigpdhbabniblemipncjj/SwitchySocks.pac";
		} catch(ex) {
			Logger.log("Plugin Error @RuleManager.getSocksPacScriptPath() > " + ex.toString(), Logger.Types.error);
			return undefined;
		}
	}
 
	return RuleManager.socksPacScriptPath + (withSalt ? "?" + new Date().getTime() : "");
};

最后重启下chrome浏览器,大功告成。
不用担心源码的修改,如果下一版本作者fix了这个bug,代码会被自动覆盖的。

转载请注明原文链接:http://kenwublog.com/chrome-switchy-bug-fix

2011/09/20 | Posted in Others
  1. fuyou001
    2011/09/21 09:37 | #1

    楼主怎么这么牛呀,对这也有研究

  2. hhb
    2011/09/21 10:31 | #2

    可以安装SwitchySharp这个插件。因为Switchy已经很久没更新了。

  3. 2011/09/21 13:23 | #3

    这个插件的新版本叫做SwitchySharp,已经解决这个问题了

  4. thebye85
    2011/11/24 13:07 | #5

    换用SwitchySharp就好了

Leave a comment

Attention: Java syntax highlighting is enable. For example: <pre lang="java"> class A {} </pre>