<?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>59124</bug_id>
          
          <creation_ts>2011-04-21 11:41:49 -0700</creation_ts>
          <short_desc>WebKit2 thinks the web process is unresponsive when a plugin displays a context menu</short_desc>
          <delta_ts>2011-05-02 12:24:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.communitymx.com/content/source/E5141/wmodetrans.htm</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Jeff Miller">jeffm</assigned_to>
          <cc>andersca</cc>
    
    <cc>jeffm</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390202</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-21 11:41:49 -0700</bug_when>
    <thetext>To reproduce:

1. Go to http://www.communitymx.com/content/source/E5141/wmodetrans.htm
2. Right-click on the plugin and wait 3 seconds

The UI process ends up calling the didBecomeUnresponsive callback. Not good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390204</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-21 11:42:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/9318600&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390205</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-21 11:44:25 -0700</bug_when>
    <thetext>See also bug 58943.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393433</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-27 01:17:49 -0700</bug_when>
    <thetext>NetscapePlugin::handleMouseEvent in Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp is probably the right place to start investigating this.

We should also figure out if this only happens for windowless plugins (as in the case in comment 0), or also happens for windowed plugins. I would guess that this only happens for windowless plugins, as windowed plugins will receive mouse events directly from the OS so the UI process should never even see them. (The audio player on &lt;http://frostyschristmastreefarm.com/&gt; is a windowed plugin.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393652</commentid>
    <comment_count>4</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-04-27 10:54:18 -0700</bug_when>
    <thetext>The root cause is that the UI process relies on receiving the Messages::WebPageProxy::DidReceiveEvent message in order to stop the responsiveness timer.  This is sent from the web process from WebPage::mouseEvent() after WebKit::handleMouseEvent() returns, which doesn&apos;t happen until context menu navigation is complete.

We hook TrackPopupMenu() to we can substitute a dummy window if TrackPopupMenu() is passed a window that is owned by another thread, we could also use this hook to send a new type of message to the UI process that would tell it to stop the responsiveness timer in this case (maybe only if we&apos;re in the middle of processing a mouse event?), but it&apos;s not clear if it&apos;s possible or desirable to send a message from this layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393668</commentid>
    <comment_count>5</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-04-27 11:11:31 -0700</bug_when>
    <thetext>Adam pointed out that maybe we should tell the UI process to stop the responsiveness timer for any event we send to the plugin in a NetscapePlugin::platformHandleXXXEvent() member function, since we have no way of knowing how long the plugin will take to process the event.  The downside of doing this is that if the plugin does become unresponsive, the user won&apos;t know this immediately unless they click on the web page again.  At this point, if the web process is unresponsive because of a hung plugin, the responsiveness timer will fire.

Also, the PluginView (which is also the PluginController) does know about its WebPage, so we can call back to the WebPage to send a message to the UI process to stop its responsive timer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395359</commentid>
    <comment_count>6</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-04-29 10:53:36 -0700</bug_when>
    <thetext>(In reply to comment #3)
 &gt; We should also figure out if this only happens for windowless plugins (as in the case in comment 0), or also happens for windowed plugins. I would guess that this only happens for windowless plugins, as windowed plugins will receive mouse events directly from the OS so the UI process should never even see them. (The audio player on &lt;http://frostyschristmastreefarm.com/&gt; is a windowed plugin.)

I verified that this is not an issue for windowed plugins, for the reasons Adam mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395382</commentid>
    <comment_count>7</comment_count>
      <attachid>91709</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-04-29 11:21:45 -0700</bug_when>
    <thetext>Created attachment 91709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395383</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-04-29 11:25:27 -0700</bug_when>
    <thetext>How does this bug relate to bug 58943?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395388</commentid>
    <comment_count>9</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-04-29 11:28:22 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; How does this bug relate to bug 58943?

It&apos;s the Windows version of that bug, although as I mentioned Anders fixed it in a completely different way.  Note that we don&apos;t run plugins in a separate process on Windows like we do on the Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395505</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-29 14:12:59 -0700</bug_when>
    <thetext>Attachment 91709 did not build on mac:
Build output: http://queues.webkit.org/results/8517900</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396521</commentid>
    <comment_count>11</comment_count>
      <attachid>91950</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-05-02 11:58:11 -0700</bug_when>
    <thetext>Created attachment 91950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396527</commentid>
    <comment_count>12</comment_count>
      <attachid>91950</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-05-02 12:02:05 -0700</bug_when>
    <thetext>Comment on attachment 91950
Patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2660
&gt; +void WebPageProxy::stopResponsivenessTimer()
&gt; +{
&gt; +    // If we&apos;re sending an event to a plug-in, we can&apos;t control how long the plug-in
&gt; +    // takes to process it (e.g. it may display a context menu), so we stop the
&gt; +    // responsiveness timer in this case.
&gt; +    process()-&gt;responsivenessTimer()-&gt;stop();
&gt; +}

This comment doesn&apos;t seem appropriate here. I think you can just leave it out. The function is pretty self-explanatory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396548</commentid>
    <comment_count>13</comment_count>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-05-02 12:24:31 -0700</bug_when>
    <thetext>Committed r85502: &lt;http://trac.webkit.org/changeset/85502&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91709</attachid>
            <date>2011-04-29 11:21:45 -0700</date>
            <delta_ts>2011-04-29 14:44:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59124-20110429112137.patch</filename>
            <type>text/plain</type>
            <size>7657</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1MzM4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDQtMjkgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYktpdDIgdGhpbmtzIHRoZSB3ZWIgcHJvY2VzcyBpcyB1bnJlc3Bv
bnNpdmUgd2hlbiBhIHBsdWdpbiBkaXNwbGF5cyBhIGNvbnRleHQgbWVudQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMjQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzkzMTg2MDA+CisgICAgICAgIAorICAgICAgICBUaGlzIGlzIHRoZSBXaW5kb3dz
IHZlcnNpb24gb2YgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODk0
Mz4uCisKKyAgICAgICAgU2luY2Ugd2UgaGF2ZSBubyBjb250cm9sIG92ZXIgaG93IGxvbmcgYSBw
bHVnaW4gd2lsbCB0YWtlIHRvIGhhbmRsZSBhbiBldmVudCwgd2UgbmVlZAorICAgICAgICB0byB0
ZWxsIHRoZSBVSSBwcm9jZXNzIHRvIHN0b3AgaXRzIHJlc3BvbnNpdmUgdGltZXIgd2hlbiB3ZSdy
ZSBhYm91dCB0byBzZW5kIGFuIGV2ZW50CisgICAgICAgIHRvIHRoZSBwbHVnaW4uIFRoZSBkb3du
c2lkZSBvZiBkb2luZyB0aGlzIGlzIHRoYXQgaWYgdGhlIHBsdWdpbiBkb2VzIGJlY29tZSB1bnJl
c3BvbnNpdmUsCisgICAgICAgIHRoZSB1c2VyIHdvbid0IGtub3cgdGhpcyBpbW1lZGlhdGVseSB1
bnRpbCB0aGV5IGNsaWNrIG9uIHRoZSB3ZWIgcGFnZSBhZ2Fpbi4gIEF0IHRoYXQgcG9pbnQsCisg
ICAgICAgIGlmIHRoZSB3ZWIgcHJvY2VzcyBpcyB1bnJlc3BvbnNpdmUgYmVjYXVzZSBvZiBhIGh1
bmcgcGx1Z2luLCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgd2lsbCBmaXJlLgorICAgICAgICAK
KyAgICAgICAgSSd2ZSBhZGRlZCBzdXBwb3J0IGZvciB0ZWxsaW5nIHRoZSBVSSBwcm9jZXNzIHRv
IHN0b3AgaXRzIHJlc3BvbnNpdm5lc3MgdGltZXIgb24gYWxsIHBsYXRmb3JtcywKKyAgICAgICAg
YWx0aG91Z2ggd2UncmUgb25seSBkb2luZyB0aGlzIG9uIFdpbmRvd3MgY3VycmVudGx5IChBbmRl
cnMgZml4ZWQgYnVnIDU4OTQzIGluIGEgZGlmZmVyZW50IHdheQorICAgICAgICBvbiB0aGUgTWFj
KS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKTogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBBZGRlZCBzdG9wUmVzcG9uc2l2ZW5lc3NU
aW1lcigpLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IEFk
ZGVkIFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIG1lc3NhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtUGFpbnQpOiBUZWxsIG91ciBjb250cm9s
bGVyIHdoZW4gd2UncmUgYWJvdXQgdG8gc2VuZCBhbiBldmVudCB0byB0aGUgcGx1Z2luLgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUV2ZW50KTog
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1v
dXNlRW50ZXJFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6
cGxhdGZvcm1IYW5kbGVNb3VzZUxlYXZlRXZlbnQpOiBEaXR0by4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmg6IEFkZGVkIHdpbGxTZW5kRXZlbnRUb1Bs
dWdpbigpLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6d2lsbFNlbmRFdmVudFRvUGx1Z2luKTogQWRkZWQs
IHRlbGwgdGhlIFVJIHByb2Nlc3MgdG8gc3RvcCBpdHMgcmVzcG9uc2l2ZW5lc3MgdGltZXIuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaDogQWRkZWQgd2lsbFNlbmRF
dmVudFRvUGx1Z2luKCkuCisKIDIwMTEtMDQtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lv
biA4NTMyMykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNjM4LDYgKzI2MzgsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVFdmVudCh1aW50MwogICAgIH0KIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BS
ZXNwb25zaXZlbmVzc1RpbWVyKCkKK3sKKyAgICAvLyBJZiB3ZSdyZSBzZW5kaW5nIGFuIGV2ZW50
IHRvIGEgcGx1Zy1pbiwgd2UgY2FuJ3QgY29udHJvbCBob3cgbG9uZyB0aGUgcGx1Zy1pbgorICAg
IC8vIHRha2VzIHRvIHByb2Nlc3MgaXQgKGUuZy4gaXQgbWF5IGRpc3BsYXkgYSBjb250ZXh0IG1l
bnUpLCBzbyB3ZSBzdG9wIHRoZQorICAgIC8vIHJlc3BvbnNpdmVuZXNzIHRpbWVyIGluIHRoaXMg
Y2FzZS4KKyAgICBwcm9jZXNzKCktPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RvcCgpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6dm9pZENhbGxiYWNrKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7
CiAgICAgUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX3ZvaWRDYWxsYmFja3MudGFr
ZShjYWxsYmFja0lEKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgJKHJldmlzaW9uIDg1MzIzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC02ODUsNiArNjg1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKIAogICAgIHZvaWQgZGlkUmVj
ZWl2ZUV2ZW50KHVpbnQzMl90IG9wYXF1ZVR5cGUsIGJvb2wgaGFuZGxlZCk7CisgICAgdm9pZCBz
dG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpOwogCiAgICAgdm9pZCB2b2lkQ2FsbGJhY2sodWludDY0
X3QpOwogICAgIHZvaWQgZGF0YUNhbGxiYWNrKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2Um
LCB1aW50NjRfdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDg1MzIzKQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzMs
NiArMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIE1pc3NpbmdQbHVnaW5C
dXR0b25DbGlja2VkKFdURjo6U3RyaW5nIG1pbWVUeXBlLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6
U3RyaW5nIHBsdWdpbnNQYWdlVVJMKQogICAgIERpZENoYW5nZVZpZXdwb3J0RGF0YShXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cyBhcmd1bWVudHMpCiAgICAgRGlkUmVjZWl2ZUV2ZW50KHVpbnQz
Ml90IHR5cGUsIGJvb2wgaGFuZGxlZCkKKyAgICBTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpCiAg
ICAgU2V0Q3Vyc29yKFdlYkNvcmU6OkN1cnNvciBjdXJzb3IpCiAgICAgU2V0U3RhdHVzVGV4dChX
VEY6OlN0cmluZyBzdGF0dXNUZXh0KQogICAgIFNldFRvb2xUaXAoV1RGOjpTdHJpbmcgdG9vbFRp
cCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9s
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkNvbnRyb2xsZXIuaAkocmV2aXNpb24gODUzMjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2
ICs4Myw5IEBAIHB1YmxpYzoKICAgICAvLyBUZWxscyB0aGUgY29udHJvbGxlciB0aGF0IHRoZSBw
bHVnLWluIHByb2Nlc3MgaGFzIGNyYXNoZWQuCiAgICAgdmlydHVhbCB2b2lkIHBsdWdpblByb2Nl
c3NDcmFzaGVkKCkgPSAwOwogICAgIAorICAgIC8vIFRlbGxzIHRoZSBjb250cm9sbGVyIHRoYXQg
d2UncmUgYWJvdXQgdG8gZGlzcGF0Y2ggYW4gZXZlbnQgdG8gdGhlIHBsdWctaW4uCisgICAgdmly
dHVhbCB2b2lkIHdpbGxTZW5kRXZlbnRUb1BsdWdpbigpID0gMDsKKyAgICAKICNpZiBQTEFURk9S
TShXSU4pCiAgICAgLy8gVGhlIHdpbmRvdyB0byB1c2UgYXMgdGhlIHBhcmVudCBvZiB0aGUgcGx1
Z2luJ3Mgd2luZG93LgogICAgIHZpcnR1YWwgSFdORCBuYXRpdmVQYXJlbnRXaW5kb3coKSA9IDA7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuY3BwCShyZXZpc2lvbiA4NTMyMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTg5LDYgKzk4OSwxNCBAQCB2
b2lkIFBsdWdpblZpZXc6OnBsdWdpblByb2Nlc3NDcmFzaGVkKCkKICAgICBpbnZhbGlkYXRlUmVj
dChmcmFtZVJlY3QoKSk7CiB9CiAKK3ZvaWQgUGx1Z2luVmlldzo6d2lsbFNlbmRFdmVudFRvUGx1
Z2luKCkKK3sKKyAgICAvLyBJZiB3ZSdyZSBzZW5kaW5nIGFuIGV2ZW50IHRvIGEgcGx1Zy1pbiwg
d2UgY2FuJ3QgY29udHJvbCBob3cgbG9uZyB0aGUgcGx1Zy1pbgorICAgIC8vIHRha2VzIHRvIHBy
b2Nlc3MgaXQgKGUuZy4gaXQgbWF5IGRpc3BsYXkgYSBjb250ZXh0IG1lbnUpLCBzbyB3ZSB0ZWxs
IHRoZSBVSSBwcm9jZXNzCisgICAgLy8gdG8gc3RvcCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIg
aW4gdGhpcyBjYXNlLgorICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcigpKTsKK30KKwogI2lmIFBMQVRGT1JNKFdJTikKIEhX
TkQgUGx1Z2luVmlldzo6bmF0aXZlUGFyZW50V2luZG93KCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gODUzMjMp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBwbHVnaW5Qcm9j
ZXNzQ3Jhc2hlZCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZEV2ZW50VG9QbHVnaW4oKTsK
ICNpZiBQTEFURk9STShXSU4pCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVBhcmVudFdpbmRvdygp
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcAko
cmV2aXNpb24gODUzMjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvd2luL05ldHNjYXBlUGx1Z2luV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc3LDYg
KzE3Nyw4IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtUGFpbnQoR3JhcGgKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAorICAgIG1fcGx1Z2luQ29udHJvbGxlci0+d2lsbFNlbmRFdmVu
dFRvUGx1Z2luKCk7CisgICAgCiAgICAgLy8gRklYTUU6IFN1cHBvcnQgdHJhbnNwYXJlbnQgcGx1
Z2lucy4KICAgICBMb2NhbFdpbmRvd3NDb250ZXh0IHdpbmRvd3NDb250ZXh0KGNvbnRleHQsIGRp
cnR5UmVjdCwgZmFsc2UpOwogCkBAIC0yODQsNiArMjg2LDggQEAgYm9vbCBOZXRzY2FwZVBsdWdp
bjo6cGxhdGZvcm1IYW5kbGVNb3VzZQogICAgIGlmIChtX2lzV2luZG93ZWQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIG1fcGx1Z2luQ29udHJvbGxlci0+d2lsbFNlbmRFdmVudFRvUGx1
Z2luKCk7CisKICAgICBOUEV2ZW50IG5wRXZlbnQgPSB0b05QKGV2ZW50KTsKICAgICBOUFBfSGFu
ZGxlRXZlbnQoJm5wRXZlbnQpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMzExLDYgKzMxNSw4IEBA
IGJvb2wgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtSGFuZGxlTW91c2UKICAgICBpZiAobV9pc1dp
bmRvd2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXIt
PndpbGxTZW5kRXZlbnRUb1BsdWdpbigpOworCiAgICAgTlBFdmVudCBucEV2ZW50ID0gdG9OUChl
dmVudCk7CiAgICAgTlBQX0hhbmRsZUV2ZW50KCZucEV2ZW50KTsKICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTMyMyw2ICszMjksOCBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1v
dXNlCiAgICAgaWYgKG1faXNXaW5kb3dlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
bV9wbHVnaW5Db250cm9sbGVyLT53aWxsU2VuZEV2ZW50VG9QbHVnaW4oKTsKKwogICAgIE5QRXZl
bnQgbnBFdmVudCA9IHRvTlAoZXZlbnQpOwogICAgIE5QUF9IYW5kbGVFdmVudCgmbnBFdmVudCk7
CiAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91950</attachid>
            <date>2011-05-02 11:58:11 -0700</date>
            <delta_ts>2011-05-02 12:02:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59124-20110502115759.patch</filename>
            <type>text/plain</type>
            <size>9090</size>
            <attacher name="Jeff Miller">jeffm</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1NDk4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDUtMDIgIEplZmYgTWls
bGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYktpdDIgdGhpbmtzIHRoZSB3ZWIgcHJvY2VzcyBpcyB1bnJlc3Bv
bnNpdmUgd2hlbiBhIHBsdWdpbiBkaXNwbGF5cyBhIGNvbnRleHQgbWVudQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMjQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzkzMTg2MDA+CisgICAgICAgIAorICAgICAgICBUaGlzIGlzIHRoZSBXaW5kb3dz
IHZlcnNpb24gb2YgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODk0
Mz4uCisKKyAgICAgICAgU2luY2Ugd2UgaGF2ZSBubyBjb250cm9sIG92ZXIgaG93IGxvbmcgYSBw
bHVnaW4gd2lsbCB0YWtlIHRvIGhhbmRsZSBhbiBldmVudCwgd2UgbmVlZAorICAgICAgICB0byB0
ZWxsIHRoZSBVSSBwcm9jZXNzIHRvIHN0b3AgaXRzIHJlc3BvbnNpdmUgdGltZXIgd2hlbiB3ZSdy
ZSBhYm91dCB0byBzZW5kIGFuIGV2ZW50CisgICAgICAgIHRvIHRoZSBwbHVnaW4uIFRoZSBkb3du
c2lkZSBvZiBkb2luZyB0aGlzIGlzIHRoYXQgaWYgdGhlIHBsdWdpbiBkb2VzIGJlY29tZSB1bnJl
c3BvbnNpdmUsCisgICAgICAgIHRoZSB1c2VyIHdvbid0IGtub3cgdGhpcyBpbW1lZGlhdGVseSB1
bnRpbCB0aGV5IGNsaWNrIG9uIHRoZSB3ZWIgcGFnZSBhZ2Fpbi4gIEF0IHRoYXQgcG9pbnQsCisg
ICAgICAgIGlmIHRoZSB3ZWIgcHJvY2VzcyBpcyB1bnJlc3BvbnNpdmUgYmVjYXVzZSBvZiBhIGh1
bmcgcGx1Z2luLCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgd2lsbCBmaXJlLgorICAgICAgICAK
KyAgICAgICAgV2UncmUgb25seSBkb2luZyB0aGlzIG9uIFdpbmRvd3MgY3VycmVudGx5IHdoZW4g
cnVubmluZyBwbHVnaW5zIGluIHRoZSB3ZWIgcHJvY2VzcyAoQW5kZXJzIGZpeGVkCisgICAgICAg
IGJ1ZyA1ODk0MyBpbiBhIGRpZmZlcmVudCB3YXkgd2hlbiBydW5uaW5nIHBsdWdpbnMgaW4gYSBz
ZXBhcmF0ZSBwbHVnaW4gcHJvY2VzcyBvbiB0aGUgTWFjKS4KKworICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
Q29udHJvbGxlclByb3h5Ojp3aWxsU2VuZEV2ZW50VG9QbHVnaW4pOiBBZGRlZCwgbm90IHVzZWQg
d2hlbiBydW5uaW5nIHBsdWdpbnMgaW4gYSBzZXBhcmF0ZSBwcm9jZXNzLgorICAgICAgICAqIFBs
dWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmg6IEFkZGVkIHdpbGxTZW5kRXZlbnRU
b1BsdWdpbigpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEFkZGVkIHN0b3BSZXNwb25z
aXZlbmVzc1RpbWVyKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjogQWRkZWQgU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgbWVzc2FnZS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS93aW4vTmV0c2NhcGVQbHVnaW5XaW4uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1QYWludCk6IFRlbGwgb3Vy
IGNvbnRyb2xsZXIgd2hlbiB3ZSdyZSBhYm91dCB0byBzZW5kIGFuIGV2ZW50IHRvIHRoZSBwbHVn
aW4uCisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNl
RXZlbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnBsYXRmb3Jt
SGFuZGxlTW91c2VFbnRlckV2ZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBl
UGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlTGVhdmVFdmVudCk6IERpdHRvLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkNvbnRyb2xsZXIuaDogQWRkZWQgd2lsbFNlbmRF
dmVudFRvUGx1Z2luKCkuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3Ojp3aWxsU2VuZEV2ZW50VG9QbHVnaW4p
OiBBZGRlZCwgdGVsbCB0aGUgVUkgcHJvY2VzcyB0byBzdG9wIGl0cyByZXNwb25zaXZlbmVzcyB0
aW1lci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOiBBZGRlZCB3
aWxsU2VuZEV2ZW50VG9QbHVnaW4oKS4KKwogMjAxMS0wNC0yOSAgU3RldmUgRmFsa2VuYnVyZyAg
PHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93
aWFrLgpJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVy
UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmNwcAkocmV2aXNpb24gODU0NzUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5Myw2ICsyOTMsMTIgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBsdWdpblBy
b2NlcwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCit2b2lkIFBsdWdpbkNvbnRyb2xs
ZXJQcm94eTo6d2lsbFNlbmRFdmVudFRvUGx1Z2luKCkKK3sKKyAgICAvLyBUaGlzIGlzIG9ubHkg
dXNlZCB3aGVuIHJ1bm5pbmcgcGx1Z2lucyBpbiB0aGUgd2ViIHByb2Nlc3MuCisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKICNpZiBQTEFURk9STShNQUMpCiB2b2lkIFBsdWdpbkNvbnRy
b2xsZXJQcm94eTo6c2V0Q29tcGxleFRleHRJbnB1dEVuYWJsZWQoYm9vbCBjb21wbGV4VGV4dElu
cHV0RW5hYmxlZCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAkocmV2aXNpb24gODU0NzUpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1
c2JhclRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNo
ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvUGx1Z2luKCk7CiAKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIHNldENvbXBsZXhUZXh0SW5wdXRFbmFibGVk
KGJvb2wpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJ
KHJldmlzaW9uIDg1NDc1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NTEsNiArMjY1MSwxNCBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUmVjZWl2ZUV2ZW50KHVpbnQzCiAgICAgfQogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6c3RvcFJlc3BvbnNpdmVuZXNzVGltZXIoKQoreworICAgIC8vIElmIHdlJ3JlIHNlbmRpbmcg
YW4gZXZlbnQgdG8gYSBwbHVnLWluLCB3ZSBjYW4ndCBjb250cm9sIGhvdyBsb25nIHRoZSBwbHVn
LWluCisgICAgLy8gdGFrZXMgdG8gcHJvY2VzcyBpdCAoZS5nLiBpdCBtYXkgZGlzcGxheSBhIGNv
bnRleHQgbWVudSksIHNvIHdlIHN0b3AgdGhlCisgICAgLy8gcmVzcG9uc2l2ZW5lc3MgdGltZXIg
aW4gdGhpcyBjYXNlLgorICAgIHByb2Nlc3MoKS0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdG9w
KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojp2b2lkQ2FsbGJhY2sodWludDY0X3QgY2FsbGJh
Y2tJRCkKIHsKICAgICBSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjayA9IG1fdm9pZENhbGxi
YWNrcy50YWtlKGNhbGxiYWNrSUQpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAkocmV2aXNpb24gODU0NzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5MCw2ICs2OTAsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwogCiAgICAgdm9p
ZCBkaWRSZWNlaXZlRXZlbnQodWludDMyX3Qgb3BhcXVlVHlwZSwgYm9vbCBoYW5kbGVkKTsKKyAg
ICB2b2lkIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCk7CiAKICAgICB2b2lkIHZvaWRDYWxsYmFj
ayh1aW50NjRfdCk7CiAgICAgdm9pZCBkYXRhQ2FsbGJhY2soY29uc3QgQ29yZUlQQzo6RGF0YVJl
ZmVyZW5jZSYsIHVpbnQ2NF90KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gODU0NzUpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTWlzc2lu
Z1BsdWdpbkJ1dHRvbkNsaWNrZWQoV1RGOjpTdHJpbmcgbWltZVR5cGUsIFdURjo6U3RyaW5nIHVy
bCwgV1RGOjpTdHJpbmcgcGx1Z2luc1BhZ2VVUkwpCiAgICAgRGlkQ2hhbmdlVmlld3BvcnREYXRh
KFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIGFyZ3VtZW50cykKICAgICBEaWRSZWNlaXZlRXZl
bnQodWludDMyX3QgdHlwZSwgYm9vbCBoYW5kbGVkKQorICAgIFN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyKCkKICAgICBTZXRDdXJzb3IoV2ViQ29yZTo6Q3Vyc29yIGN1cnNvcikKICAgICBTZXRTdGF0
dXNUZXh0KFdURjo6U3RyaW5nIHN0YXR1c1RleHQpCiAgICAgU2V0VG9vbFRpcChXVEY6OlN0cmlu
ZyB0b29sVGlwKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bkNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luQ29udHJvbGxlci5oCShyZXZpc2lvbiA4NTQ3NSkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Db250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTgzLDYgKzgzLDkgQEAgcHVibGljOgogICAgIC8vIFRlbGxzIHRoZSBjb250cm9sbGVyIHRo
YXQgdGhlIHBsdWctaW4gcHJvY2VzcyBoYXMgY3Jhc2hlZC4KICAgICB2aXJ0dWFsIHZvaWQgcGx1
Z2luUHJvY2Vzc0NyYXNoZWQoKSA9IDA7CiAgICAgCisgICAgLy8gVGVsbHMgdGhlIGNvbnRyb2xs
ZXIgdGhhdCB3ZSdyZSBhYm91dCB0byBkaXNwYXRjaCBhbiBldmVudCB0byB0aGUgcGx1Zy1pbi4K
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRFdmVudFRvUGx1Z2luKCkgPSAwOworICAgIAogI2lm
IFBMQVRGT1JNKFdJTikKICAgICAvLyBUaGUgd2luZG93IHRvIHVzZSBhcyB0aGUgcGFyZW50IG9m
IHRoZSBwbHVnaW4ncyB3aW5kb3cuCiAgICAgdmlydHVhbCBIV05EIG5hdGl2ZVBhcmVudFdpbmRv
dygpID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDg1NDc1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OTAsNiArOTkw
LDE0IEBAIHZvaWQgUGx1Z2luVmlldzo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQoKQogICAgIGludmFs
aWRhdGVSZWN0KGZyYW1lUmVjdCgpKTsKIH0KIAordm9pZCBQbHVnaW5WaWV3Ojp3aWxsU2VuZEV2
ZW50VG9QbHVnaW4oKQoreworICAgIC8vIElmIHdlJ3JlIHNlbmRpbmcgYW4gZXZlbnQgdG8gYSBw
bHVnLWluLCB3ZSBjYW4ndCBjb250cm9sIGhvdyBsb25nIHRoZSBwbHVnLWluCisgICAgLy8gdGFr
ZXMgdG8gcHJvY2VzcyBpdCAoZS5nLiBpdCBtYXkgZGlzcGxheSBhIGNvbnRleHQgbWVudSksIHNv
IHdlIHRlbGwgdGhlIFVJIHByb2Nlc3MKKyAgICAvLyB0byBzdG9wIHRoZSByZXNwb25zaXZlbmVz
cyB0aW1lciBpbiB0aGlzIGNhc2UuCisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKCkpOworfQorCiAjaWYgUExBVEZPUk0o
V0lOKQogSFdORCBQbHVnaW5WaWV3OjpuYXRpdmVQYXJlbnRXaW5kb3coKQogewpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCShyZXZpc2lv
biA4NTQ3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9v
bCBpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHBs
dWdpblByb2Nlc3NDcmFzaGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kRXZlbnRUb1Bs
dWdpbigpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2aXJ0dWFsIEhXTkQgbmF0aXZlUGFyZW50
V2luZG93KCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS93aW4vTmV0c2NhcGVQbHVnaW5XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS93aW4vTmV0c2NhcGVQbHVnaW5X
aW4uY3BwCShyZXZpc2lvbiA4NTQ3NSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS93aW4vTmV0c2NhcGVQbHVnaW5XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzcsNiArMTc3LDggQEAgdm9pZCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1QYWludChHcmFw
aAogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9wbHVnaW5Db250cm9sbGVyLT53aWxs
U2VuZEV2ZW50VG9QbHVnaW4oKTsKKyAgICAKICAgICAvLyBGSVhNRTogU3VwcG9ydCB0cmFuc3Bh
cmVudCBwbHVnaW5zLgogICAgIExvY2FsV2luZG93c0NvbnRleHQgd2luZG93c0NvbnRleHQoY29u
dGV4dCwgZGlydHlSZWN0LCBmYWxzZSk7CiAKQEAgLTI4NCw2ICsyODYsOCBAQCBib29sIE5ldHNj
YXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlCiAgICAgaWYgKG1faXNXaW5kb3dlZCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgbV9wbHVnaW5Db250cm9sbGVyLT53aWxsU2VuZEV2
ZW50VG9QbHVnaW4oKTsKKwogICAgIE5QRXZlbnQgbnBFdmVudCA9IHRvTlAoZXZlbnQpOwogICAg
IE5QUF9IYW5kbGVFdmVudCgmbnBFdmVudCk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0zMTEsNiAr
MzE1LDggQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZQogICAgIGlm
IChtX2lzV2luZG93ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIG1fcGx1Z2luQ29u
dHJvbGxlci0+d2lsbFNlbmRFdmVudFRvUGx1Z2luKCk7CisKICAgICBOUEV2ZW50IG5wRXZlbnQg
PSB0b05QKGV2ZW50KTsKICAgICBOUFBfSGFuZGxlRXZlbnQoJm5wRXZlbnQpOwogICAgIHJldHVy
biB0cnVlOwpAQCAtMzIzLDYgKzMyOSw4IEBAIGJvb2wgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3Jt
SGFuZGxlTW91c2UKICAgICBpZiAobV9pc1dpbmRvd2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKKyAgICBtX3BsdWdpbkNvbnRyb2xsZXItPndpbGxTZW5kRXZlbnRUb1BsdWdpbigpOworCiAg
ICAgTlBFdmVudCBucEV2ZW50ID0gdG9OUChldmVudCk7CiAgICAgTlBQX0hhbmRsZUV2ZW50KCZu
cEV2ZW50KTsKICAgICByZXR1cm4gdHJ1ZTsK
</data>
<flag name="review"
          id="84858"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>