Where are HTTPS Everywhere rules stored in Google Chrome?
Rules defined through the user interface are added in to the extension's local storage:
Local Storage/chrome-extension_gcbommkclmclpchllfjekcdonpmejbdp_0.localstorage
in your Chrome profile directory¹. This is an SQLite database, if you care to edit it manually.
You can also define rules manually (thanks to MCL for the tip). Current versions of Chrome refuse to load an extension if it's been modified, so you need to either make a copy of the extension outside of the Chrome profile directory or update Chrome's stored signature after modifying the extension.
Either way, go to the extension's directory, which is Extensions/gcbommkclmclpchllfjekcdonpmejbdp/2014.9.11_0
in the Chrome profile directory¹ (replace 2014.9.11_0
by the version you have installed). If you choose to update the signature, you'll need to modify the files _metadata/computed_hashes.json
and _metadata/verified_contents.json
; I don't know what exactly you need to update or how. If you choose to make a copy, copy the gcbommkclmclpchllfjekcdonpmejbdp
directory outside of your profile, uninstall the extension, and drag-and-drop the directory containing the outside copy onto the Extensions page in Chrome.
In the extension directory, there is a file called rules_list.js
containing a reference to the default ruleset library. Add yours:
var rule_list = [
"rules/default.rulesets",
"rules/personal.rulesets",
];
Create a file called personal.rulesets
in the rules
subdirectory. From then on, to modify rules, edit that file. The content of this file should be something like this:
<rulesetlibrary>
<ruleset name="Example ruleset">
<target host="*.example.com" />
<target host="*.example.net" />
<rule from="http:" to="https:" />
</ruleset>
</rulesetlibrary>
Each ruleset can be enabled or disabled independently through the user interface.
To make HTTPS Everywhere reload your rules, go to the Tools → Extensions page. Untick the “Enabled” box next to “HTTPS Everywhere”, and tick it back.
Click on “background page” in the “HTTPS Everywhere” block, and select the “Console” tab. If you see an error message in red, there was an error in your rules; fix it and try again. Otherwise your rules are working.
¹ The default Chrome profile directory is located at %LOCALAPPDATA%\Google\Chrome\User Data\Default
under Windows and ~/.config/google-chrome/Default
under Linux
- In your OS, go to the folder where the HTTPS Everywhere extension was
installed. On Windows, that's
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Extensions\gcbommkclmclpchllfjekcdonpmejbdp\VERSION
(replaceVERSION
, of course). - Put the XML file(s) in the
rules
subfolder. -
Edit rule_list.js and add the new file(s) to the list, like this (
THEFILE.xml
is the new ruleset):var rule_list = ["rules/default.rulesets","rules/THEFILE.xml"];
Restart Chrome.
Copied from here and slightly altered.