United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6991343 Vista/IE7 further showDocument focus issue with named targeted windows
JDK-6991343 : Vista/IE7 further showDocument focus issue with named targeted windows

Details
Type:
Bug
Submit Date:
2010-10-12
Status:
Resolved
Updated Date:
2013-04-20
Project Name:
JDK
Resolved Date:
2011-07-08
Component:
deploy
OS:
windows_vista
Sub-Component:
plugin
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
6u23
Fixed Versions:
6u27 (b01)

Related Reports
Relates:

Sub Tasks

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()"
                                     
2011-04-07



Hardware and Software, Engineered to Work Together