ob der Cache gelöscht wird?
Unter:
about:preferences#privacy > Zwischengespeicherte Webinhalte
wird dir angezeigt wie viel Speicher belegt ist. Den Button dann anklicken...die about Seite neuladen und dann erkennst du es.
ob der Cache gelöscht wird?
Unter:
about:preferences#privacy > Zwischengespeicherte Webinhalte
wird dir angezeigt wie viel Speicher belegt ist. Den Button dann anklicken...die about Seite neuladen und dann erkennst du es.
Danke, funktioniert im Firefox 57.
Hallo,
ich habe folgende Version runtergeladen
[attachment=0]Unbenannt-2.png[/attachment]
damit wollte ich einige Scripte ausprobieren und bin nach folgender Anleitung vorgegangen
Anleitung in kurz form
Zitat
1. In den "Firefox Installationsordner" gehört die Datei "config.js" und "userChromeJS.js"2. In den "Firefox Installationsordner\defaults\pref" gehört die Datei "config-prefs.js"
3. In den "Profilordner\chrome" gehört die Datei "userChrome.js"
sollte der Ordner "chrome nicht vorhanden sein, einfach neu anlegen4. sowie die Datei eures Skripts wie zb. "irgendeiname.uc.js"
Inhalt der Dateien
// userChromeJS.js
//
// kopieren nach -> Firefox Installationsordner
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is the userChromeJS utilities.
*
* The Initial Developer of the Original Code is
* alta88 <alta88@gmail.com>
*
* Portions created by the Initial Developer are Copyright (C) 2014
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
var EXPORTED_SYMBOLS = ["userChrome"];
/* ........ Utility functions ............................................... */
var userChrome = {
path: null,
dirToken: null,
get loadOverlayDelay () {
if (!this._loadOverlayDelay)
this._loadOverlayDelay = 500;
return this._loadOverlayDelay;
},
set loadOverlayDelay(delay) {
this._loadOverlayDelay = delay;
},
get loadOverlayDelayIncr() {
if (!this._loadOverlayDelayIncr)
this._loadOverlayDelayIncr = 1600;
return this._loadOverlayDelayIncr;
},
set loadOverlayDelayIncr(delay) {
this._loadOverlayDelayIncr = delay;
},
import: function(aPath, aRelDirToken) {
let file;
this.path = aPath;
this.dirToken = aRelDirToken;
if (aRelDirToken) {
// Relative file
let absDir = this.getAbsoluteFile(aRelDirToken);
if (!absDir)
return;
let pathSep = absDir.path.match(/[\/\\]/)[0];
file = absDir.path + (aPath == "*" ?
"" : pathSep + aPath.replace(/[\/\\]/g, pathSep));
}
else
// Absolute file
file = aPath;
file = this.getFile(file);
if (!file)
return;
if (file.isFile()) {
if (/\.js$/i.test(file.leafName))
this.loadScript(file, aRelDirToken, null);
else if (/\.xul$/i.test(file.leafName)) {
let xul_files = [];
xul_files.push(file);
this.loadOverlay(xul_files, this.dirToken, null, this.loadOverlayDelay);
// this.loadOverlayDelay = this.loadOverlayDelay + this.loadOverlayDelayIncr;
}
else
this.log("File '" + this.path +
"' does not have a valid .js or .xul extension.", "userChrome.import");
}
else if (file.isDirectory())
this.importFolder(file);
else
this.log("File '" + this.path +
"' is neither a file nor a directory.", "userChrome.import");
},
loadScript: function(aFile, aFolder, aRelDirToken) {
setTimeout(function() {
Components.classes["@mozilla.org/moz/jssubscript-loader;1"]
.getService(Components.interfaces.mozIJSSubScriptLoader)
.loadSubScript(userChrome.getURLSpecFromFile(aFile),
null, // defaults to the global object of the caller.
userChrome.charSet);
// log it
userChrome.log(aRelDirToken ? ("[" + aRelDirToken + "]/" +
(aFolder && aFolder != "*" ? aFolder + "/" : "") + aFile.leafName) :
aFile.path, "userChrome.loadScript");
}, 0);
},
// XXX: Due to bug 330458, an overlay must finish before another can be
// called, otherwise neither are successful. Implementing an observer to
// serialize is better left as a fix in the core bug. Here, settimout values
// are set to minimize but there is no quarantee; overlay cdata (if any)
// needs to consider overlay completions and logging does not strictly mean
// an overlay has completed, rather that the overlay file has been invoked.
loadOverlay: function(aFiles, aRelDirToken, aFolder, aDelay) {
//userChrome.log(aDelay+" multiple import delay", userChrome.loadOverlay);
// Increment multiple import delay
this.loadOverlayDelay = this.loadOverlayDelay + this.loadOverlayDelayIncr;
setTimeout(function() {
if (aFiles.length > 0) {
//userChrome.log(userChrome.loadOverlayDelay+" inter folder delay", userChrome.loadOverlay);
// log it
userChrome.log(aRelDirToken ? ("[" + aRelDirToken + "]/" +
(aFolder && aFolder != "*" ? aFolder + "/" : "") + aFiles[0].leafName) :
aFiles[0].path, "userChrome.loadOverlay");
document.loadOverlay(userChrome.getURLSpecFromFile(aFiles.shift()), null);
setTimeout(arguments.callee, userChrome.loadOverlayDelay);
}
}, aDelay);
},
// Include all files ending in .js and .xul from passed folder
importFolder: function(aFolder) {
let files = aFolder.directoryEntries
.QueryInterface(Components.interfaces.nsISimpleEnumerator);
let xul_files = [];
while (files.hasMoreElements()) {
let file = files.getNext().QueryInterface(Components.interfaces.nsIFile);
if (/\.js$/i.test(file.leafName) && file.leafName != "userChrome.js")
this.loadScript(file, this.path, this.dirToken);
else if (/\.xul$/i.test(file.leafName)) {
xul_files.push(file);
}
}
if (xul_files.length > 0)
this.loadOverlay(xul_files, this.dirToken, this.path);
},
getFile: function(aPath, aRelDirToken) {
try {
let file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsIFile);
file.initWithPath(aPath);
// Bad file doesn't throw on initWithPath, need to test
if (file.exists())
return file;
this.log("Invalid file '" + this.path + (this.dirToken ?
("' or file not found in directory with token '" + this.dirToken) :
"") + "' or other access error.", "userChrome.getFile");
}
catch (e) {
// Bad folder throws on initWithPath
this.log("Invalid folder '" + this.path + (this.dirToken ?
("' or folder not found in directory with token '" + this.dirToken) :
"") + "' or other access error.", "userChrome.getFile");
}
return null;
},
getAbsoluteFile: function(aRelDirToken) {
try {
let absDir = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get(aRelDirToken, Components.interfaces.nsIFile);
return absDir;
}
catch (e) {
this.log("Invalid directory name token '" + this.dirToken +
"' or directory cannot be accessed.", "userChrome.getAbsoluteFile");
return null;
}
},
getURLSpecFromFile: Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.getProtocolHandler("file")
.QueryInterface(Components.interfaces.nsIFileProtocolHandler)
.getURLSpecFromFile,
/* Console logger */
log: function(aMsg, aCaller) {
Components.classes["@mozilla.org/consoleservice;1"]
.getService(Components.interfaces.nsIConsoleService)
.logStringMessage(this.date + " userChromeJS " +
(aCaller ? aCaller +": " : "") + aMsg);
},
get dateFormat() {
if (!this._dateFormat)
this._dateFormat = "%Y-%m-%d %H:%M:%S";
return this._dateFormat;
},
set dateFormat(format) {
this._dateFormat = format;
},
get date() {
let date = new Date();
return date.toLocaleFormat(this.dateFormat);
},
set charSet(val) {
this._charSet = val;
},
get charSet() {
if (!this._charSet)
this._charSet = "UTF-8"; // use "UTF-8". defaults to ascii if null.
return this._charSet;
}
};
Alles anzeigen
// userChrome.js
//
// kopieren nach -> Profilordner\chrome
// wenn Ordner "chrome" nicht vorhanden ist, einfach neu anlegen
userChrome.import("*", "UChrm");
// config-prefs.js
// kopieren nach
// Firefox Installationsordner\defaults\pref
pref("general.config.obscure_value", 0);
pref("general.config.filename", "config.js");
leider funktionieren keine Scripte, selbst das Script mit dem Profilordner geht nicht.
habe ich was falsche gemacht oder was muß ich denn noch machen ?
Es fehlt die config.js Datei.
Lies nochmal hier:
https://github.com/Endor8/userChr…ster/userChrome
Mfg.
Endor
Hallo,
habe ich genau so gemacht wie in der Anleitung steht, habe sogar die Dateien runtergeladen und verwendet. Natülich habe ich das .txt am ende der Datei jewalls gelöscht.
aber den Profil Ordner sehe ich trotzdem nicht im Anpassungsfenster ?
[attachment=1]Unbenannt-1.png[/attachment]
inhalt des Scriptes
(function () {
if (location != 'chrome://browser/content/browser.xul') return;
const buttonId = 'Profilordner';
const buttonLabel = 'Profil Button';
const buttonTooltiptext = '';
const buttonIcon = 'url(data:image/gif;base64,R0lGODlhEAAQAOZMAP/////MAF06AJhlAJNgAP//AP/lAP/UAJViAP/JANShAJRhAP/OAJRgAOy5AMaSAP/nAMyZAP/IAP/NAOazAP/RAMmVALaAAH5TAJNfAM2aAP/dT//XOv/KAOPOkMeRAP/nhOSxAOu4AP3KAOrTkv/nrv//1c6bAKdyAP/TAP/bPdWsMr6LA7iCALqGALiEAJNeAMCMAP/gcv/eYdGdAP/TEP/mgv/2y//gg/3JAP/ila97AP/aKsWPAJFbAJZgALeBAMiVAPC9AP/rOum2AHlQAP/4zP//z//jPpNdAP/LANixNP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEwALAAAAAAQABAAAAefgEyCg4SFhoeFDQ0LjIiCCyU5IwEBBAiXCAOEBDohFBREIg6jQgibODQKqgonDz0fPkkwDQMEMhYRERpBMUsAv8C1Mw8uLUAXKwA2EgkJDJoEGy8swAAgCZQMz0wEKigkN8wJHZQBFZrcPDsAHErllBMT6AQ1HkYVKQf6++hMGUgAhhgYSBAChH4/TBwpwLAhw35MMAiYSLFiEUcYmQQCADs=)';
function buttonFunction() {
Services.dirsvc.get('ProfD', Ci.nsIFile).launch();
};
var button = document.createElement('toolbarbutton');
button.id = buttonId;
button.setAttribute('class', 'toolbarbutton-1 chromeclass-toolbar-additional');
button.removable = 'true';
button.setAttribute('label', buttonLabel);
button.setAttribute('tooltiptext', buttonTooltiptext);
button.style.listStyleImage = buttonIcon;
button.addEventListener('click', function (event) {
if (event.button == 0)
buttonFunction();
});
document.getElementById('navigator-toolbox').palette.appendChild(button);
var toolbars = Array.slice(document.querySelectorAll('toolbar'));
for (var i=0; i<toolbars.length; i++) {
var currentset = toolbars[i].getAttribute('currentset');
if (currentset.split(',').indexOf(button.id) >= 0) {
var j;
if (i == 0) j = 1
else j = 0;
toolbars[j].currentSet += ','+button.id;
toolbars[i].currentSet = currentset;
};
};
}) ();
Alles anzeigen
[attachment=0]Unbenannt-2.png[/attachment]
hat sich erledigt, mein Fehler
Moin,
wie entferne ich "devtools-toolbox" aus ExtraConfigMenü ?
[Blockierte Grafik: https://www2.pic-upload.de/img/34152918/about_Auswahl.jpg]
Wenn ich about:about aufrufe, zeigt sich diese Auswahl - leider ohne Funktion.
Hallo Büssen...
was mich etwas wundert, diesen Eintrag habe ich erst ab Fx 58 :-??
Mit diesem Code lässt er sich da entfernen:
Oder auch diesen Eintrag unter about:config auf false setzen:
devtools.enabled
Oder auch diesen Eintrag unter about:config auf false setzen:devtools.enabled
Das hat das hier zur Konsequenz:
https://www.camp-firefox.de/forum/viewtopi…052135#p1052135
Das hat das hier zur Konsequenz:
Ist mir schon klar, aber dann wäre der Eintrag unter about:about auch entfernt.
Wobei mich wie schon gesagt wundert dass er den Eintrag überhaupt hat :-??
Wo du das schreibst… ich habe diesen Eintrag in Firefox Nightly auch nicht unter about:about. Adblock Plus ist meine einzige Erweiterung, ansonsten sind keine Scripts, User-Styles oder sonstige Anpassungen installiert.
Ich zbs. habe diesen Eintrag nur in Firefox 56.0.1
Beta und Nightly aber nicht.
Mfg.
Endor
Moin,
vielleicht kann ich noch Hinweise geben, wie es sich bei mir verhält.
Z.Zt. habe ich FX 56.0.1 auf dem PC - und zwar in 32 bit und auch 64 bit.
In der 32 bit-Version wird genanntes Problem unter about:about nicht gezeigt, in der 64 bit Version aber schon.
Auf dem Notebook habe ich FX 56.0.1 64 bit. Dort fiel mir das Problem nur ins Auge, weil der Platz für die Beschriftung nicht ausreicht.
andreas - den Eintrag "devtools.enabled" kann ich unter about:config nicht finden?
Nachtrag: mit dem kleinen Code habe ich den Eintrag entfernen können!
kann ich unter about:config nicht finden
Den habe ich auch erst ab Fx58, darum wundert es mich dass du diesen Eintrag unter about überhaupt hast :-??
Hallo,
bin ja immer noch im Hintertreffen mit dem FX 56.0.1 - dadurch vielleicht einige Dinge mehr, die ihr bereits in die Schublade geschoben habt.
Ich habe eine neue Variante, über die config-Datei Skripte auszuführen, die einige Vorteile hat.
Vorweg, die bisherige Methode funktioniert nach wie vor, niemand muss die neue Variante verwenden.
So sieht sie aus:
Die config-prefs im Unterordner \defaults\pref des Installationsordners bleibt, wie sie ist.
Die config.js im Installationsordner ist geändert mit diesem Inhalt:
//
// config.js
const Cu = Components.utils;
try {
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/osfile.jsm");
if (!Services.appinfo.inSafeMode) {
let path = OS.Constants.Path.libDir;
var ucjsDirPath = OS.Path.join(path, "userChromeJS");
path = OS.Path.join(ucjsDirPath, "main.js");
let mainFileURI = OS.Path.toFileURI(path);
Services.scriptloader.loadSubScript(mainFileURI, this, "UTF-8");
};
} catch(e) {
Cu.reportError(e);
};
Alles anzeigen
Die userChromeJS.js im Installationsordner kommt weg und es kommt ein Ordner userChromeJS hinzu. Er ist hier gezippt angehängt:
[attachment=0]userChromeJS.zip[/attachment]
Nach dem Herunterladen entpacken und in den Installationsordner einfügen.
Die Neuerungen:
Die config.js enthält jetzt nur einen Verweis auf den Ordner userChromeJS. Das ist übersichtlicher, vor allem wenn evtl. Code für andere Dinge in die config.js hinzukommt.
Der Ordner enthält allen relevanten Code für die Ausführung der Skripte, teilweise stark vereinfacht gegenüber bisher.
Der Ordner muss nicht im Installationsordner sein, sondern kann sich an einem beliebigen Ort befinden, die Pfadangabe in der config.js muss dann angepasst werden. Genaueres bitte erfragen.
Wie in der Erweiterung wird jetzt die Datei userChrome.js angelegt, falls sie nicht vorhanden ist, und enthält dann auch das Readme.
Es ist jetzt möglich, importierte .js-Skripte ohne Verwendung des Skript-Caches direkt aus dem Chrome-Ordner zu laden. Änderungen sind dann ohne Neustart in einem neuen Fenster vorhanden und beim Neustart muss der Skript-Cache nicht geleert werden.
Dazu schreibt man in die userChrome.js folgende Anweisung vor der/den Importanweisung(en):
.xul-Skripte werden ohnehin immer aus dem Chrome-Ordner geladen.
Nach Änderungen in der userChrome.js hingegen ist nach wie vor ein Neustart mit Skript-Cache leeren erforderlich.
Im Readme ist das auch beschrieben.
aborix - habe mal im 64er Profil FX 56.0.1 die neue Variante kurz ausprobiert.
Einen Code aus Stylish (z-B. about:support) in CSSWeb u. usercontent.css eingebracht: Funktioniert in meinem Beispiel!
Werde weiter testen.
aborix:
Läuft!... :klasse:
Vielen Dank für das Update!
@ aborix
Ich habe diese neue Variante gerade auf dem Testrechner mit Fx 57 ausprobiert.
Fazit: klappt alles genau wie vorher. Ich werde nun auch den Arbeitsrechner aktualisieren.
Danke.
in CSSWeb u. usercontent.css eingebracht
Hallo Büssen...
du verwechselst da etwas.
Für Einträge in die userContent.css brauchst du keine Scripte, bzw. nicht die geänderten Einträge von aborix, um die es hier im Thread geht. :wink:
Hier im Thread geht es um Scripte und nicht um Codes für die userContent.css bzw. userChrome.css