JDK-6991343 : Vista/IE7 further showDocument focus issue with named targeted windows
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 6u23
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_vista
  • CPU: x86
  • Submitted: 2010-10-12
  • Updated: 2013-09-12
  • Resolved: 2011-07-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6
6u27 b01Fixed
Description
Essentially the fix for 6946479 will not work properly for Vista/IE7 specifically. It checks to see if we're on a Vista+ version of windows. If so, UAC limits us to certain options. We can't get a list of IE windows and cycle through it for example. The solution was to set focus on the applets parent browser window before we call navigate. This works in most cases. However, for some reason, with IE7 it only works the first time we call navigate on a named targeted window. (when we open it initially that is) Any subsequent call to navigate will not cause the named targeted window to gain focus. This means we're left with the applet parent window on top of the focus stack.
get reply from ###@###.### as below.
----------------------------------------
We are Applications technology Integration team and we are a bridge  between EBS and underlying technologies. The EBS code is generally very  complex and we remove those complexity and provide a simple testcase to  technology owners (in ur case JDK) which can be run standalone outside  of EBS. This helps in reducing turnaround time for technology fixes. 
I confirm that the standalone testcase provided reflects the exact  problem faced in EBS. Please provide a fix for the standalone testcase  already provided.

Comments
EVALUATION The IE part of the showDocument() fix in JDK 7 is completed, and no further changes are expected in it. The biggest piece of the new solution in JDK 7 is covered by the following webrevs: http://sa.sfbay.sun.com/projects/deployment_data/7/6946479.3/ http://sa.sfbay.sun.com/projects/deployment_data/7/6946479.4/ Conceptually these changes re-implement the showDocument() functionality in a very different way than it was previously in JDK 6, with significant simplification of the code. In JDK 6 we tried to preserve the historical showDocument() behavior unchanged by any possible means. So we had to workaround all of Microsoft's new security features introduced in late IE versions. Good examples are the pop-up blocker and the IE option that lets the user choose where to open new pages, whether in a new tab or new window. All our workaround fixes for bugs resulted in a very curved code, which is on the verge of a hack. Essentially, we started to play against Microsoft's rules, and it may kind of compromise the Java plugin. The UAC feature is just another roadblock on this way. Since this approach is not sustainable for long, it was decided to abandon it, start playing by rules and honor new OS' and browser's features and settings. The new implementation in JDK 7 follows this way. The idea is that we don't have to find workarounds and security holes. Just follow the rules set by browser settings and OS features. There may be changes in the showDocument() behavior with the default IE settings. For example, new windows may be blocked by the pop-up blocker, or they may open in a new tab, not a new window. But this behavior is controlled by browser's options and user configurable. BTW, UAC doesn't create any issues with this approach. The new solution is essentially based on a JavaScript approach. Opening a new document is done by a sequence of IE COM interface calls/FF API calls which do the same as the following JavaScript expression: "windows.open(url, target).focus()"
07-04-2011