[scriptable, uuid(f8365b4a-da55-4e47-be7a-230142360f62)]
interface nsIBrowserProfileMigrator : nsISupports


 profile items to migrate. use with migrate().
const unsigned short ALL = 0

const unsigned short SETTINGS = 1

const unsigned short COOKIES = 2

const unsigned short HISTORY = 4

const unsigned short FORMDATA = 8

const unsigned short PASSWORDS = 16

const unsigned short BOOKMARKS = 32

const unsigned short OTHERDATA = 64


 Whether or not there is any data that can be imported from this 
 browser (i.e. whether or not it is installed, and there exists
 a user profile)
readonly attribute boolean sourceExists
 Whether or not the import source implementing this interface
 has multiple user profiles configured.
readonly attribute boolean sourceHasMultipleProfiles
 The import source homepage.  Returns null if not present/available
readonly attribute AUTF8String sourceHomePageURL
 An enumeration of available profiles. If the import source does 
 not support profiles, this attribute is null.
readonly attribute nsISupportsArray sourceProfiles


 A bit field containing profile items that this migrator
 offers for import. 
 @param   aProfile the profile that we are looking for available data
          to import
 @param   aDoingStartup "true" if the profile is not currently being used.
 @returns bit field containing profile items (see above)
unsigned short getMigrateData(in wstring aProfile, in boolean aDoingStartup)
 Copy user profile information to the current active profile.
 @param aItems   list of data items to migrate. see above for values.
 @param aStartup helper interface which is non-null if called during startup. 
 @param aProfile profile to migrate from, if there is more than one.
void migrate(in unsigned short aItems, in nsIProfileStartup aStartup, in wstring aProfile)