dito...
Auch dir: "Danke"
dito...
Auch dir: "Danke"
Gerne!
Ich hab ja auch was davon, wenn es funktioniert...
Noch ein Skript:
...
Vielen lieben Dank
Da hast Du aber ganz schön hartnäckig gekämpft!
Hut ab.
Vielen lieben Dank
Danke dir, für deine netten Worte...
Und wehe, jemand findet noch ein Haar in der Suppe...
Öffne ein zweites Fenster, schließe das erste und dann klick im zweiten auf den Button.
Öffne ein zweites Fenster, schließe das erste und dann klick im zweiten auf den Button.
Ja, wer macht denn sowas?
Danke.
Das ist nur ein ganz kleines Härchen...das lasse ich höchstens noch als "Fehlerchen" durchgehen.
Hatte da wohl etwas zu viel "wegoptimiert". Dann halt so:
(function() {
if (!window.gBrowser){
return;
}
CustomizableUI.createWidget({
id: 'addons-update-button-ucjs',
defaultArea: CustomizableUI.AREA_NAVBAR,
label: 'Add-ons Update',
tooltiptext: 'Add-ons aktualisieren',
onCommand: onCommand,
onCreated: function(button) {
button.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB9klEQVR42o2TP2gTURzHvwcRXqDDCzi8gww+cfACBRsoJAWXji0KzZFBxUELDoouOmnG6JQiWOogVAcpHUpvKDRLQbekoKRDJXHyLYHLIOQNhXtgBt+7u+SSpkq+w93xu9/vw++vhVj0MiUOyzicEo5LuFh/ACGV6PT6HflbKmOyzINnGdt5kPOKnBYxg5pCNu99apdEt9cLAYdPi4cr8+kVDGYJ10oB3mlQdzebqxZnlLZf5vsEwYzRkRTSyL1pZSznCuPtZ/zXlMcNV9e2FH2LBvCjDrAFoNsYueTeiashoPV4EkDWNrSzA/ltP2rwohumjZ9foI5qI7/8+yHgkT0CkGvLwK0q5KYLovzIWK6BXNf2754GVBPABz8GPEwAithQKQJ6JmJiBmqOQekGEyUTqAF8HALuJwDML4OY2gcK6us2EPQj+811Xf+J7kcrAXwOAZS37oyVcLsCFO5CHXvAQSWyLZaist6ugvRFAtg1gOw0QJrGFXTQmYyMcxRytwJyWp8YVAIoj/eAhoHh24nH2GmADHT95yad39MApm+gUbZ9OwVq1mNyWeKsppaEwB9ALu35drjKzwvs1YuFdHXa8V9bCNROgsrGce91CDCX6GbJkxJPr9sE9v+CfQXfE8H2fldtmYu0xn8a0IUZn0tgeMpGfwErbLqeHktDngAAAABJRU5ErkJggg==)';}
});
function onCommand(event) {
event.target.ownerGlobal.openTrustedLinkIn('about:addons', 'tab');
addEventListener('pageshow', function onPageshow(event) {
let document = event.target;
if (document.URL != 'about:addons')
return;
removeEventListener('pageshow', onPageshow);
document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click();
document.querySelector('addon-page-options panel-item[action="view-recent-updates"]').click();
let categories = document.getElementById('categories');
categories.querySelector('button[viewid="addons://updates/available"]').click();
categories.querySelector('button[viewid="addons://updates/recent"]').click();
});
};
})();
Alles anzeigen
:
Dann halt so:
Ich hätte da 'ne Kleinigkeit!
Wenn ich das Script auslöse, wird bei mir Zuletzt durchgeführte Updates angezeigt.
Erst wenn ich den darüberliegenden Button Verfügbare Updates anklicke, bekomme ich die Updates angezeigt.
Ist das so gewollt?
Ich hätte da 'ne Kleinigkeit!
Im Script Zeile 31 und 32 tauschen.
Eventuell noch zusätzlich 27 und 28, dann sollte es funktionieren.
Im Script Zeile 31 und 32 tauschen.
Eventuell noch zusätzlich 27 und 28, dann sollte es funktionieren.
Danke für den Tipp
und mit dem Einfügen einer Zeitschleife (setTimeout) funktioniert es auch.
Hier der geänderte Code:
/* Addons-UpDate-Check-Button */
(function() {
if (!window.gBrowser) return;
CustomizableUI.createWidget({
id: 'addons-update-button',
defaultArea: CustomizableUI.AREA_NAVBAR,
label: 'Add-ons Update',
tooltiptext: 'Add-ons aktualisieren',
onCommand: onCommand,
onCreated: function(button) {
button.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB9klEQVR42o2TP2gTURzHvwcRXqDDCzi8gww+cfACBRsoJAWXji0KzZFBxUELDoouOmnG6JQiWOogVAcpHUpvKDRLQbekoKRDJXHyLYHLIOQNhXtgBt+7u+SSpkq+w93xu9/vw++vhVj0MiUOyzicEo5LuFh/ACGV6PT6HflbKmOyzINnGdt5kPOKnBYxg5pCNu99apdEt9cLAYdPi4cr8+kVDGYJ10oB3mlQdzebqxZnlLZf5vsEwYzRkRTSyL1pZSznCuPtZ/zXlMcNV9e2FH2LBvCjDrAFoNsYueTeiashoPV4EkDWNrSzA/ltP2rwohumjZ9foI5qI7/8+yHgkT0CkGvLwK0q5KYLovzIWK6BXNf2754GVBPABz8GPEwAithQKQJ6JmJiBmqOQekGEyUTqAF8HALuJwDML4OY2gcK6us2EPQj+811Xf+J7kcrAXwOAZS37oyVcLsCFO5CHXvAQSWyLZaist6ugvRFAtg1gOw0QJrGFXTQmYyMcxRytwJyWp8YVAIoj/eAhoHh24nH2GmADHT95yad39MApm+gUbZ9OwVq1mNyWeKsppaEwB9ALu35drjKzwvs1YuFdHXa8V9bCNROgsrGce91CDCX6GbJkxJPr9sE9v+CfQXfE8H2fldtmYu0xn8a0IUZn0tgeMpGfwErbLqeHktDngAAAABJRU5ErkJggg==)';}
});
function onCommand(event) {
event.target.ownerGlobal.openTrustedLinkIn('about:addons', 'tab');
addEventListener('pageshow', function onPageshow(event) {
let document = event.target;
if (document.URL != 'about:addons') return;
removeEventListener('pageshow', onPageshow);
document.querySelector('addon-page-options panel-item[action="view-recent-updates"]').click();
document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click();
content.setTimeout(function() {
let categories = document.getElementById('categories');
categories.querySelector('button[viewid="addons://updates/recent"]').click();
categories.querySelector('button[viewid="addons://updates/available"]').click();
}, 1000);
});
};
})();
Alles anzeigen
Im Script Zeile 31 und 32 tauschen.
Eventuell noch zusätzlich 27 und 28, dann sollte es funktionieren.
Das Problem ist, dass man eigentlich im Skript abfragen müsste, ob 'automatische' oder 'manuelle' Updates eingestellt sind. Ich habe mal die Attribut-Änderungen des Message-Textes dafür genutzt, um zu entscheiden, welche Aktionen durchgeführt werden sollen (siehe Skript).
und mit dem Einfügen einer Zeitschleife (setTimeout) funktioniert es auch.
Hier der geänderte Code:
Ist hier nicht notwendig, kann aber gut sein, dass das je nach Rechner/Verbindung notwendig sein kann. Zusätzlicher Timeout ist bei den User-Skripten, die sich meist irgendwo "reinhängen", eh nicht so verkehrt, wenn man Ereignisse nicht genau triggern kann.
---
Für mich ist es mittlerweile ziemlich klar, warum kein Skript wirklich zu 100% läuft. Wenn die Update-Funktionalität des Firefox die exakt gleichen Probleme mit der Anzeige hat, dann kann es im Skript auch nicht zuverlässig funktionieren. Die Klicks, die im Skript simuliert werden, laufen ebenso ins Leere, wie die Klicks die man händisch ohne Skript ausführt. Und einen Workaround zu programmieren, um einen Bug zu beheben, ist wohl nicht zielführend und ich bin wohl auch nicht in der Lage das zu bewerkstelligen...
Wo genau soll da jetzt der Bug in Firefox sein?
Ich will ja nicht nerven, aber du hattest mir am Samstag diese Frage gestellt und ich hatte dir eine Antwort in Form mehrerer Videos darauf gegeben. Mich würde schon interessieren, ob du das auch als Bug in der Update-Anzeige im Firefox siehst oder nicht?
---
Hier noch das Skript:
(function() {
if (!window.gBrowser){
return;
}
CustomizableUI.createWidget({
id: 'addons-update-button-ucjs',
defaultArea: CustomizableUI.AREA_NAVBAR,
label: 'Add-ons Update',
tooltiptext: 'Add-ons aktualisieren',
onCommand: onCommand,
onCreated: function(button) {
button.style.listStyleImage = 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB9klEQVR42o2TP2gTURzHvwcRXqDDCzi8gww+cfACBRsoJAWXji0KzZFBxUELDoouOmnG6JQiWOogVAcpHUpvKDRLQbekoKRDJXHyLYHLIOQNhXtgBt+7u+SSpkq+w93xu9/vw++vhVj0MiUOyzicEo5LuFh/ACGV6PT6HflbKmOyzINnGdt5kPOKnBYxg5pCNu99apdEt9cLAYdPi4cr8+kVDGYJ10oB3mlQdzebqxZnlLZf5vsEwYzRkRTSyL1pZSznCuPtZ/zXlMcNV9e2FH2LBvCjDrAFoNsYueTeiashoPV4EkDWNrSzA/ltP2rwohumjZ9foI5qI7/8+yHgkT0CkGvLwK0q5KYLovzIWK6BXNf2754GVBPABz8GPEwAithQKQJ6JmJiBmqOQekGEyUTqAF8HALuJwDML4OY2gcK6us2EPQj+811Xf+J7kcrAXwOAZS37oyVcLsCFO5CHXvAQSWyLZaist6ugvRFAtg1gOw0QJrGFXTQmYyMcxRytwJyWp8YVAIoj/eAhoHh24nH2GmADHT95yad39MApm+gUbZ9OwVq1mNyWeKsppaEwB9ALu35drjKzwvs1YuFdHXa8V9bCNROgsrGce91CDCX6GbJkxJPr9sE9v+CfQXfE8H2fldtmYu0xn8a0IUZn0tgeMpGfwErbLqeHktDngAAAABJRU5ErkJggg==)';}
});
function onCommand(event) {
let targetUpdateMessage=null;
let categories=null;
event.target.ownerGlobal.openTrustedLinkIn('about:addons', 'tab');
addEventListener('pageshow', function onPageshow(event) {
let document = event.target;
if (document.URL != 'about:addons')
return;
removeEventListener('pageshow', onPageshow);
categories = document.getElementById('categories');
targetUpdateMessage = document.querySelector('#page-header .main-heading #updates-message');
const configObserver = { attributes: true };
const observerUpdateMessage = new MutationObserver(callback);
observerUpdateMessage.observe(targetUpdateMessage, configObserver);
document.querySelector('addon-page-options panel-item[action="check-for-updates"]').click();
});
const callback = (mutationList, observer) => {
for (const mutation of mutationList) {
if (mutation.type === 'attributes') {
message = targetUpdateMessage.getAttribute('state');
if( message == "manual-updates-found" ) {
setTimeout(function() {
gBrowser.selectedTab.linkedBrowser.reload();
}, 1000);
categories.querySelector('button[viewid="addons://updates/available"]').click();
return;
}
else if( message == "none-found" )
{
//..
return;
}
else if( message == "installed" )
{
setTimeout(function() {
categories.querySelector('button[viewid="addons://updates/recent"]').click();
}, 1000);
return;
}
}
}
}
};
})();
Alles anzeigen
.
Ich habe mal die Attribut-Änderungen des Message-Textes dafür genutzt, um zu entscheiden, welche Aktionen durchgeführt werden sollen (siehe Skript).
Danke, BrokenHeart , habe es übernommen, und funktioniert auch nach ersten Erkenntnissen.
Habs das neue Script auch getestet.
Funktioniert, bei mir leider nur zum Teil.
Der Button oben neben dem "Zahnrad" erscheint nicht mehr.
Die Schaltfläche Zuletzt durchgeführte Updates auch nicht.
Bekomme zwar die Schaltfläche mit Verfügbare Updates angezeigt, jedoch ohne Funktion,
und auch werden die Updates nicht angezeigt.
Erst wenn ich über das Zahnrad Auf Updates überprüfen anklicke,
erscheinen die Updates und auch der Button.
Daher bleibe ich erst einmal bei "meinem" #70 Script und werde daran etwas rumspielen,
ob ich diese Abfrage der Updateeinstellungen da irgendwie integrieren kann.
Denn diese macht ja Sinn.
Aber Danke BrokenHeart für Deine unermüdliche Arbeit.
Alles anzeigenDer Button oben neben dem "Zahnrad" erscheint nicht mehr.
Die Schaltfläche Zuletzt durchgeführte Updates auch nicht.
Bekomme zwar die Schaltfläche mit Verfügbare Updates angezeigt, jedoch ohne Funktion,
und auch werden die Updates nicht angezeigt.
Erst wenn ich über das Zahnrad Auf Updates überprüfen anklicke,
erscheinen die Updates und auch der Button.
Das kann ich alles nicht bestätigen, das Script funktioniert hier auf den ersten Blick ohne Probleme.
Alles anzeigenwir haben einen Aspekt bisher außen vor gelassen und zwar, dass der Fehler gar nicht durch das Skript verursacht wird, sondern Firefox an dieser Stelle einen Bug hat.
Folgendes konnte ich bei mir mehrfach reproduzieren (auch im Fehlerbehandlungsmodus!):
Wenn man sich eine ältere Datei-Version eines Addons installiert und dann manuell auf 'Auf Updates überprüfen' geht, dann zeigt sich genau das gleiche Verhalten wie beim Skript, welches in #1 von 2002Andreas beschrieben wurde:Die Updates werden nicht sofort angezeigt und man muss erst auf 'kürzlich durchgeführte Updates anzeigen' klicken.
Wo genau soll da jetzt der Bug in Firefox sein? Es geht um die Funktion zur Prüfung auf Updates. Sind automatische Updates deaktiviert, muss man auf „Verfügbare Updates anzeigen“ klicken. Sind automatische Updates aktiviert, werden diese dementsprechend automatisch installiert. Es gibt also keinen Grund, irgendetwas anzuzeigen. Kürzlich durchgeführte Updates anzuzeigen ist eine separate Funktion, die nicht in der Überprüfung auf Updates inbegriffen ist. Das Verhalten ist in Firefox ESR 102 exakt identisch zu Firefox 107.
Dass man direkt auf die Seite mit den Updates gelangt, ist eine Funktion des Scripts. Das ist kein Standard-Verhalten von Firefox. Wenn es damit Probleme gibt, ist das also kein Fehler von Firefox.
Ich nehme einmal kurz Bezug auf diesen Sachverhalt!
Eventuell könnte dieser Beitrag auf Golem das (Fehl-)verhalten etwas erhellen.
Es scheint so, als läge es weder am Script, noch am Firefox, sondern ganz einfach an Windows!
Aber lest selbst => Out-of-Memory-Fehler
Was bitte soll das Vehindern von Browser-Abstürzen auf Grund von RAM-Mangel mit der Update-Funktion von about:addons zu tun haben? Ich arbeite ja in einer Kreativ-Branche, aber dafür fehlt mir die Phantasie.
Was bitte soll das Vehindern von Browser-Abstürzen auf Grund von RAM-Mangel mit der Update-Funktion von about:addons zu tun haben? Ich arbeite ja in einer Kreativ-Branche, aber dafür fehlt mir die Phantasie.
Nun ja, ich habe nur beschränktes technisches Verständnis, aber ...
ZitatAlles anzeigen...
Darüber hinaus muss die Anwendung sich fest an bestimmte Speicherbereiche binden, ...
oder
In dem Blogbeitrag heißt es: "Als wir anfingen, Abstürze wegen Speichermangels zu analysieren, entdeckten wir, dass viele Benutzer reichlich physischen Speicher hatten - manchmal Gigabytes -, aber keinen Commit-Speicher mehr."
UND
Abwarten als Erfolgsstrategie
Warum dies geschieht, kann das Mozilla-Team nicht sagen. Vermutet wird, das der Commit-Space von Grafiktreibern belegt ist, um die Texturen später aus dem VRAM auslagern zu können. Daran können die Firefox-Entwickler nichts ändern, sie haben aber noch einen "Trick im Ärmel".
Anwendungen mit einem Out-of-Memory-Fehler werden von Windows nicht direkt beendet. Die geplante Speicherzuweisung wird nicht durchgeführt, die Anwendung selbst entscheidet über weiteres Vorgehen. Windows selbst erweitert danach den Swap, so dass es wieder mehr Speicher gibt.
Grade dieser letzte Teil bracht mich auf diese Idee.
Denn wenn man das Script direkt ein zweites Mal ausführte, funktionierte es ja!
Meine Schlussfolgerung eventuell betrifft es die Laufzeitumgebung für das JavaScript,
das ja von Firefox zur Verfügung gestellt wird, ebenso.
UND ich schrieb ja in meiner [ot] Anmerkung, Eventuell könnte ...
Danke, BrokenHeart , habe es übernommen, und funktioniert auch nach ersten Erkenntnissen.
Nun hat sich das Blatt gewendet, bei dem heutigen Versuch in v107 öffnet sich wieder "Zuletzt durchgeführte Updates", und im aktuellen Nightly "Plugins".
öffnet sich wieder "Zuletzt durchgeführte Updates"
Neues Profil, ohne jegliche Anpassung bei Aufruf: Add-ons und Themes ergibt: