Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 354745 - keyboard navigation in Browser widget broken with IE 9 on some pages
Summary: keyboard navigation in Browser widget broken with IE 9 on some pages
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.7   Edit
Hardware: PC Windows 7
: P3 major (vote)
Target Milestone: 3.7.2   Edit
Assignee: Grant Gayed CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 349478 367675 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-08-15 13:04 EDT by Shawn Minto CLA
Modified: 2012-01-04 09:14 EST (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Shawn Minto CLA 2011-08-15 13:04:58 EDT
With IE9 and Eclipse 3.7, I am unable to use keyboard navigation for some pages (i.e. arrows or pg up and pg down).  This works on some pages, but used to work on all with IE 8 and Eclipse 3.6.

Example page:
http://article.wn.com/view/2011/04/06/Tasktop_Technologies_Named_Best_Employer_by_Small_Business_B/
Comment 1 Shawn Minto CLA 2011-09-07 12:50:49 EDT
Martin or others, any thoughts on this problem?
Comment 2 Mik Kersten CLA 2011-09-07 14:26:07 EDT
Setting as major, since this makes for a pretty big regression in the Browser widget functionality.
Comment 3 Shawn Minto CLA 2011-09-20 14:41:15 EDT
Some investigation based on using the widget (not at the code level) indicates that this could be a race condition of some sort.  We suspect this as there are some cases where the keybindings will work on the page, but it seems to be due to when the page is cached vs when the page slow to load from the site.  It seemed that sometimes an Eclipse restart could fix this issue temporarily as well, but upon reloading one of these pages in a new browser widget, the ability to navigate would be lost again.  Navigating to a different page within the same widget would allow the user to use the keyboard navigation for that page, but it would not work upon returning to the page where it was broken.
Comment 4 Shawn Minto CLA 2011-09-21 11:02:11 EDT
On interesting bit of information that we stumbled upon is that sometimes the internal browser reports that it is IE 7 (to websites) and other times it reports that it is IE 9.  When it reports that it is IE 9, this is when sites like the one above do not work.  It seems that compatibility mode (which is normally used by the internal browser) isn't always correctly turned on.  One way that some people were able to get it to switch was to navigate to the page via google vs navigating directly to the page.
Comment 5 Grant Gayed CLA 2011-09-21 16:57:40 EDT
Prior to Eclipse 3.7 the IE-based browser always ran in IE8 (or earlier) emulation mode.  This wasn't a conscious decision of SWT, but a default behaviour imposed by the embedded IE control.  However as of Eclipse 3.7 the Browser began overriding this default behaviour so that newer IE versions could show through, and this is likely the scenario where the behaviour has regressed, when the embedded IE is not emulating an older version.

I'll try to investigate this tomorrow (I have to use a different machine to investigate IE9 issues, and it's not yet set up with a clone of our GIT repo, etc.).  This is not a fix that would make it into 3.7.1, as its cut-off for functional changes like this passed a while ago.
Comment 6 Shawn Minto CLA 2011-09-22 11:19:18 EDT
Interesting.  It would be good to have new IE versions shine through to ensure that all web pages work as expected, but would be interesting to know why this fails on IE 9 and what would cause the rendering engine to change depending on the page that you access. 

Since we are already past the cutoff for SR1, can this fix get into 3.7.2?
Comment 7 Grant Gayed CLA 2011-09-22 15:45:56 EDT
Fixed in HEAD > 20110922.  Patch: http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?id=b3289ecfc47e79e340ac862d8d53734bd3c6d2dd .

Target set for 3.7.2, will commit the fix to that stream once it has had some time to be tested in the 3.8/4.2 streams.  Keeping report open in the meantime.

As a side note, it is possible to make the browser revert to using IE7 emulation mode (I wrote the wrong version in comment 5, the native control defaults to IE7 not IE8).  This can be done by launching with vm switch -Dorg.eclipse.swt.browser.IEVersion=7000, or by setting the equivalent Java property+value before the first Browser instance is created.
Comment 8 Mik Kersten CLA 2011-09-22 17:30:56 EDT
Thanks Grant, great to see this fixed.
Comment 9 Shawn Minto CLA 2011-09-23 12:59:13 EDT
Thanks Grant!  Is this vm option available in 3.7 (i.e. can we get users to set this if they are having difficulty and set this as a default option in an RCP build)?
Comment 10 Grant Gayed CLA 2011-09-23 13:42:15 EDT
Yes it's in 3.7.
Comment 11 Markus Keller CLA 2011-09-28 11:23:24 EDT
Bug 349478 and bug 291483 reported similar problems before.
Comment 12 Grant Gayed CLA 2011-10-04 12:51:12 EDT
*** Bug 349478 has been marked as a duplicate of this bug. ***
Comment 13 Grant Gayed CLA 2011-10-21 15:44:37 EDT
Fix committed to the R3_7_maintenance stream > 20111021 ( http://git.eclipse.org/c/platform/eclipse.platform.swt.git/commit/?h=R3_7_maintenance&id=f32dd164a74a61d4604211d7305a48ded07cbcce ).
Comment 14 Grant Gayed CLA 2012-01-03 16:22:09 EST
*** Bug 367675 has been marked as a duplicate of this bug. ***
Comment 15 Chavaranis Nikolaos CLA 2012-01-04 07:41:51 EST
The fix is "Eclipse Platform" specific or "SWT" specific? Does an update to the latest SWT release solve the problem?
Comment 16 Grant Gayed CLA 2012-01-04 09:14:55 EST
The fix is in SWT.