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
> 

Reply via email to