Cornerstone can be made to support legacy browsers by incorporating polyfills for some modern web browser features.
You may need to include polyfills for these features, depending on which browsers you target.
- Promises represent the eventual result of an asynchronous operation. These are used by Image Loaders. You will need to polyfill Promises to use Internet Explorer 11.
Here is a lightweight Promise polyfill which is MIT Licensed.
requestAnimationFrame is a method for efficiently running animations. We are currently check for its availability ourselves within Cornerstone, but may remove this in the future. There are many options for a requestAnimationFrame polyfill in this gist by Paul Irish.
performance.now is used for high-resolution timing for performance monitoring within Cornerstone. We are currently avoiding errors ourselves within Cornerstone, but may remove this in the future. Here is a performance.now polyfill.
WebGL is used for hardware acceleration in our optional high-performance rendering path. WebGL 1.0 is well supported but may still have issues in some browsers, which is why it is not enabled by default. We currently provide a fallback pathway on WebGL failure so that rendering can continue via HTML5 Canvas APIs.
Note: There may be further tests which could be added to the core codebase to trigger automatic fallback to Canvas rendering. If you have any specific suggestions, feel free to open an issue to discuss this.