fix: Fixed incorrect behavior when using ctrl+enter from new tab addressbar, b=(bug #7898), c=common

This commit is contained in:
Mr. M
2025-04-29 10:08:03 +02:00
parent 0f71de410b
commit 388e69cc38
2 changed files with 20 additions and 18 deletions

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..a469d122622fcf361eea8faa4a8d3a13a5a9e4f1 100644 index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..a864dd8854611d78e3ace9db301cf7c4f1357a32 100644
--- a/browser/components/urlbar/UrlbarInput.sys.mjs --- a/browser/components/urlbar/UrlbarInput.sys.mjs
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs +++ b/browser/components/urlbar/UrlbarInput.sys.mjs
@@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter( @@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
@@ -58,7 +58,7 @@ index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..a469d122622fcf361eea8faa4a8d3a13
if (!this.#providesSearchMode(result)) { if (!this.#providesSearchMode(result)) {
- this.view.close({ elementPicked: true }); - this.view.close({ elementPicked: true });
+ if (this._zenHandleUrlbarClose) { + if (this._zenHandleUrlbarClose) {
+ this._zenHandleUrlbarClose(true); + this._zenHandleUrlbarClose(true, true);
+ } else { + } else {
+ this.view.close({ elementPicked: true }); + this.view.close({ elementPicked: true });
+ } + }

View File

@@ -323,7 +323,7 @@ var gZenUIManager = {
this._lastSearch = ''; this._lastSearch = '';
}, },
handleUrlbarClose(onSwitch) { handleUrlbarClose(onSwitch = false, onElementPicked = false) {
// Validate browser state first // Validate browser state first
if (!this._validateBrowserState()) { if (!this._validateBrowserState()) {
console.warn('Browser state invalid for URL bar close operation'); console.warn('Browser state invalid for URL bar close operation');
@@ -350,27 +350,29 @@ var gZenUIManager = {
} }
// Handle search data // Handle search data
if (onSwitch) { if (!onElementPicked) {
this.clearUrlbarData(); if (onSwitch) {
} else { this.clearUrlbarData();
this._lastSearch = gURLBar._untrimmedValue || ''; } else {
this._lastSearch = gURLBar._untrimmedValue || '';
if (this._clearTimeout) { if (this._clearTimeout) {
clearTimeout(this._clearTimeout); clearTimeout(this._clearTimeout);
}
this._clearTimeout = setTimeout(() => {
this.clearUrlbarData();
}, this.urlbarWaitToClear);
} }
this._clearTimeout = setTimeout(() => { // Safely restore URL bar state with proper validation
this.clearUrlbarData(); if (this._prevUrlbarLabel) {
}, this.urlbarWaitToClear); gURLBar.setURI(this._prevUrlbarLabel, onSwitch, false, false, !onSwitch);
} }
// Safely restore URL bar state with proper validation gURLBar.handleRevert();
if (this._prevUrlbarLabel) {
gURLBar.setURI(this._prevUrlbarLabel, onSwitch, false, false, !onSwitch);
} }
gURLBar.handleRevert();
if (gURLBar.focused) { if (gURLBar.focused) {
gURLBar.view.close({ elementPicked: onSwitch }); gURLBar.view.close({ elementPicked: onSwitch });
gURLBar.updateTextOverflow(); gURLBar.updateTextOverflow();