View | Details | Raw Unified | Return to bug 298822 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java (-9 / +28 lines)
Lines 35-42 Link Here
35
	int lastMouseMoveX, lastMouseMoveY;
35
	int lastMouseMoveX, lastMouseMoveY;
36
36
37
	static boolean SilenceInternalNavigate;
37
	static boolean SilenceInternalNavigate;
38
	static int IEVersion;
38
	static String ProgId = "Shell.Explorer";	//$NON-NLS-1$
39
	static String ProgId = "Shell.Explorer";	//$NON-NLS-1$
39
40
41
	static final int navNoReadFromCache = 0x4;
40
	static final int BeforeNavigate2 = 0xfa;
42
	static final int BeforeNavigate2 = 0xfa;
41
	static final int CommandStateChange = 0x69;
43
	static final int CommandStateChange = 0x69;
42
	static final int DocumentComplete = 0x103;
44
	static final int DocumentComplete = 0x103;
Lines 146-158 Link Here
146
					int index = versionString.indexOf ("."); //$NON-NLS-1$
148
					int index = versionString.indexOf ("."); //$NON-NLS-1$
147
					if (index != -1) {
149
					if (index != -1) {
148
						String majorString = versionString.substring (0, index);
150
						String majorString = versionString.substring (0, index);
149
						int major = 0;
150
						try {
151
						try {
151
							major = Integer.valueOf (majorString).intValue ();
152
							IEVersion = Integer.valueOf (majorString).intValue ();
152
						} catch (NumberFormatException e) {
153
						} catch (NumberFormatException e) {
153
							/* just continue, version-specific features will not be enabled */
154
							/* just continue, version-specific features will not be enabled */
154
						}
155
						}
155
						if (major >= 7) {
156
						if (IEVersion >= 7) {
156
							SilenceInternalNavigate = true;
157
							SilenceInternalNavigate = true;
157
						}
158
						}
158
					}
159
					}
Lines 904-917 Link Here
904
		auto.invoke(rgdispid[0]);
905
		auto.invoke(rgdispid[0]);
905
	}
906
	}
906
907
907
	int[] rgdispid = auto.getIDsOfNames(new String[] { "Navigate", "URL" }); //$NON-NLS-1$ //$NON-NLS-2$
908
	int[] rgdispid = auto.getIDsOfNames(new String[] { "Navigate", "URL", "Flags" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
908
	navigate = true;
909
	navigate = true;
909
	Variant[] rgvarg = new Variant[1];
910
	Variant[] rgvarg;
910
	rgvarg[0] = new Variant(url);
911
	int[] rgdispidNamedArgs;
911
	int[] rgdispidNamedArgs = new int[1];
912
	/*
912
	rgdispidNamedArgs[0] = rgdispid[1];
913
	 * Feature in Internet Explorer 8. Browser caches web pages and for the
914
	 * same address display always the same page until not refreshed. Setting
915
	 * flag navNoReadFromCache solves this problem. See bug #298822
916
	 */
917
	if (IEVersion >= 8) {
918
		rgvarg = new Variant[2];
919
		rgvarg[0] = new Variant(url);
920
		rgdispidNamedArgs = new int[2];
921
		rgdispidNamedArgs[0] = rgdispid[1];
922
		rgvarg[1] = new Variant(navNoReadFromCache);
923
		rgdispidNamedArgs[1] = rgdispid[2];
924
	} else {
925
		rgvarg = new Variant[1];
926
		rgvarg[0] = new Variant(url);
927
		rgdispidNamedArgs = new int[1];
928
		rgdispidNamedArgs[0] = rgdispid[1];
929
	}
913
	Variant pVarResult = auto.invoke(rgdispid[0], rgvarg, rgdispidNamedArgs);
930
	Variant pVarResult = auto.invoke(rgdispid[0], rgvarg, rgdispidNamedArgs);
914
	rgvarg[0].dispose();
931
	for (int i = 0; i < rgvarg.length; i++) {
932
		rgvarg[i].dispose();
933
	}
915
	if (pVarResult == null) return false;
934
	if (pVarResult == null) return false;
916
	boolean result = pVarResult.getType() == OLE.VT_EMPTY;
935
	boolean result = pVarResult.getType() == OLE.VT_EMPTY;
917
	pVarResult.dispose();
936
	pVarResult.dispose();

Return to bug 298822