michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsISupports.idl" michael@0: michael@0: interface nsIArray; michael@0: interface nsIProfileStartup; michael@0: michael@0: [scriptable, uuid(44993E0E-74E8-4BEC-9D66-AD8156E0A274)] michael@0: interface nsIBrowserProfileMigrator : nsISupports michael@0: { michael@0: /** michael@0: * profile items to migrate. use with migrate(). michael@0: */ michael@0: const unsigned short ALL = 0x0000; michael@0: const unsigned short SETTINGS = 0x0001; michael@0: const unsigned short COOKIES = 0x0002; michael@0: const unsigned short HISTORY = 0x0004; michael@0: const unsigned short FORMDATA = 0x0008; michael@0: const unsigned short PASSWORDS = 0x0010; michael@0: const unsigned short BOOKMARKS = 0x0020; michael@0: const unsigned short OTHERDATA = 0x0040; michael@0: const unsigned short SESSION = 0x0080; michael@0: michael@0: /** michael@0: * Copy user profile information to the current active profile. michael@0: * @param aItems list of data items to migrate. see above for values. michael@0: * @param aStartup helper interface which is non-null if called during startup. michael@0: * @param aProfile profile to migrate from, if there is more than one. michael@0: */ michael@0: void migrate(in unsigned short aItems, in nsIProfileStartup aStartup, in wstring aProfile); michael@0: michael@0: /** michael@0: * A bit field containing profile items that this migrator michael@0: * offers for import. michael@0: * @param aProfile the profile that we are looking for available data michael@0: * to import michael@0: * @param aDoingStartup "true" if the profile is not currently being used. michael@0: * @return bit field containing profile items (see above) michael@0: * @note a return value of 0 represents no items rather than ALL. michael@0: */ michael@0: unsigned short getMigrateData(in wstring aProfile, in boolean aDoingStartup); michael@0: michael@0: /** michael@0: * Whether or not there is any data that can be imported from this michael@0: * browser (i.e. whether or not it is installed, and there exists michael@0: * a user profile) michael@0: */ michael@0: readonly attribute boolean sourceExists; michael@0: michael@0: michael@0: /** michael@0: * An enumeration of available profiles. If the import source does michael@0: * not support profiles, this attribute is null. michael@0: */ michael@0: readonly attribute jsval sourceProfiles; michael@0: michael@0: /** michael@0: * The import source homepage. Returns null if not present/available michael@0: */ michael@0: readonly attribute AUTF8String sourceHomePageURL; michael@0: };