<?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>103947</bug_id>
          
          <creation_ts>2012-12-03 16:32:08 -0800</creation_ts>
          <short_desc>[Chromium] Detach the frame and destroy the page immediately upon request to closeHelperPlugin().</short_desc>
          <delta_ts>2012-12-04 20:56:36 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Dorwin">ddorwin</reporter>
          <assigned_to name="David Dorwin">ddorwin</assigned_to>
          <cc>abarth</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782019</commentid>
    <comment_count>0</comment_count>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-03 16:32:08 -0800</bug_when>
    <thetext>[Chromium] Detach the frame and destroy the page immediately upon request to closeHelperPlugin().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782028</commentid>
    <comment_count>1</comment_count>
      <attachid>177370</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-03 16:41:58 -0800</bug_when>
    <thetext>Created attachment 177370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782044</commentid>
    <comment_count>2</comment_count>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-03 16:55:02 -0800</bug_when>
    <thetext>Regarding the WebPagePopupImpl changes, I&apos;m not sure if m_page might be needed between closePopup() and close(). animate(), layout(), and paint() are the only calls that don&apos;t have a check for a null m_page. Destroying the page in a function that is the opposite of the one that creates it seems cleaner.

I&apos;m not sure if WebWidget::close() would be called without closeHelperPlugin()/closePopup() so I&apos;ve left a second call to dinitPage() in WebPagePopupImpl::close().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782049</commentid>
    <comment_count>3</comment_count>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-03 17:05:13 -0800</bug_when>
    <thetext>tkent, please take a look since this this affects WebPagePopupImpl and WebHelperPluginImpl is based on WebPagePopupImpl. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782098</commentid>
    <comment_count>4</comment_count>
      <attachid>177370</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-12-03 18:14:30 -0800</bug_when>
    <thetext>Comment on attachment 177370
Patch

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

For WebPagePopupImpl, I think m_page was necessary until close() because it received events. Now it has m_closing flag and we may destroy m_page in closePopup.

&gt; Source/WebKit/chromium/src/WebHelperPluginImpl.cpp:142
&gt; +    deinitPage();

nit: The word &apos;deinit&apos; is not popular in WebKit.  We had better rename it to destroyPage, destructPage, or closePage?

Note that we should have given full-spelled names to &apos;init&apos; and &apos;initPage&apos;.

&gt; Source/WebKit/chromium/src/WebHelperPluginImpl.cpp:217
&gt; +    // Initiate shutdown. This will cause a lot of notifications to be sent.

I guess this comment explained a reason of RefPtr&lt;WebFrameImpl&gt;, and we don&apos;t need the comment in this case.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:-1536
&gt; -    RefPtr&lt;WebFrameImpl&gt; mainFrameImpl;
&gt; -
&gt;      if (m_page) {
&gt;          // Initiate shutdown for the entire frameset.  This will cause a lot of
&gt;          // notifications to be sent.
&gt;          if (m_page-&gt;mainFrame()) {
&gt; -            mainFrameImpl = WebFrameImpl::fromFrame(m_page-&gt;mainFrame());

I&apos;m not sure if this is really unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782125</commentid>
    <comment_count>5</comment_count>
      <attachid>177370</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-03 18:49:12 -0800</bug_when>
    <thetext>Comment on attachment 177370
Patch

Thanks!

&gt; For WebPagePopupImpl, I think m_page was necessary until close() because it received events. Now it has m_closing flag and we may destroy m_page in closePopup.

Are you saying that m_closing should protect us or that destroying m_page in closePopup() is a problem? Should I add checks to animate(), layout(), and paint()?


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

&gt;&gt; Source/WebKit/chromium/src/WebHelperPluginImpl.cpp:142
&gt;&gt; +    deinitPage();
&gt; 
&gt; nit: The word &apos;deinit&apos; is not popular in WebKit.  We had better rename it to destroyPage, destructPage, or closePage?
&gt; 
&gt; Note that we should have given full-spelled names to &apos;init&apos; and &apos;initPage&apos;.

Okay, I will change it. Do you have a preference for destroy vs. close? Shall I also change init to initialize/create or is that too far outside the scope of this CL? (The naming may depend on whether we actually destroy m_page.)

&gt;&gt; Source/WebKit/chromium/src/WebHelperPluginImpl.cpp:217
&gt;&gt; +    // Initiate shutdown. This will cause a lot of notifications to be sent.
&gt; 
&gt; I guess this comment explained a reason of RefPtr&lt;WebFrameImpl&gt;, and we don&apos;t need the comment in this case.

I&apos;m not sure it was related to that (see my comment in WebViewImpl.cpp below). I&apos;ll delete it anyway.

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:-1536
&gt;&gt; -            mainFrameImpl = WebFrameImpl::fromFrame(m_page-&gt;mainFrame());
&gt; 
&gt; I&apos;m not sure if this is really unnecessary.

I was unsure as well until I looked at where it was added [1]. If present mainFrameImpl, was used again at line 779. Thus, I think it was just to provide access (and ensure it was not destroyed until that access). I don&apos;t think this is responsible for managing the lifetime anymore.

[1] http://trac.webkit.org/browser/trunk/WebKit/chromium/src/WebViewImpl.cpp?rev=50739#L761</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782150</commentid>
    <comment_count>6</comment_count>
      <attachid>177370</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-12-03 19:52:22 -0800</bug_when>
    <thetext>Comment on attachment 177370
Patch

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

&gt;&gt;&gt; Source/WebKit/chromium/src/WebHelperPluginImpl.cpp:142
&gt;&gt;&gt; +    deinitPage();
&gt;&gt; 
&gt;&gt; nit: The word &apos;deinit&apos; is not popular in WebKit.  We had better rename it to destroyPage, destructPage, or closePage?
&gt;&gt; 
&gt;&gt; Note that we should have given full-spelled names to &apos;init&apos; and &apos;initPage&apos;.
&gt; 
&gt; Okay, I will change it. Do you have a preference for destroy vs. close? Shall I also change init to initialize/create or is that too far outside the scope of this CL? (The naming may depend on whether we actually destroy m_page.)

I prefer destoryPage.

I don&apos;t think you should rename init/initPage in this bug.

&gt;&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:-1536
&gt;&gt;&gt; -            mainFrameImpl = WebFrameImpl::fromFrame(m_page-&gt;mainFrame());
&gt;&gt; 
&gt;&gt; I&apos;m not sure if this is really unnecessary.
&gt; 
&gt; I was unsure as well until I looked at where it was added [1]. If present mainFrameImpl, was used again at line 779. Thus, I think it was just to provide access (and ensure it was not destroyed until that access). I don&apos;t think this is responsible for managing the lifetime anymore.
&gt; 
&gt; [1] http://trac.webkit.org/browser/trunk/WebKit/chromium/src/WebViewImpl.cpp?rev=50739#L761

Oh, it seems you&apos;re right.
However this code removal isn&apos;t related to this bug.  I recommend to remove it in a separated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782151</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-12-03 19:55:19 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; For WebPagePopupImpl, I think m_page was necessary until close() because it received events. Now it has m_closing flag and we may destroy m_page in closePopup.
&gt; 
&gt; Are you saying that m_closing should protect us or that destroying m_page in closePopup() is a problem? Should I add checks to animate(), layout(), and paint()?

I meant destroying m_page in closePopup() was a problem before introducing m_closing. You can go ahead the patch now.  We don&apos;t need m_page check in animate, layout, and paint because they already check it in PageWidgetDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782992</commentid>
    <comment_count>8</comment_count>
      <attachid>177577</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-04 15:02:17 -0800</bug_when>
    <thetext>Created attachment 177577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783004</commentid>
    <comment_count>9</comment_count>
      <attachid>177370</attachid>
    <who name="David Dorwin">ddorwin</who>
    <bug_when>2012-12-04 15:07:21 -0800</bug_when>
    <thetext>Comment on attachment 177370
Patch

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

&gt;&gt;&gt;&gt; Source/WebKit/chromium/src/WebHelperPluginImpl.cpp:142
&gt;&gt;&gt;&gt; +    deinitPage();
&gt;&gt;&gt; 
&gt;&gt;&gt; nit: The word &apos;deinit&apos; is not popular in WebKit.  We had better rename it to destroyPage, destructPage, or closePage?
&gt;&gt;&gt; 
&gt;&gt;&gt; Note that we should have given full-spelled names to &apos;init&apos; and &apos;initPage&apos;.
&gt;&gt; 
&gt;&gt; Okay, I will change it. Do you have a preference for destroy vs. close? Shall I also change init to initialize/create or is that too far outside the scope of this CL? (The naming may depend on whether we actually destroy m_page.)
&gt; 
&gt; I prefer destoryPage.
&gt; 
&gt; I don&apos;t think you should rename init/initPage in this bug.

Done.

&gt;&gt;&gt; Source/WebKit/chromium/src/WebHelperPluginImpl.cpp:217
&gt;&gt;&gt; +    // Initiate shutdown. This will cause a lot of notifications to be sent.
&gt;&gt; 
&gt;&gt; I guess this comment explained a reason of RefPtr&lt;WebFrameImpl&gt;, and we don&apos;t need the comment in this case.
&gt; 
&gt; I&apos;m not sure it was related to that (see my comment in WebViewImpl.cpp below). I&apos;ll delete it anyway.

Done.

&gt;&gt;&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:-1536
&gt;&gt;&gt;&gt; -            mainFrameImpl = WebFrameImpl::fromFrame(m_page-&gt;mainFrame());
&gt;&gt;&gt; 
&gt;&gt;&gt; I&apos;m not sure if this is really unnecessary.
&gt;&gt; 
&gt;&gt; I was unsure as well until I looked at where it was added [1]. If present mainFrameImpl, was used again at line 779. Thus, I think it was just to provide access (and ensure it was not destroyed until that access). I don&apos;t think this is responsible for managing the lifetime anymore.
&gt;&gt; 
&gt;&gt; [1] http://trac.webkit.org/browser/trunk/WebKit/chromium/src/WebViewImpl.cpp?rev=50739#L761
&gt; 
&gt; Oh, it seems you&apos;re right.
&gt; However this code removal isn&apos;t related to this bug.  I recommend to remove it in a separated patch.

Done - Removed file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783167</commentid>
    <comment_count>10</comment_count>
      <attachid>177577</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-12-04 17:35:24 -0800</bug_when>
    <thetext>Comment on attachment 177577
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783339</commentid>
    <comment_count>11</comment_count>
      <attachid>177577</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 20:56:32 -0800</bug_when>
    <thetext>Comment on attachment 177577
Patch

Clearing flags on attachment: 177577

Committed r136631: &lt;http://trac.webkit.org/changeset/136631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783340</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 20:56:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177370</attachid>
            <date>2012-12-03 16:41:58 -0800</date>
            <delta_ts>2012-12-04 15:07:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103947-20121203163925.patch</filename>
            <type>text/plain</type>
            <size>8708</size>
            <attacher name="David Dorwin">ddorwin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGU0MjQyMTIzZmMzYmNjZGJlMDViYTc1MWI2MmZkMDA5ODUyNjZiYTcuLjllYWY2Y2I2YzQ5MGI2
MmMxZDRmNGYwMTE1ODg1ZWQyMzBiY2Y2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzggQEAKKzIwMTItMTItMDMgIERhdmlkIERvcndpbiAgPGRkb3J3aW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gRGV0YWNoIHRoZSBmcmFtZSBhbmQgZGVzdHJv
eSB0aGUgcGFnZSBpbW1lZGlhdGVseSB1cG9uIHJlcXVlc3QgdG8gY2xvc2VIZWxwZXJQbHVnaW4o
KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzk0
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRo
ZSBjYXNlIHRoYXQgdGhlIGhvc3QgcGFnZSBpcyBiZWluZyBkZXN0cm95ZWQsIHNvbWUgb2YgdGhl
IG9iamVjdHMKKyAgICAgICAgdGhlIHBhZ2UgZGVwZW5kcyBvbiwgc3BlY2lmaWNhbGx5IFJlbmRl
clZpZXdJbXBsLCBtYXkgYmUgZGVzdHJveWVkIGJ5CisgICAgICAgIHRoZSB0aW1lIGNsb3NlKCkg
aXMgY2FsbGVkIGFzeW5jaHJvbm91c2x5LgorICAgICAgICBUaGUgZnJhbWVEZXRhY2hlZCgpIGNh
bGxpbmcgY29kZSB3YXMgb3JpZ2luYWxseSBjb3BpZWQgZnJvbQorICAgICAgICBXZWJWaWV3SW1w
bDo6Y2xvc2UoKSwgYnV0IFdlYlZpZXdJbXBsIGRvZXMgbm90IGhhdmUgYW4gYXN5bmNocm9ub3Vz
CisgICAgICAgIGNsb3NpbmcgbWVjaGFuaXNtIGxpa2UgdGhlIFdlYldpZGdldHMuCisKKyAgICAg
ICAgVGhpcyBpcyB0aGUgZml4IGZvciBodHRwOi8vY3JidWcuY29tLzE2MDY1MAorCisgICAgICAg
ICogc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIZWxw
ZXJQbHVnaW5JbXBsOjppbml0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSGVscGVyUGx1Z2luSW1w
bDo6Y2xvc2VIZWxwZXJQbHVnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJIZWxwZXJQbHVnaW5J
bXBsOjpkZWluaXRQYWdlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkhlbHBlclBsdWdpbkltcGw6OmNsb3NlKTouCisgICAgICAgIChXZWJLaXQ6OldlYkhlbHBlclBs
dWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKiBzcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oOgorICAg
ICAgICAoV2ViSGVscGVyUGx1Z2luSW1wbCk6CisgICAgICAgICogc3JjL1dlYlBhZ2VQb3B1cElt
cGwuY3BwOiBNYWRlIHNpbWlsYXIgY2hhbmdlcyBzaW5jZSBpdCBmb2xsb3dzIHRoZSBzYW1lIG1v
ZGVsLiAoSSB0aGluayB0aGUgd2F5IHBvcHVwcyBhcmUgY2xvc2VkIGhhcyBwcmV2ZW50ZWQgdGhl
IHJhY2UgY29uZGl0aW9uIGZyb20gb2NjdXJyaW5nIGZvciBwb3B1cHMuKQorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUG9wdXBJbXBsOjpkZWluaXRQYWdlKToKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQb3B1cEltcGw6OmNsb3NlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVBvcHVwSW1wbDo6Y2xvc2VQb3B1cCk6CisgICAgICAgICogc3JjL1dlYlBhZ2VQ
b3B1cEltcGwuaDoKKyAgICAgICAgKFdlYlBhZ2VQb3B1cEltcGwpOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjbG9zZSk6IFJl
bW92ZWQgcmVsYXRlZCBvYnNvbGV0ZSBjb2RlLgorCiAyMDEyLTEyLTAyICBTYWRydWwgSGFiaWIg
Q2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIENv
cnJlY3QgdGhlIGxvY2F0aW9uIG9mIHN5bnRoZXRpYyBtb3VzZSBldmVudHMgd2hlbiBwYWdlIGlz
IHpvb21lZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVscGVy
UGx1Z2luSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVn
aW5JbXBsLmNwcAppbmRleCAwMDk5MTcxMmQxODNiMTFjMGQ4MzIxMmE4YTFhYjgzMGFkNDZiNjlm
Li5hZGIzNTBmNjk3ZjIzM2IwOWViNDY5ZjMwODkyZDMxNjFmN2I5NDdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcApAQCAtODcs
NiArODcsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRv
d1Nvb24oKSBPVkVSUklERQogICAgIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgYmUg
Y2FsbGVkIHNpbmNlIHRoZSBvbmx5IHdheSB0byBjbG9zZSB0aGUKKyAgICAgICAgLy8gaW52aXNp
YmxlIHBhZ2UgaXMgdmlhIGNsb3NlSGVscGVyUGx1Z2luKCkuCisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyAKICAgICAgICAgbV93aWRnZXQtPmNsb3NlSGVscGVyUGx1Z2luKCk7CiAgICAg
fQogCkBAIC0xMjAsNyArMTIzLDYgQEAgYm9vbCBXZWJIZWxwZXJQbHVnaW5JbXBsOjppbml0KFdl
YlZpZXdJbXBsKiB3ZWJWaWV3LCBjb25zdCBTdHJpbmcmIHBsdWdpblR5cGUpCiAgICAgaWYgKCFp
bml0UGFnZSh3ZWJWaWV3LCBwbHVnaW5UeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IG1fd2lkZ2V0Q2xpZW50LT5zaG93KFdlYk5hdmlnYXRpb25Qb2xpY3koKSk7Ci0KICAgICBzZXRG
b2N1cyh0cnVlKTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtMTMzLDYgKzEzNSwxMiBAQCB2b2lk
IFdlYkhlbHBlclBsdWdpbkltcGw6OmNsb3NlSGVscGVyUGx1Z2luKCkKICAgICAgICAgbV9wYWdl
LT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnN0b3BBbGxMb2FkZXJzKCk7CiAgICAgICAgIG1fcGFn
ZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5zdG9wTG9hZGluZyhVbmxvYWRFdmVudFBvbGljeU5v
bmUpOwogICAgIH0KKworICAgIC8vIFdlIG11c3QgZGVzdHJveSB0aGUgcGFnZSBub3cgaW4gY2Fz
ZSB0aGUgaG9zdCBwYWdlIGlzIGJlaW5nIGRlc3Ryb3llZCwgaW4KKyAgICAvLyB3aGljaCBjYXNl
IHNvbWUgb2YgdGhlIG9iamVjdHMgdGhlIHBhZ2UgZGVwZW5kcyBvbiBtYXkgaGF2ZSBiZWVuCisg
ICAgLy8gZGVzdHJveWVkIGJ5IHRoZSB0aW1lIHRoaXMtPmNsb3NlKCkgaXMgY2FsbGVkIGFzeW5j
aHJvbm91c2x5LgorICAgIGRlaW5pdFBhZ2UoKTsKKwogICAgIC8vIG1fd2lkZ2V0Q2xpZW50IG1p
Z2h0IGJlIDAgYmVjYXVzZSB0aGlzIHdpZGdldCBtaWdodCBiZSBhbHJlYWR5IGNsb3NlZC4KICAg
ICBpZiAobV93aWRnZXRDbGllbnQpIHsKICAgICAgICAgLy8gY2xvc2VXaWRnZXRTb29uKCkgd2ls
bCBjYWxsIHRoaXMtPmNsb3NlKCkgbGF0ZXIuCkBAIC0yMDEsNiArMjA5LDE4IEBAIGJvb2wgV2Vi
SGVscGVyUGx1Z2luSW1wbDo6aW5pdFBhZ2UoV2ViS2l0OjpXZWJWaWV3SW1wbCogd2ViVmlldywg
Y29uc3QgU3RyaW5nJiBwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgV2ViSGVscGVyUGx1
Z2luSW1wbDo6ZGVpbml0UGFnZSgpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIEluaXRpYXRlIHNodXRkb3duLiBUaGlzIHdpbGwgY2F1c2UgYSBsb3Qgb2Yg
bm90aWZpY2F0aW9ucyB0byBiZSBzZW50LgorICAgIGlmIChtX3BhZ2UtPm1haW5GcmFtZSgpKQor
ICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+ZnJhbWVEZXRhY2hlZCgpOwor
CisgICAgbV9wYWdlLmNsZWFyKCk7Cit9CisKIHZvaWQgV2ViSGVscGVyUGx1Z2luSW1wbDo6c2V0
Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpCiB7CiB9CkBAIC0yMjUsMTcgKzI0NSw3IEBAIHZvaWQg
V2ViSGVscGVyUGx1Z2luSW1wbDo6c2V0Rm9jdXMoYm9vbCBlbmFibGUpCiAKIHZvaWQgV2ViSGVs
cGVyUGx1Z2luSW1wbDo6Y2xvc2UoKQogewotICAgIFJlZlB0cjxXZWJGcmFtZUltcGw+IG1haW5G
cmFtZUltcGw7Ci0KLSAgICBpZiAobV9wYWdlKSB7Ci0gICAgICAgIC8vIEluaXRpYXRlIHNodXRk
b3duLiBUaGlzIHdpbGwgY2F1c2UgYSBsb3Qgb2Ygbm90aWZpY2F0aW9ucyB0byBiZSBzZW50Lgot
ICAgICAgICBpZiAobV9wYWdlLT5tYWluRnJhbWUoKSkgewotICAgICAgICAgICAgbWFpbkZyYW1l
SW1wbCA9IFdlYkZyYW1lSW1wbDo6ZnJvbUZyYW1lKG1fcGFnZS0+bWFpbkZyYW1lKCkpOwotICAg
ICAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmZyYW1lRGV0YWNoZWQoKTsK
LSAgICAgICAgfQotICAgICAgICBtX3BhZ2UuY2xlYXIoKTsKLSAgICB9Ci0KKyAgICBBU1NFUlQo
IW1fcGFnZSk7IC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCB2aWEgY2xvc2VQb3B1cCgpLgogICAg
IG1fd2lkZ2V0Q2xpZW50ID0gMDsKICAgICBkZXJlZigpOwogfQpAQCAtMjQ4LDEwICsyNTgsMTAg
QEAgV2ViSGVscGVyUGx1Z2luKiBXZWJIZWxwZXJQbHVnaW46OmNyZWF0ZShXZWJXaWRnZXRDbGll
bnQqIGNsaWVudCkKICAgICAgICAgQ1JBU0goKTsKICAgICAvLyBBIFdlYkhlbHBlclBsdWdpbklt
cGwgaW5zdGFuY2UgdXN1YWxseSBoYXMgdHdvIHJlZmVyZW5jZXMuCiAgICAgLy8gIC0gT25lIG93
bmVkIGJ5IHRoZSBpbnN0YW5jZSBpdHNlbGYuIEl0IHJlcHJlc2VudHMgdGhlIHZpc2libGUgd2lk
Z2V0LgotICAgIC8vICAtIE9uZSBvd25lZCBieSBhIFdlYlZpZXdJbXBsLiBJdCdzIHJlbGVhc2Vk
IHdoZW4gdGhlIFdlYlZpZXdJbXBsIGFzayB0aGUKLSAgICAvLyAgICBXZWJIZWxwZXJQbHVnaW5J
bXBsIHRvIGNsb3NlLgorICAgIC8vICAtIE9uZSBvd25lZCBieSB0aGUgaG9zdGluZyBlbGVtZW50
LiBJdCdzIHJlbGVhc2VkIHdoZW4gdGhlIGhvc3RpbmcKKyAgICAvLyAgICBlbGVtZW50IGFza3Mg
dGhlIFdlYkhlbHBlclBsdWdpbkltcGwgdG8gY2xvc2UuCiAgICAgLy8gV2UgbmVlZCB0aGVtIGJl
Y2F1c2UgdGhlIGNsb3Npbmcgb3BlcmF0aW9uIGlzIGFzeW5jaHJvbm91cyBhbmQgdGhlIHdpZGdl
dAotICAgIC8vIGNhbiBiZSBjbG9zZWQgd2hpbGUgdGhlIFdlYlZpZXdJbXBsIGlzIHVuYXdhcmUg
b2YgaXQuCisgICAgLy8gY2FuIGJlIGNsb3NlZCB3aGlsZSB0aGUgaG9zdGluZyBlbGVtZW50IGlz
IHVuYXdhcmUgb2YgaXQuCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJIZWxwZXJQbHVnaW5J
bXBsKGNsaWVudCkpLmxlYWtSZWYoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5oCmluZGV4IDJlYjI4ZWMzMTBlNTY1MTFkMGUzZjg0
MjY4YmU3MDZmYWUzMGQ3MzkuLmZlMmQ3NWVkODEzOTkxNjU2YTM0MTZkMzEyMWZkM2ZhYmU3ZjIx
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdp
bkltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5J
bXBsLmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNpdCBX
ZWJIZWxwZXJQbHVnaW5JbXBsKFdlYldpZGdldENsaWVudCopOwogICAgIGJvb2wgaW5pdFBhZ2Uo
V2ViS2l0OjpXZWJWaWV3SW1wbCosIGNvbnN0IFN0cmluZyYgcGx1Z2luVHlwZSk7CisgICAgdm9p
ZCBkZWluaXRQYWdlKCk7CiAKICAgICAvLyBXZWJXaWRnZXQgbWV0aG9kczoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29tcG9zaXRvclN1cmZhY2VSZWFkeSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAppbmRleCBjNGI5MzRhYWE1
NzU0NTUxODVmNmVjZGUyZjk5NDc5NmVkZGVkOTAyLi4xN2ZjYjY4N2I2NThkODMwYWE5MTdiMDkx
Y2YzZDYzMTQyN2UwODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJQYWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
YWdlUG9wdXBJbXBsLmNwcApAQCAtMjI1LDYgKzIyNSwxOCBAQCBib29sIFdlYlBhZ2VQb3B1cElt
cGw6OmluaXRQYWdlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBXZWJQYWdlUG9wdXBJ
bXBsOjpkZWluaXRQYWdlKCkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gSW5pdGlhdGUgc2h1dGRvd24uIFRoaXMgd2lsbCBjYXVzZSBhIGxvdCBvZiBub3Rp
ZmljYXRpb25zIHRvIGJlIHNlbnQuCisgICAgaWYgKG1fcGFnZS0+bWFpbkZyYW1lKCkpCisgICAg
ICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5mcmFtZURldGFjaGVkKCk7CisKKyAg
ICBtX3BhZ2UuY2xlYXIoKTsKK30KKwogV2ViU2l6ZSBXZWJQYWdlUG9wdXBJbXBsOjpzaXplKCkK
IHsKICAgICByZXR1cm4gbV9wb3B1cENsaWVudC0+Y29udGVudFNpemUoKTsKQEAgLTMxMyw5ICsz
MjUsNyBAQCB2b2lkIFdlYlBhZ2VQb3B1cEltcGw6OnNldEZvY3VzKGJvb2wgZW5hYmxlKQogdm9p
ZCBXZWJQYWdlUG9wdXBJbXBsOjpjbG9zZSgpCiB7CiAgICAgbV9jbG9zaW5nID0gdHJ1ZTsKLSAg
ICBpZiAobV9wYWdlICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFp
bkZyYW1lKCktPmxvYWRlcigpLT5mcmFtZURldGFjaGVkKCk7Ci0gICAgbV9wYWdlLmNsZWFyKCk7
CisgICAgZGVpbml0UGFnZSgpOyAvLyBJbiBjYXNlIGNsb3NlUG9wdXAoKSB3YXMgbm90IGNhbGxl
ZC4KICAgICBtX3dpZGdldENsaWVudCA9IDA7CiAgICAgZGVyZWYoKTsKIH0KQEAgLTMyOSw2ICsz
MzksOSBAQCB2b2lkIFdlYlBhZ2VQb3B1cEltcGw6OmNsb3NlUG9wdXAoKQogICAgICAgICBET01X
aW5kb3dQYWdlUG9wdXA6OnVuaW5zdGFsbChtX3BhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgp
LT5kb21XaW5kb3coKSk7CiAgICAgfQogICAgIG1fY2xvc2luZyA9IHRydWU7CisKKyAgICBkZWlu
aXRQYWdlKCk7CisKICAgICAvLyBtX3dpZGdldENsaWVudCBtaWdodCBiZSAwIGJlY2F1c2UgdGhp
cyB3aWRnZXQgbWlnaHQgYmUgYWxyZWFkeSBjbG9zZWQuCiAgICAgaWYgKG1fd2lkZ2V0Q2xpZW50
KSB7CiAgICAgICAgIC8vIGNsb3NlV2lkZ2V0U29vbigpIHdpbGwgY2FsbCB0aGlzLT5jbG9zZSgp
IGxhdGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBv
cHVwSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5o
CmluZGV4IDM0YjQ3OTRiZDgzMGE2ZTdkZmU0NWRiNzhlODgzMTY3YTA0OWFhMzkuLmNmOTM3YWY3
NjQwMzRhMTM2MjE2YjU1NWViOTkzZGU0YTVmZjBlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHJpdmF0ZToK
IAogICAgIGV4cGxpY2l0IFdlYlBhZ2VQb3B1cEltcGwoV2ViV2lkZ2V0Q2xpZW50Kik7CiAgICAg
Ym9vbCBpbml0UGFnZSgpOworICAgIHZvaWQgZGVpbml0UGFnZSgpOwogCiAgICAgV2ViV2lkZ2V0
Q2xpZW50KiBtX3dpZGdldENsaWVudDsKICAgICBXZWJSZWN0IG1fd2luZG93UmVjdEluU2NyZWVu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGY2NmFl
NDhjNDhkOGEzOGVlZTIwZDc0ZmZjNzQ1MzcxZTcwYjEwMDguLjJlZWRiOTAyNDk2YzE5ZTA4NTk3
ZTUxZTY3MDg5ZmM5Y2QyOWUwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKQEAgLTE1MjcsMTMgKzE1MjcsMTAgQEAgUGFnZUdyb3VwKiBXZWJWaWV3SW1w
bDo6ZGVmYXVsdFBhZ2VHcm91cCgpCiAKIHZvaWQgV2ViVmlld0ltcGw6OmNsb3NlKCkKIHsKLSAg
ICBSZWZQdHI8V2ViRnJhbWVJbXBsPiBtYWluRnJhbWVJbXBsOwotCiAgICAgaWYgKG1fcGFnZSkg
ewogICAgICAgICAvLyBJbml0aWF0ZSBzaHV0ZG93biBmb3IgdGhlIGVudGlyZSBmcmFtZXNldC4g
IFRoaXMgd2lsbCBjYXVzZSBhIGxvdCBvZgogICAgICAgICAvLyBub3RpZmljYXRpb25zIHRvIGJl
IHNlbnQuCiAgICAgICAgIGlmIChtX3BhZ2UtPm1haW5GcmFtZSgpKSB7Ci0gICAgICAgICAgICBt
YWluRnJhbWVJbXBsID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUobV9wYWdlLT5tYWluRnJhbWUo
KSk7CiAgICAgICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+ZnJhbWVEZXRh
Y2hlZCgpOwogICAgICAgICB9CiAgICAgICAgIG1fcGFnZS5jbGVhcigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177577</attachid>
            <date>2012-12-04 15:02:17 -0800</date>
            <delta_ts>2012-12-04 20:56:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103947-20121204145942.patch</filename>
            <type>text/plain</type>
            <size>7676</size>
            <attacher name="David Dorwin">ddorwin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGU0MjQyMTIzZmMzYmNjZGJlMDViYTc1MWI2MmZkMDA5ODUyNjZiYTcuLmQ4MzNiYjQ5MjA0ZWNm
MTUzZWRlYTdkNmRkMzc0ZDQ4M2EzYTNiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTItMTItMDMgIERhdmlkIERvcndpbiAgPGRkb3J3aW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gRGV0YWNoIHRoZSBmcmFtZSBhbmQgZGVzdHJv
eSB0aGUgcGFnZSBpbW1lZGlhdGVseSB1cG9uIHJlcXVlc3QgdG8gY2xvc2VIZWxwZXJQbHVnaW4o
KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzk0
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRo
ZSBjYXNlIHRoYXQgdGhlIGhvc3QgcGFnZSBpcyBiZWluZyBkZXN0cm95ZWQsIHNvbWUgb2YgdGhl
IG9iamVjdHMKKyAgICAgICAgdGhlIHBhZ2UgZGVwZW5kcyBvbiwgc3BlY2lmaWNhbGx5IFJlbmRl
clZpZXdJbXBsLCBtYXkgYmUgZGVzdHJveWVkIGJ5CisgICAgICAgIHRoZSB0aW1lIGNsb3NlKCkg
aXMgY2FsbGVkIGFzeW5jaHJvbm91c2x5LgorICAgICAgICBUaGUgZnJhbWVEZXRhY2hlZCgpIGNh
bGxpbmcgY29kZSB3YXMgb3JpZ2luYWxseSBjb3BpZWQgZnJvbQorICAgICAgICBXZWJWaWV3SW1w
bDo6Y2xvc2UoKSwgYnV0IFdlYlZpZXdJbXBsIGRvZXMgbm90IGhhdmUgYW4gYXN5bmNocm9ub3Vz
CisgICAgICAgIGNsb3NpbmcgbWVjaGFuaXNtIGxpa2UgdGhlIFdlYldpZGdldHMuCisKKyAgICAg
ICAgVGhpcyBpcyB0aGUgZml4IGZvciBodHRwOi8vY3JidWcuY29tLzE2MDY1MAorCisgICAgICAg
ICogc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIZWxw
ZXJQbHVnaW5JbXBsOjppbml0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSGVscGVyUGx1Z2luSW1w
bDo6Y2xvc2VIZWxwZXJQbHVnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJIZWxwZXJQbHVnaW5J
bXBsOjpkZXN0b3J5UGFnZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJIZWxwZXJQbHVnaW5JbXBsOjpjbG9zZSk6LgorICAgICAgICAoV2ViS2l0OjpXZWJIZWxwZXJQ
bHVnaW46OmNyZWF0ZSk6CisgICAgICAgICogc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaDoKKyAg
ICAgICAgKFdlYkhlbHBlclBsdWdpbkltcGwpOgorICAgICAgICAqIHNyYy9XZWJQYWdlUG9wdXBJ
bXBsLmNwcDogTWFkZSBzaW1pbGFyIGNoYW5nZXMgc2luY2UgaXQgZm9sbG93cyB0aGUgc2FtZSBt
b2RlbC4gKEkgdGhpbmsgdGhlIHdheSBwb3B1cHMgYXJlIGNsb3NlZCBoYXMgcHJldmVudGVkIHRo
ZSByYWNlIGNvbmRpdGlvbiBmcm9tIG9jY3VycmluZyBmb3IgcG9wdXBzLikKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVBvcHVwSW1wbDo6ZGVzdG9yeVBhZ2UpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBvcHVwSW1wbDo6Y2xvc2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUG9wdXBJbXBsOjpjbG9zZVBvcHVwKToKKyAgICAgICAgKiBzcmMvV2ViUGFn
ZVBvcHVwSW1wbC5oOgorICAgICAgICAoV2ViUGFnZVBvcHVwSW1wbCk6CisKIDIwMTItMTItMDIg
IFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gQ29ycmVjdCB0aGUgbG9jYXRpb24gb2Ygc3ludGhldGljIG1vdXNlIGV2ZW50
cyB3aGVuIHBhZ2UgaXMgem9vbWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkhlbHBlclBsdWdpbkltcGwuY3BwCmluZGV4IDAwOTkxNzEyZDE4M2IxMWMwZDgzMjEyYThh
MWFiODMwYWQ0NmI2OWYuLmM0YWVmM2ZkNjQ5MzhlMDA4MDNjNjBlMTMxNDgwMTMxZmE1MjgxMjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbklt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkhlbHBlclBsdWdpbklt
cGwuY3BwCkBAIC04Nyw2ICs4Nyw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGNsb3NlV2luZG93U29vbigpIE9WRVJSSURFCiAgICAgeworICAgICAgICAvLyBUaGlzIHNo
b3VsZCBuZXZlciBiZSBjYWxsZWQgc2luY2UgdGhlIG9ubHkgd2F5IHRvIGNsb3NlIHRoZQorICAg
ICAgICAvLyBpbnZpc2libGUgcGFnZSBpcyB2aWEgY2xvc2VIZWxwZXJQbHVnaW4oKS4KKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IAogICAgICAgICBtX3dpZGdldC0+Y2xvc2VIZWxwZXJQ
bHVnaW4oKTsKICAgICB9CiAKQEAgLTEyMCw3ICsxMjMsNiBAQCBib29sIFdlYkhlbHBlclBsdWdp
bkltcGw6OmluaXQoV2ViVmlld0ltcGwqIHdlYlZpZXcsIGNvbnN0IFN0cmluZyYgcGx1Z2luVHlw
ZSkKICAgICBpZiAoIWluaXRQYWdlKHdlYlZpZXcsIHBsdWdpblR5cGUpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgbV93aWRnZXRDbGllbnQtPnNob3coV2ViTmF2aWdhdGlvblBvbGljeSgp
KTsKLQogICAgIHNldEZvY3VzKHRydWUpOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzMsNiAr
MTM1LDEyIEBAIHZvaWQgV2ViSGVscGVyUGx1Z2luSW1wbDo6Y2xvc2VIZWxwZXJQbHVnaW4oKQog
ICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+c3RvcEFsbExvYWRlcnMoKTsK
ICAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPnN0b3BMb2FkaW5nKFVubG9h
ZEV2ZW50UG9saWN5Tm9uZSk7CiAgICAgfQorCisgICAgLy8gV2UgbXVzdCBkZXN0cm95IHRoZSBw
YWdlIG5vdyBpbiBjYXNlIHRoZSBob3N0IHBhZ2UgaXMgYmVpbmcgZGVzdHJveWVkLCBpbgorICAg
IC8vIHdoaWNoIGNhc2Ugc29tZSBvZiB0aGUgb2JqZWN0cyB0aGUgcGFnZSBkZXBlbmRzIG9uIG1h
eSBoYXZlIGJlZW4KKyAgICAvLyBkZXN0cm95ZWQgYnkgdGhlIHRpbWUgdGhpcy0+Y2xvc2UoKSBp
cyBjYWxsZWQgYXN5bmNocm9ub3VzbHkuCisgICAgZGVzdG9yeVBhZ2UoKTsKKwogICAgIC8vIG1f
d2lkZ2V0Q2xpZW50IG1pZ2h0IGJlIDAgYmVjYXVzZSB0aGlzIHdpZGdldCBtaWdodCBiZSBhbHJl
YWR5IGNsb3NlZC4KICAgICBpZiAobV93aWRnZXRDbGllbnQpIHsKICAgICAgICAgLy8gY2xvc2VX
aWRnZXRTb29uKCkgd2lsbCBjYWxsIHRoaXMtPmNsb3NlKCkgbGF0ZXIuCkBAIC0yMDEsNiArMjA5
LDE3IEBAIGJvb2wgV2ViSGVscGVyUGx1Z2luSW1wbDo6aW5pdFBhZ2UoV2ViS2l0OjpXZWJWaWV3
SW1wbCogd2ViVmlldywgY29uc3QgU3RyaW5nJiBwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Zv
aWQgV2ViSGVscGVyUGx1Z2luSW1wbDo6ZGVzdG9yeVBhZ2UoKQoreworICAgIGlmICghbV9wYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wYWdlLT5tYWluRnJhbWUoKSkKKyAgICAg
ICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+bG9hZGVyKCktPmZyYW1lRGV0YWNoZWQoKTsKKworICAg
IG1fcGFnZS5jbGVhcigpOworfQorCiB2b2lkIFdlYkhlbHBlclBsdWdpbkltcGw6OnNldENvbXBv
c2l0b3JTdXJmYWNlUmVhZHkoKQogewogfQpAQCAtMjI1LDE3ICsyNDQsNyBAQCB2b2lkIFdlYkhl
bHBlclBsdWdpbkltcGw6OnNldEZvY3VzKGJvb2wgZW5hYmxlKQogCiB2b2lkIFdlYkhlbHBlclBs
dWdpbkltcGw6OmNsb3NlKCkKIHsKLSAgICBSZWZQdHI8V2ViRnJhbWVJbXBsPiBtYWluRnJhbWVJ
bXBsOwotCi0gICAgaWYgKG1fcGFnZSkgewotICAgICAgICAvLyBJbml0aWF0ZSBzaHV0ZG93bi4g
VGhpcyB3aWxsIGNhdXNlIGEgbG90IG9mIG5vdGlmaWNhdGlvbnMgdG8gYmUgc2VudC4KLSAgICAg
ICAgaWYgKG1fcGFnZS0+bWFpbkZyYW1lKCkpIHsKLSAgICAgICAgICAgIG1haW5GcmFtZUltcGwg
PSBXZWJGcmFtZUltcGw6OmZyb21GcmFtZShtX3BhZ2UtPm1haW5GcmFtZSgpKTsKLSAgICAgICAg
ICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5mcmFtZURldGFjaGVkKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgbV9wYWdlLmNsZWFyKCk7Ci0gICAgfQotCisgICAgQVNTRVJUKCFtX3Bh
Z2UpOyAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgdmlhIGNsb3NlUG9wdXAoKS4KICAgICBtX3dp
ZGdldENsaWVudCA9IDA7CiAgICAgZGVyZWYoKTsKIH0KQEAgLTI0OCwxMCArMjU3LDEwIEBAIFdl
YkhlbHBlclBsdWdpbiogV2ViSGVscGVyUGx1Z2luOjpjcmVhdGUoV2ViV2lkZ2V0Q2xpZW50KiBj
bGllbnQpCiAgICAgICAgIENSQVNIKCk7CiAgICAgLy8gQSBXZWJIZWxwZXJQbHVnaW5JbXBsIGlu
c3RhbmNlIHVzdWFsbHkgaGFzIHR3byByZWZlcmVuY2VzLgogICAgIC8vICAtIE9uZSBvd25lZCBi
eSB0aGUgaW5zdGFuY2UgaXRzZWxmLiBJdCByZXByZXNlbnRzIHRoZSB2aXNpYmxlIHdpZGdldC4K
LSAgICAvLyAgLSBPbmUgb3duZWQgYnkgYSBXZWJWaWV3SW1wbC4gSXQncyByZWxlYXNlZCB3aGVu
IHRoZSBXZWJWaWV3SW1wbCBhc2sgdGhlCi0gICAgLy8gICAgV2ViSGVscGVyUGx1Z2luSW1wbCB0
byBjbG9zZS4KKyAgICAvLyAgLSBPbmUgb3duZWQgYnkgdGhlIGhvc3RpbmcgZWxlbWVudC4gSXQn
cyByZWxlYXNlZCB3aGVuIHRoZSBob3N0aW5nCisgICAgLy8gICAgZWxlbWVudCBhc2tzIHRoZSBX
ZWJIZWxwZXJQbHVnaW5JbXBsIHRvIGNsb3NlLgogICAgIC8vIFdlIG5lZWQgdGhlbSBiZWNhdXNl
IHRoZSBjbG9zaW5nIG9wZXJhdGlvbiBpcyBhc3luY2hyb25vdXMgYW5kIHRoZSB3aWRnZXQKLSAg
ICAvLyBjYW4gYmUgY2xvc2VkIHdoaWxlIHRoZSBXZWJWaWV3SW1wbCBpcyB1bmF3YXJlIG9mIGl0
LgorICAgIC8vIGNhbiBiZSBjbG9zZWQgd2hpbGUgdGhlIGhvc3RpbmcgZWxlbWVudCBpcyB1bmF3
YXJlIG9mIGl0LgogICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViSGVscGVyUGx1Z2luSW1wbChj
bGllbnQpKS5sZWFrUmVmKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkhlbHBlclBsdWdpbkltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkhlbHBlclBsdWdpbkltcGwuaAppbmRleCAyZWIyOGVjMzEwZTU2NTExZDBlM2Y4NDI2OGJl
NzA2ZmFlMzBkNzM5Li5mOWI1YWFlOWUzMDZjYWVmMTc4M2NlMjFkMzZjODVkMWMxNGYyY2FlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJIZWxwZXJQbHVnaW5JbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSGVscGVyUGx1Z2luSW1wbC5o
CkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViSGVs
cGVyUGx1Z2luSW1wbChXZWJXaWRnZXRDbGllbnQqKTsKICAgICBib29sIGluaXRQYWdlKFdlYktp
dDo6V2ViVmlld0ltcGwqLCBjb25zdCBTdHJpbmcmIHBsdWdpblR5cGUpOworICAgIHZvaWQgZGVz
dG9yeVBhZ2UoKTsKIAogICAgIC8vIFdlYldpZGdldCBtZXRob2RzOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb21wb3NpdG9yU3VyZmFjZVJlYWR5KCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCmluZGV4IGM0YjkzNGFhYTU3NTQ1
NTE4NWY2ZWNkZTJmOTk0Nzk2ZWRkZWQ5MDIuLjYxYWVlNDE2OTEzODYyYmNjOWFhNjk3MzEyZTc3
ZWY5NDk4ZTU1YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBh
Z2VQb3B1cEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQ
b3B1cEltcGwuY3BwCkBAIC0yMjUsNiArMjI1LDE3IEBAIGJvb2wgV2ViUGFnZVBvcHVwSW1wbDo6
aW5pdFBhZ2UoKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlYlBhZ2VQb3B1cEltcGw6
OmRlc3RvcnlQYWdlKCkKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG1fcGFnZS0+bWFpbkZyYW1lKCkpCisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkt
PmxvYWRlcigpLT5mcmFtZURldGFjaGVkKCk7CisKKyAgICBtX3BhZ2UuY2xlYXIoKTsKK30KKwog
V2ViU2l6ZSBXZWJQYWdlUG9wdXBJbXBsOjpzaXplKCkKIHsKICAgICByZXR1cm4gbV9wb3B1cENs
aWVudC0+Y29udGVudFNpemUoKTsKQEAgLTMxMyw5ICszMjQsNyBAQCB2b2lkIFdlYlBhZ2VQb3B1
cEltcGw6OnNldEZvY3VzKGJvb2wgZW5hYmxlKQogdm9pZCBXZWJQYWdlUG9wdXBJbXBsOjpjbG9z
ZSgpCiB7CiAgICAgbV9jbG9zaW5nID0gdHJ1ZTsKLSAgICBpZiAobV9wYWdlICYmIG1fcGFnZS0+
bWFpbkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5mcmFt
ZURldGFjaGVkKCk7Ci0gICAgbV9wYWdlLmNsZWFyKCk7CisgICAgZGVzdG9yeVBhZ2UoKTsgLy8g
SW4gY2FzZSBjbG9zZVBvcHVwKCkgd2FzIG5vdCBjYWxsZWQuCiAgICAgbV93aWRnZXRDbGllbnQg
PSAwOwogICAgIGRlcmVmKCk7CiB9CkBAIC0zMjksNiArMzM4LDkgQEAgdm9pZCBXZWJQYWdlUG9w
dXBJbXBsOjpjbG9zZVBvcHVwKCkKICAgICAgICAgRE9NV2luZG93UGFnZVBvcHVwOjp1bmluc3Rh
bGwobV9wYWdlLT5tYWluRnJhbWUoKS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpOwogICAgIH0K
ICAgICBtX2Nsb3NpbmcgPSB0cnVlOworCisgICAgZGVzdG9yeVBhZ2UoKTsKKwogICAgIC8vIG1f
d2lkZ2V0Q2xpZW50IG1pZ2h0IGJlIDAgYmVjYXVzZSB0aGlzIHdpZGdldCBtaWdodCBiZSBhbHJl
YWR5IGNsb3NlZC4KICAgICBpZiAobV93aWRnZXRDbGllbnQpIHsKICAgICAgICAgLy8gY2xvc2VX
aWRnZXRTb29uKCkgd2lsbCBjYWxsIHRoaXMtPmNsb3NlKCkgbGF0ZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmgKaW5kZXggMzRiNDc5NGJkODMwYTZl
N2RmZTQ1ZGI3OGU4ODMxNjdhMDQ5YWEzOS4uMjU3NjcwN2Y0OTJmMmQ3OTlkYWI4NmUzYzYzZTAx
ODY2Y2YwMmIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFn
ZVBvcHVwSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1
cEltcGwuaApAQCAtODcsNiArODcsNyBAQCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgV2ViUGFn
ZVBvcHVwSW1wbChXZWJXaWRnZXRDbGllbnQqKTsKICAgICBib29sIGluaXRQYWdlKCk7CisgICAg
dm9pZCBkZXN0b3J5UGFnZSgpOwogCiAgICAgV2ViV2lkZ2V0Q2xpZW50KiBtX3dpZGdldENsaWVu
dDsKICAgICBXZWJSZWN0IG1fd2luZG93UmVjdEluU2NyZWVuOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>