Browse Source

Fixes and bug numbers

Frank-Rainer Grahl 6 days ago
parent
commit
a9108f643e

+ 1 - 1
comm-release/patches/1909858-venkman-25319.patch

@@ -2,7 +2,7 @@
 # User Frank-Rainer Grahl <frgrahl@gmx.net>
 # Date 1721471057 -7200
 # Parent  a60520df982faa147221a8b1f480b192ed360d43
-Bug 1909858 -Remove unused venkman overlay from DOMi. r=IanN a=IanN
+Bug 1909858 - Remove unused venkman overlay from DOMi. r=IanN a=IanN
 
 diff --git a/suite/extensions/inspector/resources/content/venkmanOverlay.xul b/suite/extensions/inspector/resources/content/venkmanOverlay.xul
 deleted file mode 100644

+ 1 - 1
comm-release/patches/9999999-wikiico-25320.patch → comm-release/patches/1925021-wikiico-25320.patch

@@ -2,7 +2,7 @@
 # User Frank-Rainer Grahl <frgrahl@gmx.net>
 # Date 1726159723 -7200
 # Parent  977092b0948ce214739cc84ecbffecaacf6cf08f
-Bug 9999999 - Update wikipedia search icon. r=mIanN a=IanN
+Bug 1925021 - Update wikipedia search icon. r=IanN a=IanN
 
 Adds an 48x48 image.
 

+ 1 - 1
comm-release/patches/9999999-handler-25320.patch → comm-release/patches/1925023-handler-25320.patch

@@ -2,7 +2,7 @@
 # User Frank-Rainer Grahl <frgrahl@gmx.net>
 # Date 1727713945 -7200
 # Parent  b12d9beb551c25fcc88a8e96d7fea1eb00ae0420
-Bug 9999999 - Register as handler for media types. r=IanN a=IanN
+Bug 1925023 - Register as handler for media types. r=IanN a=IanN
 
 Register as default svg and webp handler. Register other media types if no
 handler exists.

+ 9 - 7
comm-release/patches/9999999-specificsearch-25320.patch → comm-release/patches/1925025-specificsearch-25320.patch

@@ -1,8 +1,8 @@
 # HG changeset patch
 # User Frank-Rainer Grahl <frgrahl@gmx.net>
 # Date 1728560456 -7200
-# Parent  4b0fef9da7c68d81e40434dd28956e6282f3d12b
-Bug 9999999 - Show specfic placeholders for bookmarks and history in sidebar search. r=IanN a=IanN
+# Parent  2b7ee2823a4748e210f8fbb17239999bf5ae2505
+Bug 1925025 - Show specific placeholders for bookmarks and history in sidebar search. r=IanN a=IanN
 
 See Bug 1400975 "Add specific placeholders for the sidebar search boxes".
 
@@ -19,7 +19,7 @@ diff --git a/suite/components/places/content/bookmarksPanel.xul b/suite/componen
    <hbox id="sidebar-search-container" align="center">
      <textbox id="search-box" flex="1" type="search"
 -             placeholder="&search.placeholder;"
-+             placeholder="&bookmarksSearch.placeholder;"
++             placeholder="&searchBookmarks.placeholder;"
               aria-controls="bookmarks-view"
               oncommand="searchBookmarks(this.value);"/>
    </hbox>
@@ -41,7 +41,7 @@ diff --git a/suite/components/places/content/history-panel.xul b/suite/component
    <hbox id="sidebar-search-container" align="center">
      <textbox id="search-box" flex="1" type="search"
 -             placeholder="&search.placeholder;"
-+             placeholder="&historySearch.placeholder;"
++             placeholder="&searchHistory.placeholder;"
               aria-controls="historyTree"
               oncommand="searchHistory(this.value);"/>
      <button id="viewButton" style="min-width:0px !important;" type="menu"
@@ -53,7 +53,7 @@ diff --git a/suite/components/places/content/history-panel.xul b/suite/component
 diff --git a/suite/locales/en-US/chrome/common/places/places.dtd b/suite/locales/en-US/chrome/common/places/places.dtd
 --- a/suite/locales/en-US/chrome/common/places/places.dtd
 +++ b/suite/locales/en-US/chrome/common/places/places.dtd
-@@ -77,17 +77,18 @@
+@@ -77,17 +77,20 @@
  <!ENTITY col.tags.label          "Tags">
  <!ENTITY col.url.label           "Location">
  <!ENTITY col.mostrecentvisit.label "Most Recent Visit">
@@ -63,8 +63,10 @@ diff --git a/suite/locales/en-US/chrome/common/places/places.dtd b/suite/locales
  <!ENTITY col.lastmodified.label  "Last Modified">
  
 -<!ENTITY search.placeholder  "Search">
-+<!ENTITY bookmarksSearch.placeholder  "Search bookmarks">
-+<!ENTITY historySearch.placeholder  "Search history">
++<!-- LOCALIZATION NOTE (searchBookmarks.placeholder): Should match searchBookmarks in places.properties" -->
++<!ENTITY searchBookmarks.placeholder  "Search bookmarks">
++<!-- LOCALIZATION NOTE (searchHistory.placeholder): Should match searchHistory in places.properties" -->
++<!ENTITY searchHistory.placeholder  "Search history">
  
  <!ENTITY cmd.find.key  "f">
  

+ 1 - 1
comm-release/patches/9999999-focus-25320.patch → comm-release/patches/1925033-focus-25320.patch

@@ -2,7 +2,7 @@
 # User Frank-Rainer Grahl <frgrahl@gmx.net>
 # Date 1728593214 -7200
 # Parent  1aea0bb1f37deeef853d7307272702b70a083e32
-Bug 9999999 - Use Services.focus for bookmarking from mailnews. r=IanN a=IanN
+Bug 1925033 - Use Services.focus for bookmarking from mailnews. r=IanN a=IanN
 
 diff --git a/suite/components/places/PlacesUIUtils.jsm b/suite/components/places/PlacesUIUtils.jsm
 --- a/suite/components/places/PlacesUIUtils.jsm

+ 361 - 0
comm-release/patches/1925037-switchToTabHavingURI-25320.patch

@@ -0,0 +1,361 @@
+# HG changeset patch
+# User Frank-Rainer Grahl <frgrahl@gmx.net>
+# Date 1729077928 -7200
+# Parent  f7d4d44c38a4243fe43c572c2203446239bc637a
+Bug 1925037 - Pass optional parameters to switchToTabHavingURI as an array. r=IanN a=IanN
+
+Aligns the call syntax with Firefox and toolkit usage.
+
+Drive by fixes: Undefined e.button warning in strict mode and a trailing blank removal.
+
+diff --git a/suite/base/content/tasksOverlay.js b/suite/base/content/tasksOverlay.js
+--- a/suite/base/content/tasksOverlay.js
++++ b/suite/base/content/tasksOverlay.js
+@@ -39,39 +39,47 @@ function toDataManager(aView)
+   if (useDlg) {
+     var url = "chrome://communicator/content/dataman/dataman.xul";
+     var win = toOpenWindowByType("data:manager", url, "", aView);
+     if (win && aView)
+       win.gDataman.loadView(aView);
+     return;
+   }
+ 
+-  switchToTabHavingURI("about:data", true, function(browser) {
+-    if (aView)
+-      browser.contentWindow.wrappedJSObject.gDataman.loadView(aView);
++  switchToTabHavingURI("about:data", true, {
++    browserCallback: function(browser) {
++      if (aView) {
++        browser.contentWindow.wrappedJSObject.gDataman.loadView(aView);
++      }
++    }
+   });
+ }
+ 
+ function toEM(aView)
+ {
+   var useDlg = Services.prefs.getBoolPref("suite.manager.addons.openAsDialog");
+ 
+   if (useDlg) {
+     var view = aView ? { view: aView } : null;
+     var url = "chrome://mozapps/content/extensions/extensions.xul";
+     var win = toOpenWindowByType("Addons:Manager", url, "", view);
+     if (win && aView)
+       win.loadView(aView);
+     return;
+   }
+ 
+-  switchToTabHavingURI("about:addons", true, function(browser) {
+-    if (aView)
+-      browser.contentWindow.wrappedJSObject.loadView(aView);
++  switchToTabHavingURI("about:addons", true, {
++    triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
++    browserCallback: function(browser) {
++      if (aView) {
++        browser.contentWindow.wrappedJSObject.loadView(aView);
++      }
++    }
+   });
++
+ }
+ 
+ function toBookmarksManager()
+ {
+   toOpenWindowByType("Places:Organizer",
+                      "chrome://communicator/content/places/places.xul");
+ }
+ 
+diff --git a/suite/base/content/utilityOverlay.js b/suite/base/content/utilityOverlay.js
+--- a/suite/base/content/utilityOverlay.js
++++ b/suite/base/content/utilityOverlay.js
+@@ -1406,17 +1406,17 @@ function whereToOpenLink(e, ignoreButton
+     return "current";
+ 
+   var shift = e.shiftKey;
+   var ctrl = e.ctrlKey;
+   var meta = e.metaKey;
+   var alt = e.altKey && !ignoreSave;
+ 
+   // ignoreButton allows "middle-click paste" to use function without always opening in a new window.
+-  var middle = !ignoreButton && e.button == 1;
++  var middle = !ignoreButton && e.button && e.button == 1;
+ 
+   // Don't do anything special with right-mouse clicks.  They're probably clicks on context menu items.
+ 
+   // On macOS ctrl is not evaluated.
+   var metaKey = AppConstants.platform == "macosx" ? meta : ctrl;
+ 
+   if (metaKey || middle) {
+     if (Services.prefs.getBoolPref("browser.tabs.opentabfor.middleclick", true))
+@@ -1701,17 +1701,17 @@ function openUILinkArrayIn(urlArray, whe
+   var w = getTopWin();
+ 
+   if (!w || where == "window") {
+     return window.openDialog(getBrowserURL(), "_blank", "chrome,all,dialog=no",
+                              urlArray.join("\n"), // Pretend that we're a home page group
+                              null, null, null, allowThirdPartyFixup);
+   }
+ 
+-  var loadInBackground = 
++  var loadInBackground =
+     Services.prefs.getBoolPref("browser.tabs.loadInBackground");
+ 
+   var browser = w.getBrowser();
+   switch (where) {
+   case "current":
+     w.loadURI(urlArray[0], null, null, allowThirdPartyFixup);
+     w.content.focus();
+     break;
+@@ -1728,76 +1728,177 @@ function openUILinkArrayIn(urlArray, whe
+   var relatedToCurrent = where == "current";
+   for (var i = 1; i < urlArray.length; i++)
+     browser.addTab(urlArray[i], {allowThirdPartyFixup: allowThirdPartyFixup, relatedToCurrent: relatedToCurrent});
+ 
+   return w;
+ }
+ 
+ /**
+- * Switch to a tab that has a given URI, and focusses its browser window.
+- * If a matching tab is in this window, it will be switched to. Otherwise, other
+- * windows will be searched.
++ * Switch to a tab that has a given URI, and focuses its browser window.
++ * If a matching tab is in this window, it will be switched to. Otherwise,
++ *  other windows will be searched.
+  *
+  * @param aURI
+  *        URI to search for
+  * @param aOpenNew
+- *        True to open a new tab and switch to it, if no existing tab is found
+- * @param A callback to call when the tab is open, the tab's browser will be
+- *        passed as an argument
+- * @return True if a tab was switched to (or opened), false otherwise
++ *        True to open a new tab and switch to it, if no existing tab is found.
++ *        If no suitable window is found, a new one will be opened.
++ * @param aOpenParams
++ *        If switching to this URI results in us opening a tab, aOpenParams
++ *        will be the parameter object that gets passed to openUILinkIn. Please
++ *        see the documentation for openUILinkIn to see what parameters can be
++ *        passed via this object.
++ *        This object also allows:
++ *        - 'ignoreFragment' property to be set to true to exclude
++ *        fragment-portion matching when comparing URIs.
++ *          If set to "whenComparing", the fragment will be unmodified.
++ *          If set to "whenComparingAndReplace", the fragment will be replaced.
++ *        - 'ignoreQueryString' boolean property to be set to true to exclude
++ *         query string matching when comparing URIs.
++ *        - 'replaceQueryString' boolean property to be set to true to exclude
++ *        query string matching when comparing URIs and overwrite the initial
++ *         query string with the one from the new URI.
++ *        - 'browserCallback' a callback to call when the tab is open, the
++ *        tab's browser will be passed as an argument
++
++ * @return True if an existing tab was found, false otherwise
+  */
+-function switchToTabHavingURI(aURI, aOpenNew, aCallback) {
++function switchToTabHavingURI(aURI, aOpenNew, aOpenParams = {}) {
++  // Certain URLs can be switched to irrespective of the source or destination
++  // window being in private browsing mode:
++  const kPrivateBrowsingWhitelist = new Set([
++    "about:addons",
++  ]);
++
++  let ignoreFragment = aOpenParams.ignoreFragment;
++  let ignoreQueryString = aOpenParams.ignoreQueryString;
++  let replaceQueryString = aOpenParams.replaceQueryString;
++  let browserCallback = aOpenParams.browserCallback;
++
++  // These properties are only used by switchToTabHavingURI and should
++  // not be used as a parameter for the new load.
++  delete aOpenParams.ignoreFragment;
++  delete aOpenParams.ignoreQueryString;
++  delete aOpenParams.replaceQueryString;
++  delete aOpenParams.browserCallback;
++
++  // This will switch to the tab in aWindow having aURI, if present.
+   function switchIfURIInWindow(aWindow) {
+-    if (!aWindow.gBrowser)
++    // Only switch to the tab if neither the source nor the destination window
++    // are private and they are not in permanent private browsing mode
++    if (!kPrivateBrowsingWhitelist.has(aURI.spec) &&
++        (PrivateBrowsingUtils.isWindowPrivate(window) ||
++         PrivateBrowsingUtils.isWindowPrivate(aWindow)) &&
++        !PrivateBrowsingUtils.permanentPrivateBrowsing) {
+       return false;
++    }
++
++    // Remove the query string, fragment, both, or neither from a given url.
++    function cleanURL(url, removeQuery, removeFragment) {
++      let ret = url;
++      if (removeFragment) {
++        ret = ret.split("#")[0];
++        if (removeQuery) {
++          // This removes a query, if present before the fragment.
++          ret = ret.split("?")[0];
++        }
++      } else if (removeQuery) {
++        // This is needed in case there is a fragment after the query.
++        let fragment = ret.split("#")[1];
++        ret = ret.split("?")[0].concat(
++          (fragment != undefined) ? "#".concat(fragment) : "");
++      }
++      return ret;
++    }
++
++    // Need to handle nsSimpleURIs here too (e.g. about:...), which don't
++    // work correctly with URL objects - so treat them as strings
++    let ignoreFragmentWhenComparing =
++      typeof ignoreFragment == "string" &&
++      ignoreFragment.startsWith("whenComparing");
++    let requestedCompare = cleanURL(
++          aURI.displaySpec, ignoreQueryString || replaceQueryString,
++          ignoreFragmentWhenComparing);
+     let browsers = aWindow.gBrowser.browsers;
+     for (let i = 0; i < browsers.length; i++) {
+       let browser = browsers[i];
+-      if (browser.currentURI.equals(aURI)) {
+-        // Focus the matching window & tab
++      let browserCompare = cleanURL(
++          browser.currentURI.displaySpec,
++          ignoreQueryString || replaceQueryString,
++          ignoreFragmentWhenComparing);
++      if (requestedCompare == browserCompare) {
+         aWindow.focus();
++        if (ignoreFragment == "whenComparingAndReplace" ||
++            replaceQueryString) {
++          browser.loadURI(aURI.spec);
++        }
+         aWindow.gBrowser.tabContainer.selectedIndex = i;
+-        if (aCallback)
+-          aCallback(browser);
++        if (browserCallback) {
++          // Services.console
++          //         .logStringMessage("switchToTabHavingURI browsercallb 1");
++          browserCallback(browser);
++        }
++
+         return true;
+       }
+     }
+     return false;
+   }
+ 
+   // This can be passed either nsIURI or a string.
+-  if (!(aURI instanceof Ci.nsIURI))
++  if (!(aURI instanceof Ci.nsIURI)) {
+     aURI = Services.io.newURI(aURI);
++  }
++
++  // Services.console.logStringMessage("switchToTabHavingURI " + aURI.spec);
++
++  let isBrowserWindow = !!window.gBrowser;
+ 
+   // Prioritise this window.
+-  if (switchIfURIInWindow(window))
++  if (isBrowserWindow && switchIfURIInWindow(window)) {
+     return true;
++  }
+ 
+   let winEnum = Services.wm.getEnumerator("navigator:browser");
+   while (winEnum.hasMoreElements()) {
+     let browserWin = winEnum.getNext();
+     // Skip closed (but not yet destroyed) windows,
+     // and the current window (which was checked earlier).
+-    if (browserWin.closed || browserWin == window)
++    if (browserWin.closed || browserWin == window) {
+       continue;
+-    if (switchIfURIInWindow(browserWin))
++    }
++    if (switchIfURIInWindow(browserWin)) {
+       return true;
++    }
+   }
+ 
+   // No opened tab has that url.
+   if (aOpenNew) {
+-    let browserWin = openUILinkIn(aURI.spec, "tabfocused");
+-    if (aCallback) {
+-      browserWin.addEventListener("pageshow", function browserWinPageShow(event) {
+-        if (event.target.location.href != aURI.spec)
+-          return;
+-        browserWin.removeEventListener("pageshow", browserWinPageShow, true);
+-        aCallback(browserWin.getBrowser().selectedBrowser);
+-      }, true);
++    let browserWinNew;
++    if (isBrowserWindow && isTabEmpty(gBrowser.selectedTab)) {
++      browserWinNew = openUILinkIn(aURI.spec, "current", aOpenParams);
++    } else {
++      browserWinNew = openUILinkIn(aURI.spec, "tab", aOpenParams);
++    }
++    if (browserCallback) {
++      // Services.console
++      //         .logStringMessage("switchToTabHavingURI browsercallb pre");
++      browserWinNew.addEventListener("pageshow",
++        function browserWinPageShow(event) {
++          if (event.target.location.href != aURI.spec) {
++            return;
++          }
++          browserWinNew.removeEventListener("pageshow", browserWinPageShow,
++                                            true);
++          // Services.console
++          //         .logStringMessage("switchToTabHavingURI browsercallb 2");
++          browserCallback(browserWinNew.getBrowser().selectedBrowser);
++        },
++      true);
+     }
+     return true;
+   }
+ 
+   return false;
+ }
+ 
+ // Determines if a browser is "empty"
+diff --git a/suite/browser/navigator.js b/suite/browser/navigator.js
+--- a/suite/browser/navigator.js
++++ b/suite/browser/navigator.js
+@@ -1733,17 +1733,17 @@ function BrowserOpenTab()
+       setTimeout(WindowFocusTimerCallback, 0, gURLBar);
+     else
+       setTimeout(WindowFocusTimerCallback, 0, content);
+   }
+ }
+ 
+ function BrowserOpenSyncTabs()
+ {
+-  switchToTabHavingURI("about:sync-tabs", true);
++  switchToTabHavingURI("about:sync-tabs", true, aOpenParams = {});
+ }
+ 
+ // Class for saving the last directory and filter Index in the prefs.
+ // Used for open file and upload file.
+ class RememberLastDir {
+ 
+   // The pref names are constructed from the prefix parameter in the constructor.
+   // The pref names should not be changed later.
+diff --git a/suite/components/tests/browser/browser_isempty.js b/suite/components/tests/browser/browser_isempty.js
+--- a/suite/components/tests/browser/browser_isempty.js
++++ b/suite/components/tests/browser/browser_isempty.js
+@@ -10,19 +10,21 @@ var gWindowObject;
+ var gTabCount;
+ 
+ function test() {
+   waitForExplicitFinish();
+   gTabCount = gBrowser.tabs.length;
+ 
+   gBrowser.selectedTab = gBrowser.addTab();
+   is(isTabEmpty(gBrowser.selectedTab), true, "Added tab is empty");
+-  switchToTabHavingURI("about:", true, function(aBrowser) {
+-    gWindowObject = aBrowser.contentWindow.wrappedJSObject;
+-    end_test();
++  switchToTabHavingURI("about:", true, {
++    browserCallback: function(aBrowser) {
++      gWindowObject = aBrowser.contentWindow.wrappedJSObject;
++      end_test();
++    }
+   });
+ }
+ 
+ function end_test() {
+   gWindowObject.close();
+   is(gBrowser.tabs.length, gTabCount, "We're still at the same number of tabs");
+   finish();
+ }

+ 5 - 4
comm-release/patches/series

@@ -2211,9 +2211,10 @@ WIP-1070492-composer-findbar-v3-25319.patch
 1924589-irc-tidy-nss-25320.patch
 1924592-irc-tidy-message-manager-25320.patch
 1924595-irc-getService-25320.patch
-9999999-wikiico-25320.patch
-9999999-handler-25320.patch
+1925021-wikiico-25320.patch
+1925023-handler-25320.patch
 TOP-1378089-4-WIP-bookmarks-25320.patch
 TOP-1872623-cancelbookmark-25319.patch
-9999999-specificsearch-25320.patch
-9999999-focus-25320.patch
+1925025-specificsearch-25320.patch
+1925033-focus-25320.patch
+1925037-switchToTabHavingURI-25320.patch

+ 24 - 4
l10n-release/patches/1902851-l10n-25320.patch

@@ -166,7 +166,7 @@ diff --git a/de/suite/chrome/common/help/shortcuts.xhtml b/de/suite/chrome/commo
 diff --git a/de/suite/chrome/common/places/places.dtd b/de/suite/chrome/common/places/places.dtd
 --- a/de/suite/chrome/common/places/places.dtd
 +++ b/de/suite/chrome/common/places/places.dtd
-@@ -77,17 +77,18 @@
+@@ -77,17 +77,20 @@
  <!ENTITY col.tags.label          "Schlagwörter">
  <!ENTITY col.url.label           "Adresse">
  <!ENTITY col.mostrecentvisit.label "Zuletzt besucht">
@@ -176,8 +176,10 @@ diff --git a/de/suite/chrome/common/places/places.dtd b/de/suite/chrome/common/p
  <!ENTITY col.lastmodified.label  "Zuletzt verändert">
  
 -<!ENTITY search.placeholder  "Suchen">
-+<!ENTITY bookmarksSearch.placeholder  "Lesezeichen durchsuchen">
-+<!ENTITY historySearch.placeholder  "Chronik durchsuchen">
++<!-- LOCALIZATION NOTE (searchBookmarks.placeholder): Should match searchBookmarks in places.properties" -->
++<!ENTITY searchBookmarks.placeholder  "Lesezeichen durchsuchen">
++<!-- LOCALIZATION NOTE (searchHistory.placeholder): Should match searchHistory in places.properties" -->
++<!ENTITY searchHistory.placeholder  "Chronik durchsuchen">
  
  <!ENTITY cmd.find.key  "f">
  
@@ -235,7 +237,25 @@ diff --git a/de/suite/chrome/mailnews/addressbook/abCardOverlay.dtd b/de/suite/c
 diff --git a/de/suite/extensions/irc/chrome/chatzilla.properties b/de/suite/extensions/irc/chrome/chatzilla.properties
 --- a/de/suite/extensions/irc/chrome/chatzilla.properties
 +++ b/de/suite/extensions/irc/chrome/chatzilla.properties
-@@ -1250,17 +1250,16 @@ msg.conf.mode.off    = Konferenzmodus ist für diese Ansicht nicht mehr aktiviert; Betreten, Verlassen, Beenden und Nick-Änderungen werden angezeigt.
+@@ -668,17 +668,16 @@ msg.err.no.ctcp.help  = %S hat keine Hil
+ msg.err.unable.to.print = Die aktuelle Ansicht unterstützt Drucken nicht.
+ msg.err.unsupported.command = Der Server unterstützt das "%S"-Kommando nicht.
+ msg.err.invalid.mode  = Der angegebene Modus-String ("%S") ist ungültig. Ein gültiger Modus-String besteht aus einer oder mehreren Folgen von einem + oder - gefolgt von einem oder mehreren alphabetischen Zeichen.
+ msg.err.away.save     = Speichern der Liste von Abwesenheitsnachrichten fehlgeschlagen (%S).
+ msg.err.inputhistory.not.writable = Die Eingabe-Chronik konnte nicht in "%S" gespeichert werden.
+ msg.err.urls.not.writable = Das URL-Log konnte nicht in "%S" gespeichert werden.
+ msg.err.invalid.url   = "%S" ist weder eine gültige URL noch ein Alias für eine URL und konnte daher nicht geladen werden.
+ msg.err.no.channel    = Wenn Sie das "%S"-Kommand ausführen, sollten Sie entweder einen Channel-Namen angeben, oder das Kommando im Kontext eines Channels ausführen.
+-msg.err.no.idleservice = ChatZilla kann in Ihrer Version von &brandShortName; nicht feststellen, ob Sie abwesend sind. Die Auto-Abwesenheits-Funktion wird jetzt deaktiviert.
+ 
+ msg.warn.pac.loading = Die Datei für automatische Proxy-Konfiguration wurde noch nicht geladen; ChatZilla wird es in Kürze erneut versuchen.
+ 
+ # Ask for nick pass if not explicitly given in the command:
+ msg.need.identify.password = Bitte geben Sie das Passwort für diesen Nicknamen ein.
+ 
+ # Ask for oper pass if not explicitly given in the command:
+ msg.need.oper.password = Bitte geben Sie ein Passwort ein, um IRC-Operator-Berechtigungen zu bekommen.
+@@ -1250,17 +1249,16 @@ msg.conf.mode.off    = Konferenzmodus ist für diese Ansicht nicht mehr aktiviert; Betreten, Verlassen, Beenden und Nick-Änderungen werden angezeigt.
  
  # Join Network/Channel dialog
  msg.cd.updated    = Channel-Liste für das Netzwerk wurde auf "%S" zwischengespeichert

+ 2 - 2
mozilla-release/patches/9999999-removebinary-25320.patch → mozilla-release/patches/1925041-removebinary-25320.patch

@@ -1,8 +1,8 @@
 # HG changeset patch
 # User Frank-Rainer Grahl <frgrahl@gmx.net>
 # Date 1727650331 -7200
-# Parent  86173d21f2d52d8636bfe5aaf94ac0e38f3e7f53
-Bug 99999999 - Remove defunct binary manifest remains. r=IanN a=IanN
+# Parent  be77d38b579920668435aeaffc12af1b632d537a
+Bug 1925041 - Remove defunct binary manifest remains. r=IanN a=IanN
 SeaMonkey release branch only.
 
 diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py

+ 1 - 1
mozilla-release/patches/series

@@ -7687,5 +7687,5 @@ TOP-NOBUG-1712804fix-25320.patch
 1902935-seamonkey-credits-25320.patch
 1862395-incorrect-version-resistfingerprinting-v2-25320.patch
 1737436-use-mozilla-compat-version-define-25320.patch
-9999999-removebinary-25320.patch
+1925041-removebinary-25320.patch
 1476333-fix-25320.patch