Hello, Dmitry. Thank you for the updates, the new version looks good to me.
With best regards. Petr. On 23 июля 2014 г., at 13:43, dmitry markov <dmitry.mar...@oracle.com> wrote: > Hello Petr, > > Thank you for review. Please find my answer below. > > Thanks, > Dmitry > On 23/07/2014 11:58, Petr Pchelko wrote: >> Hello, Dmitry. >> >>>> What happens if the focused applet is closed? Does the >>>> pluginFocusedWindow correctly updated in this case? >>>> Does the closed applet receives handleFocusEvent(false) event? >>> The closing of an applet means that we closed the browser's window >>> contained the applet or moved to another web-page. In this case we are not >>> interesting in pluginFocusedWindow or focus events anymore, since all >>> applets in the window are destroyed. If we go back to the applet's page, >>> all applets will be started from scratch. >> And what would happen if we press "refresh". The VM is not restarted in this >> case, so couldn't we have a pluginFocusedWindow in an incorrect state after >> that? > If the page is refreshed, all applets will be restarted by Java Plugin and > the focus will be set to the firs applet on the page. We do not care about > pluginFocusedWindow in this case. >> >> Also, I'm not sure about the naming. pluginFocusedWindow seems not quite >> self-explanatory to me. In reality it's "browserWindowFocusedApplet" isn't >> it? Why did you call it "plugin"? > You are right. I updated the field's name. Please find new version here: > http://cr.openjdk.java.net/~dmarkov/8044614/jdk9/webrev.03/ >> >> With best regards. Petr. >> >> On 23 июля 2014 г., at 11:29, dmitry markov <dmitry.mar...@oracle.com> wrote: >> >>> Hello, >>> >>> Could anyone else review the fix, please? >>> >>> https://bugs.openjdk.java.net/browse/JDK-8044614 >>> http://cr.openjdk.java.net/~dmarkov/8044614/jdk9/webrev.02/ >>> >>> Thanks in advance, >>> Dmitry >>> >>> On 18/07/2014 15:57, Alexander Scherbatiy wrote: >>>> The fix looks good to me. >>>> >>>> Thanks, >>>> Alexandr. >>>> >>>> >>>> On 7/18/2014 3:52 PM, dmitry markov wrote: >>>>> Hi Alexandr, >>>>> >>>>> Please find answer below. >>>>> >>>>> Thanks, >>>>> Dmitry >>>>> On 17/07/2014 14:18, Alexander Scherbatiy wrote: >>>>>> The pluginFocusedWindow is only updated after switching from one >>>>>> browser to another (after WindowFocusEvent event). >>>>>> Should it also be updated after switching from one applet to another in >>>>>> the same browser (after FocusEvent)? >>>>> It is not necessary, since the pluginFocusedWindow stores information >>>>> about the latest focused applet in the browser's window. This information >>>>> is only used for focus restoring when the window becomes active again. So >>>>> I think that is enough to update pluginFocusedWindow only in >>>>> handleWindowFocusEvent() when the browser's window becomes inactive. >>>>> >>>>>> What happens if the focused applet is closed? Does the >>>>>> pluginFocusedWindow correctly updated in this case? >>>>>> Does the closed applet receives handleFocusEvent(false) event? >>>>> The closing of an applet means that we closed the browser's window >>>>> contained the applet or moved to another web-page. In this case we are >>>>> not interesting in pluginFocusedWindow or focus events anymore, since all >>>>> applets in the window are destroyed. If we go back to the applet's page, >>>>> all applets will be started from scratch. >>>>>> Thanks, >>>>>> Alexandr. >>>>>> >>>>>> >>>>>> On 7/16/2014 4:08 PM, dmitry markov wrote: >>>>>>> Hi Alexandr, >>>>>>> >>>>>>> I am sorry for the delay. >>>>>>> When a browser's window becomes active/inactive, the browser generates >>>>>>> WindowFocusEvent and sends it to the applets via Java Plugin. So the >>>>>>> order of the events is defined by the browser. I tested several >>>>>>> browsers - all of them sends WindowFocusEvent(parentWindow=false) to >>>>>>> the active window and then WindowFocusEvent(parentWindow=true) to >>>>>>> inactive window during switching between two browser's windows. It >>>>>>> looks like this is common practice for such operation. However, I did >>>>>>> not find any docs which can confirm this behavior. >>>>>>> >>>>>>> Please find new version of the fix here - >>>>>>> http://cr.openjdk.java.net/~dmarkov/8044614/jdk9/webrev.02/ >>>>>>> Changes: >>>>>>> - Made small refactoring: focusedWindow -> globalFocusedWindow, >>>>>>> previousFocusedWindow -> pluginFocusedWindow, etc. >>>>>>> - Added manual test >>>>>>> >>>>>>> Thanks, >>>>>>> Dmitry >>>>>>> >>>>>>> On 04/07/2014 14:26, Alexander Scherbatiy wrote: >>>>>>>> On 7/3/2014 2:25 PM, Alexander Scherbatiy wrote: >>>>>>>>> On 7/3/2014 1:15 PM, dmitry markov wrote: >>>>>>>>>> Hi Alexandr, >>>>>>>>>> >>>>>>>>>> Thank you for review. >>>>>>>>>> For the use case you described - when we move back to the first >>>>>>>>>> browser window with 3 applets, the first applet (not the second one) >>>>>>>>>> will receive the focus. This behavior is incorrect, since the second >>>>>>>>>> applet should receive the focus. >>>>>>>>>> I have updated the fix, please find new version here: >>>>>>>>>> http://cr.openjdk.java.net/~dmarkov/8044614/jdk9/webrev.01/ >>>>>>>>>> Now we store the information about focused applet when browser >>>>>>>>>> window is deactivated and restore the focus to the previously >>>>>>>>>> focused applet when browser window becomes active again >>>>>>>>> The case can be more complicated with some browsers where each of >>>>>>>>> them has several applets. >>>>>>>>> It seems there should be a map between a browser and it's focused >>>>>>>>> applet. >>>>>>>> I see that your fix solves these cases. >>>>>>>> >>>>>>>> One more problem can be with the WindowsFocusEvents order. >>>>>>>> Is it guarantee that order of events WindowsFocusEvent >>>>>>>> (parentwindow=false) to one browser and WindowsFocusEvent >>>>>>>> (parentWindow=true) >>>>>>>> for other browser can't be changed? >>>>>>>> >>>>>>>> I would suggest to do a small refactoring. >>>>>>>> Something like focusedWindow to globalFocusedWindow, >>>>>>>> previousFocusedWindow to pluginFocusedWindow, add method like >>>>>>>> isPluginFocused(...) >>>>>>>> and use conditional operator '?' for globalFocusedWindow setting. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Alexandr. >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> Is it possible to add a manual test for the fix? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Alexandr. >>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Dmitry >>>>>>>>>> >>>>>>>>>> On 02/07/2014 16:36, Alexander Scherbatiy wrote: >>>>>>>>>>> Let's assume one browser has 3 applets where the second applet has >>>>>>>>>>> focus. >>>>>>>>>>> I click on the second browser with an applet (the applet receives >>>>>>>>>>> the focus) and then click on the first browser back. >>>>>>>>>>> Should the second applet in the first browser receive the focus? >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Alexandr. >>>>>>>>>>> >>>>>>>>>>> On 7/2/2014 2:45 PM, dmitry markov wrote: >>>>>>>>>>>> Hello, >>>>>>>>>>>> >>>>>>>>>>>> Could you review the fix for jdk9, please? >>>>>>>>>>>> >>>>>>>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8044614 >>>>>>>>>>>> webrev: >>>>>>>>>>>> http://cr.openjdk.java.net/~dmarkov/8044614/jdk9/webrev.00/ >>>>>>>>>>>> >>>>>>>>>>>> Problem description: on Mac OSX when switching between several >>>>>>>>>>>> applets running in separate browser's windows, the applet in >>>>>>>>>>>> active window does not receive focus. >>>>>>>>>>>> Fix: the method CEmbeddedFrame.handleWindowFocusEvent() should be >>>>>>>>>>>> modified. It has to detect the switching between browser's windows >>>>>>>>>>>> and update focusedWindow field accordingly. >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Dmitry >