- Firefox-Version
- 76.0.1
- Betriebssystem
- Windows10
Hallo,
vor der Neuinstallation vom Betriebsystem und damit auch von Firefox war ein Downloadfortschritt in der Fußleiste zu sehen.
Hallo,
vor der Neuinstallation vom Betriebsystem und damit auch von Firefox war ein Downloadfortschritt in der Fußleiste zu sehen.
Den hattest du dir dann mal selber per Script etc. erstellt.
Standard gibt es den nicht.
Du hattest bestimmt vorher folgendes Skript:
// ==UserScript==
// @name ucjsDownloadsStatusModoki.uc.js
// @namespace http://space.geocities.yahoo.co.jp/gl/alice0775
// @description Downloads Status Modoki
// @include main
// @compatibility Firefox 73+
// @author Alice0775
// @note ucjsDownloadsStatusModoki.uc.js.css をuserChrome.cssに読み込ませる必要あり
// @version 2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser
// @version 2019/10/20 12:30 workaround Bug 1497200: Apply Meta CSP to about:downloads, Bug 1513325 - Remove textbox binding
// @version 2019/09/08 19:30 fix scrollbox
// @version 2019/05/21 08:30 fix 69.0a1 Bug 1551320 - Replace all createElement calls in XUL documents with createXULElement
// @version 2018/10/27 12:00 fix for 64+
// @version 2018/06/12 21:00 fix for private window mode
// @version 2018/06/07 12:00 fix file name for history
// @version 2018/02/10 12:00 try catch error when DO_NOT_DELETE_HISTORY = true
// @version 2017/12/10 12:00 fix error when DO_NOT_DELETE_HISTORY = true
// @version 2017/12/10 12:00 remove workaround Bug 1279329. Disable btn while clear list is doing, close button styling for 57.
// @version 2016/06/10 12:00 modify style independent of font-family
// @version 2016/06/10 07:00 modify style of close button, fix typo
// @version 2016/06/10 00:00 Workaround Bug 1279329. adjust some padding
// @version 2015/05/08 00:00 remove padding due to Bug 1160734
// @version 2014/03/31 00:00 fix for browser.download.manager.showWhenStarting
// @version 2013/12/22 13:00 chromehidden
// @version 2013/12/19 17:10 rename REMEMBERHISTOTY to DO_NOT_DELETE_HISTORY
// @version 2013/12/16 23:28 fixed initialize numDls
// @version 2013/12/16 23:24 open only download added
// @version 2013/12/16 23:10 open only download started
// @version 2013/12/16 21:20 modify css Windows7 Aero
// @version 2013/12/16 21:00 modify css
// @version 2013/12/16 19:30 add autocheck false
// @version 2013/12/16 18:31 fix pref name
// @version 2013/12/16 18:30
// @note
// ==/UserScript==
var ucjsDownloadsStatusModoki = {
_summary: null,
_list: null,
get downloadsStatusModokiBar() {
delete downloadsStatusModokiBar;
return this.downloadsStatusModokiBar = document.getElementById("downloadsStatusModokiBar");
},
get toggleMenuitem() {
delete toggleMenuitem;
return this.toggleMenuitem = document.getElementById("toggle_downloadsStatusModokiBar");
},
init: function() {
if (document.documentElement.getAttribute("chromehidden") !="" )
return;
XPCOMUtils.defineLazyModuleGetter(window, "Downloads",
"resource://gre/modules/Downloads.jsm");
var style = `
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
#ucjsDownloadsStatusModoki {
-moz-box-orient: horizontal;
width: 485px !important;
min-width: 485px !important;
max-width: 485px !important;
max-height: 100px !important;
height: 28px !important;
background-color: rgba(0,0,0,0) !important;
margin-top: -28px !important;
}
`.replace(/\s+/g, " ");
var sspi = document.createProcessingInstruction(
'xml-stylesheet',
'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"'
);
document.insertBefore(sspi, document.documentElement);
sspi.getAttribute = function(name) {
return document.documentElement.getAttribute(name);
};
var toolbar = document.createXULElement("vbox");
toolbar.setAttribute("id", "downloadsStatusModokiBar");
toolbar.setAttribute("collapsed", true);
var bottombox = document.getElementById("main-window");
bottombox.appendChild(toolbar);
var browser = toolbar.appendChild(document.createXULElement("browser"));
browser.setAttribute("disablehistory", true);
browser.setAttribute("remote", false);
browser.setAttribute("id", "ucjsDownloadsStatusModoki");
browser.addEventListener("load", function(event){ucjsDownloadsStatusModoki.onload(event)}, true);
browser.setAttribute("src", "chrome://browser/content/downloads/contentAreaDownloadsView.xhtml?StatusModoki");
var menuitem = document.createXULElement("menuitem");
menuitem.setAttribute("id", "toggle_downloadsStatusModokiBar");
menuitem.setAttribute("type", "checkbox");
menuitem.setAttribute("autocheck", false);
menuitem.setAttribute("label", "Downloads Status Modoki Bar");
menuitem.setAttribute("checked", false);
menuitem.setAttribute("accesskey", "D");
menuitem.setAttribute("oncommand", "ucjsDownloadsStatusModoki.toggleDownloadsStatusModokiBar()");
var ref = document.getElementById("menu_customizeToolbars");
ref.parentNode.insertBefore(menuitem, ref.previousSibling);
// Ensure that the DownloadSummary object will be created asynchronously.
if (!this._summary) {
Downloads.getSummary(Downloads.ALL).then(summary => {
this._summary = summary;
return this._summary.addView(this);
}).then(null, Cu.reportError);
}
if (!this._list) {
Downloads.getList(Downloads.ALL).then(list => {
this._list = list;
return this._list.addView(this);
}).then(null, Cu.reportError);
}
window.addEventListener("unload", this, false);
},
uninit: function() {
window.removeEventListener("unload", this, false);
if (this._summary) {
this._summary.removeView(this);
}
if (this._list) {
this._list.removeView(this);
}
},
handleEvent: function(event) {
switch (event.type) {
case "unload":
this.uninit();
break;
}
},
toggleDownloadsStatusModokiBar: function() {
var collapsed = this.downloadsStatusModokiBar.collapsed;
this.downloadsStatusModokiBar.collapsed = !collapsed;
this.toggleMenuitem.setAttribute("checked", collapsed);
},
openDownloadsStatusModoki: function() {
this.downloadsStatusModokiBar.collapsed = false;
this.toggleMenuitem.setAttribute("checked", true);
},
hideDownloadsStatusModoki: function() {
this.downloadsStatusModokiBar.collapsed = true;
this.toggleMenuitem.setAttribute("checked", false);
},
onDownloadAdded: function (aDownload) {
Cu.import("resource://gre/modules/Services.jsm");
var showWhenStarting = true;
try {
showWhenStarting = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.showWhenStarting");
} catch(e) {}
this.numDls = 0;
if (showWhenStarting) {
if (this._list) {
this._list.getAll().then(downloads => {
for (let download of downloads) {
if (!download.stopped)
this.numDls++;
}
if (this.numDls > 0)
this.openDownloadsStatusModoki(false);
}).then(null, Cu.reportError);
}
}
},
onSummaryChanged: function () {
Cu.import("resource://gre/modules/Services.jsm");
if (!this._summary)
return;
if (this._summary.allHaveStopped || this._summary.progressTotalBytes == 0) {
var closeWhenDone = true;
try {
closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
} catch(e) {}
if (closeWhenDone) {
this.hideDownloadsStatusModoki();
}
}
},
// chrome://browser/content/downloads/contentAreaDownloadsView.xhtml
onload: function(event) {
var doc = event.originalTarget;
var win = doc.defaultView;
doc.documentElement.setAttribute("ucjsDownloadsStatusModoki", "true");
var button = doc.createXULElement("button");
button.setAttribute("label", "Löschen");
button.setAttribute("id", "ucjs_clearListButton");
button.setAttribute("accesskey", "L");
var ref = doc.getElementById("downloadCommands");
var vbox = doc.createXULElement("vbox");
var box = vbox.appendChild(doc.createXULElement("hbox"));
box.appendChild(button);
box.appendChild(doc.createXULElement("spacer")).setAttribute("flex", 1);
var textbox = doc.createElementNS("http://www.w3.org/1999/xhtml", "input");
textbox.setAttribute("id", "downloadFilter");
textbox.setAttribute("clickSelectsAll", true);
textbox.setAttribute("type", "search");
textbox.setAttribute("placeholder", "Suche...");
box.appendChild(textbox);
var closebtn = doc.createXULElement("toolbarbutton");
closebtn.setAttribute("id", "ucjsDownloadsStatusModoki-closebutton");
closebtn.setAttribute("class", "close-icon");
closebtn.setAttribute("tooltiptext", "Close this bar");
box.appendChild(closebtn);
ref.parentNode.insertBefore(vbox, ref);
doc.getElementById("ucjs_clearListButton").addEventListener("command", function(event) {
win.ucjsDownloadsStatusModoki_clearDownloads();
});
doc.getElementById("downloadFilter")
.addEventListener("input", function(event) {
win.ucjsDownloadsStatusModoki_doSearch(event.target.value);
});
doc.getElementById("ucjsDownloadsStatusModoki-closebutton")
.addEventListener("command", function(event) {
win.ucjsDownloadsStatusModoki_doClose();
});
/*
// xxx Bug 1279329 "Copy Download Link" of context menu in Library is grayed out
var listBox = doc.getElementById("downloadsRichListBox");
var placesView = listBox._placesView;
if (placesView) {
var place = placesView.place;
placesView.place= null;
placesView.place = place;
}
*/
win.ucjsDownloadsStatusModoki_clearDownloads = function ucjs_clearDownloads() {
var DO_NOT_DELETE_HISTORY = true; /* custmizable true or false */
var richListBox = doc.getElementById("downloadsRichListBox");
Cu.import("resource://gre/modules/Services.jsm");
var places = [];
function addPlace(aURI, aTitle, aVisitDate) {
places.push({
uri: aURI,
title: aTitle,
visits: [{
visitDate: (aVisitDate || Date.now()) * 1000,
transitionType: Ci.nsINavHistoryService.TRANSITION_LINK
}]
});
}
function moveDownloads2History() {
if (DO_NOT_DELETE_HISTORY &&
!PrivateBrowsingUtils.isWindowPrivate(window)) {
try {
for (let element of richListBox.childNodes) {
let download = element._shell.download;
let aURI = makeURI(download.source.url);
// let aTitle = document.getAnonymousElementByAttribute(element, "class", "downloadTarget").value
let aTitle = download.target.path;
aTitle = aTitle.match( /[^\\]+$/i )[0];
aTitle = aTitle.match( /[^/]+$/i )[0];
let aVisitDate = download.endTime || download.startTime;
addPlace(aURI, aTitle, aVisitDate)
}
} catch(ex) {}
}
// Clear List
richListBox._placesView.doCommand('downloadsCmd_clearDownloads');
if (DO_NOT_DELETE_HISTORY &&
!PrivateBrowsingUtils.isWindowPrivate(window)) {
try {
if (places.length > 0) {
var asyncHistory = Components.classes["@mozilla.org/browser/history;1"]
.getService(Components.interfaces.mozIAsyncHistory);
asyncHistory.updatePlaces(places);
}
} catch(ex) {}
}
}
var btn = doc.getElementById("ucjs_clearListButton");
btn.setAttribute("disabled", true);
moveDownloads2History();
btn.removeAttribute("disabled");
// close toolbar
var closeWhenDone = true;
try {
closeWhenDone = Services.prefs.getBoolPref("userChrome.downloadsStatusModoki.closeWhenDone");
} catch(e) {}
if (closeWhenDone) {
top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
}
};
win.ucjsDownloadsStatusModoki_doSearch = function ucjs_doSearch(filterString) {
var richListBox = doc.getElementById("downloadsRichListBox");
richListBox._placesView.searchTerm = filterString;
};
win.ucjsDownloadsStatusModoki_doClose = function ucjs_doClose() {
top.ucjsDownloadsStatusModoki.hideDownloadsStatusModoki();
};
}
}
ucjsDownloadsStatusModoki.init();
Alles anzeigen
Dazu gibt es noch folgende CSS-Datei:
@charset "utf-8";
/*@version 2019/12/11 fix for 73 Bug 1601094 - Rename remaining .xul files to .xhtml in browser */
/*@version 2019/10/20 12:30*/
html#main-window vbox#downloadsStatusModokiBar
{
display: flex !important;
position: absolute !important;
right: -180px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] {
-moz-box-orient: horizontal !important;
/*background-color: rgba(0,0,0,0) !important;*/
border-top: 1px solid black !important;
background-image: linear-gradient( rgba(192,192,192,1), rgba(255,255,255,1) ), none !important;
padding: 0 !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] > stack:first-child {
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] #downloadsRichListBox {
background-color: rgba(0,0,0,0) !important;
overflow-y: auto !important;
scrollbar-width: thin;
border: none !important;
min-height: 32px !important;
max-height: 32px !important;
height: 32px !important;
max-width: 210px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] *|*:root
{
--downloads-item-height: 28px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] richlistitem {
min-width:200px !important;
max-width:200px !important;
font-size: 10px !important;
margin-top: -1px !important;
min-height: 28px !important;
max-height: 28px !important;
height: 28px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] richlistitem vbox {
height: 16px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadTypeIcon {
height:16px !important;
width: 16px !important;
-moz-margin-end: 1px !important;
-moz-margin-start: 1px !important;
padding-right: 1px !important;
padding-left: 1px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadTarget {
/*margin-top:1px !important;*/
margin-top:-3px !important;
padding-bottom:16px !important;
max-width: calc(100% - 51px) !important;
min-width: calc(100% - 51px) !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .download-state[state="0"] * .downloadTarget,
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .download-state[state="4"] * .downloadTarget {
padding-bottom:0px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] #downloadsListEmptyDescription
{
color: red !important;
margin-top: 6px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadTarget:-moz-system-metric(windows-default-theme) {
margin-top:2px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] *|*.downloadProgress {
margin-top: 2px !important;
border: none !important;
padding-top: 1px !important;
padding-bottom: 1px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] *|*.downloadProgress::-moz-progress-bar {
margin-top: -1px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] *|*.downloadProgress:not([paused])::-moz-progress-bar {
background-color: lime !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadDetails {
margin-top:-10px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .download-state:not(:-moz-any([state="-1"], [state="5"], [state="0"], [state="4"], [state="7"])) .downloadDetails {
margin-top:-17px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] richlistitem[selected] .downloadDetails {
opacity: 1 !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] .downloadButton {
padding: 0 !important;
margin: 0 !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] button > .button-box {
-moz-padding-start: 0px !important;
-moz-padding-end: 1px !important;
padding-right: 0 !important;
padding-left: 0 !important;
margin-top: -2px !important;
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] #downloadFilter {
display: none !important;
/* width: 150px;
min-height: 23px !important;
max-height: 23px !important;
height: 23px !important;*/
}
#contentAreaDownloadsView[ucjsDownloadsStatusModoki] #ucjs_clearListButton {
/*display:none !important;*/
/*margin-top: -15px !important;*/
/*height: 20px !important;*/
min-width: 62px !important;
max-width: 62px !important;
min-height: 20px !important;
max-height: 20px !important;
}
Alles anzeigen
Dankw für Eure Beiträge, aber das kann ich mir nicht vorstellen, denn dazu fehlen mir die Kenntnisse.
Igelchen, lass es einfach weg, egal, was du hattest. Und wenn, dann bitte nur das hier:
https://addons.mozilla.org/de/firefox/add…load-statusbar/
Damit bist du sicher - und wir vor weiteren Nachfragen mit jeder neuen Firefox-Version, wenn der andere Kram nicht mehr funktioniert. Gerade du solltest es verstehen!
Dankw für Eure Beiträge, aber das kann ich mir nicht vorstellen, denn dazu fehlen mir die Kenntnisse.
So schlimm ist das nicht, das gilt für viele Benutzer, die sich trotzdem nicht abhalten lassen, ihren Firefox so anzupassen wie sie es möchten.
Mit einer Sicherung des alten Profils und der Kopierung des Inhalts des alten Profils in das neue Profil würde (fast) alles noch funktionieren wie vorher.
Bitte stelle ihn nicht vor Aufgaben, die einfach aussehen und trotzdem sein Können übersteigen.
Bitte stelle ihn nicht vor Aufgaben, die einfach aussehen und trotzdem sein Können übersteigen.
Was soll das? Es ist unser „Geschäft“, Benutzern zu helfen, egal, wie deren Kenntnisstand ist. Was anderes ist es, wenn jemand nicht mehr bereit ist, hilfreiche Hinweise anzunehmen, weil es ihm zu kompliziert oder zu mühevoll zu sein scheint.
Nimm den Satz doch einfach mal so, wie es ist. Am besten malst du ihm die Anleitung. Und das ist kein Witz. Ich sag dir damit nur, wie weit du ihn belasten kannst und das vorgeschlagene ist defakto zu viel. Wenn du natürlich genügend Zeit und Energie für mehr hast, dann kannst du ihn am besten direkt unterstützen.
// ..da pflichte ich .DeJaVu bei, wir haben in der längeren Vergangenheit schon viel Energie in die Unterstützung für IHN/SIE investiert, bei mir hat sich die Motivation dann irgendwann verflüchtigt..
Es ist ein "er" und jenseits von 80 und ein Dickkopf
Aber die letzten Anfragen diese Tage haben es mal wieder in sich, bzw nicht in sich, da müssen sich andere mit plagen.
So als Tipp @Igelchen: du solltest denen auch mal antworten... bis michi27 der Kragen platzt.