NS_IMETHODIMP nsSafariProfileMigrator::GetMigrateData(const PRUnichar* aProfile, bool aReplace, PRUint16* aResult) { *aResult = 0; nsCOMPtr<nsIProperties> fileLocator(do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID)); nsCOMPtr<nsILocalFile> safariSettingsDir, safariCookiesDir; fileLocator->Get(NS_MAC_USER_LIB_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(safariSettingsDir)); safariSettingsDir->Append(NS_LITERAL_STRING("Safari")); fileLocator->Get(NS_MAC_USER_LIB_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(safariCookiesDir)); safariCookiesDir->Append(NS_LITERAL_STRING("Cookies")); // Safari stores most of its user settings under ~/Library/Safari/ MigrationData data[] = { { ToNewUnicode(SAFARI_HISTORY_FILE_NAME), nsIBrowserProfileMigrator::HISTORY, false }, { ToNewUnicode(SAFARI_BOOKMARKS_FILE_NAME), nsIBrowserProfileMigrator::BOOKMARKS, false } }; // Frees file name strings allocated above. GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, safariSettingsDir, aResult); // Safari stores Cookies under ~/Library/Cookies/Cookies.plist MigrationData data2[] = { { ToNewUnicode(SAFARI_COOKIES_FILE_NAME), nsIBrowserProfileMigrator::COOKIES, false } }; GetMigrateDataFromArray(data2, sizeof(data2)/sizeof(MigrationData), aReplace, safariCookiesDir, aResult); // Safari stores Preferences under ~/Library/Preferences/ nsCOMPtr<nsILocalFile> systemPrefsDir; fileLocator->Get(NS_OSX_USER_PREFERENCES_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(systemPrefsDir)); MigrationData data3[]= { { ToNewUnicode(SAFARI_PREFERENCES_FILE_NAME), nsIBrowserProfileMigrator::SETTINGS, false } }; GetMigrateDataFromArray(data3, sizeof(data3)/sizeof(MigrationData), aReplace, systemPrefsDir, aResult); // Don't offer to import the Safari user style sheet if the active profile // already has a content style sheet (userContent.css) bool hasContentStylesheet = false; if (NS_SUCCEEDED(ProfileHasContentStyleSheet(&hasContentStylesheet)) && !hasContentStylesheet) { nsCOMPtr<nsILocalFile> safariUserStylesheetFile; if (NS_SUCCEEDED(GetSafariUserStyleSheet(getter_AddRefs(safariUserStylesheetFile)))) *aResult |= nsIBrowserProfileMigrator::OTHERDATA; } // Don't offer to import that Safari form data if there isn't any if (HasFormDataToImport()) *aResult |= nsIBrowserProfileMigrator::FORMDATA; return NS_OK; }
NS_IMETHODIMP nsOperaProfileMigrator::GetMigrateData(const PRUnichar* aProfile, bool aReplace, PRUint16* aResult) { *aResult = 0; if (!mOperaProfile) { GetOperaProfile(aProfile, getter_AddRefs(mOperaProfile)); if (!mOperaProfile) return NS_ERROR_FILE_NOT_FOUND; } MigrationData data[] = { { ToNewUnicode(OPERA_PREFERENCES_FILE_NAME), nsIBrowserProfileMigrator::SETTINGS, PR_FALSE }, { ToNewUnicode(OPERA_COOKIES_FILE_NAME), nsIBrowserProfileMigrator::COOKIES, PR_FALSE }, { ToNewUnicode(OPERA_HISTORY_FILE_NAME), nsIBrowserProfileMigrator::HISTORY, PR_FALSE }, { ToNewUnicode(OPERA_BOOKMARKS_FILE_NAME), nsIBrowserProfileMigrator::BOOKMARKS, PR_FALSE } }; // Frees file name strings allocated above. GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, mOperaProfile, aResult); return NS_OK; }
NS_IMETHODIMP nsDogbertProfileMigrator::GetMigrateData(const PRUnichar* aProfile, PRBool aReplace, PRUint16* aResult) { *aResult = 0; if (!mSourceProfile) { GetSourceProfile(aProfile); if (!mSourceProfile) return NS_ERROR_FILE_NOT_FOUND; } MigrationData data[] = { { ToNewUnicode(PREF_FILE_NAME_IN_4x), nsIBrowserProfileMigrator::SETTINGS, PR_TRUE }, { ToNewUnicode(COOKIES_FILE_NAME_IN_4x), nsIBrowserProfileMigrator::COOKIES, PR_FALSE }, { ToNewUnicode(BOOKMARKS_FILE_NAME_IN_4x), nsIBrowserProfileMigrator::BOOKMARKS, PR_FALSE } }; // Frees file name strings allocated above. GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, mSourceProfile, aResult); return NS_OK; }
NS_IMETHODIMP nsMacIEProfileMigrator::GetMigrateData(const PRUnichar* aProfile, PRBool aReplace, PRUint16* aResult) { *aResult = 0; if (!mSourceProfile) { nsresult rv; nsCOMPtr<nsIProperties> fileLocator = do_GetService("@mozilla.org/file/directory_service;1", &rv); NS_ENSURE_SUCCESS(rv, rv); fileLocator->Get(NS_OSX_USER_PREFERENCES_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(mSourceProfile)); mSourceProfile->Append(MACIE_PREFERENCES_FOLDER_NAME); } MigrationData data[] = { { ToNewUnicode(MACIE_BOOKMARKS_FILE_NAME), nsIBrowserProfileMigrator::BOOKMARKS, PR_FALSE } }; // Frees file name strings allocated above. GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, mSourceProfile, aResult); return NS_OK; }
NS_IMETHODIMP nsSeamonkeyProfileMigrator::GetMigrateData(const PRUnichar* aProfile, PRBool aReplace, PRUint16* aResult) { *aResult = 0; if (!mSourceProfile) { GetSourceProfile(aProfile); if (!mSourceProfile) return NS_ERROR_FILE_NOT_FOUND; } MigrationData data[] = { { ToNewUnicode(FILE_NAME_PREFS), nsIBrowserProfileMigrator::SETTINGS, PR_TRUE }, { ToNewUnicode(FILE_NAME_USER_PREFS), nsIBrowserProfileMigrator::SETTINGS, PR_TRUE }, { ToNewUnicode(FILE_NAME_COOKIES), nsIBrowserProfileMigrator::COOKIES, PR_FALSE }, { ToNewUnicode(FILE_NAME_HISTORY), nsIBrowserProfileMigrator::HISTORY, PR_TRUE }, { ToNewUnicode(FILE_NAME_BOOKMARKS), nsIBrowserProfileMigrator::BOOKMARKS, PR_FALSE }, { ToNewUnicode(FILE_NAME_DOWNLOADS), nsIBrowserProfileMigrator::OTHERDATA, PR_TRUE }, { ToNewUnicode(FILE_NAME_MIMETYPES), nsIBrowserProfileMigrator::OTHERDATA, PR_TRUE } }; // Frees file name strings allocated above. GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, mSourceProfile, aResult); // Now locate passwords nsCString signonsFileName; GetSignonFileName(aReplace, getter_Copies(signonsFileName)); if (!signonsFileName.IsEmpty()) { NS_ConvertASCIItoUTF16 fileName(signonsFileName); nsCOMPtr<nsIFile> sourcePasswordsFile; mSourceProfile->Clone(getter_AddRefs(sourcePasswordsFile)); sourcePasswordsFile->Append(fileName); PRBool exists; sourcePasswordsFile->Exists(&exists); if (exists) *aResult |= nsIBrowserProfileMigrator::PASSWORDS; } return NS_OK; }
NS_IMETHODIMP nsThunderbirdProfileMigrator::GetMigrateData(const char16_t* aProfile, bool aReplace, uint16_t* aResult) { *aResult = 0; if (!mSourceProfile) { GetSourceProfile(aProfile); if (!mSourceProfile) return NS_ERROR_FILE_NOT_FOUND; } // migration fields for things we always migrate *aResult = nsISuiteProfileMigrator::ACCOUNT_SETTINGS | nsISuiteProfileMigrator::MAILDATA | nsISuiteProfileMigrator::NEWSDATA | nsISuiteProfileMigrator::ADDRESSBOOK_DATA; MigrationData data[] = { { FILE_NAME_PREFS, nsISuiteProfileMigrator::SETTINGS, true }, { FILE_NAME_USER_PREFS, nsISuiteProfileMigrator::SETTINGS, true }, { FILE_NAME_COOKIES, nsISuiteProfileMigrator::COOKIES, false }, { FILE_NAME_HISTORY, nsISuiteProfileMigrator::HISTORY, true }, { FILE_NAME_SIGNONS, nsISuiteProfileMigrator::PASSWORDS, true }, { FILE_NAME_DOWNLOADS, nsISuiteProfileMigrator::OTHERDATA, true }, { FILE_NAME_MIMETYPES, nsISuiteProfileMigrator::OTHERDATA, true }, { FILE_NAME_JUNKTRAINING, nsISuiteProfileMigrator::JUNKTRAINING, true } }; GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, mSourceProfile, aResult); return NS_OK; }
NS_IMETHODIMP nsThunderbirdProfileMigrator::GetMigrateData(const PRUnichar* aProfile, bool aReplace, uint16_t* aResult) { *aResult = 0; if (!mSourceProfile) { GetSourceProfile(aProfile); if (!mSourceProfile) return NS_ERROR_FILE_NOT_FOUND; } // migration fields for things we always migrate *aResult = nsISuiteProfileMigrator::ACCOUNT_SETTINGS | nsISuiteProfileMigrator::MAILDATA | nsISuiteProfileMigrator::NEWSDATA | nsISuiteProfileMigrator::ADDRESSBOOK_DATA; MigrationData data[] = { { FILE_NAME_PREFS, nsISuiteProfileMigrator::SETTINGS, true }, { FILE_NAME_USER_PREFS, nsISuiteProfileMigrator::SETTINGS, true }, { FILE_NAME_COOKIES, nsISuiteProfileMigrator::COOKIES, false }, { FILE_NAME_HISTORY, nsISuiteProfileMigrator::HISTORY, true }, { FILE_NAME_DOWNLOADS, nsISuiteProfileMigrator::OTHERDATA, true }, { FILE_NAME_MIMETYPES, nsISuiteProfileMigrator::OTHERDATA, true }, { FILE_NAME_JUNKTRAINING, nsISuiteProfileMigrator::JUNKTRAINING, true } }; GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, mSourceProfile, aResult); // Now locate passwords nsCString signonsFileName; GetSignonFileName(aReplace, getter_Copies(signonsFileName)); if (!signonsFileName.IsEmpty()) { nsAutoString fileName; fileName.Assign(NS_ConvertUTF8toUTF16(signonsFileName)); nsCOMPtr<nsIFile> sourcePasswordsFile; mSourceProfile->Clone(getter_AddRefs(sourcePasswordsFile)); sourcePasswordsFile->Append(fileName); bool exists; sourcePasswordsFile->Exists(&exists); if (exists) *aResult |= nsISuiteProfileMigrator::PASSWORDS; } return NS_OK; }
NS_IMETHODIMP nsSeamonkeyProfileMigrator::GetMigrateData(const PRUnichar* aProfile, bool aReplace, PRUint16* aResult) { *aResult = 0; if (!mSourceProfile) { GetSourceProfile(aProfile); if (!mSourceProfile) return NS_ERROR_FILE_NOT_FOUND; } // migration fields for things we always migrate *aResult = nsISuiteProfileMigrator::ACCOUNT_SETTINGS | nsISuiteProfileMigrator::MAILDATA | nsISuiteProfileMigrator::NEWSDATA | nsISuiteProfileMigrator::ADDRESSBOOK_DATA; MigrationData data[] = { { FILE_NAME_PREFS, nsISuiteProfileMigrator::SETTINGS, PR_TRUE }, { FILE_NAME_USER_PREFS, nsISuiteProfileMigrator::SETTINGS, PR_TRUE }, { FILE_NAME_COOKIES, nsISuiteProfileMigrator::COOKIES, PR_FALSE }, { FILE_NAME_HISTORY, nsISuiteProfileMigrator::HISTORY, PR_TRUE }, { FILE_NAME_BOOKMARKS, nsISuiteProfileMigrator::BOOKMARKS, PR_FALSE }, { FILE_NAME_DOWNLOADS, nsISuiteProfileMigrator::OTHERDATA, PR_TRUE }, { FILE_NAME_MIMETYPES, nsISuiteProfileMigrator::OTHERDATA, PR_TRUE }, { FILE_NAME_JUNKTRAINING, nsISuiteProfileMigrator::JUNKTRAINING, PR_TRUE } }; GetMigrateDataFromArray(data, sizeof(data)/sizeof(MigrationData), aReplace, mSourceProfile, aResult); // Now locate passwords nsCString signonsFileName; GetSignonFileName(aReplace, getter_Copies(signonsFileName)); if (!signonsFileName.IsEmpty()) { nsCOMPtr<nsIFile> sourcePasswordsFile; mSourceProfile->Clone(getter_AddRefs(sourcePasswordsFile)); sourcePasswordsFile->AppendNative(signonsFileName); bool exists; sourcePasswordsFile->Exists(&exists); if (exists) *aResult |= nsISuiteProfileMigrator::PASSWORDS; } // Now see if the homepages have anything to migrate. if (GetSourceHasHomePageURL()) *aResult |= nsISuiteProfileMigrator::HOMEPAGEDATA; return NS_OK; }