Browser Compatibility

With Browser Compatibility, you can tell the service to only protect your application if it can guarantee that the resulting application is compatible with the target (AKA minimum) browser versions you've specified for that application. If that's not the case - either because your source code has been updated to include a new feature which is not compatible or the selected transformations do not support your target browser - your protection will fail therefore, this ensures that you don't deploy to production a protected version of your application which has not been fully tested by our service to work on the specified target browsers versions. Please note that this is only applicable if you specifically set those target browsers versions and have App Classification enabled.

Browser Compatibility

If you are using the Jscrambler Web App, you can open this screen by clicking on the cogwheel menu and selecting Browser Compatibility or on the App Info Tab by clicking on Target Versions.

Browser Compatibility Menu

Each column on the Browser Compatibility component is described next.

Source Code

This is the browser compatibility of your application source code - meaning that, if you'd deploy your application as it is without changing anything, it'd work with those browser versions onwards. Only browser and isomorphic files are considered in this evaluation; so, if your application has, for instance, files that only run in Node.js, they won't be considered in here.

Please note that whenever you change your application source code these browser versions may change. Expect some (or all) browser versions to increase if you add something to the source code which is only available on newer browser versions than the ones displayed here. Conversely, expect it to decrease if, for instance, you replace something like novelty syntax sugar with a semantically equivalent polyfill - assuming it was the only thing forcing that particular browser version.

Protected Code

This represents the browser compatibility of your application after you protect it assuming the currently selected configuration. Expect these versions to change when (un)selecting transformations.

Please take into consideration that the browser version displayed here might be higher than the one on the source code. This doesn't mean necessarily that the resulting code might not be compatible with lower browser versions. It is only a guarantee that the service has thoroughly tested the currently selected configuration to work with the displayed browsers versions and that you can be sure that your application shall be compatible with those versions onwards.

Minimum Compatibility

Here is where you can set your application minimum browser compatibility. You can set only the browsers you wish and only those will be considered during configuration. Once again, the minimum version available to be set as the minimum, corresponds to the versions we've thoroughly tested and may not include the most legacy versions.

Minimum tested Browsers versions:

  • Google Chrome: 40+
  • Firefox: 40+
  • Internet Explorer: 8+
  • Edge: 18
  • Safari: 10.1+

Consider the following Browser Compatibility configuration scenario, in the image below, where the browser Edge is marked with yellow color and Safari and Internet Explorer are marked in red color. Yellow means that the selected transformations produce a protected code with a higher Browser Compatibility version than the one on the source code. Red means that some of selected transformations (Internet Explorer) or your own source code (Safari) don't comply with the browser version you selected as a Minimum Compatibility browser. You can check the reason for the yellow or red color in the icon next to Minimum Compatibility combobox.

Browser Compatibility Modal

Jscrambler Clients

If you want to enforce minimum Browser versions using any of our Jscrambler Clients, add the browser compatibilities for each browser on the jscrambler.json.

For example, this is good to make sure that, on your CI/CD pipeline, no protected version of your application is deployed to production if not compatible with the minimum versions you want.

Here is an example of how the JSON configuration looks like:

{
  "browsers": {
    "chrome": "76",
    "ie": "9",
    "firefox": "40",
    "edge": "18",
    "safari": "10.1"
  }
}