Debugging autoproxy (PAC) javascript with alert()?
Use
alert
function in your.pac
file.In Firefox Browser:
Tools -> Web Developer -> Browser Console (Ctrl+Shift+J) [This is not Web Console!!] -> Filter output:
PAC-alert
In Chrome Browser:
Go to
chrome://net-internals/#events
-> Search for a record with description:PAC_JAVASCRIPT_ALERT
(About Chrome, thank this answer)
Sample .pac
file:
function FindProxyForURL(url, host) {
alert("url = " + url + " *** host = " + host + " *** Resolved IP = " + dnsResolve(host));
return "DIRECT";
}
http://mxr.mozilla.org/mozilla-central/source/netwerk/base/src/nsProxyAutoConfig.js
The alert function is added to the sandbox:
80 // add predefined functions to pac
81 this._sandBox.importFunction(myIpAddress);
82 this._sandBox.importFunction(dnsResolve);
83 this._sandBox.importFunction(proxyAlert, "alert");
And the mapped function calls dump, which goes to the Error Console:
108 function proxyAlert(msg) {
109 msg = XPCSafeJSObjectWrapper(msg);
110 try {
111 // It would appear that the console service is threadsafe.
112 var cns = Components.classes["@mozilla.org/consoleservice;1"]
113 .getService(Components.interfaces.nsIConsoleService);
114 cns.logStringMessage("PAC-alert: "+msg);
115 } catch (e) {
116 dump("PAC: proxyAlert ERROR: "+e+"\n");
117 }
Ah Ha! The alert messages are getting logged to the console. I actually prefer that to alert popups anyway.