|
Lines 27-32
Link Here
|
| 27 |
import org.eclipse.hyades.test.core.internal.resources.TestCorePluginResourceBundle; |
27 |
import org.eclipse.hyades.test.core.internal.resources.TestCorePluginResourceBundle; |
| 28 |
|
28 |
|
| 29 |
|
29 |
|
|
|
30 |
|
| 31 |
|
| 30 |
/** |
32 |
/** |
| 31 |
* This object is the client object for a RecorderApplication extension point (point org.eclipse.hyades.execution.recorder.RecorderApplication) |
33 |
* This object is the client object for a RecorderApplication extension point (point org.eclipse.hyades.execution.recorder.RecorderApplication) |
| 32 |
* it contains logic for initializing, starting, and stopping Internet Explorer. In particular, this object is able |
34 |
* it contains logic for initializing, starting, and stopping Internet Explorer. In particular, this object is able |
|
Lines 78-90
Link Here
|
| 78 |
// bugzilla 165310 mdd |
80 |
// bugzilla 165310 mdd |
| 79 |
final String mylocalhost = "127.0.0.1:"; |
81 |
final String mylocalhost = "127.0.0.1:"; |
| 80 |
|
82 |
|
|
|
83 |
// bugzilla 168597 |
| 84 |
/* Later we may want to change this to always use native code |
| 85 |
* to get and set Internet Explorer registry settings. |
| 86 |
* |
| 87 |
* For this defect fix, we will determine that our attempt to run regedit.exe |
| 88 |
* has failed running on Vista without using "Run as Administrator" elevated privileges |
| 89 |
* |
| 90 |
* When this happens, we will set the boolean below true and create an instance of JNIWrapper class. |
| 91 |
* The JNIWrapper class will load the native DLL and make the calls into native code. |
| 92 |
* |
| 93 |
*/ |
| 94 |
private boolean bUseNativeRegistryInterface = false; |
| 95 |
private boolean bRunningVista = false; |
| 96 |
private JNIWrapper jniWrapper = null; |
| 97 |
|
| 81 |
public void init(String initInfo) throws RecorderApplicationAdapterException |
98 |
public void init(String initInfo) throws RecorderApplicationAdapterException |
| 82 |
{ |
99 |
{ |
|
|
100 |
StringBuffer inputFileContents; |
| 101 |
|
| 83 |
// bugzilla 114253 set the path of temp files to the workspace path |
102 |
// bugzilla 114253 set the path of temp files to the workspace path |
| 84 |
setTempFilePaths(); |
103 |
setTempFilePaths(); |
| 85 |
|
104 |
|
| 86 |
parseInitInfo(initInfo); |
105 |
parseInitInfo(initInfo); |
| 87 |
StringBuffer inputFileContents = getRegistryInfo(); |
106 |
checkOSVersion(); |
|
|
107 |
|
| 108 |
// Bugilla 168597 |
| 109 |
if (bUseNativeRegistryInterface) |
| 110 |
inputFileContents = getRegistryInfoUsingNativeAPI(); |
| 111 |
else |
| 112 |
inputFileContents = getRegistryInfo(); |
| 113 |
|
| 114 |
createOriginalRegSettingsFile(inputFileContents); |
| 88 |
|
115 |
|
| 89 |
StringBuffer outputFileContents = new StringBuffer(); |
116 |
StringBuffer outputFileContents = new StringBuffer(); |
| 90 |
// new mdd hyades 1.3 check for http |
117 |
// new mdd hyades 1.3 check for http |
|
Lines 101-116
Link Here
|
| 101 |
StringTokenizer lineTokenizer = new StringTokenizer(line,":");//$NON-NLS-1$ |
128 |
StringTokenizer lineTokenizer = new StringTokenizer(line,":");//$NON-NLS-1$ |
| 102 |
newLine=lineTokenizer.nextToken(); |
129 |
newLine=lineTokenizer.nextToken(); |
| 103 |
newLine+=":00000001";//$NON-NLS-1$ |
130 |
newLine+=":00000001";//$NON-NLS-1$ |
|
|
131 |
setNativeRegistryValue(newLine); |
| 132 |
outputFileContents.append(newLine+"\r\n");//$NON-NLS-1$ |
| 104 |
if (isProxyEnabled){ |
133 |
if (isProxyEnabled){ |
| 105 |
// newLine+="\r\n\"ProxyServer\"=\"http=localhost:" + portnum;//$NON-NLS-1$ |
134 |
// newLine+="\r\n\"ProxyServer\"=\"http=localhost:" + portnum;//$NON-NLS-1$ |
| 106 |
newLine+="\r\n\"ProxyServer\"=\"http=" + mylocalhost+ portnum;//$NON-NLS-1$ |
135 |
newLine="\"ProxyServer\"=\"http=" + mylocalhost+ portnum;//$NON-NLS-1$ |
| 107 |
newLine += ";https=" + mylocalhost + portnum + "\""; |
136 |
newLine += ";https=" + mylocalhost + portnum + "\""; |
| 108 |
} |
137 |
} |
| 109 |
else { |
138 |
else { |
| 110 |
// newLine+="\r\n\"ProxyServer\"=\"socks=localhost:";//$NON-NLS-1$ |
139 |
// newLine+="\r\n\"ProxyServer\"=\"socks=localhost:";//$NON-NLS-1$ |
| 111 |
newLine+="\r\n\"ProxyServer\"=\"socks=" + mylocalhost;//$NON-NLS-1$ |
140 |
newLine="\"ProxyServer\"=\"socks=" + mylocalhost;//$NON-NLS-1$ |
| 112 |
newLine+=portnum+"\"";//$NON-NLS-1$ |
141 |
newLine+=portnum+"\"";//$NON-NLS-1$ |
| 113 |
} |
142 |
} |
|
|
143 |
|
| 114 |
} |
144 |
} |
| 115 |
else if(line.startsWith("\"ProxyHttp1.1"))//$NON-NLS-1$ |
145 |
else if(line.startsWith("\"ProxyHttp1.1"))//$NON-NLS-1$ |
| 116 |
{ |
146 |
{ |
|
Lines 121-126
Link Here
|
| 121 |
} |
151 |
} |
| 122 |
else if(line.startsWith("\"ProxyServer"))//$NON-NLS-1$ |
152 |
else if(line.startsWith("\"ProxyServer"))//$NON-NLS-1$ |
| 123 |
{ |
153 |
{ |
|
|
154 |
|
| 124 |
//it has been found that if the target computer has never been pointed to a proxy. This |
155 |
//it has been found that if the target computer has never been pointed to a proxy. This |
| 125 |
//entry may not be present. Therefore, we will ignore it if it is there and always create it from scratch. |
156 |
//entry may not be present. Therefore, we will ignore it if it is there and always create it from scratch. |
| 126 |
newLine=null; |
157 |
newLine=null; |
|
Lines 176-211
Link Here
|
| 176 |
} |
207 |
} |
| 177 |
newLine = null; //don't update this |
208 |
newLine = null; //don't update this |
| 178 |
} |
209 |
} |
| 179 |
if(newLine!=null) |
210 |
if(newLine!=null){ |
| 180 |
outputFileContents.append(newLine+"\r\n");//$NON-NLS-1$ |
211 |
if (bUseNativeRegistryInterface) |
|
|
212 |
setNativeRegistryValue(newLine); |
| 213 |
else |
| 214 |
outputFileContents.append(newLine+"\r\n");//$NON-NLS-1$ |
| 215 |
} |
| 181 |
} |
216 |
} |
| 182 |
|
217 |
|
| 183 |
|
218 |
|
| 184 |
|
219 |
|
| 185 |
createRegSettingsFile(outputFileContents); |
220 |
if (bUseNativeRegistryInterface){ |
|
|
221 |
launchPath = launchPath.replaceAll("%1", ""); |
| 222 |
int n = launchPath.indexOf("\\\\"); //replaceAll doesn't work for these cases |
| 223 |
int m = launchPath.indexOf("\\\""); |
| 224 |
while (n > -1 || m > -1) |
| 225 |
{ |
| 226 |
if (n > -1) |
| 227 |
{ |
| 228 |
launchPath = launchPath.substring(0, n) + launchPath.substring(n+1, launchPath.length()); |
| 229 |
|
| 230 |
} |
| 231 |
else if (m > -1) //wait until next loop (have to reassign indeces) |
| 232 |
{ |
| 233 |
launchPath = launchPath.substring(0, m) + launchPath.substring(m+1, launchPath.length()); |
| 234 |
|
| 235 |
} |
| 236 |
n = launchPath.indexOf("\\\\"); |
| 237 |
m = launchPath.indexOf("\\\""); |
| 238 |
} |
| 239 |
System.out.println(launchPath); |
| 240 |
} |
| 241 |
|
| 186 |
|
242 |
|
| 187 |
try |
243 |
try |
| 188 |
{ |
244 |
{ |
| 189 |
pushRegFile(tempSettingsFilePath); |
245 |
if (!bUseNativeRegistryInterface){ |
|
|
246 |
createRegSettingsFile(outputFileContents); |
| 247 |
pushRegFile(tempSettingsFilePath); |
| 248 |
} |
| 190 |
} |
249 |
} |
| 191 |
catch (Exception e) |
250 |
catch (Exception e) |
| 192 |
{ |
251 |
{ |
| 193 |
// below is for bugzilla 177396 mdd |
252 |
String myError = TestCorePluginResourceBundle.RecorderClientApp_WINDOWS_ADMIN_ERROR; |
| 194 |
String currentOS = Platform.getOS(); |
|
|
| 195 |
if (currentOS.equals("win32")) { |
| 196 |
String myVersion = System.getProperty("os.version"); |
| 197 |
String myError = ""; |
| 198 |
if (myVersion.startsWith("6")) { |
| 199 |
myError = TestCorePluginResourceBundle.RecorderClientApp_VISTA_ADMIN_ERROR; |
| 200 |
} |
| 201 |
else { |
| 202 |
myError = TestCorePluginResourceBundle.RecorderClientApp_WINDOWS_ADMIN_ERROR; |
| 203 |
} |
| 204 |
throw new RecorderApplicationAdapterException(myError + "\n" + e.getMessage()); |
253 |
throw new RecorderApplicationAdapterException(myError + "\n" + e.getMessage()); |
|
|
254 |
} |
| 255 |
|
| 256 |
} |
| 257 |
|
| 258 |
private void checkOSVersion(){ |
| 259 |
String currentOS = Platform.getOS(); |
| 260 |
if (currentOS.equals("win32")) { |
| 261 |
String myVersion = System.getProperty("os.version"); |
| 262 |
if (myVersion.startsWith("6")) { |
| 263 |
try{ |
| 264 |
// Bugilla 168597, use native registry calls |
| 265 |
// instead of displaying an error message |
| 266 |
bRunningVista = true; |
| 267 |
jniWrapper = new JNIWrapper(); |
| 268 |
if ((jniWrapper.isProcessRunningElevated()) == false) |
| 269 |
bUseNativeRegistryInterface = true; |
| 270 |
} |
| 271 |
// so, if we can't load our DLL, we will throw the old |
| 272 |
// error message out so the user can perform a recording by |
| 273 |
// running eclipse using "Run as Administrator |
| 274 |
// this should never happen |
| 275 |
catch (UnsatisfiedLinkError e2){ |
| 276 |
StringBuffer inputFileContents = new StringBuffer(); |
| 277 |
inputFileContents.append("VISTA_ADMIN_ERROR"); |
| 278 |
} |
| 205 |
} |
279 |
} |
| 206 |
throw new RecorderApplicationAdapterException(e.getMessage()); |
|
|
| 207 |
} |
280 |
} |
| 208 |
|
281 |
|
|
|
282 |
} |
| 283 |
|
| 284 |
private void setNativeRegistryValue(String newLine){ |
| 285 |
if (bUseNativeRegistryInterface){ |
| 286 |
int index1 = 1; // next character after beginning quote |
| 287 |
int index2 = newLine.indexOf("="); |
| 288 |
String keyname = newLine.substring(index1, index2 - 1); |
| 289 |
String value = newLine.substring(index2 + 1); |
| 290 |
if (value.charAt(0) == '\"') |
| 291 |
value = value.substring(1); |
| 292 |
if (value.endsWith("\"")) |
| 293 |
value = value.substring(0, value.length() - 1); |
| 294 |
jniWrapper.setInternetSetting(keyname, value); |
| 295 |
} |
| 209 |
} |
296 |
} |
| 210 |
|
297 |
|
| 211 |
/* |
298 |
/* |
|
Lines 291-296
Link Here
|
| 291 |
|
378 |
|
| 292 |
} |
379 |
} |
| 293 |
|
380 |
|
|
|
381 |
/** |
| 382 |
* method which creates a registry settings file (*.reg) |
| 383 |
* @param StringBuffer ouputFileContents |
| 384 |
*/ |
| 385 |
private void createOriginalRegSettingsFile(StringBuffer inputFileContents) |
| 386 |
{ |
| 387 |
// Bugzilla 114253 - use new path for temp files to put them in workspace |
| 388 |
File newFile = new File(originalSettingsFilePath); |
| 389 |
|
| 390 |
try |
| 391 |
{ |
| 392 |
OutputStreamWriter outputWriter = new OutputStreamWriter(new FileOutputStream(newFile),"UnicodeLittle");//$NON-NLS-1$ |
| 393 |
outputWriter.write(inputFileContents.toString()); |
| 394 |
outputWriter.close(); |
| 395 |
} |
| 396 |
catch (UnsupportedEncodingException e1) |
| 397 |
{ |
| 398 |
e1.printStackTrace(); |
| 399 |
} |
| 400 |
catch (FileNotFoundException e1) |
| 401 |
{ |
| 402 |
e1.printStackTrace(); |
| 403 |
} |
| 404 |
catch (IOException e) |
| 405 |
{ |
| 406 |
e.printStackTrace(); |
| 407 |
} |
| 408 |
|
| 409 |
} |
| 410 |
|
| 294 |
|
411 |
|
| 295 |
/** |
412 |
/** |
| 296 |
* method which exports the registry keys of interested into a file using regedit and then reads the file |
413 |
* method which exports the registry keys of interested into a file using regedit and then reads the file |
|
Lines 299-304
Link Here
|
| 299 |
private StringBuffer getRegistryInfo() |
416 |
private StringBuffer getRegistryInfo() |
| 300 |
{ |
417 |
{ |
| 301 |
|
418 |
|
|
|
419 |
|
| 302 |
String[] regInfo = {"\"HKEY_CLASSES_ROOT\\Applications\\iexplore.exe\\shell\\open\\command\"", |
420 |
String[] regInfo = {"\"HKEY_CLASSES_ROOT\\Applications\\iexplore.exe\\shell\\open\\command\"", |
| 303 |
"\"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\"", |
421 |
"\"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\"", |
| 304 |
"\"HKEY_CURRENT_USER\\Software\\Microsoft\\Java VM\""}; |
422 |
"\"HKEY_CURRENT_USER\\Software\\Microsoft\\Java VM\""}; |
|
Lines 307-318
Link Here
|
| 307 |
// bugzilla 127536 mark d dunn put quotes around file name due to spaces in workspace path |
425 |
// bugzilla 127536 mark d dunn put quotes around file name due to spaces in workspace path |
| 308 |
String cmdLine = "regedit /e "+"\"" + originalSettingsFilePath+ "\" ";//$NON-NLS-1$//$NON-NLS-2$ |
426 |
String cmdLine = "regedit /e "+"\"" + originalSettingsFilePath+ "\" ";//$NON-NLS-1$//$NON-NLS-2$ |
| 309 |
String consolecmdLine = "regedit /e "+"\""+consoleSettingsFilePath+ "\" "; |
427 |
String consolecmdLine = "regedit /e "+"\""+consoleSettingsFilePath+ "\" "; |
|
|
428 |
|
| 429 |
jniWrapper = new JNIWrapper(); |
| 310 |
|
430 |
|
| 311 |
InputStreamReader inputReader=null; |
431 |
InputStreamReader inputReader=null; |
| 312 |
File file = null; |
432 |
File file = null; |
| 313 |
File consoleFile = null; |
433 |
File consoleFile = null; |
| 314 |
Process registryChange = null; |
434 |
Process registryChange = null; |
| 315 |
StringBuffer inputFileContents = new StringBuffer(); |
435 |
StringBuffer inputFileContents = new StringBuffer(); |
|
|
436 |
|
| 316 |
try |
437 |
try |
| 317 |
{ |
438 |
{ |
| 318 |
// bugzilla 114253 - write temp files in workspace instead of eclipse instance location |
439 |
// bugzilla 114253 - write temp files in workspace instead of eclipse instance location |
|
Lines 326-339
Link Here
|
| 326 |
|
447 |
|
| 327 |
for (int i = 0; i < regInfo.length; i++) |
448 |
for (int i = 0; i < regInfo.length; i++) |
| 328 |
{ |
449 |
{ |
| 329 |
if (i == 2){ |
450 |
if (i == 2 && bRunningVista == false){ // the Java command console registry setting is not available on Vista |
| 330 |
registryChange = Runtime.getRuntime().exec(consolecmdLine + regInfo[i],null); |
451 |
registryChange = Runtime.getRuntime().exec(consolecmdLine + regInfo[i],null); |
|
|
452 |
|
| 331 |
} |
453 |
} |
| 332 |
else { |
454 |
else { |
| 333 |
registryChange = Runtime.getRuntime().exec(cmdLine + regInfo[i],null); |
455 |
registryChange = Runtime.getRuntime().exec(cmdLine + regInfo[i],null); |
| 334 |
} |
456 |
} |
|
|
457 |
|
| 335 |
registryChange.waitFor(); |
458 |
registryChange.waitFor(); |
| 336 |
if (i == 2){ |
459 |
if (i == 2 && bRunningVista == false){ |
|
|
460 |
// the Java command console registry setting is not available on Vista |
| 461 |
// so this was throwing a File I/O exception |
| 337 |
inputReader= new InputStreamReader(new FileInputStream(consoleFile),"UTF-16");//$NON-NLS-1$ |
462 |
inputReader= new InputStreamReader(new FileInputStream(consoleFile),"UTF-16");//$NON-NLS-1$ |
| 338 |
} else |
463 |
} else |
| 339 |
{ |
464 |
{ |
|
Lines 373-379
Link Here
|
| 373 |
} |
498 |
} |
| 374 |
return inputFileContents; |
499 |
return inputFileContents; |
| 375 |
} |
500 |
} |
| 376 |
|
501 |
//Bugilla 168597 |
|
|
502 |
StringBuffer getRegistryInfoUsingNativeAPI(){ |
| 503 |
bUseNativeRegistryInterface = true; |
| 504 |
|
| 505 |
StringBuffer inputFileContents = new StringBuffer(); |
| 506 |
// fire up an instance of the JNI layer to start using native code |
| 507 |
launchPath = jniWrapper.getIEPath(); |
| 508 |
String str = jniWrapper.getErrorMessage(); |
| 509 |
AddSettingToBuffer(jniWrapper, inputFileContents, "ProxyEnable"); |
| 510 |
AddSettingToBuffer(jniWrapper, inputFileContents, "AutoConfigURL"); |
| 511 |
AddSettingToBuffer(jniWrapper, inputFileContents, "ProxyServer"); |
| 512 |
AddSettingToBuffer(jniWrapper, inputFileContents, "ProxyOverride"); |
| 513 |
AddSettingToBuffer(jniWrapper, inputFileContents, "ProxyHttp1.1"); |
| 514 |
AddSettingToBuffer(jniWrapper, inputFileContents, "WarnOnBadCertRecving"); |
| 515 |
AddSettingToBuffer(jniWrapper, inputFileContents, "WarnOnZoneCrossing"); |
| 516 |
|
| 517 |
// left out ZonesMixedContent for now, that would require reading many more keys |
| 518 |
// to set all that |
| 519 |
|
| 520 |
return inputFileContents; |
| 521 |
} |
| 522 |
|
| 523 |
private void AddSettingToBuffer(JNIWrapper jniWrapper, StringBuffer inputFileContents, String name){ |
| 524 |
String setting = jniWrapper.getInternetSetting(name); |
| 525 |
if (setting != null && setting.length() > 0){ |
| 526 |
inputFileContents.append("\"" + name + "\"=" + setting + "\r\n"); |
| 527 |
} |
| 528 |
return; |
| 529 |
} |
| 530 |
|
| 377 |
|
531 |
|
| 378 |
/** |
532 |
/** |
| 379 |
* method called by the recorder to start the target application (Internet Explorer) |
533 |
* method called by the recorder to start the target application (Internet Explorer) |
|
Lines 384-391
Link Here
|
| 384 |
ieProcess = null; |
538 |
ieProcess = null; |
| 385 |
try |
539 |
try |
| 386 |
{ |
540 |
{ |
|
|
541 |
String strStart = launchPath + " " + startupURL;//$NON-NLS-1$ |
| 387 |
//TODO derive path to iexplore.exe using registry. |
542 |
//TODO derive path to iexplore.exe using registry. |
| 388 |
ieProcess = Runtime.getRuntime().exec(launchPath + " " + startupURL);//$NON-NLS-1$ |
543 |
if (bUseNativeRegistryInterface == true) |
|
|
544 |
jniWrapper.startIE(startupURL); |
| 545 |
else |
| 546 |
ieProcess = Runtime.getRuntime().exec(strStart); |
| 389 |
} |
547 |
} |
| 390 |
catch (IOException e) |
548 |
catch (IOException e) |
| 391 |
{ |
549 |
{ |
|
Lines 404-412
Link Here
|
| 404 |
{ |
562 |
{ |
| 405 |
// bugzilla 114253 - write temp files in workspace instead of eclipse instance location |
563 |
// bugzilla 114253 - write temp files in workspace instead of eclipse instance location |
| 406 |
// use the new path for the temp files |
564 |
// use the new path for the temp files |
| 407 |
pushRegFile(originalSettingsFilePath); |
565 |
if (bUseNativeRegistryInterface){ |
| 408 |
|
566 |
try { |
| 409 |
pushRegFile(consoleSettingsFilePath); |
567 |
StringBuffer inputFileContents = new StringBuffer(); |
|
|
568 |
String str; |
| 569 |
byte [] buffer = new byte[4096]; |
| 570 |
int bytes_read; |
| 571 |
File newFile = new File(originalSettingsFilePath); |
| 572 |
FileInputStream inputStream = new FileInputStream(newFile);//$NON-NLS-1$ |
| 573 |
while ((bytes_read = inputStream.read(buffer)) != -1){ |
| 574 |
str = new String(buffer, 0, bytes_read, "UnicodeLittle"); |
| 575 |
inputFileContents.append(str); |
| 576 |
} |
| 577 |
inputStream.close(); |
| 578 |
StringTokenizer fileTokenizer = new StringTokenizer(inputFileContents.toString(),"\r\n");//$NON-NLS-1$ |
| 579 |
while(fileTokenizer.hasMoreTokens()) |
| 580 |
{ |
| 581 |
String line=fileTokenizer.nextToken(); |
| 582 |
// check to see if it is a real setting or a blank line |
| 583 |
int index = line.indexOf('='); |
| 584 |
if (index > 0) |
| 585 |
setNativeRegistryValue(line); |
| 586 |
} |
| 587 |
} |
| 588 |
catch (IOException eio){ |
| 589 |
// file not found is ok because cleanup gets called twice if stopping from the GUI |
| 590 |
// rather than by closing IE. |
| 591 |
} |
| 592 |
|
| 593 |
} |
| 594 |
else{ |
| 595 |
pushRegFile(originalSettingsFilePath); |
| 596 |
|
| 597 |
pushRegFile(consoleSettingsFilePath); |
| 598 |
} |
| 410 |
} |
599 |
} |
| 411 |
catch (Exception e) |
600 |
catch (Exception e) |
| 412 |
{ |
601 |
{ |
|
Lines 430-436
Link Here
|
| 430 |
*/ |
619 |
*/ |
| 431 |
public void stop() throws RecorderApplicationAdapterException |
620 |
public void stop() throws RecorderApplicationAdapterException |
| 432 |
{ |
621 |
{ |
| 433 |
ieProcess.destroy(); |
622 |
if (ieProcess == null){ |
|
|
623 |
if (jniWrapper != null) |
| 624 |
jniWrapper.terminateIE(); |
| 625 |
|
| 626 |
}else{ |
| 627 |
ieProcess.destroy(); |
| 628 |
} |
| 434 |
} |
629 |
} |
| 435 |
|
630 |
|
| 436 |
//init format: |
631 |
//init format: |
|
Lines 589-593
Link Here
|
| 589 |
public void setApplicationPath(String str) { |
784 |
public void setApplicationPath(String str) { |
| 590 |
TestCorePlugin.getDefault().getPluginPreferences().setValue("RECORDER_IE_PATH", str); |
785 |
TestCorePlugin.getDefault().getPluginPreferences().setValue("RECORDER_IE_PATH", str); |
| 591 |
} |
786 |
} |
|
|
787 |
// added this method to be called by the RecorderDataProcessorHelper class |
| 788 |
// when the client connects, we will look for a new instance of IE if |
| 789 |
// we are using the Native DLL code to control the recording |
| 790 |
public void clientConnectNotification(){ |
| 791 |
|
| 792 |
if (bUseNativeRegistryInterface && jniWrapper != null){ |
| 793 |
jniWrapper.clientConnectNotification(); |
| 794 |
} |
| 795 |
|
| 796 |
} |
| 592 |
|
797 |
|
| 593 |
} |
798 |
} |