[ 
https://issues.apache.org/jira/browse/GUACAMOLE-327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shaun Tarves updated GUACAMOLE-327:
-----------------------------------
    Description: 
Internet Explorer, including 11, doesn't have support for location.origin so 
when trying to build the URL for the XMLHttpRequests in 
tunnelService.downloadStream and tunnelService.uploadToStream, the string 
"undefined" gets prepended onto the URL, rendering that functionality unusable.

The workaround/polyfill for this is pretty simple and well documented on the 
web and is basically:


{code:javascript}
if (!window.location.origin) {
  window.location.origin = window.location.protocol + '//' + 
window.location.hostname + (window.location.port ? (':' + window.location.port) 
: '');
}
{code}


reference: https://gist.github.com/hbogs/7908703

Additionally, IE seems to have a problem with the fallback code for removing 
the download iframe from the body. If the iframe is successfully removed by the 
callback of the iframe.onload handler, the stream.onend callback encounters an 
error because the iframe is no longer attached. A check for iframe's 
parentElement being defined is a workaround:


{code:javascript}
stream.onend = function downloadComplete() {
            $window.setTimeout(function cleanupIframe() {
                if (iframe.parentElement) {
                    document.body.removeChild(iframe);
                }
            }, DOWNLOAD_CLEANUP_WAIT);
        };
{code}

Finally, IE 10 and IE 11 are not able to download filetypes the browser will 
automatically try to open (like .txt and .jpg files). The download appears to 
just not do anything. The same remote system is able to download other 
extensions like .exe and .zip download just fine. This is true for either 
method (the menu file browser or the guacctl utility).

  was:
Internet Explorer, including 11, doesn't have support for location.origin so 
when trying to build the URL for the XMLHttpRequests in 
tunnelService.downloadStream and tunnelService.uploadToStream, the string 
"undefined" gets prepended onto the URL, rendering that functionality unusable.

The workaround/polyfill for this is pretty simple and well documented on the 
web and is basically:


{code:javascript}
if (!window.location.origin) {
  window.location.origin = window.location.protocol + '//' + 
window.location.hostname + (window.location.port ? (':' + window.location.port) 
: '');
}
{code}


reference: https://gist.github.com/hbogs/7908703

Additionally, IE seems to have a problem with the fallback code for removing 
the download iframe from the body. If the iframe is successfully removed by the 
callback of the iframe.onload handler, the stream.onend callback encounters an 
error because the iframe is no longer attached. A check for iframe's 
parentElement being defined is a workaround:


{code:javascript}
stream.onend = function downloadComplete() {
            $window.setTimeout(function cleanupIframe() {
                if (iframe.parentElement) {
                    document.body.removeChild(iframe);
                }
            }, DOWNLOAD_CLEANUP_WAIT);
        };
{code}



> File upload/download in IE
> --------------------------
>
>                 Key: GUACAMOLE-327
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-327
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole-client
>    Affects Versions: 0.9.12-incubating
>            Reporter: Shaun Tarves
>
> Internet Explorer, including 11, doesn't have support for location.origin so 
> when trying to build the URL for the XMLHttpRequests in 
> tunnelService.downloadStream and tunnelService.uploadToStream, the string 
> "undefined" gets prepended onto the URL, rendering that functionality 
> unusable.
> The workaround/polyfill for this is pretty simple and well documented on the 
> web and is basically:
> {code:javascript}
> if (!window.location.origin) {
>   window.location.origin = window.location.protocol + '//' + 
> window.location.hostname + (window.location.port ? (':' + 
> window.location.port) : '');
> }
> {code}
> reference: https://gist.github.com/hbogs/7908703
> Additionally, IE seems to have a problem with the fallback code for removing 
> the download iframe from the body. If the iframe is successfully removed by 
> the callback of the iframe.onload handler, the stream.onend callback 
> encounters an error because the iframe is no longer attached. A check for 
> iframe's parentElement being defined is a workaround:
> {code:javascript}
> stream.onend = function downloadComplete() {
>             $window.setTimeout(function cleanupIframe() {
>                 if (iframe.parentElement) {
>                     document.body.removeChild(iframe);
>                 }
>             }, DOWNLOAD_CLEANUP_WAIT);
>         };
> {code}
> Finally, IE 10 and IE 11 are not able to download filetypes the browser will 
> automatically try to open (like .txt and .jpg files). The download appears to 
> just not do anything. The same remote system is able to download other 
> extensions like .exe and .zip download just fine. This is true for either 
> method (the menu file browser or the guacctl utility).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to