diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 903055f08b58f575bf29aa8526f615885dfdaed7..051a6dc427be9f7674c8fadc424b5e319955ec66 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -499,6 +499,11 @@ const connection = Penpal.connectToParent({
   // Methods child is exposing to parent
   methods: {
     initialize: (apiUrl, wopiUrl, collaboraUrl) => {
+      window.crypto = window.crypto || window.msCrypto; //for IE11
+      if (window.crypto.webkitSubtle) {
+        window.crypto.subtle = window.crypto.webkitSubtle; //for Safari
+      }
+
       if (!apiUrl) {
         apiUrl = `${window.location.origin}/api/`;
         console.warn(`API host URL not specified. Fall back to ${apiUrl}`); // eslint-disable-line no-console
diff --git a/javascript/webpack.config.js b/javascript/webpack.config.js
index de23825da369ea092a6f7ec967c136ca77faca02..3fddcbd2d734ecc7d5a4ea3e961649ed265fbb52 100644
--- a/javascript/webpack.config.js
+++ b/javascript/webpack.config.js
@@ -7,8 +7,8 @@ module.exports = {
     "viamapi-client": ["core-js/fn/promise", "./src/viamapi-client.js"],
     "viamapi-iframe": [
       "babel-polyfill",
-      "asmcrypto.js",
-      "webcrypto-liner",
+      // "asmcrypto.js",
+      // "webcrypto-liner",
       "./src/iframe/viamapi-iframe.js"
     ]
   },