jueves, 13 de octubre de 2016

Best practices with Firefox, Palemoon, Waterfox and other FF flavours

This is a just a compilation of tricks or knowledge that i consider important for a daily user of a web browser

Browsers core and user agents:



Menu Bar, old school looking and plenty of options.



I suppose that FF copied this shitty idea from IE or Chrome, at least in FF you can get rid of this.
Displaying the menu bar, not only you will have quick access to many useful functions but also you will show that you are a poweruser ;)



In Waterfox: Menu Bar, + Customize, Titlebar




Execute the 32bits version (Portable FF)
Portable version includes the option of using the 64 or 32bits version.
By default you will execute FF with FirefoxPortable.exe and it will use the 64bits version for your 64bit OS, but sometimes we can be interested in executing the 32 bits because it can be compatible with some plugins, java, etc.

Go directly to the folder with the executable

FirefoxPortable48\App\Firefox
FirefoxPortable48\App\firefox64

Note that when using above executables,  addons and configuration are stored in different folders than the default ones and  used by FirefoxPortable.exe

Access to technical information

about:config


Override Useragent for an specific webpage
entry: general.useragent.override.myURL
string: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.9) Gecko/20100101 Firefox/45.9




Beside the more famous about:config, we also have:


about:support

to identify your FF version and 32/64bits, check "User Agent " and notice that:
Win64; x64 =64bits
WOW64=32bits (WoW64=Windows 32-bit on Windows 64-bit) is a subsystem of the Windows operating system capable of running 32-bit applications.


Includes installed extensions (name, version, ID)


Browser info in files:
prefs.js
application.ini file.
Contains: Browser ID, version, Gecko or Goanna (min and max version)



Moving Configuration to another browser or profile

Portable Palemoon stores addons/extension and configuration in the folder "/User"
Just copying the complete folder or even specific extensions to another browser, another profile, restarting the browser and you will have the desired data ;)

PM portable -Default profile
\User\Palemoon\Profiles\Default\

Waterfox portable -Default profile
\WaterfoxPortable\Data\profile\

Basilisk -Default profile
 C:\Users\bloglon_user\AppData\Roaming\Moonchild Productions\Basilisk\Profiles\xxx.default\


a possible candidate folder ;)
\User\Palemoon\Profiles\Personal_more_privacy\

M. Firefox Developer edition (e.g. 61b)
own profile folder:
C:\Users\bloglon\AppData\Local\Mozilla\Firefox\Profiles\0a3stydz.dev-edition-default



Profile folder compatibility between Browser and versions:

Some errors but most extensions compatible from  Palemoon 27.5.1 to Waterfox 55.2.2
-error with specific PM extensions.
   error with PM "Addons Memory Usage - Intika MoD"
-some config pointing to PM folders
   Detect from about:config, searching palemoon word
   browser.cache.disk.parent_directory



Stored Passwords:
Are stored in sqlite and json:
\Palemoon2x_64b\User\Palemoon\Profiles\Default\signons.sqlite\Palemoon2x_64b\User\Palemoon\Profiles\Default\logins.json

To recreate json file from sqlite:  about:config, signon.importedFromSqlite, reset

Using multiple profiles:
Addon: ProfileSwitcher

Some Interesting files:
prefs.js  . Same or similar data than available from about:config
Palemoon_26.x\User\Palemoon\Profiles\Default\prefs.js
Palemoon-Portable.ini ( contain command line parameters,  profiles, paths....)




Installing extension theoretically not compatible


Main concepts:


  • It is risky, and it will work only when browser is compatible in the practice but the developer was too much restrictive.
  • Each FF web browser as a unique identifier such as:
    • Firefox {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
    • Palemoon {8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}
    • Sea Monkey{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
    • Waterfox  {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
(extract from application.ini)

Note that for Palemoon compatibility; from addons.mozilla.org(AMO) it is recognized as:

Palemoon 26.4  as a FF 24.9
Palemoon 27.3  as a FF 27.9
Waterfox  55.2.2 as a [FF/Gecko] 55.2.2

Browser identification can be configured for specific URL
From: "about:config" page , add a key general.useragent.override.myurl
i.e. general.useragent.override.facebook.com

Download a xpi file

From version Information, we list all the versions of this extension, then clicking on "Add to firefox" button we can obtain the link to the file.

We can download with right button and "Saved Link As" or even pasting the link in other webbrowser.

Edit a non compatible xpi extension

it will save a  .xpi file (it is just a renamed zip file)
rename the .xpi to .zip (7zip can extract directly from xpi)
Extract to content to a folder


Files:
install.rdf 
contains extension identification and compatibility checks

chrome.manifest
contains technical configuration which can be common for all browser and version or can be  customized per each different web browser or version


Edit install.rdf 
to include a different version
modify min or max version
         25.0
        44.*

to add Palemoon


{8de7fcbb-c55c-4fbe-bfc5-fc555c87dbc4}
25.0
25.*




Edit chrome.manifest

  • Removing application part will apply to any
    • .ie. application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} 


  • adding a new line with missing identifier (i.e Palemoon)
  • Modify appversion to apply to out browser
    • appversion>=12