Moin Sören,
herzlichen Dank. Leider Chefetage will nicht warten.
Mfg
Moin Sören,
herzlichen Dank. Leider Chefetage will nicht warten.
Mfg
Soll ich selber erstellen?
Nein. Wenn Firefox ESR 128 diese Option noch nicht kennt, bringt es auch nichts, diese Option zu erstellen.
Hallo Sören,
ich habe fast gedacht.
Hast du meine Extension gesehen?
Findest du gut gegen diese Sicherheit Lücke?
Vielen Dank
Mfg
Moin Sören,
vielen Dank.
In Firefox 128.3.1 ESR gibt es nicht network.socket.ip_addr_any.disabled Parameter. Soll ich selber erstellen?
Wenn ja und auf true erstellen, wird diese Sicherheit Lücke gelöst oder Firefox hat immer noch diese Lücke?
Hier ist meine Extension Code.
manifest.json Datei:
{
"manifest_version": 2,
"name": "URL/IP Anfrage von 0.0.0.0 zu 127.0.0.1 Umleiter",
"description": "Leitet alle Anfragen von 0.0.0.0 zu 127.0.0.1 um",
"version": "1.0",
"browser_specific_settings": {
"gecko": {
"id": "umleitung@intern.local",
"strict_min_version": "128.0"
}
},
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*/*"
],
"icons": {
"16": "icons/icon.png",
"48": "icons/icon.png",
"128": "icons/icon.png"
},
"background": {
"scripts": ["background.js"]
}
}
Alles anzeigen
background.js Datei:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if (details.url.includes("0.0.0.0")) {
const newUrl = details.url.replace("0.0.0.0", "127.0.0.1");
console.log("Redirecting request to:", newUrl);
return { redirectUrl: newUrl };
}
return { cancel: false };
},
{ urls: ["<all_urls>"] },
["blocking"]
);
Alles anzeigen
Mfg
Hallo Sören,
vielen Dank.
Ich habe eine Frage, wenn ich eine Extension schreibe, das alle Request von 0.0.0.0 zu 127.0.0.1 weiterleiten, wird diese Probleme behoben oder nicht?
Mfg
Hallo Zusammen,
gibt es eine Info von Mozilla wegen diese Sicherheit Probleme?
0.0.0.0 Day: Exploiting Localhost APIs From the Browser
Vielen Dank
Mfg
Hallo Zusammen,
kann jemand mir sagen, wieso kommt (NULL) Beschreibung (bis Firefox 115.13.0 ESR war normal aber mit 128 ESR kommt (NULL)).
Hier ist ToolbarAutoHide.uc.js code:
(function () {
if (location != 'chrome://browser/content/browser.xhtml') return;
try {
let navbox = document.getElementById('navigator-toolbox');
let menubar = document.getElementById('toolbar-menubar');
let tabsbar = document.getElementById('TabsToolbar');
let navbar = document.getElementById('nav-bar');
let perbar = document.getElementById('PersonalToolbar');
// Überwachen Änderungen an Symbolleistenattributen/toolbar
let observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
toolbarFlag(mutation);
});
});
let config = {
attributes: true,
attributeOldValue: true,
attributeFilter: ['customizing', 'autohide', 'collapsed', 'barAuto']
};
observer.observe(menubar, config);
observer.observe(tabsbar, config);
observer.observe(navbar, config);
observer.observe(perbar, config);
// Überwachen Größe der Tableiste/tabsbar
let resizeObserver = new ResizeObserver(function (entries) {
entries.forEach(function (entry) {
toolbarFlag(entry);
});
});
resizeObserver.observe(tabsbar);
/**/
// Tab-Leiste und Navigationsleiste können ebenfalls ausgeblendet werden
tabsbar.setAttribute('toolbarname', tabsbar.getAttribute('aria-label'));
navbar.setAttribute('toolbarname', navbar.getAttribute('aria-label'));
toolbar-menubar.setAttribute('toolbarname', "Menüleiste");
/*
// Die Lesezeichenleiste wird standardmäßig automatisch geöffnet und geschlossen
menubar.removeAttribute('barAuto');
tabsbar.removeAttribute('barAuto');
navbar.removeAttribute('barAuto');
perbar.setAttribute('barAuto', 'true');
*/
// Speichern, ob in Firefox automatisch geöffnet/geschlossen werden soll
menubar.setAttribute('persist', 'barAuto');
tabsbar.setAttribute('persist', 'barAuto');
navbar.setAttribute('persist', 'barAuto');
perbar.setAttribute('persist', 'barAuto');
// Die Tab-Leiste weist viele Probleme auf, daher sollte sie sich beim Start nicht automatisch öffnen und schließen.
tabsbar.removeAttribute('barAuto');
// Fügen Navigationsfeld ein leeres Element hinzu, um alles zu löschen. Doppelklicken Sie zum Wiederherstellen.
let box = MozXULElement.parseXULToFragment(`
<vbox id="nav-box-escape" context="toolbar-context-menu" tooltiptext="Doppelklicken Sie, um die Symbolleiste anzuzeigen"/>
`);
navbox.appendChild(box);
/*
// Symbolleisten-Kontextmenü zum Kontextmenükopf hinzugefügt
document.getElementById('context-navigation').setAttribute('context', 'toolbar-context-menu');
*/
// Element zum Symbolleistenmenü hinzufügen
let menu = MozXULElement.parseXULToFragment(`
<menu id="toolbarauto-menu" label="Automatisch ausblenden">
<menupopup id="toolbarauto-popup" onpopupshowing="autoHideToolbarsPopupShowing(event);"/>
</menu>
<menuseparator/>
`);
document.getElementById('menu_customizeToolbars').before(menu);
// Zum Rechtsklickmenü in der Navigation hinzufügen
let contextmenu = MozXULElement.parseXULToFragment(`
<menu id="toolbarauto-contextmenu" label="Automatisch ausblenden">
<menupopup id="toolbarauto-contextpopup"
onpopupshowing="autoHideToolbarsPopupShowing(event);"/>
</menu>
<menuseparator/>
`);
document.getElementById('viewToolbarsMenuSeparator').after(contextmenu);
let uccss = `
#navigator-toolbox #titlebar {
-moz-box-ordinal-group : 0;
}
#navigator-toolbox #toolbar-menubar {
-moz-box-ordinal-group : 1;
}
#navigator-toolbox #TabsToolbar {
-moz-box-ordinal-group : 2;
}
#navigator-toolbox #nav-bar {
-moz-box-ordinal-group : 3;
}
#navigator-toolbox #PersonalToolbar {
-moz-box-ordinal-group : 4;
}
#navigator-toolbox[barsAuto]:not([custommode]) {
z-index : 100 !important;
position : relative !important;
}
#navigator-toolbox[barsAuto]:not(:-moz-lwtheme, [custommode]) {
background-color : var(--toolbar-bgcolor) !important;
background-image : var(--toolbar-bgimage) !important;
}
#navigator-toolbox[barsAuto]:-moz-lwtheme:not([custommode]) {
background-color : var(--lwt-accent-color) !important;
background-image : var(--lwt-header-image, var(--lwt-additional-images)) !important;
}
#navigator-toolbox:not([inFullscreen], [custommode]) #nav-box-escape[notShown] {
-moz-box-ordinal-group : 10;
transition : all 0.3s ease 0s;
height : 5px;
cursor : alias;
}
#navigator-toolbox:not([inFullscreen], [custommode]) #nav-box-escape:not([notShown]) {
display : none;
}
#navigator-toolbox:not([inFullscreen], [custommode]) #nav-box-escape[allAuto] {
margin-block-end : -5px;
}
#navigator-toolbox:not([inFullscreen], [custommode]):hover #nav-box-escape[allAuto] {
height : 0;
margin-block-end : 0;
}
#navigator-toolbox[barsAuto]:not([inFullscreen], [custommode]) {
margin-block-end : 0;
transition : all 0.3s ease 0s !important;
}
#navigator-toolbox[barsAuto]:not([inFullscreen], [custommode]):hover {
margin-block-end : calc(var(--barshide-height) * -1px);
}
#navigator-toolbox:not([inFullscreen], [custommode]) > #titlebar[barsAuto] {
margin-block-start : calc(var(--ttlhide-height) * -1px) !important;
transition : all 0.3s ease 0s !important;
}
#navigator-toolbox:not([inFullscreen], [custommode]):hover > #titlebar[barsAuto] {
margin-block-start : 0 !important;
}
#navigator-toolbox:not([inFullscreen], [custommode]) > #titlebar[barsAuto] #toolbar-menubar:not([barAuto]),
#navigator-toolbox:not([inFullscreen], [custommode]) > #titlebar[barsAuto] #TabsToolbar:not([barAuto]) {
-moz-box-ordinal-group : 2;
}
#navigator-toolbox:not([inFullscreen], [custommode]) #toolbar-menubar[barAuto],
#navigator-toolbox:not([inFullscreen], [custommode]) #TabsToolbar[barAuto] {
-moz-box-ordinal-group : 1;
transition : all 0.3s ease 0s !important;
opacity : 0 !important;
}
#navigator-toolbox:not([inFullscreen], [custommode]):hover #toolbar-menubar[barAuto],
#navigator-toolbox:not([inFullscreen], [custommode]):hover > #titlebar[barsAuto] #TabsToolbar:not([barAuto]) {
-moz-box-ordinal-group : 1;
}
#navigator-toolbox:not([inFullscreen], [custommode]):hover > #titlebar[barsAuto] #toolbar-menubar:not([barAuto]),
#navigator-toolbox:not([inFullscreen], [custommode]):hover #TabsToolbar[barAuto] {
-moz-box-ordinal-group : 2;
}
#navigator-toolbox:not([inFullscreen], [custommode]) #nav-bar[barAuto],
#navigator-toolbox:not([inFullscreen], [custommode]) #PersonalToolbar[barAuto] {
margin-block-start : calc(var(--barhide-height) * -1px) !important;
transition : all 0.3s ease 0s !important;
opacity : 0 !important;
}
#navigator-toolbox:not([inFullscreen], [custommode]):hover #toolbar-menubar[barAuto],
#navigator-toolbox:not([inFullscreen], [custommode]):hover #TabsToolbar[barAuto],
#navigator-toolbox:not([inFullscreen], [custommode]):hover #nav-bar[barAuto],
#navigator-toolbox:not([inFullscreen], [custommode]):hover #PersonalToolbar[barAuto] {
margin-block-start : 0 !important;
opacity : 1 !important;
}
`;
let ucuri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(uccss));
let ucsss = Cc['@mozilla.org/content/style-sheet-service;1']
.getService(Ci.nsIStyleSheetService);
ucsss.loadAndRegisterSheet(ucuri, ucsss.AGENT_SHEET);
} catch (e) { };
})();
// beim Start eingestellt
window.addEventListener('MozAfterPaint', toolbarsset, { once: true });
// Anzeige von #TabsToolbar und Navigationsleiste mit ESC-Taste erzwingen
document.addEventListener('keydown', function (event) {
if (event.keyCode == 27) navescape();
});
// Doppelklicken Sie auf die Leiste, wenn alles gelöscht ist, um sie wiederherzustellen
document.getElementById('nav-box-escape').addEventListener('dblclick', navescape);
function navescape() {
document.getElementById('nav-bar').setAttribute('collapsed', 'false');
document.getElementById('nav-bar').removeAttribute('barAuto');
document.getElementById('TabsToolbar').setAttribute('collapsed', 'false');
document.getElementById('TabsToolbar').removeAttribute('barAuto');
}
// Änderung des Attributwerts der Symbolleiste (anpassen, ausblenden)
function toolbarFlag(aEvent) {
let barelm = aEvent.target;
let attribute = aEvent.attributeName;
// Deaktivieren Sie die Anzeige der Tab-Leiste beim Hinzufügen von Tabs
if ((barelm.id == 'TabsToolbar')
&& (attribute == 'collapsed')
&& !(barelm.hasAttribute('collapsed'))) {
barelm.setAttribute('collapsed', aEvent.oldValue);
}
toolbarsset();
}
function toolbarsset() {
let boxelm = document.getElementById('navigator-toolbox');
let ttlbar = document.getElementById('titlebar');
let escbox = document.getElementById('nav-box-escape');
let barelm, hidingAttr, barheight, hasShown;
let barshide = 0, barsAuto = false, custommode = false, notShown = true;
let ttlhide = 0, tbarsAuto = false, allAuto = false;
let toolbarsid = ['toolbar-menubar', 'TabsToolbar', 'nav-bar', 'PersonalToolbar'];
for (let toolbar of toolbarsid) {
barelm = document.getElementById(toolbar);
hidingAttr = (barelm.getAttribute('type') == 'menubar') ? 'autohide' : 'collapsed';
if (hasShown = (barelm.getAttribute(hidingAttr) == 'true')) barelm.removeAttribute('barAuto');
barheight = barelm.clientHeight;
if (barelm.hasAttribute('barAuto')) {
barsAuto = true;
allAuto = true;
barelm.style.setProperty("--barhide-height", barheight);
barshide += barheight;
if ((toolbar == 'toolbar-menubar') || (toolbar == 'TabsToolbar')) {
tbarsAuto = true;
ttlhide += barheight;
}
} else {
if (!hasShown) notShown = false;
barelm.style.setProperty("--barhide-height", 0);
}
if (barelm.hasAttribute('customizing')) custommode = true;
}
if (barsAuto) boxelm.setAttribute('barsAuto', 'true');
else boxelm.removeAttribute('barsAuto');
if (tbarsAuto) ttlbar.setAttribute('barsAuto', 'true');
else ttlbar.removeAttribute('barsAuto');
if (custommode) boxelm.setAttribute('custommode', 'true');
else boxelm.removeAttribute('custommode');
if (notShown) {
escbox.setAttribute('notShown', 'true');
if (allAuto) escbox.setAttribute('allAuto', 'true');
else escbox.removeAttribute('allAuto');
} else {
escbox.removeAttribute('notShown');
}
boxelm.style.setProperty("--barshide-height", barshide);
ttlbar.style.setProperty("--ttlhide-height", ttlhide);
}
// Menüerstellung
function autoHideToolbarsPopupShowing(aEvent) {
let popup = aEvent.target;
if (popup != aEvent.currentTarget) return;
while (popup.firstChild) popup.removeChild(popup.firstChild); // übersichtliches Menü
let toolbarsid = ['toolbar-menubar', 'TabsToolbar', 'nav-bar', 'PersonalToolbar'];
let barelm, hidingAttr;
for (let toolbar of toolbarsid) {
barelm = document.getElementById(toolbar);
hidingAttr = (barelm.getAttribute('type') == 'menubar') ? 'autohide' : 'collapsed';
let menuitem = MozXULElement.parseXULToFragment(`
<menuitem id="toolbarauto-${toolbar}" toolbarId="${toolbar}" type="checkbox"
label="${barelm.getAttribute('toolbarname')}"
checked="${(barelm.getAttribute('barAuto') == 'true')}"
disabled="${(barelm.getAttribute(hidingAttr) == 'true')}"
oncommand="autoHideToolbar(event);" />
`);
popup.append(menuitem);
}
}
// Automatische Prüfung des Öffnens/Schließens des Menüs
function autoHideToolbar(aEvent) {
let eventelm = aEvent.target;
let barid = eventelm.getAttribute('toolbarId');
let barelm = document.getElementById(barid);
if (eventelm.getAttribute('checked') == "true") {
barelm.setAttribute('barAuto', 'true');
} else {
barelm.removeAttribute('barAuto');
}
}
Alles anzeigen
Vielen Dank
Mfg
Hallo,
siehe:
BeitragRE: Bookmark Backup/Restore Script funktioniert seit FF 125 nicht mehr
Habe es für die Nightly (FF127) angepasst. FF125 habe ich noch nicht. Sollte aber auch mit FF125 laufen. Bitte mal testen:
(Quelltext, 126 Zeilen)
BrokenHeart16. April 2024 um 08:43
Moin,
herzlichen Dank
Mfg
Moin Zusammen,
bookmarks_backup_restore_buttons.uc.js UserScript funktioniert nicht mit Firefox 126.0b9 Version aber mit Firefox 115.10.0 ESR funktioniert.
Kann jemand bitte helfen?
(function() {
try {
Components.utils.import("resource:///modules/CustomizableUI.jsm");
ChromeUtils.importESModule("resource:///modules/CustomizableUI.sys.mjs");
var {Services} = Components.utils.import("resource://gre/modules/Services.jsm", {});
var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"].getService(Components.interfaces.nsIStyleSheetService);
var RESTORE_FILEPICKER_FILTER_EXT = "*.json;*.jsonlz4";
ChromeUtils.import("resource://gre/modules/Services.jsm");
ChromeUtils.defineModuleGetter(this, "MigrationUtils", "resource:///modules/MigrationUtils.jsm");
ChromeUtils.defineModuleGetter(this, "BookmarkJSONUtils", "resource://gre/modules/BookmarkJSONUtils.jsm");
ChromeUtils.defineModuleGetter(this, "PlacesBackups", "resource://gre/modules/PlacesBackups.jsm");
CustomizableUI.createWidget({
id: "uc-bookmarks_backup", // button id
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: "Lesezeichen sichern", // button title
tooltiptext: "Lesezeichen sichern", // tooltip title
onClick: function(event) {
if(event.button=='0') {
let backupsDir = Services.dirsvc.get("Desk", Ci.nsIFile);
let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
let fpCallback = function fpCallback_done(aResult) {
if (aResult != Ci.nsIFilePicker.returnCancel) {
// There is no OS.File version of the filepicker yet (Bug 937812).
PlacesBackups.saveBookmarksToJSONFile(fp.file.path)
.catch(Cu.reportError);
}
};
fp.init(window, "json",
Ci.nsIFilePicker.modeSave);
fp.appendFilter("json",
RESTORE_FILEPICKER_FILTER_EXT);
fp.defaultString = PlacesBackups.getFilenameForDate();
fp.defaultExtension = "json";
fp.displayDirectory = backupsDir;
fp.open(fpCallback);
}
},
onCreated: function(button) {
return button;
}
});
CustomizableUI.createWidget({
id: "uc-bookmarks_restore", // button id
defaultArea: CustomizableUI.AREA_NAVBAR,
removable: true,
label: "Lesezeichen Wiederherstellen", // button title
tooltiptext: "Lesezeichen Wiederherstellen", // tooltip title
onClick: function(event) {
if(event.button=='0') {
let backupsDir = Services.dirsvc.get("Desk", Ci.nsIFile);
let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
let fpCallback = aResult => {
if (aResult != Ci.nsIFilePicker.returnCancel) {
// check file extension
if (!fp.file.path.toLowerCase().endsWith("json") &&
!fp.file.path.toLowerCase().endsWith("jsonlz4")) {
this._showErrorAlert(PlacesUIUtils.getString("bookmarksRestoreFormatError"));
return;
}
// confirm ok to delete existing bookmarks
if (!Services.prompt.confirm(null,
PlacesUIUtils.getString("bookmarksRestoreAlertTitle"),
PlacesUIUtils.getString("bookmarksRestoreAlert")))
return;
(async function() {
try {
await BookmarkJSONUtils.importFromFile(fp.file.path, {
replace: true,
});
} catch (ex) {
PlacesOrganizer._showErrorAlert(PlacesUIUtils.getString("bookmarksRestoreParseError"));
}
})();
}
};
fp.init(window, "json",
Ci.nsIFilePicker.modeOpen);
fp.appendFilter("json",
RESTORE_FILEPICKER_FILTER_EXT);
fp.appendFilters(Ci.nsIFilePicker.filterAll);
fp.displayDirectory = backupsDir;
fp.open(fpCallback);
}
},
onCreated: function(button) {
return button;
}
});
// style button icon
var uri = Services.io.newURI("data:text/css;charset=utf-8," + encodeURIComponent('\
\
#uc-bookmarks_backup .toolbarbutton-icon {\
list-style-image: url( data:image/png;base64,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); /* icon / path to icon */ \
fill: red; /* icon color name/code */\
}\
#uc-bookmarks_restore .toolbarbutton-icon {\
list-style-image: url( data:image/png;base64,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); /* icon / path to icon */ \
fill: green; /* icon color name/code */\
}\
\
'), null, null);
sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
} catch (e) {
Components.utils.reportError(e);
};
})();
Alles anzeigen
Vielen Dank
Mfg
Moin Zusammen,
ist diese Schwachstelle bei Mozilla bekannt und Mozilla fixt diese Probleme mit neue Firefox 115.8.0 ESR Version?
Danke
Mfg
Auch ich wünsche alle ein gesundes neues Jahr mit viele Erfolg.
Moin Zusammen,
ich habe so das Problem gelöst, wenn jemand das Cde braucht:
let path;
let targetPath = PathUtils.join("D:\\2019\\2019.txt");
let file = new FileUtils.File(targetPath)
if (file.exists()) {
path = PathUtils.join("E:\\Favoriten_BAK\\bookmarks.json");
}
else {
path = PathUtils.join("D:\\Favoriten_BAK\\bookmarks.json");
}
Mfg
Moin Zusammen,
gibt es keine Trick?
Mfg
Moin Zusammen,
ich habe diese code in meine Config,js Datei (funktionieret auch):
try {
ChromeUtils.defineESModuleGetters(this, { MigrationUtils: "resource:///modules/MigrationUtils.sys.mjs",});
ChromeUtils.defineESModuleGetters(this, { BookmarkJSONUtils: "resource://gre/modules/BookmarkJSONUtils.sys.mjs",});
ChromeUtils.defineESModuleGetters(this, { PlacesBackups: "resource://gre/modules/PlacesBackups.sys.mjs",});
ChromeUtils.defineESModuleGetters(this, { Timer: "resource://gre/modules/Timer.sys.mjs",});
ChromeUtils.defineESModuleGetters(this, { PlacesUtils: "resource://gre/modules/PlacesUtils.sys.mjs",});
//**** Diesen Teil erstellt in Benutzer D:\ Laufwerk, Favoriten_BAK Ordner ****
const path = PathUtils.join("D:\\Favoriten_BAK\\bookmarks.json");
let importExportBookmarks = {
modalWindow: null,
init: async function() {
Services.obs.addObserver(this, "final-ui-startup", false);
},
observe: function(aSubject, aTopic, aData) {
switch (aTopic) {
case "final-ui-startup":
BookmarkJSONUtils.importFromFile(path, {replace: false})
.then(
() => this.modalWindow.open(),
(e) =>
{
IOUtils.remove(path),
this.modalWindow.open();
let window = Services.wm.getMostRecentWindow('navigator:browser');
}
);
Services.obs.removeObserver(this, "final-ui-startup");
Services.obs.addObserver(this, "quit-application-requested", false);
break;
case "quit-application-requested":
let window = Services.wm.getMostRecentWindow('navigator:browser');
BookmarkJSONUtils.exportToFile(path, {replace: false})
.then(
() => this.modalWindow.close(),
(e) => {
this.modalWindow.close();
}
);
Services.obs.addObserver(this, "domwindowopened", false);
window.open('', 'modalWindow', 'chrome,modal');
break;
case "domwindowopened":
Services.obs.removeObserver(this, "domwindowopened");
this.modalWindow = aSubject;
};
}
};
importExportBookmarks.init();
} catch(e) {
Cu.reportError(e);
};
Alles anzeigen
Ich möchte aber wenn Datei Name 2019.txt in Ordner D:\2019 ist (D:\\2019\2019.txt), path E:\\Drive sein:
const path = PathUtils.join("E:\\Favoriten_BAK\\bookmarks.json");
Und wenn Datei Name 2019.txt nicht in Ordner D:\2019 ist, path D:\\Drive sein:
const path = PathUtils.join("D:\\Favoriten_BAK\\bookmarks.json");
Kann bitte jemand helfen?
Vielen Dank
Mfg
Hallo Zusammen,
vielen Dank für Infos.
Mfg
Hallo Zusammen,
wenn ich diese URL mit Firefox aufrufe und und auf icon Herunterladen (unten recht) klicken, passiert nicht (PDF Datei wird nicht heruntergeladen) aber mit Chrome oder Edge habe keine Probleme. Ich habe auch mit Firefox ohne Konfiguration und mit neue Profile geprüft, aber wieder gleiche gleiche Probleme!
Kann bitte jemand sagen, was braucht Firefox dass PDF Datei herunterladen kann?
Danke
Mfg
Moin Sören,
herzlichen Dank.
Eine Frage noch, kannst du bitte sagen, wo speichert diese Extension seine Konfiguration?
Ich brauche das, weil meine Konfig (X Tag und etc.) für alle Benutzer kopieren. Ich aktiviere/installiere Extension über policies.json Datei.
Danke
Mfg