Mozprofile is a python tool for creating and managing profiles for Mozilla's applications (Firefox, Thunderbird, etc.). In addition to creating profiles, mozprofile can install addons and set preferences. Mozprofile can be utilized from the command line or as an API.
mozprofile may be used to create profiles, set preferences in profiles, or install addons into profiles.
The profile to be operated on may be specified with the --profile
switch. If a profile is not specified, one will be created in a temporary directory which will be echoed to the terminal:
(mozmill)> mozprofile /tmp/tmp4q1iEU.mozrunner (mozmill)> ls /tmp/tmp4q1iEU.mozrunner user.js
To run mozprofile from the command line enter: mozprofile --help
for a list of options.
To use mozprofile as an API you can import mozprofile.profile and/or the AddonManager.
mozprofile.profile
features a generic Profile
class. In addition, subclasses FirefoxProfile
and ThundebirdProfile
are available with preset preferences for those applications.
mozprofile.profile:Profile
:
def __init__(self, profile=None, # Path to the profile addons=None, # String of one or list of addons to install addon_manifests=None, # Manifest for addons, see http://ahal.ca/blog/2011/bulk-installing-fx-addons/ preferences=None, # Dictionary or class of preferences locations=None, # locations to proxy proxy=False, # setup a proxy restore=True # If true remove all installed addons preferences when cleaning up ): def reset(self): """reset the profile to the beginning state""" def set_preferences(self, preferences, filename='user.js'): """Adds preferences dict to profile preferences""" def clean_preferences(self): """Removed preferences added by mozrunner.""" def cleanup(self): """Cleanup operations for the profile."""
mozprofile.addons:AddonManager
:
def __init__(self, profile): """profile - the path to the profile for which we install addons""" def install_addons(self, addons=None, manifests=None): """ Installs all types of addons addons - a list of addon paths to install manifest - a list of addon manifests to install """ @classmethod def get_amo_install_path(self, query): """ Return the addon xpi install path for the specified AMO query. See: https://developer.mozilla.org/en/addons.mozilla.org_%28AMO%29_API_Developers%27_Guide/The_generic_AMO_API for query documentation. """ @classmethod def addon_details(cls, addon_path): """ returns a dictionary of details about the addon - addon_path : path to the addon directory Returns: {'id': u'[email protected]', # id of the addon 'version': u'1.4', # version of the addon 'name': u'Rainbow', # name of the addon 'unpack': False } # whether to unpack the addon """ def clean_addons(self): """Cleans up addons in the profile."""
Addons may be installed individually or from a manifest.
Example:
from mozprofile import FirefoxProfile # create new profile to pass to mozmill/mozrunner profile = FirefoxProfile(addons=["adblock.xpi"])
Preferences can be set in several ways:
obj = FirefoxProfile(preferences=[("accessibility.typeaheadfind.flashBar", 0)])
mozprofile --preferences myprefs.json
.ini
file: mozprofile --preferences myprefs.ini
mozprofile --pref key:value --pref key:value [...]
When setting preferences from an .ini
file or the --pref
switch, the value will be interpolated as an integer or a boolean (true
/false
) if possible.
mozprofile also takes care of adding permissions to the profile. See https://github.com/mozilla/mozbase/blob/master/mozprofile/mozprofile/permissions.py
Other Mozilla programs offer additional and overlapping functionality for profiles. There is also substantive documentation on profiles and their management.