Configure web browser (Janus Debugger only): Difference between revisions

From m204wiki
Jump to navigation Jump to search
(Created page with "__TOC__ <span class="f_ListNum1">Set </span><span class="f_Para">up your web browser to use the Debugger Client as a proxy server. Information follows for these individual bro...")
 
No edit summary
Line 2: Line 2:
<span class="f_ListNum1">Set </span><span class="f_Para">up your web browser to use the Debugger Client as a proxy server. Information follows for these individual browser types: </span>
<span class="f_ListNum1">Set </span><span class="f_Para">up your web browser to use the Debugger Client as a proxy server. Information follows for these individual browser types: </span>


<span class="f_SimpleListText">[[configure_test_browser.html#internet_explorer|Chrome or Internet Explorer]] </span>
: [[Configure web browser (Janus Debugger only)|Chrome or Internet Explorer]]
 
: [[Configure web browser (Janus Debugger only)|Firefox]]  
<span class="f_SimpleListText">[[configure_test_browser.html#firefox|Firefox]] </span>
: [[Configure web browser (Janus Debugger only)|Lynx]]
 
: [[Configure web browser (Janus Debugger only)|Opera]]  
<span class="f_SimpleListText">[[configure_test_browser.html#lynx|Lynx]] </span>
 
<span class="f_SimpleListText">[[configure_test_browser.html#opera|Opera]] </span>


<span class="f_Para">You need the Janus Proxy port number you determined earlier in the [[Perform preliminary tasks|preliminary tasks]] section. The default port is 8081, but you can change this by [[Customize debuggerConfig file|editing]] the </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_Para"> file. </span>
<span class="f_Para">You need the Janus Proxy port number you determined earlier in the [[Perform preliminary tasks|preliminary tasks]] section. The default port is 8081, but you can change this by [[Customize debuggerConfig file|editing]] the </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_Para"> file. </span>
Line 16: Line 13:
* <span class="f_ListBul1">The Debugger Client must be running in order to operate that browser. </span>
* <span class="f_ListBul1">The Debugger Client must be running in order to operate that browser. </span>


<span class="f_ListContinue">You will need to turn off the proxy in order to use the browser without the Debugger Client. Automatic toggling of the proxy definition is a Client option [[configure_test_browser.html#auto_maint|available]] for the Chrome and Internet Explorer browsers (only). Otherwise, it may be more convenient to point one browser at the Debugger Client proxy and use a different browser for your other Internet access. </span>
<span class="f_ListContinue">You will need to turn off the proxy in order to use the browser without the Debugger Client. Automatic toggling of the proxy definition is a Client option [[Configure web browser (Janus Debugger only)#auto_maint|available]] for the Chrome and Internet Explorer browsers (only). Otherwise, it may be more convenient to point one browser at the Debugger Client proxy and use a different browser for your other Internet access. </span>


* <span id="debug_and_surf" class="hmanchor"></span><span class="f_ListBul1">While you are debugging, </span><span class="f_ListContinue">you can use a second tab in your browser to access the Internet while another tab is occupied with User Language debugging. </span><span class="f_EmphItal">Secured (HTTPS) connections are </span>'''not''' ''allowed''.<span class="f_ListContinue"> The occupied tab, the tab that invoked the Debugger, continues to remain unavailable for the duration of each debugging session. </span>
* <span id="debug_and_surf" class="hmanchor"></span><span class="f_ListBul1">While you are debugging, </span><span class="f_ListContinue">you can use a second tab in your browser to access the Internet while another tab is occupied with User Language debugging. </span><span class="term">Secured (HTTPS) connections are </span>'''not''' ''allowed''.<span class="f_ListContinue"> The occupied tab, the tab that invoked the Debugger, continues to remain unavailable for the duration of each debugging session. </span>


'''Note:'''<span class="f_Notes"> If it is not possible or not desirable to change the proxy settings on your web browser, an [[debug_webthreads_siriusdeb.html|alternative way to debug web threads]] is to invoke the Debugger from a command you insert in procedures you run on Janus Web threads. </span>
'''Note:'''<span class="f_Notes"> If it is not possible or not desirable to change the proxy settings on your web browser, an [[debug_webthreads_siriusdeb.html|alternative way to debug web threads]] is to invoke the Debugger from a command you insert in procedures you run on Janus Web threads. </span>
Line 41: Line 38:
* <span class="f_ListNumNote1">Use these instructions for the Client GUI or commands to use to set up Chrome or IE. </span>
* <span class="f_ListNumNote1">Use these instructions for the Client GUI or commands to use to set up Chrome or IE. </span>


* <span class="f_ListNumNote1">Do </span><span class="f_EmphItal">not</span><span class="f_ListNumNote1"> manually modify the </span><span class="f_GUIlabel">Internet Properties</span><span class="f_ListNumNote1"> dialog box invoked from the browser except to [[configure_test_browser.html#bypass_proxy_server|specify proxy server bypass addresses]]. </span>
* <span class="f_ListNumNote1">Do </span><span class="term">not</span><span class="f_ListNumNote1"> manually modify the </span><span class="f_GUIlabel">Internet Properties</span><span class="f_ListNumNote1"> dialog box invoked from the browser except to [[Configure web browser (Janus Debugger only)#Handling addresses specified to bypass the proxy server|specify proxy server bypass addresses]]. </span>


<span class="f_Para">For more information about the </span><span class="f_GUIlabel">Internet Properties</span><span class="f_Para"> dialog box, see [[configure_test_browser.html#navigate_internetprops|Navigating to and within the Internet Properties dialog box]]. </span>
<span class="f_Para">For more information about the </span><span class="f_GUIlabel">Internet Properties</span><span class="f_Para"> dialog box, see [[Configure web browser (Janus Debugger only)#Navigating to and within the Internet Properties dialog box|Navigating to and within the Internet Properties dialog box]]. </span>


<span id="automatically-setting-and-removing-the-proxy-definition"></span>
<span id="automatically-setting-and-removing-the-proxy-definition"></span>
=== <span class="f_Heading3">Automatically setting and removing the proxy definition <span id="auto_maint" class="hmanchor"></span></span> ===
=== Automatically setting and removing the proxy definition ===


<span class="f_Para">To invoke the proxy service automatically without having to manually define it each time (Chrome and Internet Explorer only; f</span><span class="f_ListContinue">or other browsers, you must maintain proxy settings manually</span><span class="f_Para">): </span>
<span class="f_Para">To invoke the proxy service automatically without having to manually define it each time (Chrome and Internet Explorer only; f</span><span class="f_ListContinue">or other browsers, you must maintain proxy settings manually</span><span class="f_Para">): </span>


1.</span><span class="f_ListNum1">Select </span><span class="f_GUIlabel">Preferences</span><span class="f_ListNum1"> from the Debugger Client </span><span class="f_GUIlabel">File</span><span class="f_ListNum1"> menu to display the </span><span class="f_GUIlabel">Preferences</span><span class="f_ListNum1"> dialog box. </span>
1. <span class="f_ListNum1">Select </span><span class="f_GUIlabel">Preferences</span><span class="f_ListNum1"> from the Debugger Client </span><span class="f_GUIlabel">File</span><span class="f_ListNum1"> menu to display the </span><span class="f_GUIlabel">Preferences</span><span class="f_ListNum1"> dialog box. </span>


2.</span><span class="f_ListNum1">In the </span><span class="f_GUIlabel">IE Options</span><span class="f_ListNum1"> area, select the </span><span class="f_GUIlabel">proxy</span><span class="f_ListNum1"> option of </span><span class="f_GUIlabel">IE Mode.</span><span class="f_ListNum1"> </span>
2. <span class="f_ListNum1">In the </span><span class="f_GUIlabel">IE Options</span><span class="f_ListNum1"> area, select the </span><span class="f_GUIlabel">proxy</span><span class="f_ListNum1"> option of </span><span class="f_GUIlabel">IE Mode.</span><span class="f_ListNum1"> </span>


<span class="f_ListContinue">The initial </span><span class="f_GUIlabel">IE Mode</span><span class="f_ListContinue"> setting is </span><span class="f_GUIlabel">none</span><span class="f_ListContinue"> (browser settings are not maintained). </span>
<span class="f_ListContinue">The initial </span><span class="f_GUIlabel">IE Mode</span><span class="f_ListContinue"> setting is </span><span class="f_GUIlabel">none</span><span class="f_ListContinue"> (browser settings are not maintained). </span>
Line 58: Line 55:
[[File:preferences23b_zoom50.gif|501x339px|preferences23b]]<span class="f_ListContinue"> </span>
[[File:preferences23b_zoom50.gif|501x339px|preferences23b]]<span class="f_ListContinue"> </span>


2.</span><span class="f_ListNum1">Click the </span><span class="f_GUIlabel">Done</span><span class="f_ListNum1"> button. </span>
2. <span class="f_ListNum1">Click the </span><span class="f_GUIlabel">Done</span><span class="f_ListNum1"> button. </span>


<span class="f_ListContinue">Now, whenever</span><span class="f_NoteContinue"> you start the Client, the Internet Explorer proxy settings are modified automatically, for all running </span><span class="f_ListContinue">browser instances. </span>
<span class="f_ListContinue">Now, whenever</span><span class="f_NoteContinue"> you start the Client, the Internet Explorer proxy settings are modified automatically, for all running </span><span class="f_ListContinue">browser instances. </span>
Line 64: Line 61:
<span class="f_ListContinue">The proxy maintenance feature remains on until you clear the checkbox (it persists between runs of the Client). When you shut down the Client or turn this feature off, the proxy modifications are removed, again for all instances of IE. </span>
<span class="f_ListContinue">The proxy maintenance feature remains on until you clear the checkbox (it persists between runs of the Client). When you shut down the Client or turn this feature off, the proxy modifications are removed, again for all instances of IE. </span>


<span class="f_ListContinue">Only the following </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box settings (see [[configure_test_browser.html#navigate_internetprops|Navigating to and within the Internet Properties dialog box]]) are modified, and then restored: </span>
<span class="f_ListContinue">Only the following </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box settings (see [[Configure web browser (Janus Debugger only)#Navigating to and within the Internet Properties dialog box|Navigating to and within the Internet Properties dialog box]]) are modified, and then restored: </span>


* <span class="f_GUIlabel">Use automatic configuration script</span><span class="f_Para"> (if specified) and </span><span class="f_GUIlabel">Address</span><span class="f_Para"> values.</span><span class="f_ListBul2"> </span>
* <span class="f_GUIlabel">Use automatic configuration script</span><span class="f_Para"> (if specified) and </span><span class="f_GUIlabel">Address</span><span class="f_Para"> values.</span><span class="f_ListBul2"> </span>
Line 75: Line 72:


<span id="handling-addresses-specified-to-bypass-the-proxy-server"></span>
<span id="handling-addresses-specified-to-bypass-the-proxy-server"></span>
=== <span class="f_Heading3">Handling addresses specified to bypass the proxy server<span id="bypass_proxy_server" class="hmanchor"></span></span> ===
=== Handling addresses specified to bypass the proxy server ===


<span class="f_ListNote">It is an option of the automatic proxy maintenance to clear and save </span><span class="f_EmphItal">at Client opening</span><span class="f_ListNote"> any settings in the &quot;Do not use proxy server for addresses beginning with:&quot; box ([[configure_test_browser.html#proxy_bypass|accessed this way]]</span><span class="f_Para">). The settings for these exceptions are then restored when the Debugger Client is closed (or when the feature is disabled). </span>
<span class="f_ListNote">It is an option of the automatic proxy maintenance to clear and save </span><span class="term">at Client opening</span><span class="f_ListNote"> any settings in the &quot;Do not use proxy server for addresses beginning with:&quot; box ([[Configure web browser (Janus Debugger only)#proxy_bypass|accessed this way]]</span><span class="f_Para">). The settings for these exceptions are then restored when the Debugger Client is closed (or when the feature is disabled). </span>


<span class="f_Para">To enable this feature, you must select </span><span class="f_EmphItal">both</span><span class="f_ListContinue"> </span><span class="f_ListNum1">the </span><span class="f_GUIlabel">IE Mode </span><span class="f_Para">option </span><span class="f_GUIlabel">proxy </span><span class="f_EmphItal">and</span><span class="f_Para"> the </span><span class="f_GUIlabel">Clear IE proxy override</span><span class="f_ListNum1"> </span><span class="f_Para">checkbox</span><span class="f_ListNum1"> </span><span class="f_Para">in the Debugger Client's </span><span class="f_GUIlabel">Preferences</span><span class="f_Para"> dialog box. The feature is off by default. </span>
<span class="f_Para">To enable this feature, you must select </span><span class="term">both</span><span class="f_ListContinue"> </span><span class="f_ListNum1">the </span><span class="f_GUIlabel">IE Mode </span><span class="f_Para">option </span><span class="f_GUIlabel">proxy </span><span class="term">and</span><span class="f_Para"> the </span><span class="f_GUIlabel">Clear IE proxy override</span><span class="f_ListNum1"> </span><span class="f_Para">checkbox</span><span class="f_ListNum1"> </span><span class="f_Para">in the Debugger Client's </span><span class="f_GUIlabel">Preferences</span><span class="f_Para"> dialog box. The feature is off by default. </span>


<span id="use_existing_proxy" class="hmanchor"></span><span class="f_EmphRed">Note:</span><span class="f_Notes"> If you do enable this feature, then exception URLs you had specified in the </span><span class="f_ListContinue">[[configure_test_browser.html#navigate_internetprops|Internet Properties]]</span><span class="f_Notes"> &quot;Do not use proxy server for addresses beginning with:&quot; box will now be routed to and passed through the Debugger when the Client is running. If the feature is not enabled (</span><span class="f_GUIlabel">Clear IE proxy override</span><span class="f_Notes"> is not selected), the operating system handles these exception URLs and the Debugger never sees them. </span>
<span id="use_existing_proxy" class="hmanchor"></span><span class="f_EmphRed">Note:</span><span class="f_Notes"> If you do enable this feature, then exception URLs you had specified in the </span><span class="f_ListContinue">[[Configure web browser (Janus Debugger only)#Navigating to and within the Internet Properties dialog box|Internet Properties]]</span><span class="f_Notes"> &quot;Do not use proxy server for addresses beginning with:&quot; box will now be routed to and passed through the Debugger when the Client is running. If the feature is not enabled (</span><span class="f_GUIlabel">Clear IE proxy override</span><span class="f_Notes"> is not selected), the operating system handles these exception URLs and the Debugger never sees them. </span>


<span class="f_NoteContinue">In the not very likely event that you want both to enable this feature and to have the exception URLs processed by your original proxy server, you can select the </span><span class="f_GUIlabel">Use existing IE proxy for URLs not to be debugged</span><span class="f_ListNote"> checkbox in the </span><span class="f_GUIlabel">Preferences</span><span class="f_NoteContinue"> dialog box (</span><span class="f_EmphItal">in addition to</span><span class="f_NoteContinue"> the</span><span class="f_ListNum1"> </span><span class="f_GUIlabel">IE Mode </span><span class="f_NoteContinue">option </span><span class="f_GUIlabel">proxy </span><span class="f_EmphItal">and</span><span class="f_ListNum1"> the </span><span class="f_GUIlabel">Clear IE proxy override</span><span class="f_ListNum1"> checkbox)</span><span class="f_NoteContinue">. </span>
<span class="f_NoteContinue">In the not very likely event that you want both to enable this feature and to have the exception URLs processed by your original proxy server, you can select the </span><span class="f_GUIlabel">Use existing IE proxy for URLs not to be debugged</span><span class="f_ListNote"> checkbox in the </span><span class="f_GUIlabel">Preferences</span><span class="f_NoteContinue"> dialog box (</span><span class="term">in addition to</span><span class="f_NoteContinue"> the</span><span class="f_ListNum1"> </span><span class="f_GUIlabel">IE Mode </span><span class="f_NoteContinue">option </span><span class="f_GUIlabel">proxy </span><span class="term">and</span><span class="f_ListNum1"> the </span><span class="f_GUIlabel">Clear IE proxy override</span><span class="f_ListNum1"> checkbox)</span><span class="f_NoteContinue">. </span>


<span class="f_NoteContinue">In this case, the Debugger will process the exception URLs and pass them to the original proxy server. In fact, this option is designed primarily for troubleshooting purposes, as the Debugger Client </span><span class="f_GUIlabel">Audit Trail</span><span class="f_NoteContinue"> page will then contain information about the disposition of these URLs. </span>
<span class="f_NoteContinue">In this case, the Debugger will process the exception URLs and pass them to the original proxy server. In fact, this option is designed primarily for troubleshooting purposes, as the Debugger Client </span><span class="f_GUIlabel">Audit Trail</span><span class="f_NoteContinue"> page will then contain information about the disposition of these URLs. </span>


<span id="using-the-client-as-proxy-exclusively-for-designated-addresses"></span>
<span id="using-the-client-as-proxy-exclusively-for-designated-addresses"></span>
=== <span class="f_Heading3">Using the Client as proxy exclusively for designated addresses <span id="pacfile" class="hmanchor"></span></span> ===
=== Using the Client as proxy exclusively for designated addresses ===


<span class="f_ListBul1">You can use the Debugger Client as a proxy server </span><span class="f_EmphItal">only</span><span class="f_ListBul1"> for requests for the hosts (Onlines) [[customize_debugger_cfg_file.html#hostserverlist|specified in the Debugger configuration file]], </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_Para">. The browser is directed to do this host filtering by a script you create (by Client command or UI checkbox). Once this feature is in effect, the Client will act as a proxy server for requests for hosts specified in the script but for no other browser requests. </span>
<span class="f_ListBul1">You can use the Debugger Client as a proxy server </span><span class="term">only</span><span class="f_ListBul1"> for requests for the hosts (Onlines) [[customize_debugger_cfg_file.html#hostserverlist|specified in the Debugger configuration file]], </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_Para">. The browser is directed to do this host filtering by a script you create (by Client command or UI checkbox). Once this feature is in effect, the Client will act as a proxy server for requests for hosts specified in the script but for no other browser requests. </span>


<span class="f_Para">The JavaScript script (</span><span class="f_Monospace">debuggerInternalPac.js</span><span class="f_Para">) is called a Proxy Auto Config (PAC) file, and it is created by default in the Client [[change_location_client_work.html|work-file folder]]. If no such work folder is configured, the Client installation folder is used. </span>
<span class="f_Para">The JavaScript script (</span><span class="f_Monospace">debuggerInternalPac.js</span><span class="f_Para">) is called a Proxy Auto Config (PAC) file, and it is created by default in the Client [[Changing the location of Client work files|work-file folder]]. If no such work folder is configured, the Client installation folder is used. </span>


<span class="f_Para">The  Client will automatically:</span>
<span class="f_Para">The  Client will automatically:</span>
Line 98: Line 95:
* <span class="f_ListBul1">Create the PAC script at Client startup. </span>
* <span class="f_ListBul1">Create the PAC script at Client startup. </span>


* <span class="f_ListBul1">Specify the script location </span><span class="f_Para">in the </span><span class="f_GUIlabel">Use automatic configuration script </span><span class="f_Para">&gt; </span><span class="f_GUIlabel">Address</span><span class="f_Para"> value in the </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box</span><span class="f_Para"> </span><span class="f_ListContinue">(see [[configure_test_browser.html#navigate_internetprops|Navigating to and within the Internet Properties dialog box]])</span><span class="f_GUIlabel">.</span><span class="f_ListBul1"> </span>
* <span class="f_ListBul1">Specify the script location </span><span class="f_Para">in the </span><span class="f_GUIlabel">Use automatic configuration script </span><span class="f_Para">&gt; </span><span class="f_GUIlabel">Address</span><span class="f_Para"> value in the </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box</span><span class="f_Para"> </span><span class="f_ListContinue">(see [[Configure web browser (Janus Debugger only)#navigate_internetprops|Navigating to and within the Internet Properties dialog box]])</span><span class="f_GUIlabel">.</span><span class="f_ListBul1"> </span>


* <span class="f_ListBul1">Run the script each time the browser invokes a URL. </span>
* <span class="f_ListBul1">Run the script each time the browser invokes a URL. </span>
Line 104: Line 101:
* <span class="f_ListBul1">Remove the script location specification at Client shutdown. </span>
* <span class="f_ListBul1">Remove the script location specification at Client shutdown. </span>


<span class="f_Para">By default, the Client uses a file mode URL format (</span><span class="f_Monospace">file://</span><span class="f_Para">) to locate the PAC file. The Client can also use an HTTP mode URL format (</span><span class="f_Monospace">http://</span><span class="f_Para">), [[configure_test_browser.html#setup_http_server|storing the file on a web server.]] You select file or HTTP mode from the Client GUI or by Client command, as described below. </span>
<span class="f_Para">By default, the Client uses a file mode URL format (</span><span class="f_Monospace">file://</span><span class="f_Para">) to locate the PAC file. The Client can also use an HTTP mode URL format (</span><span class="f_Monospace">http://</span><span class="f_Para">), [[Configure web browser (Janus Debugger only)#setup_http_server|storing the file on a web server.]] You select file or HTTP mode from the Client GUI or by Client command, as described below. </span>


<span class="f_EmphRed">Note:</span><span class="f_Notes"> Caution is recommended when working with PAC files. Errors are not well reported and have the potential to prevent the browser from operating. Be very careful if you edit or create your own PAC files.  Here is a good reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file</span>
'''Note:'''<span class="f_Notes"> Caution is recommended when working with PAC files. Errors are not well reported and have the potential to prevent the browser from operating. Be very careful if you edit or create your own PAC files.  Here is a good reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file</span>


<span id="client-steps-to-invoke-the-automatic-creation-and-maintenance-of-a-pac-file"></span>
<span id="client-steps-to-invoke-the-automatic-creation-and-maintenance-of-a-pac-file"></span>
==== <span class="f_Heading4">Client steps to invoke the automatic creation and maintenance of a PAC file</span><span class="f_Heading4"> </span> ====
==== Client steps to invoke the automatic creation and maintenance of a PAC file ====


* <span class="f_EmphItal">From the Client GUI:</span><span class="f_ListBul1"> </span>
* <span class="term">From the Client GUI:</span><span class="f_ListBul1"> </span>


1.</span><span class="f_ListNum2">Select </span><span class="f_GUIlabel">Preferences</span><span class="f_ListNum2"> from the </span><span class="f_GUIlabel">File</span><span class="f_ListNum2"> menu, and locate the </span><span class="f_GUIlabel">IE Options</span><span class="f_ListNum2"> area. </span>
1. <span class="f_ListNum2">Select </span><span class="f_GUIlabel">Preferences</span><span class="f_ListNum2"> from the </span><span class="f_GUIlabel">File</span><span class="f_ListNum2"> menu, and locate the </span><span class="f_GUIlabel">IE Options</span><span class="f_ListNum2"> area. </span>


2.</span><span class="f_ListNum2">In the </span><span class="f_GUIlabel">IE Mode</span><span class="f_ListNum2"> box, select either </span><span class="f_GUIlabel">newPac</span><span class="f_ListNum2"> or </span><span class="f_GUIlabel">mergedPac</span><span class="f_ListNum2">: </span>
2. <span class="f_ListNum2">In the </span><span class="f_GUIlabel">IE Mode</span><span class="f_ListNum2"> box, select either </span><span class="f_GUIlabel">newPac</span><span class="f_ListNum2"> or </span><span class="f_GUIlabel">mergedPac</span><span class="f_ListNum2">: </span>


* <span class="f_GUIlabel">newPac</span><span class="f_ListBul3"> generates a PAC file from </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListBul3"> settings and it modifies the [[configure_test_browser.html#navigate_internetprops|Internet Properties dialog box]] settings to point to the file. Any existing designated PAC file is ignored. </span>
* <span class="f_GUIlabel">newPac</span><span class="f_ListBul3"> generates a PAC file from </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListBul3"> settings and it modifies the [[Configure web browser (Janus Debugger only)#Navigating to and within the Internet Properties dialog box|Internet Properties dialog box]] settings to point to the file. Any existing designated PAC file is ignored. </span>


* <span class="f_GUIlabel">mergedPac</span><span class="f_ListBul3"> generates a PAC file like </span><span class="f_GUIlabel">newPac</span><span class="f_ListBul3"> does, but it merges the freshly generated file with any existing PAC file. </span>
* <span class="f_GUIlabel">mergedPac</span><span class="f_ListBul3"> generates a PAC file like </span><span class="f_GUIlabel">newPac</span><span class="f_ListBul3"> does, but it merges the freshly generated file with any existing PAC file. </span>


<span class="f_ListContinue2">Both </span><span class="f_GUIlabel">newPac</span><span class="f_ListContinue2"> and </span><span class="f_GUIlabel">mergedPac</span><span class="f_ListContinue2"> enable the </span><span class="f_GUIlabel">PAC Options</span><span class="f_ListContinue2"> button if the following are true (as described in </span><span class="f_ListBul3">the next section,</span><span class="f_ListContinue2"> </span><span class="f_ListBul3">[[configure_test_browser.html#setup_http_server|Setting up an HTTP server for PAC files]]):</span><span class="f_ListContinue2"> </span>
<span class="f_ListContinue2">Both </span><span class="f_GUIlabel">newPac</span><span class="f_ListContinue2"> and </span><span class="f_GUIlabel">mergedPac</span><span class="f_ListContinue2"> enable the </span><span class="f_GUIlabel">PAC Options</span><span class="f_ListContinue2"> button if the following are true (as described in </span><span class="f_ListBul3">the next section,</span><span class="f_ListContinue2"> </span><span class="f_ListBul3">[[Configure web browser (Janus Debugger only)#Setting up an HTTP server for PAC files|Setting up an HTTP server for PAC files]]):</span><span class="f_ListContinue2"> </span>


* <span class="f_ListBul3">A supporting web server is defined and running.  </span>
* <span class="f_ListBul3">A supporting web server is defined and running.  </span>
Line 127: Line 124:
* <span class="f_ListBul3">The  HTTP file location is identified in the Debugger configuration file. </span>
* <span class="f_ListBul3">The  HTTP file location is identified in the Debugger configuration file. </span>


3.</span><span class="f_ListNum2">Click the </span><span class="f_GUIlabel">PAC Options</span><span class="f_ListNum2"> button to display the </span><span class="f_GUIlabel">PAC Options</span><span class="f_ListNum2"> dialog: </span>
3. <span class="f_ListNum2">Click the </span><span class="f_GUIlabel">PAC Options</span><span class="f_ListNum2"> button to display the </span><span class="f_GUIlabel">PAC Options</span><span class="f_ListNum2"> dialog: </span>


<span class="f_ListContinue2"> </span>[[File:pacoptions.png|349x102px|PacOptions]]<span class="f_ListContinue2"> </span>
<span class="f_ListContinue2"> </span>[[File:pacoptions.png|349x102px|PacOptions]]<span class="f_ListContinue2"> </span>
Line 133: Line 130:
<span class="f_ListContinue2">Select </span><span class="f_Monospace">file://URL</span><span class="f_ListContinue2"> or </span><span class="f_Monospace">http://URL</span><span class="f_ListContinue2"> to set the delivery mode for the PAC file. A file-mode URL is the default. </span>
<span class="f_ListContinue2">Select </span><span class="f_Monospace">file://URL</span><span class="f_ListContinue2"> or </span><span class="f_Monospace">http://URL</span><span class="f_ListContinue2"> to set the delivery mode for the PAC file. A file-mode URL is the default. </span>


<span class="f_ListContinue2">If http, The Client instantly tests an HTTP PUT and GET of a verification file to and from the designated PAC file </span><span class="f_ListBul3">[[configure_test_browser.html#setup_http_server|HTTP server]]</span><span class="f_ListContinue2">. The Client then displays a </span><span class="f_ListNum1">[[glance_at_status_area.html|Status bar]]</span><span class="f_ListContinue2"> message like the following which reports the result of the test: </span>
<span class="f_ListContinue2">If http, The Client instantly tests an HTTP PUT and GET of a verification file to and from the designated PAC file </span><span class="f_ListBul3">[[Configure web browser (Janus Debugger only)#Setting up an HTTP server for PAC files|HTTP server]]</span><span class="f_ListContinue2">. The Client then displays a </span><span class="f_ListNum1">[[Status bar|Status bar]]</span><span class="f_ListContinue2"> message like the following which reports the result of the test: </span>


<span class="f_CodeExList2">HTTP PAC files can be used. </span>
<span class="f_CodeExList2">HTTP PAC files can be used. </span>


4.</span><span class="f_ListNum2">Click the </span><span class="f_GUIlabel">Done</span><span class="f_ListNum2"> button.  </span>
4. <span class="f_ListNum2">Click the </span><span class="f_GUIlabel">Done</span><span class="f_ListNum2"> button.  </span>


* <span class="f_EmphItal">By Client command:</span><span class="f_ListBul1"> </span>
* <span class="term">By Client command:</span><span class="f_ListBul1"> </span>


<span class="f_ListContinue">Issue the </span><span class="f_CodeExList">[[setiemode_cmd.html|setIEMode]]</span><span class="f_ListContinue"> command. </span>
<span class="f_ListContinue">Issue the </span><span class="f_CodeExList">[[setIEMode command|setIEMode]]</span><span class="f_ListContinue"> command. </span>


<span class="f_ListContinue">Use the </span><span class="f_CodeExList">newPac</span><span class="f_ListContinue"> parameter to ignore any existing PAC file, or use the </span><span class="f_CodeExList">mergedPac</span><span class="f_ListContinue"> parameter to merge any existing PAC file with the PAC file freshly generated from the settings in the </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListContinue"> file. </span>
<span class="f_ListContinue">Use the </span><span class="f_CodeExList">newPac</span><span class="f_ListContinue"> parameter to ignore any existing PAC file, or use the </span><span class="f_CodeExList">mergedPac</span><span class="f_ListContinue"> parameter to merge any existing PAC file with the PAC file freshly generated from the settings in the </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListContinue"> file. </span>


<span class="f_ListContinue2">If Build 63 or higher, the </span><span class="f_Monospace">http</span><span class="f_ListContinue2"> parameter gets the PAC file via HTTP. The default </span><span class="f_Monospace">file</span><span class="f_ListContinue2"> parameter gets the PAC file from a folder on the local workstation. If you specify </span><span class="f_Monospace">http</span><span class="f_ListContinue2">, you must prepare a web server to service the PAC file; see the next section</span><span class="f_ListBul3">,</span><span class="f_ListContinue2"> </span><span class="f_ListBul3">[[configure_test_browser.html#setup_http_server|Setting up an HTTP server for PAC files.]]</span><span class="f_ListContinue2"> </span>
<span class="f_ListContinue2">If Build 63 or higher, the </span><span class="f_Monospace">http</span><span class="f_ListContinue2"> parameter gets the PAC file via HTTP. The default </span><span class="f_Monospace">file</span><span class="f_ListContinue2"> parameter gets the PAC file from a folder on the local workstation. If you specify </span><span class="f_Monospace">http</span><span class="f_ListContinue2">, you must prepare a web server to service the PAC file; see the next section</span><span class="f_ListBul3">,</span><span class="f_ListContinue2"> </span><span class="f_ListBul3">[[Configure web browser (Janus Debugger only)#setup_http_server|Setting up an HTTP server for PAC files.]]</span><span class="f_ListContinue2"> </span>


<span class="f_ListContinue">Whether you use the GUI or a Client command, no restart of the browser or the Client is necessary. The browser</span><span class="f_Para"> will run the script for each URL that is invoked from the browser. </span>
<span class="f_ListContinue">Whether you use the GUI or a Client command, no restart of the browser or the Client is necessary. The browser</span><span class="f_Para"> will run the script for each URL that is invoked from the browser. </span>


<span id="setting-up-an-http-server-for-pac-files"></span>
<span id="setting-up-an-http-server-for-pac-files"></span>
=== <span class="f_Heading3">Setting up an HTTP server for PAC files <span id="setup_http_server" class="hmanchor"></span> </span> ===
=== Setting up an HTTP server for PAC files ===


<span class="f_Para">If you will be using HTTP to access a PAC file, you must provide an HTTP (Web) server to hold the PAC files, and you must specify that server's location and port in the Client's configuration file.  </span>
<span class="f_Para">If you will be using HTTP to access a PAC file, you must provide an HTTP (Web) server to hold the PAC files, and you must specify that server's location and port in the Client's configuration file.  </span>


1.</span><span class="f_ListNum1">Provide a web server. </span>
1. <span class="f_ListNum1">Provide a web server. </span>


<span class="f_ListContinue">You can use any web server that supports HTTP PUT and GET. This section provides an example of how to set up a Janus Web Server to handle HTTP-based PAC files. This example is also supplied in a file in the Client's installation folder. </span>
<span class="f_ListContinue">You can use any web server that supports HTTP PUT and GET. This section provides an example of how to set up a Janus Web Server to handle HTTP-based PAC files. This example is also supplied in a file in the Client's installation folder. </span>


<span class="f_EmphRed">Note:</span><span class="f_Notes"> </span><span class="f_ListNote">Note that the PAC files are temporary: when the Client starts, a new PAC is generated and uploaded. This prevents the problem of HTTP PAC files being out of date, since they are workstation-based configuration files which can change at any time. </span>
'''Note:''' Note that the PAC files are temporary: when the Client starts, a new PAC is generated and uploaded. This prevents the problem of HTTP PAC files being out of date, since they are workstation-based configuration files which can change at any time.
 
: The following SOUL program takes one command line argument, a TCP/IP port number, and it creates a Janus Web server for uploading and serving PAC files:
<span class="f_ListContinue">The following SOUL program takes one command line argument, a TCP/IP port number, and it creates a Janus Web server for uploading and serving PAC files: </span>
 
<span class="f_ListContinue"> </span>


<p class="syntax"><span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">begin</span><br />
<p class="syntax"><span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">begin</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   variables are undefined</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   variables are undefined</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   local subroutine closeFile(%iFile is string len 8 input) </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   local subroutine closeFile(%iFile is string len 8 input) </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Close the file whose name is passed. </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Close the file whose name is passed. </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %rc is float</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %rc is float</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 6, %rc)</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 6, %rc)</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $close('FILE ' with %iFile)</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $close('FILE ' with %iFile)</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 0, %rc)</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 0, %rc)</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end subroutine </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end subroutine </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   local function openFile(%iFile is string len 8 input) is float </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   local function openFile(%iFile is string len 8 input) is float </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      * Open the file whose name is passed and return 0 for success or </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      * Open the file whose name is passed and return 0 for success or </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      * non-zero for failure. </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      * non-zero for failure. </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %rc is float</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %rc is float</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 6, %rc)</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 6, %rc)</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      openc file %iFile</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      openc file %iFile</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 0, %rc)</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      $resetn('MSGCTL', 0, %rc)</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      return $status</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      return $status</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end function     </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end function     </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Get and validate the command line argument: port number</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Get and validate the command line argument: port number</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %args is object stringlist</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %args is object stringlist</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %args = %(system):arguments:unspace:parseLines(', ')</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %args = %(system):arguments:unspace:parseLines(', ')</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %portNumber is float  </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %portNumber is float  </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   if (%args:count eq 0) then</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   if (%args:count eq 0) then</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       print 'No port number specified'</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       print 'No port number specified'</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       stop</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       stop</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   elseif (%args:count &gt; 1) then </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   elseif (%args:count &gt; 1) then </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       print 'Too many arguments' </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       print 'Too many arguments' </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       stop</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       stop</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   elseif (%args(1) is not like '/2-5(#)') then  </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   elseif (%args(1) is not like '/2-5(#)') then  </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       print 'Invalid port number'</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       print 'Invalid port number'</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       stop</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">       stop</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   else</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   else</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %portNumber = %args(1)</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %portNumber = %args(1)</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end if</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end if</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %pacRepo is string len 8 initial('JDPACREP')</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %pacRepo is string len 8 initial('JDPACREP')</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %worker is object daemon auto new</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %worker is object daemon auto new</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %workForDaemon is object Stringlist auto new</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %workForDaemon is object Stringlist auto new</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * See if memory file for PAC repository is there, if not create it</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * See if memory file for PAC repository is there, if not create it</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   if (%(local):openFile(%pacRepo) eq 0) then</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   if (%(local):openFile(%pacRepo) eq 0) then</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      printText Memory file {%pacRepo} already present</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      printText Memory file {%pacRepo} already present</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %(local):closeFile(%pacRepo)</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %(local):closeFile(%pacRepo)</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   else</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   else</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      printText creating memory file {%pacRepo} </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      printText creating memory file {%pacRepo} </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      text to %workForDaemon = new</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      text to %workForDaemon = new</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         ALLOCATE {%pacRepo} WITH MEMORY PAGES=300</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         ALLOCATE {%pacRepo} WITH MEMORY PAGES=300</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         CREATE {%pacRepo}</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         CREATE {%pacRepo}</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         PARAMETER BSIZE=1, DSIZE=250</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         PARAMETER BSIZE=1, DSIZE=250</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         END</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         END</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         OPENC {%pacRepo}</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         OPENC {%pacRepo}</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         IN {%pacRepo} INITIALIZE</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         IN {%pacRepo} INITIALIZE</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         CLOSE {%pacRepo}</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">         CLOSE {%pacRepo}</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      end text</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      end text</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %worker:run(%workForDaemon):print</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">      %worker:run(%workForDaemon):print</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end if</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end if</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Set up a simple Janus web server with web rules for loading</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Set up a simple Janus web server with web rules for loading</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * serving and listing PAC files generated by the debugger client.</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * serving and listing PAC files generated by the debugger client.</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %portName is string len 8 initial('JDPACSRV')</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %portName is string len 8 initial('JDPACSRV')</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Get rid of any earlier one, so this script can be rerun as needed  </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Get rid of any earlier one, so this script can be rerun as needed  </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   text to %workForDaemon = new</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   text to %workForDaemon = new</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS DRAIN {%portName}</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS DRAIN {%portName}</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS DELETE {%portName}</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS DELETE {%portName}</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end text</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end text</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %worker:run(%workForDaemon) </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %worker:run(%workForDaemon) </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;"> </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Create the server and its rules</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   * Create the server and its rules</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   text to %workForDaemon = new</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   text to %workForDaemon = new</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Create a web server</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Create a web server</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS DEFINE {%portName} {%portNumber} WEBSERV 20 TRACE 7  </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS DEFINE {%portName} {%portNumber} WEBSERV 20 TRACE 7  </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Allow PAC file upload via HTTP PUT of URL of format /pacman/xxx.js</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Allow PAC file upload via HTTP PUT of URL of format /pacman/xxx.js</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS WEB {%portName} -</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS WEB {%portName} -</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">        ON PUT /PACMAN/*.JS OPEN FILE {%pacRepo} RECV *.JS BASE64</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">        ON PUT /PACMAN/*.JS OPEN FILE {%pacRepo} RECV *.JS BASE64</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS WEB {%portName} ALLOW PUT /PACMAN/*.JS</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS WEB {%portName} ALLOW PUT /PACMAN/*.JS</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Provide HTTP GET access for URLs of format /pacman/xxx.js </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Provide HTTP GET access for URLs of format /pacman/xxx.js </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS WEB {%portName} ON GET /PACMAN/*.JS OPEN FILE {%pacRepo} -</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS WEB {%portName} ON GET /PACMAN/*.JS OPEN FILE {%pacRepo} -</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">        SEND *.JS BINARY EXPIRE +0  </span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">        SEND *.JS BINARY EXPIRE +0  </span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Start the web server</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     * Start the web server</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS START {%portName}</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">     JANUS START {%portName}</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end text</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   end text</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %worker:run(%workForDaemon):print</span><br />
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">   %worker:run(%workForDaemon):print</span>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">end</span><span style="font-family: 'Courier New',Courier,monospace;"> </span></p>
<span style="font-size: 13px; font-family: 'Courier New',Courier,monospace;">end</span><span style="font-family: 'Courier New',Courier,monospace;"> </span></p>


<span class="f_ListContinue">Since the PAC files are temporary, they are stored in an in-memory file (not persistent between runs) which does not need any disk files, DD cards, etc. The PAC files are stored as Model 204 procedures. The name of a PAC file procedure created by the Client (see the following sections) is based on the IP number of the Client workstation to avoid conflicts. </span>
<span class="f_ListContinue">Since the PAC files are temporary, they are stored in an in-memory file (not persistent between runs) which does not need any disk files, DD cards, etc. The PAC files are stored as Model 204 procedures. The name of a PAC file procedure created by the Client (see the following sections) is based on the IP number of the Client workstation to avoid conflicts. </span>


2.</span><span class="f_ListNum1">Update </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListNum1">. </span>
2. <span class="f_ListNum1">Update </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListNum1">. </span>


<span class="f_ListContinue">You do this by [[Customize debuggerConfig file#PAC file server|including the httpPacURL element]] in the </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListContinue"> file. </span>
<span class="f_ListContinue">You do this by [[Customize debuggerConfig file#PAC file server|including the httpPacURL element]] in the </span><span class="f_Monospace">debuggerConfig.xml</span><span class="f_ListContinue"> file. </span>
Line 258: Line 252:
<span class="f_CodeExListTable">&lt;httpPacURL&gt;http://</span><span class="f_MonoItal">pacServerHost</span><span class="f_CodeExListTable">:</span><span class="f_MonoItal">pacServerPortNum</span><span class="f_CodeExListTable">/pacman&lt;/httpPacURL&gt; </span>
<span class="f_CodeExListTable">&lt;httpPacURL&gt;http://</span><span class="f_MonoItal">pacServerHost</span><span class="f_CodeExListTable">:</span><span class="f_MonoItal">pacServerPortNum</span><span class="f_CodeExListTable">/pacman&lt;/httpPacURL&gt; </span>


3.</span><span class="f_ListNum1">Restart the Client, or just issue the [[retryhttppac_cmd.html|retryHttpPac]] command to test your setup. </span>
3. <span class="f_ListNum1">Restart the Client, or just issue the [[retryhttppac_cmd.html|retryHttpPac]] command to test your setup. </span>


<span class="f_ListContinue">The Client must </span><span class="f_EmphItal">not</span><span class="f_ListContinue"> be in proxy mode if and when you issue the command. </span>
<span class="f_ListContinue">The Client must </span><span class="term">not</span><span class="f_ListContinue"> be in proxy mode if and when you issue the command. </span>


<span class="f_EmphRed">Note:</span><span class="f_Notes"> Only when the HTTP server is defined to accept and serve PAC files, and the Debugger Client configuration is updated to identify it, will the </span><span class="f_GUIlabel">PAC Options</span><span class="f_Notes"> button be enabled in the </span><span class="f_GUIlabel">IE Options</span><span class="f_Notes"> box in the Client's </span><span class="f_GUIlabel">Preferences</span><span class="f_Notes"> dialog box (for the </span><span class="f_GUIlabel">newPac</span><span class="f_Notes"> and </span><span class="f_GUIlabel">mergedPac</span><span class="f_Notes"> options). </span>
<span class="f_EmphRed">Note:</span><span class="f_Notes"> Only when the HTTP server is defined to accept and serve PAC files, and the Debugger Client configuration is updated to identify it, will the </span><span class="f_GUIlabel">PAC Options</span><span class="f_Notes"> button be enabled in the </span><span class="f_GUIlabel">IE Options</span><span class="f_Notes"> box in the Client's </span><span class="f_GUIlabel">Preferences</span><span class="f_Notes"> dialog box (for the </span><span class="f_GUIlabel">newPac</span><span class="f_Notes"> and </span><span class="f_GUIlabel">mergedPac</span><span class="f_Notes"> options). </span>


<span id="navigating-to-and-within-the-internet-properties-dialog-box"></span>
<span id="navigating-to-and-within-the-internet-properties-dialog-box"></span>
=== <span class="f_Heading3">Navigating to and within the Internet Properties dialog box <span id="navigate_internetprops" class="hmanchor"></span></span> ===
=== Navigating to and within the Internet Properties dialog box ===


<span class="f_Para">The following directions are provided primarily for information purposes. They show the controls that the Client modifies automatically for Chrome and IE, as described in the preceding subsections. It is recommended that you not make these modifications manually except for any [[configure_test_browser.html#proxy_bypass|proxy server bypass addresses]]. </span>
<span class="f_Para">The following directions are provided primarily for information purposes. They show the controls that the Client modifies automatically for Chrome and IE, as described in the preceding subsections. It is recommended that you not make these modifications manually except for any [[configure_test_browser.html#proxy_bypass|proxy server bypass addresses]]. </span>


<span class="f_EmphItal">To access the Internet Properties dialog box:</span><span class="f_Para"> </span>
<span class="term">To access the Internet Properties dialog box:</span><span class="f_Para"> </span>


* <span class="f_ListBul1">From Chrome: </span>
* <span class="f_ListBul1">From Chrome: </span>


1.</span><span class="f_ListNum2">At the right end of the bar that contains the Omnibox navigation control, open the customization menu by clicking the three-stacked-lines icon: </span>
1. <span class="f_ListNum2">At the right end of the bar that contains the Omnibox navigation control, open the customization menu by clicking the three-stacked-lines icon: </span>


<span class="f_ListContinue">     </span>[[File:chromeconfigicon2.gif|37x37px|chromeConfigIcon2]]<span class="f_ListContinue2"> </span>
<span class="f_ListContinue">     </span>[[File:chromeconfigicon2.gif|37x37px|chromeConfigIcon2]]<span class="f_ListContinue2"> </span>


2.</span><span class="f_ListNum2">In the menu, select </span><span class="f_GUIlabel">Settings</span><span class="f_ListNum2">. </span>
2. <span class="f_ListNum2">In the menu, select </span><span class="f_GUIlabel">Settings</span><span class="f_ListNum2">. </span>


3.</span><span class="f_ListNum2">At the bottom of the </span><span class="f_GUIlabel">Settings</span><span class="f_ListNum2"> tab, click the </span><span class="f_GUIlabel">Show advanced settings...</span><span class="f_ListNum2"> link. </span>
3. <span class="f_ListNum2">At the bottom of the </span><span class="f_GUIlabel">Settings</span><span class="f_ListNum2"> tab, click the </span><span class="f_GUIlabel">Show advanced settings...</span><span class="f_ListNum2"> link. </span>


4.</span><span class="f_ListNum2">Find the </span><span class="f_GUIlabel">Network</span><span class="f_ListNum2"> section, then click the </span><span class="f_GUIlabel">Change proxy settings...</span><span class="f_ListNum2"> link. </span>
4. <span class="f_ListNum2">Find the </span><span class="f_GUIlabel">Network</span><span class="f_ListNum2"> section, then click the </span><span class="f_GUIlabel">Change proxy settings...</span><span class="f_ListNum2"> link. </span>


<span class="f_ListContinue2">For Windows users, this opens the </span><span class="f_GUIlabel">Internet Properties</span><span class="f_ListContinue2"> (or </span><span class="f_GUIlabel">Internet Options</span><span class="f_ListContinue2">) dialog box. </span>
<span class="f_ListContinue2">For Windows users, this opens the </span><span class="f_GUIlabel">Internet Properties</span><span class="f_ListContinue2"> (or </span><span class="f_GUIlabel">Internet Options</span><span class="f_ListContinue2">) dialog box. </span>
Line 289: Line 283:
1.</span><span class="f_ListNum2">From the </span><span class="f_GUIlabel">Tools</span><span class="f_ListNum2"> menu, select </span><span class="f_GUIlabel">Internet Options.</span><span class="f_ListNum2"> </span>
1.</span><span class="f_ListNum2">From the </span><span class="f_GUIlabel">Tools</span><span class="f_ListNum2"> menu, select </span><span class="f_GUIlabel">Internet Options.</span><span class="f_ListNum2"> </span>


<span class="f_EmphItal">To access the proxy server controls in the Internet Properties dialog box:</span><span class="f_Para"> </span>
<span class="term">To access the proxy server controls in the Internet Properties dialog box:</span><span class="f_Para"> </span>
 
1.</span><span class="f_ListNum1">Select the </span><span class="f_GUIlabel">Connections</span><span class="f_ListNum1"> tab, and click the </span><span class="f_GUIlabel">LAN Settings</span><span class="f_ListNum1"> button. </span>


2.</span><span class="f_ListNum1">In the </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box, l</span><span class="f_ListNum1">ocate the </span><span class="f_GUIlabel">Proxy Server</span><span class="f_ListNum1"> area, then select the &quot;</span>Use a proxy server&quot;<span class="f_ListNum1"> checkbox: </span>
1. <span class="f_ListNum1">Select the </span><span class="f_GUIlabel">Connections</span><span class="f_ListNum1"> tab, and click the </span><span class="f_GUIlabel">LAN Settings</span><span class="f_ListNum1"> button. </span>
2. <span class="f_ListNum1">In the </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box, l</span><span class="f_ListNum1">ocate the </span><span class="f_GUIlabel">Proxy Server</span><span class="f_ListNum1"> area, then select the &quot;</span>Use a proxy server&quot;<span class="f_ListNum1"> checkbox: </span>


a.</span><span class="f_ListNum2">In the </span><span class="f_GUIlabel">Address</span><span class="f_ListNum2"> box, the value the Client sets is: </span><span class="f_Monospace">localhost</span><span class="f_ListNum2">.  </span>
a. <span class="f_ListNum2">In the </span><span class="f_GUIlabel">Address</span><span class="f_ListNum2"> box, the value the Client sets is: </span><span class="f_Monospace">localhost</span><span class="f_ListNum2">.  </span>
b. <span class="f_ListNum2">In the </span><span class="f_GUIlabel">Port</span><span class="f_ListNum2"> box, the Client sets the proxy listening port number discussed in the introduction above. </span>


b.</span><span class="f_ListNum2">In the </span><span class="f_GUIlabel">Port</span><span class="f_ListNum2"> box, the Client sets the proxy listening port number discussed in the introduction above. </span>
<span class="term">To access the proxy server bypass for certain connections:</span><span id="proxy_bypass" class="hmanchor"></span><span class="f_Para">  </span>


<span class="f_EmphItal">To access the proxy server bypass for certain connections:</span><span id="proxy_bypass" class="hmanchor"></span><span class="f_Para">  </span>
1. <span class="f_ListNum1">In the </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box </span><span class="f_GUIlabel">Proxy Server</span><span class="f_ListNum1"> area, click the </span><span class="f_GUIlabel">Advanced</span><span class="f_ListNum1"> button. </span>
2. <span class="f_ListNum1">In the </span><span class="f_GUIlabel">Exceptions</span><span class="f_ListNum1"> area, in the list box labeled &quot;Do not use proxy server for addresses beginning with,&quot; specify the URLs of any locations the Debugger Client should ignore. </span>


1.</span><span class="f_ListNum1">In the </span><span class="f_GUIlabel">Local Area network (LAN) Settings</span><span class="f_ListContinue"> dialog box </span><span class="f_GUIlabel">Proxy Server</span><span class="f_ListNum1"> area, click the </span><span class="f_GUIlabel">Advanced</span><span class="f_ListNum1"> button. </span>
<span class="f_EmphRed">Note:</span><span class="f_Notes"> You can [[Configure web browser (Janus Debugger only)#bypass_proxy_server|set up the Client to automatically save and restore these addresses]]. </span>
 
2.</span><span class="f_ListNum1">In the </span><span class="f_GUIlabel">Exceptions</span><span class="f_ListNum1"> area, in the list box labeled &quot;Do not use proxy server for addresses beginning with,&quot; specify the URLs of any locations the Debugger Client should ignore. </span>
 
<span class="f_EmphRed">Note:</span><span class="f_Notes"> You can [[configure_test_browser.html#bypass_proxy_server|set up the Client to automatically save and restore these addresses]]. </span>
|}
|}


Line 325: Line 316:
<span class="f_Para">To set up the proxy for Firefox browsers: </span>
<span class="f_Para">To set up the proxy for Firefox browsers: </span>


1.</span><span class="f_ListNum1">From the </span><span class="f_GUIlabel">Tools</span><span class="f_ListNum1"> menu, select </span><span class="f_GUIlabel">Options</span><span class="f_ListNum1"> &gt; </span><span class="f_GUIlabel">Advanced</span><span class="f_ListNum1"> &gt; </span><span class="f_GUIlabel">Network</span><span class="f_ListNum1">. </span>
1. <span class="f_ListNum1">From the </span><span class="f_GUIlabel">Tools</span><span class="f_ListNum1"> menu, select </span><span class="f_GUIlabel">Options</span><span class="f_ListNum1"> &gt; </span><span class="f_GUIlabel">Advanced</span><span class="f_ListNum1"> &gt; </span><span class="f_GUIlabel">Network</span><span class="f_ListNum1">. </span>
 
2. <span class="f_ListNum1">In the </span><span class="f_GUIlabel">Connection</span><span class="f_ListNum1"> box, click </span><span class="f_GUIlabel">Settings</span><span class="f_ListNum1">. </span>
2.</span><span class="f_ListNum1">In the </span><span class="f_GUIlabel">Connection</span><span class="f_ListNum1"> box, click </span><span class="f_GUIlabel">Settings</span><span class="f_ListNum1">. </span>
3. <span class="f_ListNum1">In the </span><span class="f_GUIlabel">Connection Settings</span><span class="f_ListNum1"> dialog box, select </span><span class="f_GUIlabel">Manual proxy configuration.</span><span class="f_ListNum1"> </span>
 
a. <span class="f_ListNum2">In the </span><span class="f_GUIlabel">HTTP Proxy </span><span class="f_ListNum1">box, specify</span><span class="f_ListNum2"> </span><span class="f_Monospace">localhost.</span><span class="f_ListNum2"> </span>
3.</span><span class="f_ListNum1">In the </span><span class="f_GUIlabel">Connection Settings</span><span class="f_ListNum1"> dialog box, select </span><span class="f_GUIlabel">Manual proxy configuration.</span><span class="f_ListNum1"> </span>
b. <span class="f_ListNum2">In the adjacent </span><span class="f_GUIlabel">Port</span><span class="f_ListNum2"> box, specify the port number discussed in the introduction above. </span>
 
c. <span class="f_ListNum2">Use the </span><span class="f_GUIlabel">No Proxy for</span><span class="f_ListNum2"> box to specify domain names that the browser will access directly, that is, for which the Debugger proxy will be bypassed. </span>
a.</span><span class="f_ListNum2">In the </span><span class="f_GUIlabel">HTTP Proxy </span><span class="f_ListNum1">box, specify</span><span class="f_ListNum2"> </span><span class="f_Monospace">localhost.</span><span class="f_ListNum2"> </span>
4. <span class="f_ListNum1">Click </span><span class="f_GUIlabel">OK</span><span class="f_ListNum1">. </span>
 
b.</span><span class="f_ListNum2">In the adjacent </span><span class="f_GUIlabel">Port</span><span class="f_ListNum2"> box, specify the port number discussed in the introduction above. </span>
 
c.</span><span class="f_ListNum2">Use the </span><span class="f_GUIlabel">No Proxy for</span><span class="f_ListNum2"> box to specify domain names that the browser will access directly, that is, for which the Debugger proxy will be bypassed. </span>
 
4.</span><span class="f_ListNum1">Click </span><span class="f_GUIlabel">OK</span><span class="f_ListNum1">. </span>


<span class="f_Para">Once defined, the proxy remains in effect whether the Debugger Client is operating or not. </span>
<span class="f_Para">Once defined, the proxy remains in effect whether the Debugger Client is operating or not. </span>
Line 361: Line 346:
<span class="f_Para">Here is a Unix shell script example (running on a PC under Cygwin) that sets this variable and runs Lynx: </span>
<span class="f_Para">Here is a Unix shell script example (running on a PC under Cygwin) that sets this variable and runs Lynx: </span>


<span class="f_CodeExample">#!/bin/bash</span><br />
<span class="f_CodeExample">#!/bin/bash</span>
<span class="f_CodeExample">http_proxy=http://127.0.0.1:8081</span><br />
<span class="f_CodeExample">http_proxy=http://127.0.0.1:8081</span>
<span class="f_CodeExample">export http_proxy</span><br />
<span class="f_CodeExample">export http_proxy</span>
<span class="f_CodeExample">env</span><br />
<span class="f_CodeExample">env</span>
<span class="f_CodeExample">lynx </span>
<span class="f_CodeExample">lynx </span>


Line 397: Line 382:




</div>
[[Category:Debugger Home]]
<span class="f_EndTopic"> </span>
 
 
</div>
 
</div>

Revision as of 03:11, 7 November 2022

Set up your web browser to use the Debugger Client as a proxy server. Information follows for these individual browser types:

Chrome or Internet Explorer
Firefox
Lynx
Opera

You need the Janus Proxy port number you determined earlier in the preliminary tasks section. The default port is 8081, but you can change this by editing the debuggerConfig.xml file.

Once you define a proxy server for a browser:

  • The Debugger Client must be running in order to operate that browser.

You will need to turn off the proxy in order to use the browser without the Debugger Client. Automatic toggling of the proxy definition is a Client option available for the Chrome and Internet Explorer browsers (only). Otherwise, it may be more convenient to point one browser at the Debugger Client proxy and use a different browser for your other Internet access.

  • While you are debugging, you can use a second tab in your browser to access the Internet while another tab is occupied with User Language debugging. Secured (HTTPS) connections are not allowed. The occupied tab, the tab that invoked the Debugger, continues to remain unavailable for the duration of each debugging session.

Note: If it is not possible or not desirable to change the proxy settings on your web browser, an alternative way to debug web threads is to invoke the Debugger from a command you insert in procedures you run on Janus Web threads.

hmtoggle_plus0 Chrome or Internet Explorer (IE)  


The directions that follow describe Debugger Client modifications to the Internet Properties dialog box on the browser workstation, which affects both Chrome and IE Internet connections.

Note: These instructions were originally prepared for early Client versions that had no features built into the Client to control the browser. It is now recommended that you:

  • Use these instructions for the Client GUI or commands to use to set up Chrome or IE.

For more information about the Internet Properties dialog box, see Navigating to and within the Internet Properties dialog box.

Automatically setting and removing the proxy definition

To invoke the proxy service automatically without having to manually define it each time (Chrome and Internet Explorer only; for other browsers, you must maintain proxy settings manually):

1. Select Preferences from the Debugger Client File menu to display the Preferences dialog box.

2. In the IE Options area, select the proxy option of IE Mode.

The initial IE Mode setting is none (browser settings are not maintained).

preferences23b

2. Click the Done button.

Now, whenever you start the Client, the Internet Explorer proxy settings are modified automatically, for all running browser instances.

The proxy maintenance feature remains on until you clear the checkbox (it persists between runs of the Client). When you shut down the Client or turn this feature off, the proxy modifications are removed, again for all instances of IE.

Only the following Local Area network (LAN) Settings dialog box settings (see Navigating to and within the Internet Properties dialog box) are modified, and then restored:

  • Use automatic configuration script (if specified) and Address values.
  • Use a proxy server . . . and its address and port.

The next subsection describes how to also include in the automatic maintenance any exception URLs specified to be bypassed by the proxy server.

The Client will automatically specify and enforce the proxy definition when the Client is started. When the Client is closed, the Client will restore the proxy settings to their state before the Client was started.

Handling addresses specified to bypass the proxy server

It is an option of the automatic proxy maintenance to clear and save at Client opening any settings in the "Do not use proxy server for addresses beginning with:" box (accessed this way). The settings for these exceptions are then restored when the Debugger Client is closed (or when the feature is disabled).

To enable this feature, you must select both the IE Mode option proxy and the Clear IE proxy override checkbox in the Debugger Client's Preferences dialog box. The feature is off by default.

Note: If you do enable this feature, then exception URLs you had specified in the Internet Properties "Do not use proxy server for addresses beginning with:" box will now be routed to and passed through the Debugger when the Client is running. If the feature is not enabled (Clear IE proxy override is not selected), the operating system handles these exception URLs and the Debugger never sees them.

In the not very likely event that you want both to enable this feature and to have the exception URLs processed by your original proxy server, you can select the Use existing IE proxy for URLs not to be debugged checkbox in the Preferences dialog box (in addition to the IE Mode option proxy and the Clear IE proxy override checkbox).

In this case, the Debugger will process the exception URLs and pass them to the original proxy server. In fact, this option is designed primarily for troubleshooting purposes, as the Debugger Client Audit Trail page will then contain information about the disposition of these URLs.

Using the Client as proxy exclusively for designated addresses

You can use the Debugger Client as a proxy server only for requests for the hosts (Onlines) specified in the Debugger configuration file, debuggerConfig.xml. The browser is directed to do this host filtering by a script you create (by Client command or UI checkbox). Once this feature is in effect, the Client will act as a proxy server for requests for hosts specified in the script but for no other browser requests.

The JavaScript script (debuggerInternalPac.js) is called a Proxy Auto Config (PAC) file, and it is created by default in the Client work-file folder. If no such work folder is configured, the Client installation folder is used.

The  Client will automatically:

  • Create the PAC script at Client startup.
  • Run the script each time the browser invokes a URL.
  • Remove the script location specification at Client shutdown.

By default, the Client uses a file mode URL format (file://) to locate the PAC file. The Client can also use an HTTP mode URL format (http://), storing the file on a web server. You select file or HTTP mode from the Client GUI or by Client command, as described below.

Note: Caution is recommended when working with PAC files. Errors are not well reported and have the potential to prevent the browser from operating. Be very careful if you edit or create your own PAC files.  Here is a good reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file

Client steps to invoke the automatic creation and maintenance of a PAC file

  • From the Client GUI:

1. Select Preferences from the File menu, and locate the IE Options area.

2. In the IE Mode box, select either newPac or mergedPac:

  • newPac generates a PAC file from debuggerConfig.xml settings and it modifies the Internet Properties dialog box settings to point to the file. Any existing designated PAC file is ignored.
  • mergedPac generates a PAC file like newPac does, but it merges the freshly generated file with any existing PAC file.

Both newPac and mergedPac enable the PAC Options button if the following are true (as described in the next section, Setting up an HTTP server for PAC files):

  • A supporting web server is defined and running.  
  • The  HTTP file location is identified in the Debugger configuration file.

3. Click the PAC Options button to display the PAC Options dialog:

PacOptions

Select file://URL or http://URL to set the delivery mode for the PAC file. A file-mode URL is the default.

If http, The Client instantly tests an HTTP PUT and GET of a verification file to and from the designated PAC file HTTP server. The Client then displays a Status bar message like the following which reports the result of the test:

HTTP PAC files can be used. 

4. Click the Done button.  

  • By Client command:

Issue the setIEMode command.

Use the newPac parameter to ignore any existing PAC file, or use the mergedPac parameter to merge any existing PAC file with the PAC file freshly generated from the settings in the debuggerConfig.xml file.

If Build 63 or higher, the http parameter gets the PAC file via HTTP. The default file parameter gets the PAC file from a folder on the local workstation. If you specify http, you must prepare a web server to service the PAC file; see the next section, Setting up an HTTP server for PAC files.

Whether you use the GUI or a Client command, no restart of the browser or the Client is necessary. The browser will run the script for each URL that is invoked from the browser.

Setting up an HTTP server for PAC files

If you will be using HTTP to access a PAC file, you must provide an HTTP (Web) server to hold the PAC files, and you must specify that server's location and port in the Client's configuration file.  

1. Provide a web server.

You can use any web server that supports HTTP PUT and GET. This section provides an example of how to set up a Janus Web Server to handle HTTP-based PAC files. This example is also supplied in a file in the Client's installation folder.

Note: Note that the PAC files are temporary: when the Client starts, a new PAC is generated and uploaded. This prevents the problem of HTTP PAC files being out of date, since they are workstation-based configuration files which can change at any time.

The following SOUL program takes one command line argument, a TCP/IP port number, and it creates a Janus Web server for uploading and serving PAC files:

begin   variables are undefined   local subroutine closeFile(%iFile is string len 8 input)   * Close the file whose name is passed.      %rc is float      $resetn('MSGCTL', 6, %rc)      $close('FILE ' with %iFile)      $resetn('MSGCTL', 0, %rc)   end subroutine   local function openFile(%iFile is string len 8 input) is float      * Open the file whose name is passed and return 0 for success or      * non-zero for failure.      %rc is float      $resetn('MSGCTL', 6, %rc)      openc file %iFile      $resetn('MSGCTL', 0, %rc)      return $status   end function         * Get and validate the command line argument: port number   %args is object stringlist   %args = %(system):arguments:unspace:parseLines(', ')   %portNumber is float     if (%args:count eq 0) then       print 'No port number specified'       stop   elseif (%args:count > 1) then       print 'Too many arguments'       stop   elseif (%args(1) is not like '/2-5(#)') then         print 'Invalid port number'       stop   else      %portNumber = %args(1)   end if   %pacRepo is string len 8 initial('JDPACREP')   %worker is object daemon auto new   %workForDaemon is object Stringlist auto new     * See if memory file for PAC repository is there, if not create it   if (%(local):openFile(%pacRepo) eq 0) then      printText Memory file {%pacRepo} already present      %(local):closeFile(%pacRepo)   else      printText creating memory file {%pacRepo}      text to %workForDaemon = new         ALLOCATE {%pacRepo} WITH MEMORY PAGES=300         CREATE {%pacRepo}         PARAMETER BSIZE=1, DSIZE=250         END         OPENC {%pacRepo}         IN {%pacRepo} INITIALIZE         CLOSE {%pacRepo}      end text      %worker:run(%workForDaemon):print   end if     * Set up a simple Janus web server with web rules for loading   * serving and listing PAC files generated by the debugger client.   %portName is string len 8 initial('JDPACSRV')   * Get rid of any earlier one, so this script can be rerun as needed     text to %workForDaemon = new     JANUS DRAIN {%portName}     JANUS DELETE {%portName}   end text   %worker:run(%workForDaemon)     * Create the server and its rules   text to %workForDaemon = new     * Create a web server     JANUS DEFINE {%portName} {%portNumber} WEBSERV 20 TRACE 7       * Allow PAC file upload via HTTP PUT of URL of format /pacman/xxx.js     JANUS WEB {%portName} -        ON PUT /PACMAN/*.JS OPEN FILE {%pacRepo} RECV *.JS BASE64     JANUS WEB {%portName} ALLOW PUT /PACMAN/*.JS     * Provide HTTP GET access for URLs of format /pacman/xxx.js     JANUS WEB {%portName} ON GET /PACMAN/*.JS OPEN FILE {%pacRepo} -        SEND *.JS BINARY EXPIRE +0       * Start the web server     JANUS START {%portName}   end text   %worker:run(%workForDaemon):print end

Since the PAC files are temporary, they are stored in an in-memory file (not persistent between runs) which does not need any disk files, DD cards, etc. The PAC files are stored as Model 204 procedures. The name of a PAC file procedure created by the Client (see the following sections) is based on the IP number of the Client workstation to avoid conflicts.

2. Update debuggerConfig.xml.

You do this by including the httpPacURL element in the debuggerConfig.xml file.

The following example element suits the sample program in the preceding step (note the use of PACMAN in that program's JANUS WEB commands):

<httpPacURL>http://pacServerHost:pacServerPortNum/pacman</httpPacURL> 

3. Restart the Client, or just issue the retryHttpPac command to test your setup.

The Client must not be in proxy mode if and when you issue the command.

Note: Only when the HTTP server is defined to accept and serve PAC files, and the Debugger Client configuration is updated to identify it, will the PAC Options button be enabled in the IE Options box in the Client's Preferences dialog box (for the newPac and mergedPac options).

Navigating to and within the Internet Properties dialog box

The following directions are provided primarily for information purposes. They show the controls that the Client modifies automatically for Chrome and IE, as described in the preceding subsections. It is recommended that you not make these modifications manually except for any proxy server bypass addresses.

To access the Internet Properties dialog box:

  • From Chrome:

1. At the right end of the bar that contains the Omnibox navigation control, open the customization menu by clicking the three-stacked-lines icon:

    chromeConfigIcon2

2. In the menu, select Settings.

3. At the bottom of the Settings tab, click the Show advanced settings... link.

4. Find the Network section, then click the Change proxy settings... link.

For Windows users, this opens the Internet Properties (or Internet Options) dialog box.

  • From IE:

1.From the Tools menu, select Internet Options.

To access the proxy server controls in the Internet Properties dialog box:

1. Select the Connections tab, and click the LAN Settings button. 2. In the Local Area network (LAN) Settings dialog box, locate the Proxy Server area, then select the "Use a proxy server" checkbox:

a. In the Address box, the value the Client sets is: localhost.   b. In the Port box, the Client sets the proxy listening port number discussed in the introduction above.

To access the proxy server bypass for certain connections:  

1. In the Local Area network (LAN) Settings dialog box Proxy Server area, click the Advanced button. 2. In the Exceptions area, in the list box labeled "Do not use proxy server for addresses beginning with," specify the URLs of any locations the Debugger Client should ignore.

Note: You can set up the Client to automatically save and restore these addresses.


hmtoggle_plus0 Firefox  


To set up the proxy for Firefox browsers:

1. From the Tools menu, select Options > Advanced > Network. 2. In the Connection box, click Settings. 3. In the Connection Settings dialog box, select Manual proxy configuration. a. In the HTTP Proxy box, specify localhost. b. In the adjacent Port box, specify the port number discussed in the introduction above. c. Use the No Proxy for box to specify domain names that the browser will access directly, that is, for which the Debugger proxy will be bypassed. 4. Click OK.

Once defined, the proxy remains in effect whether the Debugger Client is operating or not.


hmtoggle_plus0 Lynx 


The Lynx character-mode browser is fast and handy for testing.  To make it use a proxy, set the environment variable http_proxy to the full URL of the Janus proxy.

Here is a Unix shell script example (running on a PC under Cygwin) that sets this variable and runs Lynx:

#!/bin/bash http_proxy=http://127.0.0.1:8081 export http_proxy env lynx 

Note: The http:// is required.

Once defined, the proxy remains in effect whether the Debugger Client is operating or not.


hmtoggle_plus0 Opera 


To set up the proxy:

1.From the main Menu, select Settings > Preferences > Advanced > Network > Proxy Servers.

2.Select the HTTP checkbox, and enter localhost and the proxy listening port number discussed in the introduction above.

Once defined, the proxy remains in effect whether the Debugger Client is operating or not.