18
edits
No edit summary |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
WebAssembly is an emerging standard whose goal is to define a safe, portable, size- and load-time efficient binary compiler target which offers near-native performance — a virtual CPU for the Web. WebAssembly is being developed in a W3C Community Group [https://www.w3.org/community/webassembly/] (CG) whose members [https://www.w3.org/community/webassembly/participants] include Mozilla, Microsoft, Google, and Apple. | WebAssembly is an emerging standard whose goal is to define a safe, portable, size- and load-time efficient binary compiler target which offers near-native performance — a virtual CPU for the Web. WebAssembly is being developed in a W3C Community Group [https://www.w3.org/community/webassembly/] (CG) whose members [https://www.w3.org/community/webassembly/participants] include Mozilla, Microsoft, Google, and Apple. | ||
'''Ship Status:''' The initial version of WebAssembly released in Firefox in March 2017. Future versions will focus on threading and performance improvements. | |||
'''Ship Status:''' | |||
==Improving WebGL Success Rates== | ==Improving WebGL Success Rates== | ||
Line 23: | Line 21: | ||
WebGL 2 is based on the OpenGL ES 3.0 specification, and offers new features, including 3D textures and 2D texture arrays, ESSL 3.0 (an advanced shading language), integer texture formats and vertex attributes, transform feedback, and uniform blocks for more efficient uploads. It also adds primitive restart, framebuffer blitting and invalidation, separable sampler objects, occlusion queries and pixel buffer objects. Some optional WebGL 1 extensions are now part of the guaranteed core of WebGL 2, including multiple render targets, instanced drawing, depth and floating-point textures, and sRGB support. Also notable is support for the new ETC2 texture format which provides alpha support on a compressed texture, is supported on both desktop and mobile devices, and allows developers to use a single texture format across devices. | WebGL 2 is based on the OpenGL ES 3.0 specification, and offers new features, including 3D textures and 2D texture arrays, ESSL 3.0 (an advanced shading language), integer texture formats and vertex attributes, transform feedback, and uniform blocks for more efficient uploads. It also adds primitive restart, framebuffer blitting and invalidation, separable sampler objects, occlusion queries and pixel buffer objects. Some optional WebGL 1 extensions are now part of the guaranteed core of WebGL 2, including multiple render targets, instanced drawing, depth and floating-point textures, and sRGB support. Also notable is support for the new ETC2 texture format which provides alpha support on a compressed texture, is supported on both desktop and mobile devices, and allows developers to use a single texture format across devices. | ||
'''Ship Status:''' WebGL 2 | '''Ship Status:''' WebGL 2 shipped in Firefox 51 in January 2017. We are now focusing on ongoing performance improvements. | ||
==Addressing 32-Bit Out of Memory Issues (OOMs)== | ==Addressing 32-Bit Out of Memory Issues (OOMs)== | ||
Line 29: | Line 27: | ||
A consistent pain point for web developers using compiled code bases and asm.js is hitting out of memory conditions on 32-Bit browsers. To address this 32-Bit OOM challenge, we have proposed a new Large-Allocation header [https://gist.github.com/mystor/5739e222e398efc6c29108be55eb6fe3]. This header tells the browser to make a best-effort attempt to load the document in an unfragmented content process, which should greatly decrease the OOM failure rate for top-level browsing contexts. We aim to ensure that if the conditions for a cross-process navigation are met, web apps are able to reliably allocate a gigabyte of contiguous address space. | A consistent pain point for web developers using compiled code bases and asm.js is hitting out of memory conditions on 32-Bit browsers. To address this 32-Bit OOM challenge, we have proposed a new Large-Allocation header [https://gist.github.com/mystor/5739e222e398efc6c29108be55eb6fe3]. This header tells the browser to make a best-effort attempt to load the document in an unfragmented content process, which should greatly decrease the OOM failure rate for top-level browsing contexts. We aim to ensure that if the conditions for a cross-process navigation are met, web apps are able to reliably allocate a gigabyte of contiguous address space. | ||
'''Ship Status:''' | '''Ship Status:''' Firefox intends to ship the Large-Allocation header solution in Firefox 53 in April 2017. | ||
==Migration to 64-Bit Browsers== | ==Migration to 64-Bit Browsers== | ||
Line 42: | Line 40: | ||
As nearly three-quarters of Firefox users are running 32-bit Firefox on 64-bit Windows, there is a huge opportunity to improve the ability of those users to run large web apps by accelerating the shift to 64-bit. | As nearly three-quarters of Firefox users are running 32-bit Firefox on 64-bit Windows, there is a huge opportunity to improve the ability of those users to run large web apps by accelerating the shift to 64-bit. | ||
'''Ship Status:''' | '''Ship Status:''' Per our plan of record[https://wiki.mozilla.org/Firefox/Win64#Plan], we are targeting August 2017 (Firefox 55) to change the Firefox installer to default to 64-bit for new installs or reinstalls for eligible users. Upgrading existing 32-bit browser users on 64-bit OSes to a 64-bit browser is not part of this roll-out phase. Our current thinking is to upgrade 32-bit users in October 2017 (Firefox 56). | ||
==Standardizing and Shipping SharedArrayBuffer== | ==Standardizing and Shipping SharedArrayBuffer== |
edits