This extension can be used to repro infrequent crashers on an unclear url-set
for a given domain. It follows a random link that matches a predefined pattern,
imitating something like real user interaction on a page.

Usage:
1. Open chrome://extensions
2. Enable developer mode
3. Click "Load unpacked extension"
4. Click the orange link-clicker extension button in the toolbar
5. Set the parameters and click "Enable" to start following links on all tabs
   open in the current window. Beware, this extension will follow arbitrary
   links. You probably don't want to be logged in with any important account.
