### Eclipse Workspace Patch 1.0 #P org.eclipse.swt Index: Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java,v retrieving revision 1.47.4.3 diff -u -r1.47.4.3 IE.java --- Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java 12 Jan 2010 20:40:32 -0000 1.47.4.3 +++ Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java 14 Jan 2010 13:44:06 -0000 @@ -40,6 +40,7 @@ static String ProgId = "Shell.Explorer"; //$NON-NLS-1$ static int PDFCount; + static final int navNoReadFromCache = 0x4; static final int BeforeNavigate2 = 0xfa; static final int CommandStateChange = 0x69; static final int DocumentComplete = 0x103; @@ -1045,12 +1046,28 @@ auto.invoke(rgdispid[0]); } - int[] rgdispid = auto.getIDsOfNames(new String[] { "Navigate", "URL" }); //$NON-NLS-1$ //$NON-NLS-2$ + int[] rgdispid = auto.getIDsOfNames(new String[] { "Navigate", "URL", "Flags" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ navigate = true; - Variant[] rgvarg = new Variant[1]; - rgvarg[0] = new Variant(url); - int[] rgdispidNamedArgs = new int[1]; - rgdispidNamedArgs[0] = rgdispid[1]; + Variant[] rgvarg; + int[] rgdispidNamedArgs; + /* + * Feature in Internet Explorer 8. Browser caches web pages and for the + * same address display always the same page until not refreshed. Setting + * flag navNoReadFromCache solves this problem. See bug #298822 + */ + if (IEVersion >= 8) { + rgvarg = new Variant[2]; + rgvarg[0] = new Variant(url); + rgdispidNamedArgs = new int[2]; + rgdispidNamedArgs[0] = rgdispid[1]; + rgvarg[1] = new Variant(navNoReadFromCache); + rgdispidNamedArgs[1] = rgdispid[2]; + } else { + rgvarg = new Variant[1]; + rgvarg[0] = new Variant(url); + rgdispidNamedArgs = new int[1]; + rgdispidNamedArgs[0] = rgdispid[1]; + } Variant pVarResult = auto.invoke(rgdispid[0], rgvarg, rgdispidNamedArgs); rgvarg[0].dispose(); if (pVarResult == null) return false;