<?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>63243</bug_id>
          
          <creation_ts>2011-06-23 04:17:41 -0700</creation_ts>
          <short_desc>PluginView::dispatchNPEvent is deceptive</short_desc>
          <delta_ts>2011-06-30 08:57:46 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>aroben</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>426072</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-23 04:17:41 -0700</bug_when>
    <thetext>This is true for the Qt, Gtk, and Windows implementations. This is the Qt one, the other two are almost the same:

bool PluginView::dispatchNPEvent(NPEvent&amp; event)
{
    ...
    bool accepted = m_plugin-&gt;pluginFuncs()-&gt;event(m_instance, &amp;event);
    ...
    return acccepted;
}

callers are using it this way:
if (!dispatchNPEvent(npEvent))
    event-&gt;setDefaultHandled();

This works because the plugin function returns with 0 if the plugin handled the event but it&apos;s clear that it is messed up.
dispatchNPEvent should return with the inverted value and the caller should call setDefaultHandled if the return value is true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426073</commentid>
    <comment_count>1</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-23 04:24:32 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; This is true for the Qt, Gtk, and Windows implementations. This is the Qt one, the other two are almost the same:
 
Symbian is also suffering from this. According to the test plugin (TestNetscapePlugin) on Mac carbon plugins are also returning with 0 if the event has been handled but I won&apos;t fix that case in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426074</commentid>
    <comment_count>2</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-23 04:25:34 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; This is true for the Qt, Gtk, and Windows implementations. This is the Qt one, the other two are almost the same:
&gt; 
&gt; Symbian is also suffering from this. According to the test plugin (TestNetscapePlugin) on Mac carbon plugins are also returning with 0 if the event has been handled but I won&apos;t fix that case in this patch.

Forget to mention: Cocoa plugins return with 1 if the event has been handled (according to the test plugin).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426077</commentid>
    <comment_count>3</comment_count>
      <attachid>98334</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-23 04:34:44 -0700</bug_when>
    <thetext>Created attachment 98334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426119</commentid>
    <comment_count>4</comment_count>
      <attachid>98334</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-06-23 06:36:24 -0700</bug_when>
    <thetext>Comment on attachment 98334
Patch

It should be possible to write a regression test for this, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426143</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-23 07:11:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 98334 [details])
&gt; It should be possible to write a regression test for this, right?

I cannot imagine any way to test this. The behavior is the same, it is actually  a refactoring to make the code readable. Neither the plugin nor WebCore see any effect of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426153</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-06-23 07:20:46 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; This works because the plugin function returns with 0 if the plugin handled the event but it&apos;s clear that it is messed up.

http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/npp_api6.html says:

If the plug-in handles the event, [NPP_HandleEvent] should return true.
If the plug-in ignores the event, [NPP_HandleEvent] returns false.

This doesn&apos;t seem to match what you&apos;re saying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426178</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-23 08:02:38 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #0)
&gt; &gt; This works because the plugin function returns with 0 if the plugin handled the event but it&apos;s clear that it is messed up.
&gt; 
&gt; http://devedge-temp.mozilla.org/library/manuals/2002/plugin/1.0/npp_api6.html says:
&gt; 
&gt; If the plug-in handles the event, [NPP_HandleEvent] should return true.
&gt; If the plug-in ignores the event, [NPP_HandleEvent] returns false.
&gt; 
&gt; This doesn&apos;t seem to match what you&apos;re saying.

Unfortunately only Cocoa plugins work that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426211</commentid>
    <comment_count>8</comment_count>
      <attachid>98334</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-23 08:53:16 -0700</bug_when>
    <thetext>Comment on attachment 98334
Patch

Clearing flags on attachment: 98334

Committed r89576: &lt;http://trac.webkit.org/changeset/89576&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426212</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-23 08:53:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430433</commentid>
    <comment_count>10</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-06-30 08:29:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; 
&gt; &gt; If the plug-in handles the event, [NPP_HandleEvent] should return true.
&gt; &gt; If the plug-in ignores the event, [NPP_HandleEvent] returns false.
&gt; &gt; 
&gt; &gt; This doesn&apos;t seem to match what you&apos;re saying.
&gt; 
&gt; Unfortunately only Cocoa plugins work that way.

Really? The following seems to CARBON if I&apos;m not mistaken ...
http://trac.webkit.org/browser/trunk/Source/WebCore/plugins/mac/PluginViewMac.mm?rev=89576#L602</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430447</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-30 08:51:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #7)
&gt; &gt; &gt; 
&gt; &gt; &gt; If the plug-in handles the event, [NPP_HandleEvent] should return true.
&gt; &gt; &gt; If the plug-in ignores the event, [NPP_HandleEvent] returns false.
&gt; &gt; &gt; 
&gt; &gt; &gt; This doesn&apos;t seem to match what you&apos;re saying.
&gt; &gt; 
&gt; &gt; Unfortunately only Cocoa plugins work that way.
&gt; 
&gt; Really? The following seems to CARBON if I&apos;m not mistaken ...
&gt; http://trac.webkit.org/browser/trunk/Source/WebCore/plugins/mac/PluginViewMac.mm?rev=89576#L602

Yes it is. And it says:
   if (!dispatchNPEvent(record))
LOG(Events, &quot;PluginView::handleKeyboardEvent(): Keyboard event type %d not accepted&quot;, record.what);
683	    else
684	        event-&gt;setDefaultHandled();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430450</commentid>
    <comment_count>12</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-06-30 08:57:46 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; If the plug-in handles the event, [NPP_HandleEvent] should return true.
&gt; &gt; &gt; &gt; If the plug-in ignores the event, [NPP_HandleEvent] returns false.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This doesn&apos;t seem to match what you&apos;re saying.
&gt; &gt; &gt; 
&gt; &gt; &gt; Unfortunately only Cocoa plugins work that way.
&gt; &gt; 
&gt; &gt; Really? The following seems to CARBON if I&apos;m not mistaken ...
&gt; &gt; http://trac.webkit.org/browser/trunk/Source/WebCore/plugins/mac/PluginViewMac.mm?rev=89576#L602
&gt; 

Again. Last time I was committing the text accidentally, sorry.
So, it says:
   if (!dispatchNPEvent(record))
        LOG(Events, &quot;PluginView::handleKeyboardEvent(): Keyboard event type %d not accepted&quot;, record.what);
    else
        event-&gt;setDefaultHandled();

which means the event has been handled if NPP_HandleEvent returned with 0 a.k.a false.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98334</attachid>
            <date>2011-06-23 04:34:44 -0700</date>
            <delta_ts>2011-06-23 08:53:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63243-20110623113442.patch</filename>
            <type>text/plain</type>
            <size>6609</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk1NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MmEzMmNjOWJiN2ZjZmNi
OTFiZjk0ODQ4NDY1NzkyMjI5MzRlMmFjLi5iMzc1OWY0MDA4NmViZThjOWU5MjFmNjc4MTYxZDg3
MzhjNDU2MzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTEtMDYtMjMgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsdWdpblZpZXc6OmRpc3BhdGNoTlBFdmVudCBpcyBk
ZWNlcHRpdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYzMjQzCisKKyAgICAgICAgU3RyYWlnaHRlbiB0aGUgaW52ZXJ0ZWQgbG9naWMgb2YgZGlzcGF0
Y2hOUEV2ZW50CisgICAgICAgIGFuZCBpdCdzIGNhbGxlcnMuCisKKyAgICAgICAgTm8gY2hhbmdl
IGluIGJlaGF2aW91ciBzbyBubyBuZXcgdGVzdHMuCisgICAgICAgIEV4aXN0aW5nIHBsdWdpbiB0
ZXN0cyBjb3ZlciB0aGlzLgorCisgICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpkaXNwYXRjaE5QRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KToKKyAgICAgICAgKiBwbHVn
aW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpk
aXNwYXRjaE5QRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlS2V5
Ym9hcmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2
ZW50KToKKyAgICAgICAgKiBwbHVnaW5zL3N5bWJpYW4vUGx1Z2luVmlld1N5bWJpYW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgICogcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpkaXNw
YXRjaE5QRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50
KToKKwogMjAxMS0wNi0yMyAgRG1pdHJpeSBWeXVrb3YgIDxkdnl1a292QGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IDIyZGZkZDFkNzM2OTEzMWQ2YWMwMGU0ZDMx
NDBiNzUxYzc1NTg1ODMuLjQ4Y2E1ODE4OTRjMTk2NTI4MmZjZDU3ZDliOTlmNjU2ZTJlZGU2ZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC0x
MDcsNyArMTA3LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpkaXNwYXRjaE5QRXZlbnQoTlBFdmVudCYg
ZXZlbnQpCiAgICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoSlNDOjpT
aWxlbmNlQXNzZXJ0aW9uc09ubHkpOwogICAgIHNldENhbGxpbmdQbHVnaW4odHJ1ZSk7CiAKLSAg
ICBib29sIGFjY2VwdGVkID0gbV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmV2ZW50KG1faW5zdGFu
Y2UsICZldmVudCk7CisgICAgYm9vbCBhY2NlcHRlZCA9ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3Mo
KS0+ZXZlbnQobV9pbnN0YW5jZSwgJmV2ZW50KTsKIAogICAgIHNldENhbGxpbmdQbHVnaW4oZmFs
c2UpOwogICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwpAQCAtMzAzLDcg
KzMwMyw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50KiBldmVudCkKICAgICB4RXZlbnQueGtleS55X3Jvb3QgPSAwOwogI2VuZGlmCiAKLSAgICBp
ZiAoIWRpc3BhdGNoTlBFdmVudCh4RXZlbnQpKQorICAgIGlmIChkaXNwYXRjaE5QRXZlbnQoeEV2
ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKQEAgLTQzNSw3
ICs0MzUsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCog
ZXZlbnQpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgogCi0gICAgaWYgKCFkaXNwYXRjaE5QRXZl
bnQoeEV2ZW50KSkKKyAgICBpZiAoZGlzcGF0Y2hOUEV2ZW50KHhFdmVudCkpCiAgICAgICAgIGV2
ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0
L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggOGFjYjkwYTk3MGE1NWVjNWI3YmY5NzU4OWZkZTIwZjk1
ZWRhZWMxZC4uMDU2YmQxYjhkYTUxNzg1YzljODc1NzJhYWJmM2E3ZGJlNzQ4OWU4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApAQCAtNDA0LDcgKzQwNCw3
IEBAIGJvb2wgUGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2ZW50KE5QRXZlbnQmIGV2ZW50KQogICAg
IEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tzKEpTQzo6U2lsZW5jZUFzc2Vy
dGlvbnNPbmx5KTsKICNlbmRpZgogICAgIHNldENhbGxpbmdQbHVnaW4odHJ1ZSk7Ci0gICAgYm9v
bCBhY2NlcHRlZCA9IG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5ldmVudChtX2luc3RhbmNlLCAm
ZXZlbnQpOworICAgIGJvb2wgYWNjZXB0ZWQgPSAhbV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmV2
ZW50KG1faW5zdGFuY2UsICZldmVudCk7CiAgICAgc2V0Q2FsbGluZ1BsdWdpbihmYWxzZSk7CiAg
ICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7CiAKQEAgLTQ4MCw3ICs0ODAs
NyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCiAgICAgaW5pdFhFdmVudCgmbnBFdmVudCk7CiAgICAgc2V0WEtleUV2ZW50U3BlY2lm
aWNGaWVsZHMoJm5wRXZlbnQsIGV2ZW50KTsKIAotICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5w
RXZlbnQpKQorICAgIGlmIChkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50
LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBQbHVn
aW5WaWV3OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogICAgIGVsc2UKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCisgICAg
aWYgKGRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRI
YW5kbGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlh
bi9QbHVnaW5WaWV3U3ltYmlhbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3N5bWJpYW4v
UGx1Z2luVmlld1N5bWJpYW4uY3BwCmluZGV4IDVjMGU5YzBhN2E2MzE0NWI0NWQ4NmFmNGExYTY1
YTE2ZmY5MTRiNmYuLjUzYWRmMWJhNDI2ZTMzZTM5MTBiZGE0MmJiYTc2MGIxMmJiZjE2MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvc3ltYmlhbi9QbHVnaW5WaWV3U3ltYmlh
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9zeW1iaWFuL1BsdWdpblZpZXdTeW1i
aWFuLmNwcApAQCAtMjIyLDcgKzIyMiw3IEBAIGJvb2wgUGx1Z2luVmlldzo6ZGlzcGF0Y2hOUEV2
ZW50KE5QRXZlbnQmIGV2ZW50KQogICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFs
bExvY2tzKEpTQzo6U2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKIAogICAgIHNldENhbGxpbmdQbHVn
aW4odHJ1ZSk7Ci0gICAgYm9vbCBhY2NlcHRlZCA9IG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5l
dmVudChtX2luc3RhbmNlLCAmZXZlbnQpOworICAgIGJvb2wgYWNjZXB0ZWQgPSAhbV9wbHVnaW4t
PnBsdWdpbkZ1bmNzKCktPmV2ZW50KG1faW5zdGFuY2UsICZldmVudCk7CiAgICAgc2V0Q2FsbGlu
Z1BsdWdpbihmYWxzZSk7CiAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7
CiAKQEAgLTIzNiw3ICsyMzYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZl
bnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKICAgICBBU1NFUlQoZXZlbnQtPmtleUV2ZW50KCkt
PnF0RXZlbnQoKSk7CiAgICAgUUV2ZW50JiBucEV2ZW50ID0gKihldmVudC0+a2V5RXZlbnQoKS0+
cXRFdmVudCgpKTsKLSAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICBpZiAo
ZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKIH0KIApAQCAtMjg5LDcgKzI4OSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91
c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICAgICAgbW9kaWZpZXJzIHw9IFF0OjpNZXRh
TW9kaWZpZXI7CiAgICAgUU1vdXNlRXZlbnQgbW91c2VFdmVudCh0eXBlLCBwb3NpdGlvbiwgYnV0
dG9uLCBidXR0b24sIG1vZGlmaWVycyk7IAogICAgIFFFdmVudCYgbnBFdmVudCA9IG1vdXNlRXZl
bnQ7Ci0gICAgaWYgKCFkaXNwYXRjaE5QRXZlbnQobnBFdmVudCkpCisgICAgaWYgKGRpc3BhdGNo
TlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXgg
ODNjNDk2NjMzNDUzNTY5M2JjYTgyMDllYWE4MmE4N2NkMTgzODdhOS4uZWQ2MTY1MWUxNGZlYjc5
YTBhZTM2YzYxMWVlNTI2ZDVlMDE3NzcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHAKQEAgLTUwOCwxMyArNTA4LDEzIEBAIGJvb2wgUGx1Z2luVmll
dzo6ZGlzcGF0Y2hOUEV2ZW50KE5QRXZlbnQmIG5wRXZlbnQpCiAKICAgICBKU0M6OkpTTG9jazo6
RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhKU0M6OlNpbGVuY2VBc3NlcnRpb25zT25seSk7CiAg
ICAgc2V0Q2FsbGluZ1BsdWdpbih0cnVlKTsKLSAgICBib29sIHJlc3VsdCA9IG1fcGx1Z2luLT5w
bHVnaW5GdW5jcygpLT5ldmVudChtX2luc3RhbmNlLCAmbnBFdmVudCk7CisgICAgYm9vbCBhY2Nl
cHRlZCA9ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+ZXZlbnQobV9pbnN0YW5jZSwgJm5wRXZl
bnQpOwogICAgIHNldENhbGxpbmdQbHVnaW4oZmFsc2UpOwogCiAgICAgaWYgKHNob3VsZFBvcCkg
CiAgICAgICAgIHBvcFBvcHVwc0VuYWJsZWRTdGF0ZSgpOwogCi0gICAgcmV0dXJuIHJlc3VsdDsK
KyAgICByZXR1cm4gYWNjZXB0ZWQ7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6cGFpbnRJbnRvVHJh
bnNmb3JtZWRDb250ZXh0KEhEQyBoZGMpCkBAIC02NTIsNyArNjUyLDcgQEAgdm9pZCBQbHVnaW5W
aWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogICAgIH0KIAog
ICAgIEpTQzo6SlNMb2NrOjpEcm9wQWxsTG9ja3MgZHJvcEFsbExvY2tzKEpTQzo6U2lsZW5jZUFz
c2VydGlvbnNPbmx5KTsKLSAgICBpZiAoIWRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKKyAgICBp
ZiAoZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKIH0KIApAQCAtNzIwLDcgKzcyMCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFuZGxl
TW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgSlND
OjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoSlNDOjpTaWxlbmNlQXNzZXJ0aW9u
c09ubHkpOwotICAgIGlmICghZGlzcGF0Y2hOUEV2ZW50KG5wRXZlbnQpKQorICAgIGlmIChkaXNw
YXRjaE5QRXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgp
OwogCiAjaWYgIVBMQVRGT1JNKFFUKSAmJiAhUExBVEZPUk0oV1gpICYmICFPUyhXSU5DRSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>