diff options
Diffstat (limited to 'libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch')
-rw-r--r-- | libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch b/libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch new file mode 100644 index 000000000..4da03a569 --- /dev/null +++ b/libre/xulrunner-libre/Bug-756390-Make-the-Reset-Firefox-feature-more-gener.patch @@ -0,0 +1,271 @@ +From: Mike Hommey <mh@glandium.org>
+Date: Tue, 5 Jun 2012 08:57:06 +0200
+Subject: Bug 756390 - Make the "Reset Firefox" feature more generic
+
+---
+ browser/components/migration/content/migration.js | 15 ++++++++++-----
+ browser/components/migration/content/migration.xul | 2 +-
+ .../migration/src/BrowserProfileMigrators.manifest | 2 +-
+ .../components/migration/src/FirefoxProfileMigrator.js | 2 +-
+ browser/components/migration/src/ProfileMigrator.js | 4 ++++
+ .../en-US/chrome/browser/migration/migration.dtd | 2 --
+ .../en-US/chrome/browser/migration/migration.properties | 11 +++++------
+ toolkit/content/aboutSupport.js | 8 ++++----
+ toolkit/content/jar.mn | 2 +-
+ toolkit/content/resetProfile.js | 6 ++----
+ toolkit/profile/nsIProfileMigrator.idl | 10 +++++++++-
+ toolkit/xre/nsAppRunner.cpp | 2 +-
+ 83 files changed, 394 insertions(+), 382 deletions(-)
+
+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
+ <radio id="chrome" label="&importFromChrome.label;" accesskey="&importFromChrome.accesskey;"/>
+- <radio id="firefox" label="&importFromFirefox.label;" accesskey="&importFromFirefox.accesskey;"/>
++ <radio id="self" hidden="true"/>
+ <radio id="fromfile" label="&importFromHTMLFile.label;" accesskey="&importFromHTMLFile.accesskey;" hidden="true"/>
+ <radio id="nothing" label="&importFromNothing.label;" accesskey="&importFromNothing.accesskey;" hidden="true"/>
+ </radiogroup>
+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 @@
+ <!ENTITY importFromSafari.accesskey "S">
+ <!ENTITY importFromChrome.label "Chrome">
+ <!ENTITY importFromChrome.accesskey "C">
+-<!ENTITY importFromFirefox.label "Firefox">
+-<!ENTITY importFromFirefox.accesskey "X">
+ <!ENTITY importFromHTMLFile.label "From an HTML File">
+ <!ENTITY importFromHTMLFile.accesskey "F">
+
+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);
|