docs: function (res, args) {
              var options = args.options;
              var window = args.frame.contentWindow || args.frame;
              var document = window.document;
              var iFrameAria = window.Aria;
              iFrameAria.rootFolderPath = this.bootRootFolderPath;
              iFrameAria.debug = Aria.debug;
              iFrameAria.memCheckMode = Aria.memCheckMode;
              var attester = Aria.$frameworkWindow.attester;
              if (attester && attester.installConsole) {
                  attester.installConsole(window);
              }
              document.getElementById("loadingIndicator").innerHTML = "Loading";
              var href = Aria.$frameworkWindow.location.href.replace(/(\?|\#).*$/, "").replace(/[^\/.]+\.[^\/.]+$/, "").replace(/\/$/, "") + "/";
              var head = document.getElementsByTagName('head')[0];
              var base = document.createElement('base');
              base.setAttribute('href', href);
              head.appendChild(base);
              this.$callback(args.options.onBeforeLoadingAria, window);
              window.Aria["eval"](this.frameworkJS); // note that using window.eval leads to strange errors in FF
              // If the framework is loaded inside a new window, opener has to be used instead of parent
  
              if (options.iframePageCss) {
                  this._injectGlobalCss(window, options.iframePageCss);
              }
  
              window.Aria.rootFolderPath = Aria.rootFolderPath;
              var rootMap = window.aria.utils.Json.copy(ariaCoreDownloadMgr._rootMap);
              window.aria.core.DownloadMgr.updateRootMap(rootMap);
              if (!options.skipSkinCopy && aria.widgets && aria.widgets.AriaSkin) {
                  var skin = aria.widgets.AriaSkin.classDefinition;
                  window.Aria['classDefinition']({
                      $classpath : 'aria.widgets.AriaSkin',
                      $singleton : true,
                      $prototype : window.aria.utils.Json.copy(skin.$prototype)
                  });
              }
              // fill the cache with already loaded classes
  
              var newDownloadMgr = window.aria.core.DownloadMgr;
              var newCache = window.aria.core.Cache;
              var cache = ariaCoreCache;
              var filesCache = cache.content.files;
              var urlsCache = cache.content.urls;
              var loadedStatus = cache.STATUS_AVAILABLE;
              var errorStatus = cache.STATUS_ERROR;
              for (var file in filesCache) {
                  if (filesCache.hasOwnProperty(file)) {
                      var item = filesCache[file];
                      if (item.status == loadedStatus) {
                          newDownloadMgr.loadFileContent(file, item.value, false);
                      } else if (item.status == errorStatus) {
                          newDownloadMgr.loadFileContent(file, null, true);
                      }
                  }
              }
              for (var url in urlsCache) {
                  if (urlsCache.hasOwnProperty(url)) {
                      var item = urlsCache[url];
                      var newItem = newCache.getItem("urls", url, true);
                      if (item.status == loadedStatus) {
                          newItem.status = loadedStatus;
                      } else if (item.status == errorStatus) {
                          newItem.status = errorStatus;
                      }
                  }
              }
              if (!options.keepLoadingIndicator) {
                  var loadingIndicator = window.document.getElementById("loadingIndicator");
                  loadingIndicator.parentNode.removeChild(loadingIndicator);
              }
              
              ariaUtilsScriptLoader.load(options.extraScripts || [], {
                  fn: this._loadATInFrameCb3,
                  scope: this,
                  args: args
              }, {
                  document: document
              });
          }