diff --git a/browser/components/migration/content/migration.js b/browser/components/migration/content/migration.js
index ffb0c34..442a5ff 100644
--- a/browser/components/migration/content/migration.js
+++ b/browser/components/migration/content/migration.js
@@ -314,7 +314,7 @@ var MigrationWizard = {
}
var bundle = document.getElementById("brandBundle");
- // These strings don't exist when not using official branding. If that's
+ // These strings may not exist when not using official branding. If that's
// the case, just skip this page.
try {
var pageTitle = bundle.getString("homePageMigrationPageTitle");
@@ -346,8 +346,8 @@ var MigrationWizard = {
case "chrome":
source = "sourceNameChrome";
break;
- case "firefox":
- source = "sourceNameFirefox";
+ case "self":
+ source = "brand";
break;
}
@@ -357,8 +357,13 @@ var MigrationWizard = {
var oldHomePageURL = this._migrator.sourceHomePageURL;
if (oldHomePageURL && source) {
- var bundle2 = document.getElementById("bundle");
- var appName = bundle2.getString(source);
+ var appName;
+ if (source == "brand") {
+ appName = bundle.GetStringFromName("brandFullName");
+ } else {
+ var bundle2 = document.getElementById("bundle");
+ appName = bundle2.getString(source);
+ }
var oldHomePageLabel = bundle.getFormattedString("homePageImport",
[appName]);
var oldHomePage = document.getElementById("oldHomePage");
diff --git a/browser/components/migration/content/migration.xul b/browser/components/migration/content/migration.xul
index f8653b1..f3ac62a 100644
--- a/browser/components/migration/content/migration.xul
+++ b/browser/components/migration/content/migration.xul
@@ -76,7 +76,7 @@
#endif
#endif
-
+
diff --git a/browser/components/migration/src/BrowserProfileMigrators.manifest b/browser/components/migration/src/BrowserProfileMigrators.manifest
index f49e481..e490ddf 100644
--- a/browser/components/migration/src/BrowserProfileMigrators.manifest
+++ b/browser/components/migration/src/BrowserProfileMigrators.manifest
@@ -3,4 +3,4 @@ contract @mozilla.org/toolkit/profile-migrator;1 {6F8BB968-C14F-4D6F-9733-6C6737
component {4cec1de4-1671-4fc3-a53e-6c539dc77a26} ChromeProfileMigrator.js
contract @mozilla.org/profile/migrator;1?app=browser&type=chrome {4cec1de4-1671-4fc3-a53e-6c539dc77a26}
component {91185366-ba97-4438-acba-48deaca63386} FirefoxProfileMigrator.js
-contract @mozilla.org/profile/migrator;1?app=browser&type=firefox {91185366-ba97-4438-acba-48deaca63386}
+contract @mozilla.org/profile/migrator;1?app=browser&type=self {91185366-ba97-4438-acba-48deaca63386}
diff --git a/browser/components/migration/src/FirefoxProfileMigrator.js b/browser/components/migration/src/FirefoxProfileMigrator.js
index 7b4a6e4..add5bc4 100644
--- a/browser/components/migration/src/FirefoxProfileMigrator.js
+++ b/browser/components/migration/src/FirefoxProfileMigrator.js
@@ -448,7 +448,7 @@ FirefoxProfileMigrator.prototype = {
]),
classDescription: "Firefox Profile Migrator",
- contractID: "@mozilla.org/profile/migrator;1?app=browser&type=firefox",
+ contractID: "@mozilla.org/profile/migrator;1?app=browser&type=self",
classID: Components.ID("{91185366-ba97-4438-acba-48deaca63386}")
};
diff --git a/browser/components/migration/src/ProfileMigrator.js b/browser/components/migration/src/ProfileMigrator.js
index ea66675..fe4df10 100644
--- a/browser/components/migration/src/ProfileMigrator.js
+++ b/browser/components/migration/src/ProfileMigrator.js
@@ -51,6 +51,10 @@ ProfileMigrator.prototype = {
params);
},
+ canMigrate: function PM__canMigrate(aMigratorKey) {
+ return "@mozilla.org/profile/migrator;1?app=browser&type=" + aMigratorKey in Cc;
+ },
+
_toCString: function PM__toCString(aStr) {
let cstr = Cc["@mozilla.org/supports-cstring;1"].
createInstance(Ci.nsISupportsCString);
diff --git a/browser/locales/en-US/chrome/browser/migration/migration.dtd b/browser/locales/en-US/chrome/browser/migration/migration.dtd
index 86e9d0b..8df7864 100644
--- a/browser/locales/en-US/chrome/browser/migration/migration.dtd
+++ b/browser/locales/en-US/chrome/browser/migration/migration.dtd
@@ -13,8 +13,6 @@
-
-
diff --git a/browser/locales/en-US/chrome/browser/migration/migration.properties b/browser/locales/en-US/chrome/browser/migration/migration.properties
index 495ed78..0272654 100644
--- a/browser/locales/en-US/chrome/browser/migration/migration.properties
+++ b/browser/locales/en-US/chrome/browser/migration/migration.properties
@@ -4,7 +4,6 @@ profileName_format=%S %S
sourceNameIE=Internet Explorer
sourceNameSafari=Safari
sourceNameChrome=Google Chrome
-sourceNameFirefox=Mozilla Firefox
importedBookmarksFolder=From %S
importedSearchURLsFolder=Keyword Searches (From %S)
@@ -21,27 +20,27 @@ importedSafariBookmarks=From Safari
2_ie=Cookies
2_safari=Cookies
2_chrome=Cookies
-2_firefox=Cookies
+2_self=Cookies
4_ie=Browsing History
4_safari=Browsing History
4_chrome=Browsing History
-4_firefox=Browsing History
+4_self=Browsing History
8_ie=Saved Form History
8_safari=Saved Form History
8_chrome=Saved Form History
-8_firefox=Saved Form History
+8_self=Saved Form History
16_ie=Saved Passwords
16_safari=Saved Passwords
16_chrome=Saved Passwords
-16_firefox=Saved Passwords
+16_self=Saved Passwords
32_ie=Favorites
32_safari=Bookmarks
32_chrome=Bookmarks
-32_firefox=Bookmarks
+32_self=Bookmarks
64_ie=Other Data
64_safari=Other Data
diff --git a/toolkit/content/aboutSupport.js b/toolkit/content/aboutSupport.js
index c86d80c..ff1ccfe 100644
--- a/toolkit/content/aboutSupport.js
+++ b/toolkit/content/aboutSupport.js
@@ -608,13 +608,13 @@ function populateResetBox() {
.getService(Ci.nsIToolkitProfileService);
let currentProfileDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
-#expand const MOZ_APP_NAME = "__MOZ_APP_NAME__";
-#expand const MOZ_BUILD_APP = "__MOZ_BUILD_APP__";
-
// Only show the reset box for the default profile if the self-migrator used for reset exists.
try {
if (!currentProfileDir.equals(profileService.selectedProfile.rootDir) ||
- !("@mozilla.org/profile/migrator;1?app=" + MOZ_BUILD_APP + "&type=" + MOZ_APP_NAME in Cc))
+ !("@mozilla.org/toolkit/profile-migrator;1" in Cc))
+ return;
+ let pm = Cc["@mozilla.org/toolkit/profile-migrator;1"].createInstance(Ci.nsIProfileMigrator);
+ if (!("canMigrate" in pm) || !pm.canMigrate("self"))
return;
document.getElementById("reset-box").style.visibility = "visible";
} catch (e) {
diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
index 6f0d2d6..da7342b 100644
--- a/toolkit/content/jar.mn
+++ b/toolkit/content/jar.mn
@@ -38,7 +38,7 @@ toolkit.jar:
+ content/global/mozilla.xhtml (mozilla.xhtml)
*+ content/global/nsDragAndDrop.js (nsDragAndDrop.js)
content/global/resetProfile.css (resetProfile.css)
-* content/global/resetProfile.js (resetProfile.js)
+ content/global/resetProfile.js (resetProfile.js)
* content/global/resetProfile.xul (resetProfile.xul)
* content/global/treeUtils.js (treeUtils.js)
*+ content/global/viewZoomOverlay.js (viewZoomOverlay.js)
diff --git a/toolkit/content/resetProfile.js b/toolkit/content/resetProfile.js
index 975a9ed..d8e46b1 100644
--- a/toolkit/content/resetProfile.js
+++ b/toolkit/content/resetProfile.js
@@ -6,12 +6,10 @@ Components.utils.import("resource://gre/modules/Services.jsm");
// based on onImportItemsPageShow from migration.js
function onResetProfileLoad() {
-#expand const MOZ_BUILD_APP = "__MOZ_BUILD_APP__";
-#expand const MOZ_APP_NAME = "__MOZ_APP_NAME__";
const MAX_MIGRATED_TYPES = 16;
var migratedItems = document.getElementById("migratedItems");
- var bundle = Services.strings.createBundle("chrome://" + MOZ_BUILD_APP +
+ var bundle = Services.strings.createBundle("chrome://browser" +
"/locale/migration/migration.properties");
// Loop over possible data to migrate to give the user a list of what will be preserved. This
@@ -21,7 +19,7 @@ function onResetProfileLoad() {
var itemID = Math.pow(2, i);
try {
var checkbox = document.createElement("label");
- checkbox.setAttribute("value", bundle.GetStringFromName(itemID + "_" + MOZ_APP_NAME));
+ checkbox.setAttribute("value", bundle.GetStringFromName(itemID + "_self"));
migratedItems.appendChild(checkbox);
} catch (x) {
// Catch exceptions when the string for a data type doesn't exist because it's not migrated
diff --git a/toolkit/profile/nsIProfileMigrator.idl b/toolkit/profile/nsIProfileMigrator.idl
index e941336..5b264af 100644
--- a/toolkit/profile/nsIProfileMigrator.idl
+++ b/toolkit/profile/nsIProfileMigrator.idl
@@ -69,7 +69,7 @@ interface nsIProfileStartup : nsISupports
* @client Toolkit (Startup code)
* @obtainable service, contractid("@mozilla.org/toolkit/profile-migrator;1")
*/
-[scriptable, uuid(3df284a5-2258-4d46-a664-761ecdc04c22)]
+[scriptable, uuid(96d9ab66-082c-4a9e-82ad-f8c21b391342)]
interface nsIProfileMigrator : nsISupports
{
/**
@@ -92,6 +92,14 @@ interface nsIProfileMigrator : nsISupports
* @note The startup code ignores COM exceptions thrown from this method.
*/
void migrate(in nsIProfileStartup aStartup, in ACString aKey);
+
+ /**
+ * Returns whether a given migration type is supported.
+ *
+ * @param aKey Migrator key
+ * @returns whether the migrator key is supported.
+ */
+ bool canMigrate(in ACString aKey);
};
%{C++
diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
index 32eef5c..dbe1580 100644
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -3561,7 +3561,7 @@ XRE_main(int argc, char* argv[], const nsXREAppData* aAppData)
if (gDoProfileReset) {
// Automatically migrate from the current application if we just
// reset the profile.
- aKey = MOZ_APP_NAME;
+ aKey = "self";
pm->Migrate(&dirProvider, aKey);
// Set the new profile as the default after migration.
rv = SetCurrentProfileAsDefault(profileSvc, profD);