Chrome by Google


This document contains all the change logs associated with the software deliveries provided for the Chrome project.

Below is a list that enumerates the functionality introduced by this version of the Chrome browser :

  • PNaCl

    • The C11/C++11 acquire, release, and acq_rel memory orders are now generated by default. The in-browser Chrome 42 translator supports them, the SDK can therefore generate them.
    • Fix a code generation bug on ARM when dealing with 16-bit load/store and bswap which led to a NaCl validation failure. Bug Fix
    • PNaCl is now based on LLVM 3.6. If you are using GDB to debug PNaCl BC files with debug metadata in the browser, remember that debug info from SDK version X is only compatible with the PNaCl translator in chrome version X.
      The bitcode debug metadata format changed from LLVM 3.5 to 3.6. If you need to debug an app built with SDK version X running in Chrome version Y (with X != Y), it is still possible to do so.
    • PNaCl’s support for use of libstdc++ 4.6 as the C++ standard library is deprecated and will be removed in the next release. PNaCl has used libc++ (which is much more up-to-date, currently based on LLVM 3.6) as the default since Pepper 33.
  • Pepper

    • UDP Socket Multicast API in development preview (PPB_UDP_SOCKET 1.2).
    • Hardware Video Encoder API in development preview (PPB_VIDEO_ENCODER 0.1).

Below is a list that enumerates the functionality introduced by this version of the Chrome browser :

  • SDK

    • The SDK now contains experimental versions of i686-nacl-clang, x86_64-nacl-clang, and arm-nacl-clang as well as the clang++ equivalents.
      These toolchains are based on the same LLVM version as PNaCl, but can be used to generate NaCl .nexe files instead of translating a .pexe locally or using the GCC toolchain.
  • NaCl

    • The x86 NaCl validators accept instructions from the FMA3 extensions, as well as AVX2 instructions (except VGATHER).
  • PNaCl

    • PNaCl supports C11/C++11 memory orders acquire, release, and acq_rel. It used to upgrade all accesses to seq_cst.
      It still upgrades consume to acquire (no compiler currently implements consume), and relaxed to seq_cst (to conservatively avoid platform differences due to out-of-thin-air problems).

      Note

      This is currently disabled by default in the SDK so that the in-browser translator installed on users’ machines has time to gain this support. Developers can turn it on by passing the -pnacl-memory-order-seq-cst-only=false flag to opt.
    • PNaCl handles nested struct type expansion, which allows it to better support non-C languages such as Rust.
    • PNaCl breaks up many integer operations over 64-bits into individual 64-bit operations. This is often encountered when using large consecutive bitfields.

Below is a list that enumerates the functionality introduced by this version of the Chrome browser :

  • NaCl

    • The x86 NaCl validators accept instructions from the AVX1 extensions.
  • NaCl

    • PNaCl is now based on LLVM 3.5.