mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-12 02:07:33 +09:00
Merge remote-tracking branch 'origin/master' into custom
This commit is contained in:
commit
e075f1b671
21 changed files with 507 additions and 108 deletions
|
|
@ -13,6 +13,7 @@ Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");
|
|||
|
||||
var params;
|
||||
var cookieBundle;
|
||||
var gDateService = null;
|
||||
|
||||
var showDetails = "";
|
||||
var hideDetails = "";
|
||||
|
|
@ -38,6 +39,14 @@ function onload()
|
|||
document.getElementById("cancel").setAttribute("icon", "cancel");
|
||||
document.getElementById("disclosureButton").setAttribute("icon", "properties");
|
||||
|
||||
// Initialize the date formatter
|
||||
if (!gDateService) {
|
||||
const nsScriptableDateFormat_CONTRACTID = "@mozilla.org/intl/scriptabledateformat;1";
|
||||
const nsIScriptableDateFormat = Components.interfaces.nsIScriptableDateFormat;
|
||||
gDateService = Components.classes[nsScriptableDateFormat_CONTRACTID]
|
||||
.getService(nsIScriptableDateFormat);
|
||||
}
|
||||
|
||||
cookieBundle = document.getElementById("cookieBundle");
|
||||
|
||||
// cache strings
|
||||
|
|
@ -174,12 +183,21 @@ function cookieDeny()
|
|||
function GetExpiresString(secondsUntilExpires) {
|
||||
if (secondsUntilExpires) {
|
||||
var date = new Date(1000*secondsUntilExpires);
|
||||
const locale = Components.classes["@mozilla.org/chrome/chrome-registry;1"]
|
||||
.getService(Components.interfaces.nsIXULChromeRegistry)
|
||||
.getSelectedLocale("global", true);
|
||||
const dtOptions = { year: 'numeric', month: 'long', day: 'numeric',
|
||||
hour: 'numeric', minute: 'numeric', second: 'numeric' };
|
||||
return date.toLocaleString(locale, dtOptions);
|
||||
|
||||
// if a server manages to set a really long-lived cookie, the dateservice
|
||||
// can't cope with it properly, so we'll return a descriptive string instead.
|
||||
var expiry = "";
|
||||
try {
|
||||
expiry = gDateService.FormatDateTime("", gDateService.dateFormatLong,
|
||||
gDateService.timeFormatSeconds,
|
||||
date.getFullYear(), date.getMonth()+1,
|
||||
date.getDate(), date.getHours(),
|
||||
date.getMinutes(), date.getSeconds());
|
||||
} catch (ex) {
|
||||
// Expiry duration was out of range for the date formatter, meaning a silly long time.
|
||||
expiry = cookieBundle.getString("expireInAVeryLongTime");
|
||||
}
|
||||
return expiry;
|
||||
}
|
||||
return cookieBundle.getString("expireAtEndOfSession");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -717,6 +717,22 @@ this.DownloadIntegration = {
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef XP_WIN
|
||||
// When a file has no extension, and there's an executable file with the
|
||||
// same name in the same folder, the Windows shell can get confused.
|
||||
// For this reason, we show the file in the containing folder instead of
|
||||
// trying to open it.
|
||||
// We also don't trust mimeinfo; it could be a type we can forward to a
|
||||
// system handler, but it could also be an executable type, and we
|
||||
// don't have an exhaustive list with all of them.
|
||||
if (!fileExtension) {
|
||||
// We can't check for the existence of a same-name file with every
|
||||
// possible executable extension, so this is a catch-all.
|
||||
this.showContainingDirectory(aDownload.target.path);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// No custom application chosen, let's launch the file with the default
|
||||
// handler. First, let's try to launch it through the MIME service.
|
||||
if (mimeInfo) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue