<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>70075</bug_id>
          
          <creation_ts>2011-10-13 16:46:08 -0700</creation_ts>
          <short_desc>AX: Regression: Contextual menu not following with VO cursor in HTML content when item is scrolled</short_desc>
          <delta_ts>2013-01-07 14:10:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="chris fleizach">cfleizach</assigned_to>
          <cc>andersca</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>483646</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-13 16:46:08 -0700</bug_when>
    <thetext>10.7.2 11C41 Safari 5.1

When moving the VoiceOver cursor through HTML content, contextual menus are not activating with the proper items.

Steps to Reproduce:
1) Visit a site such as news.google.com.
2) As VoiceOver moves around the page, press Control-Option-Shift-m to activate contextual menus.
2) Find a link and activate contextual menu, check the contents.
3) Find a header that is also a link, activate the contextual menu and check the contents of the menu.
4) Repeat using the mouse.

Actual Results: VoiceOver does not open the contextual menu properly, rather it displays a generic list of options found when a mouse right clicks on empty HTML space.

Expected Results: Contextual menu should display items relative to the object within the VO cursor, such as Open in New Window for links, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483651</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-13 16:53:53 -0700</bug_when>
    <thetext>The problem appears because when we send our event into the context menu handler, we were assuming that it was a WK1 point and allowing the contentsToWIndow calls to transform it. On WK2 that doesn&apos;t work as expected because those methods are non-operations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483656</commentid>
    <comment_count>2</comment_count>
      <attachid>110936</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-13 16:57:11 -0700</bug_when>
    <thetext>Created attachment 110936
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484169</commentid>
    <comment_count>3</comment_count>
      <attachid>110936</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-14 12:19:00 -0700</bug_when>
    <thetext>Comment on attachment 110936
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=110936&amp;action=review

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm:2581
&gt; +    // To generate the correct point on WK2 we must account for sendContextMenuEvent transforming the point
&gt; +    // from windowToContents (which adds the scroll offset). By pre-calling contentsToWindow (and removing the scroll offset)
&gt; +    // the point sent through the WK2 event chain will be accurate.
&gt; +    if (!frameView-&gt;platformWidget())
&gt; +        clickPoint = frameView-&gt;contentsToWindow(clickPoint);

This doesn’t make sense. The sendContextMenuEvent function always transforms the point using windowToContents. That&apos;s not different between WebKit1 and WebKit2. So why would the code here need to be different between WebKit1 and WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484235</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-14 13:25:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 110936 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110936&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm:2581
&gt; &gt; +    // To generate the correct point on WK2 we must account for sendContextMenuEvent transforming the point
&gt; &gt; +    // from windowToContents (which adds the scroll offset). By pre-calling contentsToWindow (and removing the scroll offset)
&gt; &gt; +    // the point sent through the WK2 event chain will be accurate.
&gt; &gt; +    if (!frameView-&gt;platformWidget())
&gt; &gt; +        clickPoint = frameView-&gt;contentsToWindow(clickPoint);
&gt; 
&gt; This doesn’t make sense. The sendContextMenuEvent function always transforms the point using windowToContents. That&apos;s not different between WebKit1 and WebKit2. So why would the code here need to be different between WebKit1 and WebKit2.

I think the problem is that sendContextMenuEvent() DOES transform the point always, but on WK2 that transform is not needed. In order to continue using the stock sendContextMenuEvent (with the fake generated event from within accessibility) we need to undo that transformation so the rest of the machinery works as intended. 

I don&apos;t entirely understand the whole chain, but it appears that&apos;s what&apos;s happening. Note that AX is the only client of sendContextMenuEvent from within WebCore. The rest of clients come in through a different way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484259</commentid>
    <comment_count>5</comment_count>
      <attachid>110936</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-14 13:56:55 -0700</bug_when>
    <thetext>Comment on attachment 110936
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=110936&amp;action=review

&gt;&gt;&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm:2581
&gt;&gt;&gt; +        clickPoint = frameView-&gt;contentsToWindow(clickPoint);
&gt;&gt; 
&gt;&gt; This doesn’t make sense. The sendContextMenuEvent function always transforms the point using windowToContents. That&apos;s not different between WebKit1 and WebKit2. So why would the code here need to be different between WebKit1 and WebKit2.
&gt; 
&gt; I think the problem is that sendContextMenuEvent() DOES transform the point always, but on WK2 that transform is not needed. In order to continue using the stock sendContextMenuEvent (with the fake generated event from within accessibility) we need to undo that transformation so the rest of the machinery works as intended. 
&gt; 
&gt; I don&apos;t entirely understand the whole chain, but it appears that&apos;s what&apos;s happening. Note that AX is the only client of sendContextMenuEvent from within WebCore. The rest of clients come in through a different way

So then it seems we don’t need the if statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484267</commentid>
    <comment_count>6</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-14 14:04:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 110936 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110936&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapper.mm:2581
&gt; &gt;&gt;&gt; +        clickPoint = frameView-&gt;contentsToWindow(clickPoint);
&gt; &gt;&gt; 
&gt; &gt;&gt; This doesn’t make sense. The sendContextMenuEvent function always transforms the point using windowToContents. That&apos;s not different between WebKit1 and WebKit2. So why would the code here need to be different between WebKit1 and WebKit2.
&gt; &gt; 
&gt; &gt; I think the problem is that sendContextMenuEvent() DOES transform the point always, but on WK2 that transform is not needed. In order to continue using the stock sendContextMenuEvent (with the fake generated event from within accessibility) we need to undo that transformation so the rest of the machinery works as intended. 
&gt; &gt; 
&gt; &gt; I don&apos;t entirely understand the whole chain, but it appears that&apos;s what&apos;s happening. Note that AX is the only client of sendContextMenuEvent from within WebCore. The rest of clients come in through a different way
&gt; 
&gt; So then it seems we don’t need the if statement.

I think we do, but I haven&apos;t been able to explain what I think is happening well.

When we call sendContextMenuEvent(), it does a windowToContents() call and then sends it off along its way. It seems on WK1 this is expected that the point for the context menu will be transformed thusly. That transform consists of doing a [view convertRect:] and then adding scroll offset.

On WK2, the point that the context menu hit test is assuming will be used does not expect the scroll offset to be applied. So this if check is basically subtracting the scroll offset (by using contentsToWindow()) before windowToContents() adds it for us.

In other words we could also do
if (isWK2()) 
 clickPoint -= scrollOffset();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484418</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-14 17:07:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; It seems on WK1 this is expected that the point for the context menu will be transformed thusly.

This is where you lost me. Either the point is in window coordinates or its in content coordinates. I don’t know what it means that “this is expect that the point will be transformed thusly”.

&gt; On WK2, the point that the context menu hit test is assuming will be used does not expect the scroll offset to be applied.

Sorry, still not clear. You are saying that the “expectations” different in WebKit1 and WebKit2, and I understand that. But you are not saying why the expectations are different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485617</commentid>
    <comment_count>8</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-10-17 16:33:02 -0700</bug_when>
    <thetext>*** Bug 69232 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485619</commentid>
    <comment_count>9</comment_count>
      <attachid>110936</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-17 16:35:44 -0700</bug_when>
    <thetext>Comment on attachment 110936
patch

Anders, Sam, Simon, can one of you help figure out why the coordinates end up different between WebKit1 and WebKit2? There must be something obvious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509380</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-11-26 12:09:58 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 110936 [details])
&gt; Anders, Sam, Simon, can one of you help figure out why the coordinates end up different between WebKit1 and WebKit2? There must be something obvious.

Sure, I can take a look at it when I get back!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537627</commentid>
    <comment_count>11</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2012-01-17 22:19:30 -0800</bug_when>
    <thetext>Are we sure this is a regression? Do we have evidence to suggest this wasn&apos;t present in WK1? The only AX layout test I see that deals with context menus is accessibility/editable-webarea-context-menu-point.html which wasn&apos;t designed to test the functionality being discussed.

I believe the problem is that the mouseEvent created in accessibilityShowContextMenu() is given coords to click using the AXObject clickPoint() function. These AXObject coords are provided with respect to the FrameView, so if the document has been scrolled clickPoint() can return y values larger than the height of the ViewPort. These coords makes sense in sendContextMenuEvent() when windowToContents() is called because this ensures that our target is inside our ViewPort. However, the actual mouseEvent that we fire needs to be updated with coords relative to the ViewPort before being fired.

I propose we add a function to AXObject that converts a clickPoint to be relative to the ViewPort. We can use the converted point as the x,y pos of the mouse event while keeping the original clickPoint intact as is needed by windowToContents() and other functionality. If others agree with this solution I&apos;ll work up a patch and a layout test to keep this functionality in check moving forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537636</commentid>
    <comment_count>12</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-01-17 22:41:53 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Are we sure this is a regression? Do we have evidence to suggest this wasn&apos;t present in WK1? The only AX layout test I see that deals with context menus is accessibility/editable-webarea-context-menu-point.html which wasn&apos;t designed to test the functionality being discussed.
&gt; 

definitely a regression

&gt; I believe the problem is that the mouseEvent created in accessibilityShowContextMenu() is given coords to click using the AXObject clickPoint() function. These AXObject coords are provided with respect to the FrameView, so if the document has been scrolled clickPoint() can return y values larger than the height of the ViewPort. These coords makes sense in sendContextMenuEvent() when windowToContents() is called because this ensures that our target is inside our ViewPort. However, the actual mouseEvent that we fire needs to be updated with coords relative to the ViewPort before being fired.
&gt; 
&gt; I propose we add a function to AXObject that converts a clickPoint to be relative to the ViewPort. We can use the converted point as the x,y pos of the mouse event while keeping the original clickPoint intact as is needed by windowToContents() and other functionality. If others agree with this solution I&apos;ll work up a patch and a layout test to keep this functionality in check moving forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787402</commentid>
    <comment_count>13</comment_count>
      <attachid>178571</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-12-10 09:21:13 -0800</bug_when>
    <thetext>Created attachment 178571
patch

Started over on this one. This is a problem that&apos;s similar to what we faced when calculating the position of elements in WK2

Essentially, we need to manually find a scroll view and covert the position. The attachment views in WK1 take care of this conversion, but without them on WK2, we need to convert manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801582</commentid>
    <comment_count>14</comment_count>
      <attachid>178571</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-07 13:02:25 -0800</bug_when>
    <thetext>Comment on attachment 178571
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=178571&amp;action=review

&gt; Source/WebCore/ChangeLog:11
&gt; +      

Nit: whitespaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801641</commentid>
    <comment_count>15</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-07 14:09:49 -0800</bug_when>
    <thetext>rdar://10015987</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801642</commentid>
    <comment_count>16</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-01-07 14:10:48 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/138989</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110936</attachid>
            <date>2011-10-13 16:57:11 -0700</date>
            <delta_ts>2012-12-10 09:21:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2264</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDI0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAtMTMgIENocmlzIEZs
ZWl6YWNoMiAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFJlZ3Jlc3Npb246
IENvbnRleHR1YWwgbWVudSBub3QgZm9sbG93aW5nIHdpdGggVk8gY3Vyc29yIGluIEhUTUwgY29u
dGVudCB3aGVuIGl0ZW0gaXMgc2Nyb2xsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwMDc1CisKKyAgICAgICAgVG8gZ2VuZXJhdGUgdGhlIGNvcnJl
Y3QgcG9pbnQgbmVlZGVkIHRvIG9wZW4gYSBjb250ZXh0IG1lbnUgb24gV0syLCB3ZSBoYXZlIHRv
IGFjY291bnQgZm9yIHNlbmRDb250ZXh0TWVudUV2ZW50KCkgdHJhbnNmb3JtaW5nCisgICAgICAg
IHRoZSBwb2ludCBmcm9tIHdpbmRvd1RvQ29udGVudHMgKHdoaWNoIGFkZHMgdGhlIHNjcm9sbCBv
ZmZzZXQpLiBCeSBwcmUtY2FsbGluZyBjb250ZW50c1RvV2luZG93IChhbmQgcmVtb3ZpbmcgdGhl
IHNjcm9sbCBvZmZzZXQpCisgICAgICAgIHRoZSBwb2ludCBzZW50IHRocm91Z2ggdGhlIFdLMiBl
dmVudCBjaGFpbiB3aWxsIGJlIGFjY3VyYXRlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9ubHkgYWZmZWN0cyBXSzIgYW5kIHRoZXJlJ3Mgbm8gbWVj
aGFuaXNtIHRvIHRlc3QgYWNjZXNzaWJpbGl0eSBpbiB0aGlzIGNvbnRleHQgeWV0LgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06
CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlT
aG93Q29udGV4dE1lbnVdKToKKwogMjAxMS0xMC0xMyAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVnYXJkaW5nIGNvbnN0cnVjdG9yLCByZXBsYWNlIFtD
b25zdHJ1Y3RvcldpdGg9Li4uXSBJREwgd2l0aCBbQ2FsbFdpdGg9Li4uXSBJREwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCShyZXZpc2lvbiA5NzQyMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNTczLDYgKzI1NzMsMTIgQEAKIAogICAgIC8vIFNpbXVs
YXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgb2JqZWN0LgogICAgIExheW91dFBvaW50
IGNsaWNrUG9pbnQgPSBtX29iamVjdC0+Y2xpY2tQb2ludCgpOworCisgICAgLy8gVG8gZ2VuZXJh
dGUgdGhlIGNvcnJlY3QgcG9pbnQgb24gV0syIHdlIG11c3QgYWNjb3VudCBmb3Igc2VuZENvbnRl
eHRNZW51RXZlbnQgdHJhbnNmb3JtaW5nIHRoZSBwb2ludAorICAgIC8vIGZyb20gd2luZG93VG9D
b250ZW50cyAod2hpY2ggYWRkcyB0aGUgc2Nyb2xsIG9mZnNldCkuIEJ5IHByZS1jYWxsaW5nIGNv
bnRlbnRzVG9XaW5kb3cgKGFuZCByZW1vdmluZyB0aGUgc2Nyb2xsIG9mZnNldCkKKyAgICAvLyB0
aGUgcG9pbnQgc2VudCB0aHJvdWdoIHRoZSBXSzIgZXZlbnQgY2hhaW4gd2lsbCBiZSBhY2N1cmF0
ZS4KKyAgICBpZiAoIWZyYW1lVmlldy0+cGxhdGZvcm1XaWRnZXQoKSkKKyAgICAgICAgY2xpY2tQ
b2ludCA9IGZyYW1lVmlldy0+Y29udGVudHNUb1dpbmRvdyhjbGlja1BvaW50KTsKICAgICAKICAg
ICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChjbGlja1BvaW50LCBjbGlja1BvaW50LCBS
aWdodEJ1dHRvbiwgTW91c2VFdmVudFByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBjdXJyZW50VGltZSgpKTsKICAgICBib29sIGhhbmRsZWQgPSBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwo=
</data>
<flag name="review"
          id="108597"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178571</attachid>
            <date>2012-12-10 09:21:13 -0800</date>
            <delta_ts>2013-01-07 13:37:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>2792</size>
            <attacher name="chris fleizach">cfleizach</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzE2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTEwICBDaHJpcyBG
bGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFJlZ3Jlc3Npb246
IENvbnRleHR1YWwgbWVudSBub3QgZm9sbG93aW5nIHdpdGggVk8gY3Vyc29yIGluIEhUTUwgY29u
dGVudCB3aGVuIGl0ZW0gaXMgc2Nyb2xsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwMDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgT24gV0syIG9ubHksIHdoZW4gYWNjZXNzaWJpbGl0eSBvcGVucyBh
IGNvbnRleHR1YWwgbWVudSwgaXQgZG9lcyBub3QgaG9ub3IgdGhlIHNjcm9sbCBvZmZzZXQuIAor
ICAgICAgICBPbiBXSzEsIHRoZSBhdHRhY2htZW50IHZpZXdzIGhhbmRsZSB0aGlzIGNvbnZlcnNp
b24gd2hlbiBpdCdzIG5lZWRlZCwgYnV0IG9uIFdLMiBpdCBuZWVkcyB0byBiZSBkb25lIG1hbnVh
bGx5CisgICAgICAgIChzaW1pbGFyIHRvIGhvdyB0aGUgYWNjZXNzaWJpbGl0eSBwb3NpdGlvbiBp
cyBjYWxjdWxhdGVkKS4gCisgICAgICAKKyAgICAgICAgTm8gdGVzdC4gQ2Fubm90IHRlc3QgdGhl
IGxvY2F0aW9uIG9mIGNvbnRleHQgbWVudSBwb3B1cHMgb24gV0syIHlldC4KKworICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tOgorICAg
ICAgICAoLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5U2hvd0Nv
bnRleHRNZW51XSk6CisKIDIwMTItMTItMTAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGluLWJhbmQgdGV4dCB0cmFja3Mg
dG8gTWFjIHBvcnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCShyZXZp
c2lvbiAxMzU3MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjg5MSwxNiArMjg5
MSwyNyBAQAogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlTaG93Q29udGV4dE1lbnUKIHsgICAgCi0g
ICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX29iamVjdC0+ZG9jdW1lbnRGcmFtZVZpZXcoKTsK
LSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgcmV0dXJuOwotICAgIEZyYW1lKiBmcmFtZSA9
IGZyYW1lVmlldy0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm47Ci0g
ICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7CisgICAgUGFnZSogcGFnZSA9IG1fb2JqZWN0
LT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgcGFnZS0+Y29u
dGV4dE1lbnVDb250cm9sbGVyKCktPnNob3dDb250ZXh0TWVudUF0KGZyYW1lLCBtX29iamVjdC0+
Y2xpY2tQb2ludCgpKTsKKyAgICAKKyAgICBJbnRSZWN0IHJlY3QgPSBwaXhlbFNuYXBwZWRJbnRS
ZWN0KG1fb2JqZWN0LT5lbGVtZW50UmVjdCgpKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IG1fb2JqZWN0LT5kb2N1bWVudEZyYW1lVmlldygpOworCisgICAgLy8gT24gV0syLCB3ZSBuZWVk
IHRvIGFjY291bnQgZm9yIHRoZSBzY3JvbGwgcG9zaXRpb24uCisgICAgLy8gT24gV0sxLCB0aGlz
IGlzbid0IG5lY2Vzc2FyeSwgaXQncyB0YWtlbiBjYXJlIG9mIGJ5IHRoZSBhdHRhY2htZW50IHZp
ZXdzLgorICAgIGlmIChmcmFtZVZpZXcgJiYgIWZyYW1lVmlldy0+cGxhdGZvcm1XaWRnZXQoKSkg
eworICAgICAgICAvLyBGaW5kIHRoZSBhcHByb3ByaWF0ZSBzY3JvbGwgdmlldyB0byB1c2UgdG8g
Y29udmVydCB0aGUgY29udGVudHMgdG8gdGhlIHdpbmRvdy4KKyAgICAgICAgZm9yIChBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBwYXJlbnQgPSBtX29iamVjdC0+cGFyZW50T2JqZWN0KCk7IHBhcmVudDsg
cGFyZW50ID0gcGFyZW50LT5wYXJlbnRPYmplY3QoKSkgeworICAgICAgICAgICAgaWYgKHBhcmVu
dC0+aXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygpKSB7CisgICAgICAgICAgICAgICAgU2Nyb2xs
Vmlldyogc2Nyb2xsVmlldyA9IHRvQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcocGFyZW50KS0+c2Ny
b2xsVmlldygpOworICAgICAgICAgICAgICAgIHJlY3QgPSBzY3JvbGxWaWV3LT5jb250ZW50c1Rv
Um9vdFZpZXcocmVjdCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkt
PnNob3dDb250ZXh0TWVudUF0KHBhZ2UtPm1haW5GcmFtZSgpLCByZWN0LmNlbnRlcigpKTsKIH0K
IAogLSAodm9pZClhY2Nlc3NpYmlsaXR5UGVyZm9ybUFjdGlvbjooTlNTdHJpbmcqKWFjdGlvbgo=
</data>
<flag name="review"
          id="195156"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>