Rate this Article:
You must be signed in to rate again
Article Feedback Print View
Alternate Languages:

Using the Safari Browser with Web Interface

Document ID: CTX104367   /   Created On: Aug 12, 2004   /   Updated On: Jan 24, 2006
Average Rating: 4

Symptom

The ICA Client for Java is always deployed for users connecting with a Safari Web browser.

See Page 83 of the Web Interface 3.0 Administrator’s Guide.
See Page 77 of the Web Interface 4.0 Administrator’s Guide.

Cause

This is by design, in order to maintain compatibility with Mac OS X ICA Clients prior to v7.00.407; Web Interface restricts users to only use the Java Client when connecting with Safari.

Workaround

This Workaround is in two parts.

Mac OS X ICA Client version 7.00.407 or above to be installed on the Client platform.

1. Changes are made to Web Interface to allow the native Mac OS X ICA Client to be used with Safari. (Note that there are separate workarounds for Web Interface 3.0 and Web Interface 4.0 on ASP and JSP platforms).

This workarounds are provided to you “AS IS” with no representations, warranties or conditions of any kind. You may use, modify and distribute it at your own risk. CITRIX DISCLAIMS ALL WARRANTIES WHATSOEVER, EXPRESS, IMPLIED, WRITTEN, ORAL OR STATUTORY, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NONINFRINGEMENT. Without limiting the generality of the foregoing, you acknowledge and agree that (a) the sample code may exhibit errors, design flaws or other problems, possibly resulting in loss of data or damage to property; (b) it may not be possible to make the sample code fully functional; and (c) Citrix may, without notice or liability to you, cease to make available the current version and/or any future versions of the sample code. In no event should the code be used to support of ultra-hazardous activities, including but not limited to life support or blasting activities. NEITHER CITRIX NOR ITS AFFILIATES OR AGENTS WILL BE LIABLE, UNDER BREACH OF CONTRACT OR ANY OTHER THEORY OF LIABILITY, FOR ANY DAMAGES WHATSOEVER ARISING FROM USE OF THE SAMPLE CODE, INCLUDING WITHOUT LIMITATION DIRECT, SPECIAL, INCIDENTAL, PUNITIVE, CONSEQUENTIAL OR OTHER DAMAGES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Although the copyright in the code belongs to Citrix, any distribution of the code should include only your own standard copyright attribution.

Workaround for Web Interface 3.0

The following applies to Web Interface 3.0 ONLY, for Web Interface 4.0 see the next section.

For IIS

1. To disable safari from defaulting to the ICA Client for Java, edit the Embed.cs file. This file is in the Metaframe/site/include/serverscripts directory on the IIS Web server.

2. Use Notepad to open the Embed.cs file and locate the following piece of code:

//Only allow applications to be launched with the Java client on Mac and Safari.

if (sClientInfo.osMac() && sClientInfo.isSafari()) {

validClient = "ica-java";

}

3. Change

validClient =“ica-java”

to

validClient=“ica-local”

4. Save the change.

5. After making this change, users are directed how to launch a connection through Web Interface.

6. To display the client install caption on Safari, edit line 80 of MetaFrame\site\include\messagecenter.inc, which reads:

if (!sClientInfo.osWinCE() && !sClientInfo.isSafari()) {

Change this line to:

if (!sClientInfo.osWinCE()) {

7. Save and close file.

On the JSP (Unix) Platform

1. Edit MetaFrame\serverscripts\include.js

2. Comment out or delete lines 841, 842 and 843, which are:

if (clientInfo.osMac() && clientInfo.isSafari()) {

validClient = "ica-java";

}

3. Save and close this file

4. To display the client install caption on Safari, edit line 82 of MetaFrame\include\messagecenter.inc, which reads:

if (!sClientInfo.osWinCE() && !sClientInfo.isSafari()) {

to read

if (!sClientInfo.osWinCE()) {

To Display the Client Selection part of the Settings Dialog

(Instructions apply to Windows & UNIX)

Edit line 331 of appsettings.inc (in the 'include' directory),

if (bShowClients && !(sClientInfo.osMac() && sClientInfo.isSafari())) {

to read

if (bShowClients) {

Workaround for Web Interface 4.0

The following applies to Web Interface 4.0 ONLY, for Web Interface 3.0 see the previous section.

For IIS

1. To allow the use of the native client with Safari, edit the file MetaFrame\site\serverscripts\include.cs , and locate the following section:

} else if (sClientInfo.isSafari() || autoFallbackToJICA()) {

2. Replace with:

} else if ( autoFallbackToJICA() ) {

3. Edit the file MetaFrame\site\serverscripts\embed.cs and comment out the following section by preceding each line with two forward-slashes ( // ).

if (sClientInfo.osMac() && sClientInfo.isSafari()) {

result = MPSClientType.JAVA;

}

4. To display the client install caption in the Message Center, edit MetaFrame\site\serverscripts\install.cs and locate the following section:

if ((! sClientInfo.osWinCE()) && (! sClientInfo.isSafari())

5. Replace with:

if ((! sClientInfo.osWinCE())

6. To display the client selection in the settings dialog, edit the file MetaFrame\site\serverscripts\appsettings.cs and locate the following section:

&& (! sClientInfo.isSafari()) && (! sClientInfo.osPocketPC());

7. Replace with:

&& (! sClientInfo.osPocketPC());

8. Also edit the file MetaFrame\site\serverscripts\clientsettings.cs and locate the following section:

&& (! sClientInfo.isSafari()) && (! sClientInfo.osPocketPC());

9. Replace with:

&& (! sClientInfo.osPocketPC());

For the JSP (Unix) Platform

1. Edit the file site/serverscripts/include.js and locate the following section:

} else if (sClientInfo.isSafari() || autoFallbackToJICA( request, response,

2. Replace with:

} else if (autoFallbackToJICA( request, response,

3. Also, in the same file, comment out the highlighted section by preceding each line with two forward-slashes ( // ).

if (clientInfo.osMac() && clientInfo.isSafari()) {

result = MPSClientType.JAVA;

}

4. To display the client install caption in the Message Center, edit site/serverscripts/install.js and locate the following section:

if ((! sClientInfo.osWinCE()) && (! sClientInfo.isSafari())

5. Replace with:

if ((! sClientInfo.osWinCE())

6. To display the client selection in the settings dialog, edit the file site/serverscripts/appsettings.js and locate the following section:

&& (! sClientInfo.isSafari()) && (! sClientInfo.osPocketPC());

7. Replace with:

&& (! sClientInfo.osPocketPC());

8. Repeat steps 6 and 7 for the file site/serverscripts/clientSettings.js.


Search
Knowledge Center
XenApp
XenApp Plugins (Clients)
XenServer
XenDesktop
NetScaler Application Delivery
Access Gateway
EdgeSight
Provisioning Server
WANScaler
Password Manager
Does it work with Citrix? Verify it - introducing the new Citrix Ready Community Verified