Autofill is not like the typical autofill feature built into modern browsers that prompt to fill out your address information. The browser autofill generally works fine, and you should continue using it for such purpose. While the Autofill extension can be used to autofill addresses, it's more an automation tool to reduce your work load and help protect against wrist injuries. Any text input or interaction that you can do using the mouse or keyboard can probably be automated using Autofill, especially if you are proficient at JavaScript.
The core concept is (1) you create autofill rules and (2) the rules are automatically executed when you land on a web page that satisfies one or more rule definitions. Autofill's main UI is the infobar, which is where you execute and generate rules. For quick access, it's a good idea to assign a global hotkey to launch the Autofill infobar. Autofill rules are managed from the Options page, which is what the rest of this documentation will cover.
To add a new autofill rule, click on the [+] button at the bottom of the rules table. Rules are processed in the order in which they appear except for JavaScript rules, which are executed last. To reorder a rule, click on the icon and drag it up or down, or drag anywhere on the row where you see the move cursor (this can also be done using Keyboard Shortcuts for keyboard warriors). To perform an action on an autofill rule, click on one of the following buttons to the right of the rule:
Click on the [🔍] button to toggle the search box. You can search for text in any of the columns in the rules table as well as the profile name and site filter (see below). Remember to click the Save button after you have modified one or more rules.
This is where you define all the form fields to automatically fill on page load. A form field, also known as a form control or form element, is used to submit data from the client (your browser) to the server. Below is a detailed description of each column in the rules table.
TIP: The quickest way to define autofill rules is to use the infobar to automatically create all of the rules for you. To generate rules for the entire form, right-click on the page and select "Add rules for this form" from the Autofill context menu, or click on the Autofill lightning bolt icon and expand the Generate Rules section. To generate a rule for one particular text/password input field only, right-click inside that input field and select "Add rule for this field" from the Autofill context menu. Once the rules are created, you can click on the Autofill logo in the infobar to open the Options page and fine-tune them if you wish. No more digging through the source code!
<input type="text">
, <input type="email">
, <input type="number">
, <input type="search">
, <input type="hidden">
), multi-line text boxes (<textarea>
), and iframe-based WYSIWYG edit boxes commonly found in forums and blogs.<input type="password">
).<select>
).<input type="checkbox">
) and radio buttons (<input type="radio">
).Autofill('profile ID', delay)
– execute a profile, where 'profile ID'
specifies which profile to execute and delay
is the autofill delay in milliseconds (example: Autofill('c1', 1500)
). The profile ID is displayed in the tooltip when you hover over the profiles dropdown menu. To execute the "All" profile, use Autofill('all')
; to execute the "Unfiled" profile, use Autofill('')
. Note that whenever you execute a profile, that profile also becomes the active profile.injectJquery()
– inject the jQuery library so that you can use it in your JavaScript rule. Sample usage: injectJquery().then(() => { /* Code to run after jQuery is loaded */ })
TIP: Many modern responsive websites use Bootstrap along with the Bootstrap-select plugin to render highly stylized dropdown menus constructed from <div>
s. For these sites you'll need to find the hidden <select>
elements binded to these "rich" dropdowns (usually immediately above them) in order to create your Select autofill rules. There are also some sites that output the selected value to a hidden field. In such cases, creating a rule based on the Select field type won't work; you'll need to identify the hidden field used for that dropdown menu and create a Text rule instead.
name
id
title
placeholder
aria-label
aria-labelledby
aria-describedby
data-bind
(Knockout)data-reactid
(React)ng-model
(AngularJS)value
(only applicable to checkbox/radio inputs)src
(only applicable to iframe-based rich text editors)class
Enter the full or partial text that matches one of the attribute values above for the field you want to autofill. If you want to do an exact match instead of partial match, then enter ^name$
; if you want to do a word boundary match (i.e., only matching whole words), then enter \bname\b
. If nothing is entered here, all fields of the selected type (Type column) will be autofilled, so leave it blank with caution. Every HTML form element should have at least one of these attributes. To quickly inspect a field's attributes, right-click on the field and select "Inspect element" from the context menu; alternatively, you can also view the source code (Ctrl+U) and search for the tag manually. Here are some more notes on this column:
\
): ^ $ . ? + * \ | ( ) { } [ ]
/*
and */
) are ignored.
This column supports {@variable_name}
and {field reference}
variable expansion (see Other Stuff for more information).
TIP: Regular Expression's lookbehind assertion (?<=
and ?<!
) allows you to create highly complex text patterns such as the one below, which matches anything that contains "name" but is not immediately preceded by "first" or "last":
(?<!first|last)name
This will, for example, match "fullname" and "username", but NOT "firstname" or "lastname" (you can create this rule and see it in action on the Practice Form).
value
attribute value of the option item you would like to auto-select. The value has to be double-quoted and Regular Expressions are not supported in this context. You can also enter the index number of the option item to automatically select (the first item has an index of 0). For multi-select listboxes, separate each double-quoted value or index number with a pipe (|
). Enter !
or leave blank (1!
and 0!
will also work) to select or unselect all items in the list, respectively. Example: if you want to select the first and third items in a multiple selection listbox, then enter 0|2
(0 2
will also work); if you want to select A and C in a list comprising A, B, C, D, and E, then enter "A"|"C"
. Enter ?
to randomly select one item from the dropdown menu or multi-select list.1
to check or 0
to uncheck. If it's a checkbox or radio group and you can only match using the name
attribute, then you'll have to specify 1
or 0
for each input in the group. Append !
at the end to check/uncheck all items. Enter ?
to randomly toggle the checkbox. Example: if you want to check the second item in a four-item radio button group, then enter 0100
; to check all checkboxes, enter 1!
.
All field types except Checkbox/Radio support variable expansion; JavaScript rules only support {@variable_name}
variables (see Other Stuff for more information).
NOTE: The data saved by Autofill is NOT encrypted, so any text you enter here remains in the clear. I do NOT recommend using this extension to save passwords of sensitive accounts.
<title>
tag) or URL here. The title or URL of the site you're on has to match the pattern you enter here in order to trigger the autofill. This basically allows you to define form fields to autofill on a per-site basis. If this box is left blank, then autofill will be performed on all sites not matching what's listed in the Exceptions tab. Here are some more notes on this column:
google.com|yahoo.com
).\
): ^ $ . ? + * \ | ( ) { } [ ]
|
pipe character, which means "OR" in Regular Expressions).
This column supports {@variable_name}
variable expansion (see Other Stuff for more information).
Profiles allow you to organize all your autofill rules into different categories. For example, you can have separate profiles for addresses, personal info, account logins, blog post templates, and advanced search forms. To add, rename, rearrange, delete, duplicate, and sort profiles, select "Manage..." from the profile chooser to bring up the Manage Profiles dialog. If you delete an existing profile, you have the option to also delete all rules assigned to that profile or delete only the profile and move all rules to Unfiled. Shift- and Ctrl-click on multiple profiles to perform bulk operations on them. After making changes, click the Save and Close button to save your changes; clicking Cancel, clicking anywhere outside the dialog, and pressing Escape will discard all your changes. You can assign an autofill rule to a profile by clicking [›] to move it into the profile, or simply by switching to that profile and adding a new rule (rules added while viewing all profiles will be assigned to Unfiled).
Autofill's default behavior is to only process rules in the active profile. An active profile is the last profile you viewed in Options or the last profile you executed. If you want to execute all matching rules regardless of what the active profile is, then disable the "Autofill active profile only" option (see Other Stuff).
Site – If you would like to restrict all of the autofill rules in a profile to a certain page or domain, then enter any part of the document title (text inside <title>
tag) or URL here. This is similar to the Site column in the rules table, but works at the profile level. Note that rule-level site filters take priority over the profile site filter. As with the Name and Site columns, this field takes a Regular Expression, so these reserved characters should be escaped (i.e., preceded with a backslash): ^ $ . ? + * \ | ( ) { } [ ]
Hotkey – Enter a hotkey combination here to be able to quickly execute all the rules in this profile by pressing the assigned hotkey.
NOTE: Some hotkeys may not work if there is a conflict with another software or extension, or the hotkey is reserved by the operating system or browser.
Here you can set advanced options for profiles and rules. Each line needs to follow this syntax:
profile/rule ID: options
The following options are available:
all=true|false
– set to true
to execute the rule regardless of what the active profile is when the "Autofill active profile only" option is enabled (default is false
)delay=n
– n
is the number of seconds to wait before autofilling; this overrides the global delay option (default is 0
)forcefill=true|false
– set to true
to always autofill, even when in manual mode (default is false
)Multiple options can be separated by spaces, e.g.:
r1: delay=2 forcefill=true
If you supply a profile ID, then the options will apply to all the rules in that profile; if you supply a rule ID, then the options will apply only to that specific rule. Profile and rule IDs are listed in the first column when you export the data.
TIP: You can quickly see a profile's ID by hovering the mouse over the profiles dropdown menu or [›] "move rule" button when in the "All" profile. A rule's ID is the same as its field reference (displayed in the tooltip when you hover over the Name or Value field), except that it starts with "r". For example, if the reference for Name is n1
, then the rule ID would be r1
. To see all of the profile and rule IDs, export your data (see Import/Export).
This is a global list of exceptions, similar to a blacklist. Any document title (text inside <title>
tag) or website URL that matches a pattern listed in this list will be ignored by Autofill. Exceptions take precedence over the Site column and profile Site filter in the Form Fields tab. Some more things to note:
\
): ^ $ . ? + * \ | ( ) { } [ ]
Text clips are snippets of boilerplate text that can be inserted into text fields via the right-click context menu. The first line defines the menu item in this syntax:
category
(optional) > title
The category will appear as a submenu under Autofill / Insert text clip. You can organize your text clips using as many categories and subcategories as you like; the text to the right of the last >
on the first line will always be the title. Separate each text clip with ===
on its own line. The text clip will be inserted at the cursor position inside the text field, or replace whatever text you have selected. Here are a few sample text clips:
PGP Public Key -----BEGIN PGP PUBLIC KEY BLOCK----- Version: BCPG C# v1.6.1.0 mQENBFvOREABCACPBhkTcgm2KmQdKvUfJAPAsqWzKyqEHxptl+ZK5oLNxqSCxZkt sPf9R5SAldvWG0PlFLZb0lwG9gLfO8qQeRNcscniN9YBULGvj2X8IDQnSFb3z1Rt ZNhqOs4yWPnfQEiAfOiawXqCWyiFOaaKSKfHelMNjdLLUtdP+4JGPrLePsf+Ev9a DcGv32UeKaHMFqBfKv5pXUO7Rm8ORpWXr3Ya69lZ4UPZYPPIwVZ6nbDkVu9M0Hvk MEH3sge/wSpwHZ42T19fRLffeSglJdSt77AmOk9gArM+cDwTCE9R8geM02tcbJcE 9Ibnrt2Z8dhfdP7LAfiEZ3IK6pa9bQLDn4kxABEBAAG0EHRoZG9hbkBnbWFpbC5j b22JARwEEAECAAYFAlvOREAACgkQGHcHDNI1uMEdPwf/eqdh42lZ2t5qA1vgJR+4 UHHG9/BCwkPq8TOJMUaaQmaKWw58wwVjrnGu/03gbXulDCGugkpkWbSXm/D6YQyk YOF0xeenl2sDug9e69j50NKgI6zwPEm4dSKU8K1ICK1n3duu9Ty81kPUIFCe5qeZ XCuTvvZhaqY4BJ/8IWhZn9hEoHb6Gfv1q+myFfov/dxn4sDty9GFpjTG3Fw5Ps8/ l0ngI5uF1YjRgcmJzHElXal5EUYxUtQhIbtGzslOkTYnonQ43m2ke9CjyAo/wL3a CUOfQbdCbcwQDvyx0sGMxgJUBkstgdPCagQZmlEcdyNj4062bFhCkrigTnqWClJ/ nw== =ASm9 -----END PGP PUBLIC KEY BLOCK----- === Personal > Name Tom === Personal > Email > Gmail tom@gmail.com === Personal > Email > Yahoo tom@yahoo.com
NOTE: Chrome has a limit of 998 total context menu items, four of which are already used by Autofill. This leaves us with a maximum of 994 text clips. Since categories are displayed as submenus and each submenu also takes up a menu item slot, use categories sparingly because each category used means one fewer text clip that can be defined.
If you have text that you would like to reuse across multiple rules, then you can assign the text to a variable and reference it in the Value field. Each line needs to follow this syntax:
variable_name = some text
Variable names can only contain letters, numbers, and the underscore character. The text cannot contain line breaks; if you want to output a line break, then use \n
instead. You can even set a variable to a value returned by JavaScript. Here are some examples to get you started (more in variables.txt):
# Example: Monday, January 17, 2022 (format is region-specific)
long_date = javascript:new Date().toLocaleDateString('en-us', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'})
# Example: 1/17/2022 (format is region-specific)
short_date = javascript:new Date().toLocaleDateString()
To use a variable in a rule, enter {@variable_name}
.
Import allows you to load settings from a CSV file. You can copy the data from a CSV file opened in a text editor such as Notepad (do NOT open it in Excel because it does autocorrection that can change some of your values, such as "01" and "1.0" being replaced with "1"). The data to be pasted into this text box needs to be arranged in the following format:
c1
)r1
)0
for Text, 1
for Password, 2
for Select, 3
for Checkbox/Radio, and 4
for JavaScript)0
for Safe, 1
for Overwrite, 2
for Prepend, 3
for Append, 4
for Wrap, 5
for Increment, and 6
for Decrement)1
to enable and 0
to disable)1
to enable and 0
to disable); URL of remote file to import data from1
to enable and 0
to disable); minimum characters to back up1
to enable and 0
to disable)1
to enable and 0
to disable); menu selection (index starting from 0)1
to enable and 0
to disable)1
to enable and 0
to disable); number of seconds to delay1
to enable and 0
to disable)1
to enable and 0
to disable)1
to enable and 0
to disable)1
to enable and 0
to disable)1
to enable and 0
to disable)1
to enable and 0
to disable)1
to enable and 0
to disable); menu selection (index starting from 0)1
to enable and 0
to disable)1
to enable and 0
to disable)1
to enable and 0
to disable)1
to enable and 0
to disable); menu selection (index starting from 0)Import mode:
### AUTOFILL PROFILES ###
). Note that this mode does not apply to CSV auto-imported from a URL (see below).
Export allows you to save all settings to a CSV file for backup. Once your settings are stored in an external file, you can later use the Import feature to restore the settings in your current browser or transfer the settings to Autofill in another browser (Chromium, Firefox, Edge). Since browser extensions cannot access the file system at the moment, you will have to manually copy the generated CSV data, paste it into a text editor (do NOT paste it into Excel), and save the file with a .csv
extension.
TIP: If you have a lot of autofill rules you'd like to reorder, then it's faster if you export your settings to a CSV file, reorder the rules in a text editor, and import the settings back into Autofill. Similarly, if you want to move many rules into different profiles at once, then it's best to do this in a text editor by reassigning their profile IDs (e.g., c1
). Once you get familiar with the CSV data structure, you can edit your autofill rules and settings in bulk before importing them back into Autofill.
As an alternative, you can also import data from a remote file by entering the file's URL in the field below the main Import/Export box and clicking Import. The URL needs to point to a plain text file that has the same structure as the exported CSV data. The server hosting this file needs to have the following two response headers:
Access-Control-Allow-Origin: *
Content-Type: text/plain
Operation:
Ctrl+Shift+J
. This is useful for troubleshooting if you want to see which rules are executed on a particular web page.{
…}
variable with its output. There are currently five types of variables you can use in the Value column:
{@variable_name}
– This variable outputs the text assigned to the variable defined in the Variables tab.{field reference}
– This variable outputs the value of the referenced field. The field reference is displayed in the tooltip when you hover over the Name and Value fields in the rules table. Note that you can only reference another field within the same profile, unless the active profile is "All". Examples: {n1}
, {v2}
{word1|word2|...}
– This variable acts like a text spinner, randomly outputting one word from a list of words that you specify. To include a literal "|" in one of the words in the set, escape it with a backslash (\
). Example: to output "red", "green", or "blue" randomly, you would enter {red|green|blue}
{(word1|word2|...)}
– This variable is like a text spinner (see above), except every time a word is outputted it is removed from the set (you can call it a shrinking text spinner).{word1,word2,...}
– This variable outputs the words in sequential order as listed instead of randomly. When the last word in the list is outputted, it starts from the beginning again. To include a literal "," in one of the words in the list, escape it with a backslash (\
). Example: to output "red", "green", and "blue" in that order, you would enter {red,green,blue}
{(word1,word2,...)}
– This variable is like a sequential list (see above), except every time a word is outputted it is removed from the list (you can call it a shrinking sequential list).{number++}
/{number--}
or {number+step}
/{number-step}
– The variable containing ++
/--
increments/decrements the number by one every time it is autofilled. To specify a custom iteration step, add +
/-
and the step amount after the number ({10++}
is equivalent to {10+1}
and {10--}
is equivalent to {10-1}
).{#}
or {#number}
– This variable outputs a random number. You can specify the number of digits after #
({#1}
is equivalent to {#}
). Example: to generate a random telephone number, you would enter ({#3}) {#3}-{#4}
{$}
or {$number}
– This variable outputs a random alphanumeric string. You can specify the number of characters after $
({$1}
is equivalent to {$}
). Example: to generate a 16-character dummy text string, you would enter {$16}
Note that you cannot use these variables inside a JavaScript rule, with the exception of {@variable_name}
variables.
TIP: Hotkeys go really well with manual mode, so be sure to set them for profiles that you intend to use frequently. You can also set a global hotkey to open the infobar and quickly search for a profile to execute.
google.com/search
google.com/search?hl=en&q=autofill
google.com/search?hl=en&q=autofill#top
google.com
), or filename if it's a local file.
<input name="trap" style="display:none">
) to act as a honeypot to detect spambots and render the form submissions invalid. Read this article for more information.Security:
Interface:
TIP: You can customize the sound effects by replacing sound.ogg
with your own audio file. On Windows, sound.ogg
is located in %USERPROFILE%\
Chrome, Edge, Firefox – Windows, Linux | All Browsers – Mac | ||
---|---|---|---|
Options – Form Fields tab (when cursor is inside a text box) | |||
Go to previous rule | ↑ | ↑ | |
Go to next rule | ↓ | ↓ | |
Move rule up | Alt + ↑ | ⌥ + ↑ | |
Move rule down | Alt + ↓ | ⌥ + ↓ |
{red|green|blue}
, except ensure that each value is used only once on the form?div
, span
, a
) instead of form elements (input
, select
, textarea
)?name
attribute values change (e.g., they contain a randomly generated string or timestamp). For example, the first time you use the infobar rules generator the name
attribute for the First Name field is "fname1481162526802", so the generated rule is ^fname1481162526802$
; however, the next time you visit the page the name
attribute changes to "fname1481162889085", so of course the rule won't match anymore and hence this field will not get autofilled. In such cases, you'll have to manually tweak the rules generated by the infobar so that they will continue to match. You can either try a shorter, more generic Regular Expression pattern like ^fname
, or you can try matching against one of the other supported attributes (see Form Fields) instead of the name
attribute if the values in those attributes don't change.<input>
, <select>
, <textarea>
) are supported by the infobar rules generator; for everything else, you'll have to use JavaScript rules. A good example is this online store. Add a product to cart and proceed to Checkout. The terms & conditions checkbox in the checkout form cannot be autofilled using the rule generated by the infobar. This checkbox is not getting checked because what you click on is not really a checkbox. Try right-clicking on it and select "Inspect"—you should see this highlighted:
<ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; background: rgb(255, 255, 255); border: 0px; opacity: 0;"></ins>
It's an <ins>
element instead of the usual <input type="checkbox">
form element. To auto-click this, you'll have to use a JavaScript rule. Try this:
To understand what this code is doing, enter the line below in the JavaScript Console. To bring up the Console, press F12 or Ctrl + Shift + J and click on the Console tab.
querySelectorAll()
is a JavaScript method that takes a CSS selector as a parameter and returns a type of list called an array of all elements matching that CSS selector within the document
object (basically, everything between <html>
and </html>
). In this case, it returns an array of elements matching .iCheck-helper
, or class name "iCheck-helper". The [1]
after this method is the index number. You can access items in the array by referencing an item's index number within the array. The thing to remember with JavaScript arrays is that index numbers start at zero, not one. Since the terms & conditions checkbox is the second item in the array, you use index number 1 to reference it. The last part of the statement (click()
) is the meat of the action—it triggers a click on that element.element.click()
to simulate a mouse click or element.value = 'something'
to autofill). In addition to querySelectorAll()
, you can also use querySelector()
to return the first matching element, which is simpler since the index number is no longer required. Here are some online references in case you want to dive deeper:
<input type="submit" value="Apply">
<button id="continue-btn">Continue</button>
– OR –
If click()
is not working for you, then you can manually trigger a 'click' event like this:
As an alternative, you can add this JavaScript rule anywhere in the profile to auto-submit the form (JavaScript rules are always executed last):^subscribe$
?
<select name="country"> … <option value="US">United States</option> … </select> <select name="state"> <!-- Initial state is empty --> </select>Your rule would look something like this:
{red|green|blue}
, except ensure that each value is used only once on the form?<input name="color1"> <input name="color2"> <input name="color3">Starting from Autofill v10, you can use the new shrinking text spinner variable to accomplish this. Here's what the rule would look like:
^color[1-3]$
{(red|green|blue)}
chrome.storage.local
. Autofill does not and will never send your data anywhere. You can verify this by monitoring the Network tab. In fact, Autofill doesn't even track you using Google Analytics or anything else. Note that even though your data is not sent anywhere, you should still NOT use Autofill to store sensitive or confidential information since the storage area is NOT encrypted, which means anybody with access to your computer will be able to see whatever you store in Autofill if they know where to look.div
, span
, a
) instead of form elements (input
, select
, textarea
)?<form>
element containing the fields you want to autofill and make a note of the action
attribute value. This is the server script that handles the form data. Also make a note of the form's id
or name
attribute value, which you'll need to submit the form later on (last step). A quick way to find the correct <form>
element is to right-click on a field and select "Inspect", then follow the breadcrumbs at the bottom of the Elements tab from right to left until you get to "form".action
script from step 5. If you see multiple rows with the same name, then click on the one with "document" under the Type column.safe: off site: source: hp q: autofill oq: autofill gs_l: hp.3..0i20k1l2j0j0i131k1j0l6.13514.14205.0.24666.11.9.0.0.0.0.511.1305.2-2j1j0j1.4.0....0...1c.1.64.hp..7.1.302.0.B15ZjP-S264The text to the left of the colon is the parameter key, and it maps to the input's
name
attribute; the text to the right of the colon is the parameter value, and it maps to the input's value
attribute. A parameter refers to this key-value pair. These parameters are sent to the server when you submit the form, and they're the only things that matter as far as Autofill is concerned. Once you know what the parameters should be, then you are ready for the next step...
^q$
autofill
^oq$
autofill
2000
to a larger number.
v1
and a rule for Last Name with the field reference v2
, and you want to autofill "[First Name] [Last Name]", then create a rule with this as the value: {v1} {v2}
. For more information on variables, please refer to the Other Stuff section.<input>
, <select>
, <textarea>
, <iframe>
(generally used by rich text editors), and elements that have the contenteditable="true"
attribute. The icon is also grayed out when the extension auto-updates in the background; if this happens on a page with form fields, then you should reload the page for proper autofilling operation.name
or id
attribute; the value in this attribute will act as a unique identifier for the autofill rule. See the Form Fields section for a full list of attributes you can match against.name="email2"
, then this rule will autofill both fields. To prevent this, enter ^email$
to force an exact match.1
for the Value field to check every checkbox on the page. However, if you still want to use a JavaScript rule, then you can use this code:
This will click every checkbox, so if one is already checked then it will be unchecked. If you want to have every checkbox checked regardless of its state, then enter this instead:
injectJquery()
. Here's a sample JavaScript rule that demonstrates jQuery injection:
Loading the jQuery library will cause Autofill to consume a tiny bit more memory, so only rely on it if you absolutely need to; otherwise stick to vanilla JavaScript (e.g., querySelector()
, querySelectorAll()
).<input type="file">
elements. The best solution for this is to use a screen recorder or macro utility like AutoHotkey.<input name="count">
. You would create a JavaScript rule and enter this code:chrome-extension://nlmmgnhgdeffjkdckmikfpnddkbbfkkk/options.htmlThe Options page can also be accessed through the right-click context menu if the setting is enabled in the Other Stuff tab, or by right-clicking on the extension icon (lightning bolt).
<input>
, <textarea>
, <select>
. Though not technically a form field, Autofill also supports WYSIWYG edit boxes that use the <iframe>
tag.### OPTIONS ###
.### PROFILES ###
section).xyz
.<audio>
tag for sound effects, and range input for the slider control. CSS3: border-radius
for the rounded corners, box-shadow
for the gradient shadows, flexbox for the modal dialog positioning, and transitions/transforms for the animations. Microsoft Ajax Minifier was used to keep the extension fast and light, and no JavaScript frameworks were used to further reduce the weight. All JavaScript performance testing was done using jsPerf. All coding was initially done in Notepad2, then later Notepad++.dispatchEvent()
to simulate user input. Example:input
event doesn't work, then try other keyboard events such as keyup
, keydown
, and keypress
. I once came across a form that required a mouse click on the field (mousedown
event) in order to properly validate the user input.
Autofill('profile ID', delay)
.The following plugins are used in Autofill:
Autofill is a labor of love that sucks an enormous amount of time and energy to continuously improve and support. Thank you for your support ^_^.