Summary: Games implemented on the web platform using WASM or asm.js use large contiguous blocks of allocated memory as their backing store for game memory. For complex games, these allocations can be quite large, sometimes as large as 1GB. In 64-bit builds, we have no problem finding a large enough section of virtual memory that we can allocate a large contiguous hunk. Unfortunately normal use of Firefox quickly fragments the smaller address space of 32-bit Firefox, meaning that these complex games often fail to run.
The Large-Allocation header is a hint header for a document. It tells the browser that the web content in the to-be-loaded page is going to want to perform a large contiguous memory allocation. In our current implementation of this feature, we handle this hint by starting a dedicated process for the to-be-loaded document, and loading the document inside of that process instead. Further top-level navigations in that "Fresh Process" will cause the process to be discarded, and the browsing context will shift back to the primary content process. We hope to ship this header alongside WASM in Firefox 52 to enable game developers to develop more intense games on our web platform. More details on the implementation and limitations of this header and our implementation can be found in the linked bug. Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1331083 Link to standard: This feature is non-standard Platform coverage: Firefox Desktop with e10s enabled Target release: Fx52 Preference behind which this is implemented: dom.largeAllocationHeader.enabled DevTools bug: none Do other browser engines implement this? No, we are in conversations with Chrome about them potentially also recognizing this hint. Tests: Added as part of the implementation Security & Privacy Concerns: none _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform