Search code examples
fiddler

How to reset bound ephemeral prefs of Fiddler script to their defaults?


There's a Tools > Reset Script menu entry in Fiddler that resets all user-chosen config to the defaults. This however works only if the prefs are not bound to a config variable.

Let's have a look at current default Fiddler script, it contains an option to set user-agent:

RulesString("&User-Agents", true)
BindPref("fiddlerscript.ephemeral.UserAgentString") // <-------------
RulesStringValue(0,"Netscape &3", "Mozilla/3.0 (Win95; I)")
RulesStringValue(1,"WinPhone7", "Mozilla/4.0 (compatible: MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)")
...
RulesStringValue(23,"Kindle Fire (Silk)", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.22.79_10013310) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true")
RulesStringValue(24,"&Custom...", "%CUSTOM%")
public static var sUA: String = null;

When I choose some useragent from the list, and then use Tools > Reset Script option, Fiddler won't actually change the setting to "disabled", because the useragent value is bound to fiddlerscript.ephemeral.UserAgentString. If I remove that line, resetting works fine, but I don't want to change the default script, and I also want to keep the binding of my own settings (since I sometimes change the fiddlerscript and want to keep the settings after reload).

Is there a way to reset all bound (ephemeral) prefs to defaults other than rebooting Fiddler?


Solution

  • As per EricLaw's (Fiddler author) comment, the only way to reset bound preferences' values is to reboot Fiddler.