зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset e99b30fd0931 (bug 1067293) for causing bc failures in browser_preferences_usage.js CLOSED TREE
This commit is contained in:
Родитель
ff69e79f19
Коммит
4d0c75f5cd
|
@ -516,8 +516,6 @@ pref("browser.urlbar.maxCharsForSearchSuggestions", 100);
|
|||
|
||||
pref("browser.urlbar.trimURLs", true);
|
||||
|
||||
pref("browser.urlbar.trimHttps", false);
|
||||
|
||||
// If changed to true, copying the entire URL from the location bar will put the
|
||||
// human readable (percent-decoded) URL on the clipboard.
|
||||
pref("browser.urlbar.decodeURLsOnCopy", false);
|
||||
|
|
|
@ -3348,16 +3348,7 @@ export class UrlbarInput {
|
|||
if (fixedURI) {
|
||||
try {
|
||||
let expectedURI = Services.io.newURI(this._untrimmedValue);
|
||||
if (
|
||||
lazy.UrlbarPrefs.get("trimHttps") &&
|
||||
this._untrimmedValue.startsWith("https://")
|
||||
) {
|
||||
untrim =
|
||||
fixedURI.displaySpec.replace("http://", "https://") !=
|
||||
expectedURI.displaySpec; // FIXME bug 1847723: Figure out a way to do this without manually messing with the fixed up URI.
|
||||
} else {
|
||||
untrim = fixedURI.displaySpec != expectedURI.displaySpec;
|
||||
}
|
||||
} catch (ex) {
|
||||
untrim = true;
|
||||
}
|
||||
|
|
|
@ -405,9 +405,6 @@ const PREF_URLBAR_DEFAULTS = new Map([
|
|||
// Remove redundant portions from URLs.
|
||||
["trimURLs", true],
|
||||
|
||||
// Remove 'https://' from url when urlbar is focused.
|
||||
["trimHttps", true],
|
||||
|
||||
// If true, top sites may include sponsored ones.
|
||||
["sponsoredTopSites", false],
|
||||
|
||||
|
|
|
@ -269,12 +269,8 @@ export class UrlbarValueFormatter {
|
|||
|
||||
let { domain, origin, preDomain, schemeWSlashes, trimmedLength, url } =
|
||||
urlMetaData;
|
||||
|
||||
// When the scheme has been stripped, don't show the box for it.
|
||||
if (
|
||||
!lazy.UrlbarPrefs.get("trimURLs") ||
|
||||
schemeWSlashes != lazy.BrowserUIUtils.trimURLProtocol
|
||||
) {
|
||||
// We strip http, so we should not show the scheme box for it.
|
||||
if (!lazy.UrlbarPrefs.get("trimURLs") || schemeWSlashes != "http://") {
|
||||
this.scheme.value = schemeWSlashes;
|
||||
this.inputField.style.setProperty(
|
||||
"--urlbar-scheme-size",
|
||||
|
|
|
@ -40,17 +40,13 @@ async function testVal(urlFormatString, clobberedURLString = null) {
|
|||
}
|
||||
|
||||
add_task(async function () {
|
||||
const PREF_FORMATTING = "browser.urlbar.formatting.enabled";
|
||||
const PREF_TRIM_HTTPS = "browser.urlbar.trimHttps";
|
||||
const prefname = "browser.urlbar.formatting.enabled";
|
||||
|
||||
registerCleanupFunction(function () {
|
||||
Services.prefs.clearUserPref(PREF_FORMATTING);
|
||||
Services.prefs.clearUserPref(PREF_TRIM_HTTPS);
|
||||
Services.prefs.clearUserPref(prefname);
|
||||
gURLBar.setURI();
|
||||
});
|
||||
|
||||
Services.prefs.setBoolPref(PREF_TRIM_HTTPS, false);
|
||||
|
||||
gBrowser.selectedBrowser.focus();
|
||||
|
||||
await testVal("<https://>mozilla.org");
|
||||
|
@ -156,7 +152,7 @@ add_task(async function () {
|
|||
await testVal("foo-://mozilla.org/");
|
||||
|
||||
// Disable formatting.
|
||||
Services.prefs.setBoolPref(PREF_FORMATTING, false);
|
||||
Services.prefs.setBoolPref(prefname, false);
|
||||
|
||||
await testVal("https://mozilla.org");
|
||||
});
|
||||
|
|
|
@ -1,38 +1,53 @@
|
|||
function testValues(trimmedProtocol, notTrimmedProtocol) {
|
||||
testVal(trimmedProtocol + "mozilla.org/", "mozilla.org");
|
||||
testVal(
|
||||
notTrimmedProtocol + "mozilla.org/",
|
||||
notTrimmedProtocol + "mozilla.org"
|
||||
);
|
||||
testVal(trimmedProtocol + "mözilla.org/", "mözilla.org");
|
||||
add_task(async function () {
|
||||
const PREF_TRIMURLS = "browser.urlbar.trimURLs";
|
||||
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
|
||||
registerCleanupFunction(async function () {
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
Services.prefs.clearUserPref(PREF_TRIMURLS);
|
||||
gURLBar.setURI();
|
||||
});
|
||||
|
||||
// Avoid search service sync init warnings due to URIFixup, when running the
|
||||
// test alone.
|
||||
await Services.search.init();
|
||||
|
||||
Services.prefs.setBoolPref(PREF_TRIMURLS, true);
|
||||
|
||||
testVal("http://mozilla.org/", "mozilla.org");
|
||||
testVal("https://mozilla.org/", "https://mozilla.org");
|
||||
testVal("http://mözilla.org/", "mözilla.org");
|
||||
// This isn't a valid public suffix, thus we should untrim it or it would
|
||||
// end up doing a search.
|
||||
testVal(trimmedProtocol + "mozilla.imaginatory/");
|
||||
testVal(trimmedProtocol + "www.mozilla.org/", "www.mozilla.org");
|
||||
testVal(trimmedProtocol + "sub.mozilla.org/", "sub.mozilla.org");
|
||||
testVal(
|
||||
trimmedProtocol + "sub1.sub2.sub3.mozilla.org/",
|
||||
"sub1.sub2.sub3.mozilla.org"
|
||||
);
|
||||
testVal(trimmedProtocol + "mozilla.org/file.ext", "mozilla.org/file.ext");
|
||||
testVal(trimmedProtocol + "mozilla.org/sub/", "mozilla.org/sub/");
|
||||
testVal("http://mozilla.imaginatory/");
|
||||
testVal("http://www.mozilla.org/", "www.mozilla.org");
|
||||
testVal("http://sub.mozilla.org/", "sub.mozilla.org");
|
||||
testVal("http://sub1.sub2.sub3.mozilla.org/", "sub1.sub2.sub3.mozilla.org");
|
||||
testVal("http://mozilla.org/file.ext", "mozilla.org/file.ext");
|
||||
testVal("http://mozilla.org/sub/", "mozilla.org/sub/");
|
||||
|
||||
testVal(trimmedProtocol + "ftp.mozilla.org/", "ftp.mozilla.org");
|
||||
testVal(trimmedProtocol + "ftp1.mozilla.org/", "ftp1.mozilla.org");
|
||||
testVal(trimmedProtocol + "ftp42.mozilla.org/", "ftp42.mozilla.org");
|
||||
testVal(trimmedProtocol + "ftpx.mozilla.org/", "ftpx.mozilla.org");
|
||||
testVal("http://ftp.mozilla.org/", "ftp.mozilla.org");
|
||||
testVal("http://ftp1.mozilla.org/", "ftp1.mozilla.org");
|
||||
testVal("http://ftp42.mozilla.org/", "ftp42.mozilla.org");
|
||||
testVal("http://ftpx.mozilla.org/", "ftpx.mozilla.org");
|
||||
testVal("ftp://ftp.mozilla.org/", "ftp://ftp.mozilla.org");
|
||||
testVal("ftp://ftp1.mozilla.org/", "ftp://ftp1.mozilla.org");
|
||||
testVal("ftp://ftp42.mozilla.org/", "ftp://ftp42.mozilla.org");
|
||||
testVal("ftp://ftpx.mozilla.org/", "ftp://ftpx.mozilla.org");
|
||||
|
||||
testVal("https://user:pass@mozilla.org/", "https://user:pass@mozilla.org");
|
||||
testVal("https://user@mozilla.org/", "https://user@mozilla.org");
|
||||
testVal("http://user:pass@mozilla.org/", "user:pass@mozilla.org");
|
||||
testVal("http://user@mozilla.org/", "user@mozilla.org");
|
||||
testVal("http://sub.mozilla.org:666/", "sub.mozilla.org:666");
|
||||
|
||||
testVal("https://[fe80::222:19ff:fe11:8c76]/file.ext");
|
||||
testVal("http://[fe80::222:19ff:fe11:8c76]/", "[fe80::222:19ff:fe11:8c76]");
|
||||
testVal("https://user:pass@[fe80::222:19ff:fe11:8c76]:666/file.ext");
|
||||
testVal(
|
||||
notTrimmedProtocol + "user:pass@mozilla.org/",
|
||||
notTrimmedProtocol + "user:pass@mozilla.org"
|
||||
);
|
||||
testVal(
|
||||
notTrimmedProtocol + "user@mozilla.org/",
|
||||
notTrimmedProtocol + "user@mozilla.org"
|
||||
"http://user:pass@[fe80::222:19ff:fe11:8c76]:666/file.ext",
|
||||
"user:pass@[fe80::222:19ff:fe11:8c76]:666/file.ext"
|
||||
);
|
||||
|
||||
testVal("mailto:admin@mozilla.org");
|
||||
|
@ -40,33 +55,6 @@ function testValues(trimmedProtocol, notTrimmedProtocol) {
|
|||
testVal("about:config");
|
||||
testVal("jar:http://mozilla.org/example.jar!/");
|
||||
testVal("view-source:http://mozilla.org/");
|
||||
}
|
||||
|
||||
add_task(async function () {
|
||||
const PREF_TRIM_URLS = "browser.urlbar.trimURLs";
|
||||
const PREF_TRIM_HTTPS = "browser.urlbar.trimHttps";
|
||||
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
|
||||
|
||||
registerCleanupFunction(async function () {
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
Services.prefs.clearUserPref(PREF_TRIM_URLS);
|
||||
Services.prefs.clearUserPref(PREF_TRIM_HTTPS);
|
||||
gURLBar.setURI();
|
||||
});
|
||||
|
||||
Services.prefs.setBoolPref(PREF_TRIM_HTTPS, false);
|
||||
|
||||
// Avoid search service sync init warnings due to URIFixup, when running the
|
||||
// test alone.
|
||||
await Services.search.init();
|
||||
|
||||
Services.prefs.setBoolPref(PREF_TRIM_URLS, true);
|
||||
|
||||
testValues("http://", "https://");
|
||||
Services.prefs.setBoolPref(PREF_TRIM_HTTPS, true);
|
||||
testValues("https://", "http://");
|
||||
Services.prefs.setBoolPref(PREF_TRIM_HTTPS, false);
|
||||
|
||||
// Behaviour for hosts with no dots depends on the whitelist:
|
||||
let fixupWhitelistPref = "browser.fixup.domainwhitelist.localhost";
|
||||
|
@ -83,28 +71,17 @@ add_task(async function () {
|
|||
// This host is whitelisted, it can be trimmed.
|
||||
testVal("http://localhost/ foo bar baz", "localhost/ foo bar baz");
|
||||
|
||||
testVal("http://user:pass@mozilla.org/", "user:pass@mozilla.org");
|
||||
testVal("http://user@mozilla.org/", "user@mozilla.org");
|
||||
testVal("http://sub.mozilla.org:666/", "sub.mozilla.org:666");
|
||||
|
||||
testVal("https://[fe80::222:19ff:fe11:8c76]/file.ext");
|
||||
testVal("http://[fe80::222:19ff:fe11:8c76]/", "[fe80::222:19ff:fe11:8c76]");
|
||||
testVal("https://user:pass@[fe80::222:19ff:fe11:8c76]:666/file.ext");
|
||||
testVal(
|
||||
"http://user:pass@[fe80::222:19ff:fe11:8c76]:666/file.ext",
|
||||
"user:pass@[fe80::222:19ff:fe11:8c76]:666/file.ext"
|
||||
);
|
||||
|
||||
// This is not trimmed because it's not in the domain whitelist.
|
||||
testVal(
|
||||
"http://localhost.localdomain/ foo bar baz",
|
||||
"http://localhost.localdomain/ foo bar baz"
|
||||
);
|
||||
Services.prefs.setBoolPref(PREF_TRIM_URLS, false);
|
||||
|
||||
Services.prefs.setBoolPref(PREF_TRIMURLS, false);
|
||||
|
||||
testVal("http://mozilla.org/");
|
||||
|
||||
Services.prefs.setBoolPref(PREF_TRIM_URLS, true);
|
||||
Services.prefs.setBoolPref(PREF_TRIMURLS, true);
|
||||
|
||||
let promiseLoaded = BrowserTestUtils.browserLoaded(
|
||||
gBrowser.selectedBrowser,
|
||||
|
|
|
@ -141,26 +141,24 @@ export var BrowserUIUtils = {
|
|||
return aURL.replace(/^((?:http|https|ftp):\/\/[^/]+)\/$/, "$1");
|
||||
},
|
||||
|
||||
get trimURLProtocol() {
|
||||
return Services.prefs.getBoolPref("browser.urlbar.trimHttps")
|
||||
? "https://"
|
||||
: "http://";
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns a URL which has been trimmed by removing 'http://' or 'https://',
|
||||
* when the pref 'trimHttps' is set to true, and any trailing slash
|
||||
* (in http/https/ftp urls). Note that a trimmed url may not load the same
|
||||
* page as the original url, so before loading it, it must be passed through
|
||||
* URIFixup, to check trimming doesn't change its destination. We don't run
|
||||
* the URIFixup check here, because trimURL is in the page load path
|
||||
* (see onLocationChange), so it must be fast and simple.
|
||||
* Returns a URL which has been trimmed by removing 'http://' and any
|
||||
* trailing slash (in http/https/ftp urls).
|
||||
* Note that a trimmed url may not load the same page as the original url, so
|
||||
* before loading it, it must be passed through URIFixup, to check trimming
|
||||
* doesn't change its destination. We don't run the URIFixup check here,
|
||||
* because trimURL is in the page load path (see onLocationChange), so it
|
||||
* must be fast and simple.
|
||||
*
|
||||
* @param {string} aURL The URL to trim.
|
||||
* @returns {string} The trimmed string.
|
||||
*/
|
||||
get trimURLProtocol() {
|
||||
return "http://";
|
||||
},
|
||||
trimURL(aURL) {
|
||||
let url = this.removeSingleTrailingSlashFromURL(aURL);
|
||||
// Remove "http://" prefix.
|
||||
return url.startsWith(this.trimURLProtocol)
|
||||
? url.substring(this.trimURLProtocol.length)
|
||||
: url;
|
||||
|
|
Загрузка…
Ссылка в новой задаче