diff --git a/docs/Preference.md b/docs/Preference.md index e245dc3..bfbdec4 100644 --- a/docs/Preference.md +++ b/docs/Preference.md @@ -75,7 +75,7 @@ See [EBNF(Extended Backus-Naur form)](https://en.wikipedia.org/wiki/Extended_Bac - [`modules/libpref/init/all.js`](https://github.com/mozilla/gecko-dev/blob/master/modules/libpref/init/all.js): all products - [`browser/app/profile/firefox.js`](https://github.com/mozilla/gecko-dev/blob/master/browser/app/profile/firefox.js): only firefox deskstop -In release builds these are all put into `omni.ja`. +In release builds these are all put into [`omni.ja`](./omni_ja.md). ## User Config **Related Docs** @@ -139,7 +139,7 @@ user_pref("general.smoothScroll.currentVelocityWeighting", "0.12"); // String - [UDN: Limitations of chrome scripts](https://udn.realityripple.com/docs/Mozilla/Firefox/Multiprocess_Leftovers/Limitations_of_chrome_scripts) **Basics** -Customizations that cannot be done with add-on and `User Custom CSS`, such as adding browser UI elements directly or changing default behavior, must use `Auto Config`. +Customizations that cannot be done with add-on and [`User Custom CSS`](./README.md#user-custom-css), such as adding browser UI elements directly or changing default behavior, must use `Auto Config`. **How to** ```javascript diff --git a/docs/omni_ja.md b/docs/omni_ja.md new file mode 100644 index 0000000..4d6a61e --- /dev/null +++ b/docs/omni_ja.md @@ -0,0 +1,39 @@ +# Omni.ja + + +**Table of Contents** + +- [Basics](#basics) +- [Related Project](#related-project) +- [Related Source file](#related-source-file) + + + + +## Basics +**Related Docs** +- [UDN: omni.ja (formerly omni.jar)](https://udn.realityripple.com/docs/Mozilla/About_omni.ja_(formerly_omni.jar)) +- [Firefox 4: jar jar jar](https://web.archive.org/web/20161003115800/https://blog.mozilla.org/tglek/2010/09/14/firefox-4-jar-jar-jar/) +- [Firefox's Optimized Zip Format: Reading Zip Files Really Quickly](https://taras.glek.net/post/optimized-zip-format/) +- [How to Optimize or Deoptimize Firefox OMNI.JA File](https://www.raymond.cc/blog/edit-files-inside-firefox-4-omni-jar-to-auto-save-password/) + +**Explanation** +Firefox achieve performance improvements by moving many of their internal parts from being standalone files or sets of JAR files into just one JAR file called `omni.ja`. +This reduces the amount of I/O needed to load the application. + +Chrome content, modules, non-binary components, and many other elements are packaged in an omni.jar file for each base directory. + +- `actors/`: [JSActors](https://firefox-source-docs.mozilla.org/dom/ipc/jsactors.html) related files. +- `chrome.manifest`: The [chrome manifest] file. +- `chrome/`: User interface files for the application +- `components/`: XPCOM components the application relies upon. +- `defaults/`: Default preference files. +- `modules/`: [JavaScript code modules](https://udn.realityripple.com/docs/Mozilla/JavaScript_code_modules). +- `res/`: Miscellaneous resource files. + +## Related Project +- https://github.com/SebastianSimon/firefox-omni-tweaks + +## Related Source file +- https://github.com/mozilla/gecko-dev/blob/de91f5ee41251779ff2973d24d195d116cb6ebd7/python/mozbuild/mozpack/packager/formats.py#L258-L359 +- https://github.com/humphd/mozilla-central-old/blob/9d4d9f265e24e6358c067ae1e300c1ce3227a91d/config/optimizejars.py