This document contains a brief list of the most important OS/2-specific changes
in the Mozilla product series from release to release.


CHANGES

Firefox 45.9.0-SUa2 (2019-05-20)
  - Back out commit that caused trps in PLDHashtables
    ( https://bitbucket.org/dryeo/dry-comm-esr31/issues/13/int-3-in-xuldll-sm-2429esr-20190410161744)
  - Restore building with NSPR and NSS
  - Update a bunch of certificates and pins to bring us to the end of ESR52 certificate wise,
    courtesy of TenFourFox.

Firefox 45.9.0-SUa1 (2019-04-10)
  - Use GCC 5.5.0 for compiling
  - Port a bunch of security fixes from TenFourFox

Firefox 45.9.0 GA2 (2018-05-20)

  - Fix Japanese text display (regression of 38.x builds).

  - Fine tune compiler optimization to produce faster JavaScript code and at
    the same time make XUL.DLL more compact (its size is now 25% less).

  - Prevent possible race conditions that could lead to UI freezes when
    entering system-provided modal event loops.

  - Restore the maximum time to process native UI events to what it was in
    version 38.x (20 ms) which improves the overall UI responsiveness on
    web-pages involving intensive use of JavaScript.

  - Add information about workarounds for unresponsive UI to README.OS2
    ("Known Problems" section).


Firefox 45.9.0 GA1.1 (2018-04-18)

  - Fix SSE3 support in bitmap handling. This may fix potential spontaneious
    crashes when rendering pages.

  - Use native memory allocation for SharedArrayObjectin JS. This should
    improve memory footprint when allocating big memory blocks in JavaScript.

  - Implement signal handlers in JIT. This should slightly improve
    responsiveness of JS code doing heavy tasks.

  - Align JavaScript garbage collector's memory manager to current state. This
    should reduce the probability of out-of-memory conditions when running
    heavy JS tasks.

  - Boost XPCOM timer thread priority to increase accuracy. Should slightly
    improve JavaScript code responsiveness.

  - Fix JavaScrit binding to kLIBC rmdir. This makes sure temporary directories
    can be removed from JS code.

  - Fix too big radio buttons in menus. This is a regression of Firefox 45 GA.


Firefox 45.9.0 GA (2017-10-04)

  - Update Firefox to latest version 45.9.0 ESR (including many upstream and
    OS/2 fixes and improvements) and switch project status to GA (general
    availability) due to reaching application stability suitable for use by
    general public. About 40 distinct bugs were fixed for this release.

  - Switch to RPM distribution and discontinue a separate ZIP distribution
    (ZIP packages automatically generated from RPM packages are still
    available).

  - Make FFmpeg DLLs loadable again (45.5.0 Beta 8 regression).

  - Fix crashes when changing mouse cursor shape.

  - Fix delayed response/choppy window scrolling (45.5.0 Beta 8 regression).

  - Fix command line parsing errors when handling path separators
    (38.8.0 Beta 7 regression).

  - Fix crashes when copy-pasting rich text from OpenOffice.

  - Fix 100% CPU load from plugin-container.exe.

  - Make binary NP plugins requiring proper process environment (e.g. Awget)
    work.

  - Make binary NP plugins that do custom painting (e.g. Flash) work in OOP
    mode (for Flash this also requires a fixed Odin and a fresh Flash wrapper
    build). Note that OOP (out-of-process) mode for plugins is always on
    since version 45.

  - Read binary NP plugin DLL properties w/o loading it for execution, which
    improves security as of the main Firefox process by disallowing execution
    of arbitrary code.

  - Prevent possible doubled paint operations in browser windows.

  - Make full-screen mode activated by F11 work (45.5.0 Beta 8 regression).

  - Fix garbled national characters when using Firefox Sync with Windows,
    Linux and macOS machines.

  - Make printing from the internal PDF viewer work.

  - Replace too generic "An error occurred while printing" error with "No
    printers available" in the Print dialog when no printers are configured in
    the system.

  - Use the built-in PostScript generator when printing. This provides better
    printing quality and also restricts the printer list in the Print dialog to
    only PostScript printers, as other types of printers are not supported
    by Firefox anyway.

  - Support the HOME environment variable as a profile directory (used when
    MOZILLA_HOME is absent).

  - Support forward slashes and UNIXROOT paths (starting with `/@`) everywhere
    in Firefox (including the values of HOME and MOZILLA_HOME environment
    variables).

  - Load binary NP plugins from a `/@unixroot/usr/mozilla/plugins` directory
    (intended for installing plugins using RPM/YUM) in addition to
    MOZ_PLUGIN_PATH.


Firefox 45.5.0 Beta 8 (2017-05-19)

   - Update Firefox to latest version 45.5.0 ESR (including many fixes to
     the OS/2 code to adapt it to the ongoing Firefox evolution).

   - Make firefox.exe set BEGINLIBPATH/LIBPATHSTRICT so that a run! or
     script wrapper is no more necessary to start different versions of
     Firefox in parallel or to launch firefox.exe from an arbitrary directory.

   - Link against external LIBJPEG, LIBPNG, ZLIB, BZIP2 and HUNSPELL DLLs.

   - Use kLIBC 0.6.6 DLL directly in JS code.

   - Link against LIBCx DLL for automatic EXCEPTQ trap report creation
     everywhere.


Firefox 38.8.0 Beta 7 (2016-05-27)

   - Update Firefox to latest version 38.8.0 ESR.

   - Fix saved passwords not shown on the Options->Security page.

   - Fix broken Open in New Tab and Restore Session functionality.
     This also fixes opening URLs from command line in new tabs
     instead of creating a new window.

   - Add support for dynamic FFmpeg DLL discovery and enable MP4 video support
     by default. This allows to play H264/AAC video files in HTML5 if supported
     FFmpeg DLLs are present on the system (see README.OS2).

   - Set default font families to generic "serif", "sans-serif" and "monospace"
     instead of fixed familiy names. This allows Firefox to automatically pick
     up system-global defaults set (or changed) in FontConfig (see README.OS2).

   - Report the OS/2 error code and faluty module name in a PM message box and
     to the standard output if Mozilla runime (XUL.DLL) cannot be loaded at
     startup.


Firefox 38.2.1 Beta 6 (2016-02-21)

   - Update Firefox to version 38.2.1 ESR.

   - Switch to original fontconfig for much better font substitution.

   - Switch from GPI to Pango for better text layout and rendering. This
     obsoletes 'gfx.os2.font.*' properties and also brings long-awaited
     support for @font-face (loadable Web fonts).

   - Temporarily disable native print driver spport which is currently
     broken.


Firefox 31.8.0 Beta 5 (2015-07-24)

   - Update Firefox to version 31.8.0 ESR.

   - Put back all OS/2 code that was removed by the Mozilla team between
     versions 24 and 31 to bring Firefox back to life.

   - Review JavsScript support to fix infamous crashes under heavy JS usage and
     greatly improve overal JS performance on OS/2.

   - Enable audio in HTML5 content and in JS using libkai.

   - Temporarily disable out-of-process mode for all plugins to fix 100% CPU
     load.

   - Make File->Quit shortcut (Ctrl+Q) work again.


Firefox 24.8.1 Beta 4 (2015-03-10)

   - Clean up temporary files (mozilla-temp-XXX) in %TEMP% directory.

   - Fix check boxes in "Clear Recent History" dialog.

   - Make most visited sites' thumbnails on new tab canvas work again.

   - Set correct defaults for "gfx.os2.font.*" preferences.

   - Finally allow loading XUL.DLL into high memory.

   - Get rid of MOZJS.DLL (it's now part of XUL.DLL).

   - Use universal builds of FreeType and FontConfig (see README).

   - Use newer GCC 4.9.2 compiler (requires a new GCC runtime, see README).

   - Use newer LIBC 0.6.6 library (requires a new LIBC runtime, see README).


Firefox 24.8.1 Beta 3 (2014-12-30)

   - Fix EXCEPTQ report generation.

   - Rebuild with newer LIBOS2 to allow loading XUL.DLL to high memory.


Firefox 24.8.1 Beta 2 (2014-09-26)

   - Update Firefox to latest version 24.8.1 ESR.

   - Fix spell checking in text input fields.

   - Update EXCEPTQ Add-On download link in README.OS2.


Firefox 24.3.0 Beta (2014-05-30)

   - Update Firefox to version 24.3.0 ESR.

   - Fix SIGFPE crashes in JavaScript module.

   - Use newer GCC 4.7.3 compiler (requires GCC 4.7.3 runtime)

   - Provide full debug info (in spearate package) for better error finding.


Firefox 17.0.5 Beta 2 (2014-02-19)

  - Fix crash in Print dialog when no printers installed.

  - Port IPC libraries used by the OOP (out-of-process) technology to OS/2.

  - Make Flash plugin work (non-OOP mode by default due to bugs in MMPM).

  - Add EXCEPTQ support to generate verbose trap reports.

  - Fix distorted application icon.


Firefox 17.0.5 Beta (2013-11-04)

  - First public release of Firefox 17 for OS/2.

  - Make new IPC code work on OS/2 (used by the Content Processes feature and
    others).


Firefox 10.0.12 and below

  - See https://wiki.mozilla.org/Ports/os2/ for more information.
