sabato 14 aprile 2018

Firefox Portable Custom

Condeterminati applicativa da rilasciare nasce anche l'esigenza di un browser custom per ridurreal minimo il cambio di configurazione da parte dell'utenza che combina sempre disastri sulle configurazioni. Oppure semplicemente per bloccare l'update di firefox o bloccare le impostazione di proxy o configurare forzatamente dei plug-in evitanto che l'utenza possa andare a toccare le configurazioni.

La soluzione è quella di usare una versione portable di Firefox.

Tutte le configurazioni disponibile sono presenti a questo indirizzo e successivamente vediamo come modificarle.

Per accedere manualmente alla configurazioni è possibile digitare da browser About:config.


Per prima cosa è necessario modificare/creare il file \FirefoxPortable\App\Firefox\defaults\pref\autoconfig.js
inserendo riferimenti nel nostro file di configurazione:

pref("general.config.filename", "nomefile.cfg");
pref("general.config.obscure_value", 0);


il nostro file di configurazione: \FirefoxPortable\App\Firefox\nomefile.cfg

//GENERAL - STARTUP

//pagina di default
pref("browser.startup.homepage", "http://miapagina.lan");
lockPref("browser.startup.homepage", "http://miapagina.lan");

pref("browser.startup.page", 1);
lockPref("browser.startup.page", 1);

//lock default brauser
pref("browser.shell.checkDefaultBrowser", false);
lockPref("browser.shell.checkDefaultBrowser", false);

//GENERAL - TABS
pref("browser.tabs.warnOnClose", false);
lockPref("browser.tabs.warnOnClose", false);


//GENERAL - Language and Apparence
pref("layout.spellcheckDefault", 2);
lockPref("layout.spellcheckDefault", 2);


//GENERAL - Browsing
pref("general.autoScroll", true);
lockPref("general.autoScroll", true);

pref("general.smoothScroll", true);
lockPref("general.smoothScroll", true);

pref("accessibility.typeaheadfind", false);
lockPref("accessibility.typeaheadfind", false);

pref("accessibility.browsewithcaret", false);
lockPref("accessibility.browsewithcaret", false);


//GENERAL - Proxy
pref("network.proxy.type",0);
lockPref("network.proxy.type",0);



//GENERAL - Updated

pref("app.update.enabled", false);
lockPref("app.update.enabled", false);

pref("app.update.silent", false);
lockPref("app.update.silent", false);

//expire history
pref("browser.history_expire_days",0);
lockPref("browser.history_expire_days",0);

pref("browser.search.update",false);
lockPref("browser.search.update",false);


//SEARCH
pref("browser.urlbar.autocomplete.enabled",false);
lockPref("browser.urlbar.autocomplete.enabled",false);


//PRIVACY
pref("browser.formfill.enable",false);
lockPref("browser.formfill.enable",false);

pref("browser.cache.disk.enable",true);
lockPref("browser.cache.disk.enable",true);

pref("browser.cache.disk.capacity",5000);
lockPref("browser.cache.disk.capacity",5000);

pref("browser.cache.check_doc_frequency",3);
lockPref("browser.cache.check_doc_frequency",3);

pref("signon.rememberSignons",false);
lockPref("signon.rememberSignons",false);

pref("browser.urlbar.autoFill",false);
lockPref("browser.urlbar.autoFill",false);

pref("browser.preferences.privacy.selectedTabIndex",4);
lockPref("browser.preferences.privacy.selectedTabIndex",4);

//PRIVACY - Permissions
pref("browser.urlbar.showPopup",true);
lockPref("browser.urlbar.showPopup",true);

pref("dom.disable_open_during_load",false);
lockPref("dom.disable_open_during_load",false);

pref("privacy.popups.policy",1);
lockPref("privacy.popups.policy",1);

//PRIVACY - Security
pref("browser.safebrowsing.enabled",true);
lockPref("browser.safebrowsing.enabled",true);

pref("browser.safebrowsing.malware.enabled",true);
lockPref("browser.safebrowsing.malware.enabled",true);

pref("browser.safebrowsing.phishing.enabled",true);
lockPref("browser.safebrowsing.phishing.enabled",true);

pref("signon.prefillForms",false);
lockPref("signon.prefillForms",false);

pref("signon.rememberSignons",false);
lockPref("signon.rememberSignons",false);

pref("signon.expireMasterPassword",true);
lockPref("signon.expireMasterPassword",true);

pref("security.OCSP.enabled",0);
lockPref("security.OCSP.enabled",0);

pref("security.warn_entering_secure",false);
lockPref("security.warn_entering_secure",false);

//VARIE
pref("browser.tabs.warnOnClose",false);
lockPref("browser.tabs.warnOnClose",false);

pref("browser.feedview.showBar",false);
lockPref("browser.feedview.showBar",false);

pref("layout.textarea.spellcheckDefault",true);
lockPref("layout.textarea.spellcheckDefault",true);

//disabilita il messaggio di firefox sulle https
pref("security.insecure_field_warning.contextual.enabled", false);
lockPref("security.insecure_field_warning.contextual.enabled", false);


con la creazione di questo file è possibile personalizzare la parte di contenuti

\FirefoxPortable\Data\profile\chrome\userContent.css

ad esempio se vogliamo eliminare delle voci dalla pagina di configurazione alla fine è una semplice pagina html modificabile da questo css.


@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */

 @-moz-document url("about:preferences") {
#category-sync { display:none!important; }
#category-search { display:none!important; }
}

@-moz-document url("about:addons") {
#category-discover { display:none!important; }
#category-theme { display:none!important; }
#category-plugin { display:none!important; }
#category-service { display:none!important; }
#category-locale { display:none!important; }
#category-dictionary  { display:none!important; }
}

#context-back #context-sep-navigation {
    display:none !important;
}

 Per intercettare le configurazioni basta usare lo strumento di sviluppo integrato:





per eseguire sia firefox portable che firefox installato è necessario inserire questo file nella cartella portable principale.

file: FirefoxPortable.ini

[FirefoxPortable]
FirefoxDirectory=App\firefox
ProfileDirectory=Data\profile
SettingsDirectory=Data\settings
PluginsDirectory=Data\plugins
FirefoxExecutable=firefox.exe
AdditionalParameters=-contentLocale it -UILocale it
LocalHomepage=
DisableSplashScreen=false
AllowMultipleInstances=true
DisableIntelligentStart=false
SkipCompregFix=false
RunLocally=false