<?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>143953</bug_id>
          
          <creation_ts>2015-04-20 10:23:53 -0700</creation_ts>
          <short_desc>[Curl] Favicons loaded from disc cache are ignored.</short_desc>
          <delta_ts>2015-04-27 12:03:10 -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>WebCore Misc.</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>Curl</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>galpeter</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1086814</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-20 10:23:53 -0700</bug_when>
    <thetext>When a favicon is loaded from the Curl disc cache, the icon data is thrown away. This happens because we give a 304 response, which makes the icon loader ignore the response:

void IconLoader::notifyFinished(CachedResource* resource)
{
    ASSERT(resource == m_resource);

    // If we got a status code indicating an invalid response, then lets
    // ignore the data and not try to decode the error page as an icon.
    auto* data = resource-&gt;resourceBuffer();
    int status = resource-&gt;response().httpStatusCode();
    if (status &amp;&amp; (status &lt; 200 || status &gt; 299))
        data = nullptr;

We can solve this by responding with 200 OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086816</commentid>
    <comment_count>1</comment_count>
      <attachid>251165</attachid>
    <who name="">peavo</who>
    <bug_when>2015-04-20 10:30:35 -0700</bug_when>
    <thetext>Created attachment 251165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086821</commentid>
    <comment_count>2</comment_count>
      <attachid>251165</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-20 10:51:12 -0700</bug_when>
    <thetext>Comment on attachment 251165
Patch

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

&gt; Source/WebCore/platform/network/curl/CurlCacheEntry.cpp:177
&gt;  void CurlCacheEntry::setResponseFromCachedHeaders(ResourceResponse&amp; response)
&gt;  {
&gt; -    response.setHTTPStatusCode(304);
&gt; +    response.setHTTPStatusCode(200);
&gt; +    response.setHTTPStatusText(&quot;OK&quot;);

304 is the status of the response from the servers.  If a 304 is received from a server, then we as the browser want to tell the webpage that we got a 200 OK, right?  This makes sense, but it seems like it would&apos;ve been a bigger problem.  Why wasn&apos;t this noticed before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086823</commentid>
    <comment_count>3</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-20 11:12:52 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 251165 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=251165&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/CurlCacheEntry.cpp:177
&gt; &gt;  void CurlCacheEntry::setResponseFromCachedHeaders(ResourceResponse&amp; response)
&gt; &gt;  {
&gt; &gt; -    response.setHTTPStatusCode(304);
&gt; &gt; +    response.setHTTPStatusCode(200);
&gt; &gt; +    response.setHTTPStatusText(&quot;OK&quot;);
&gt; 
&gt; 304 is the status of the response from the servers.  If a 304 is received
&gt; from a server, then we as the browser want to tell the webpage that we got a
&gt; 200 OK, right?  This makes sense, but it seems like it would&apos;ve been a
&gt; bigger problem.  Why wasn&apos;t this noticed before?

Yes, it seems like it is only the icon loader which does not accept a 304 response. There is no problem responding with 304 for a cached document or image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086826</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-20 11:14:40 -0700</bug_when>
    <thetext>(In reply to comment #3)
If we changed this, though, would there be XMLHttpRequests that used to have a status of 304 that now have a status of 200?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086829</commentid>
    <comment_count>5</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-20 11:19:01 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; If we changed this, though, would there be XMLHttpRequests that used to have
&gt; a status of 304 that now have a status of 200?

Yes, I believe we then would respond with &quot;200 OK&quot; for all requests, regardless of whether they come from the cache or the network.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086834</commentid>
    <comment_count>6</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-20 11:24:05 -0700</bug_when>
    <thetext>Or maybe it makes more sense to change the icon loader?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086836</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-20 11:30:51 -0700</bug_when>
    <thetext>http://www.w3.org/TR/XMLHttpRequest/ says:
For 304 Not Modified responses that are a result of a user agent generated conditional request the user agent must act as if the server gave a 200 OK response with the appropriate content. The user agent must allow author request headers to override automatic cache validation (e.g. If-None-Match or If-Modified-Since), in which case 304 Not Modified responses must be passed through.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087478</commentid>
    <comment_count>8</comment_count>
      <attachid>251346</attachid>
    <who name="">peavo</who>
    <bug_when>2015-04-22 11:35:38 -0700</bug_when>
    <thetext>Created attachment 251346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087480</commentid>
    <comment_count>9</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-22 11:37:00 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; http://www.w3.org/TR/XMLHttpRequest/ says:
&gt; For 304 Not Modified responses that are a result of a user agent generated
&gt; conditional request the user agent must act as if the server gave a 200 OK
&gt; response with the appropriate content. The user agent must allow author
&gt; request headers to override automatic cache validation (e.g. If-None-Match
&gt; or If-Modified-Since), in which case 304 Not Modified responses must be
&gt; passed through.

Thanks for looking into this and providing this information.

I updated the patch to handle this. I&apos;m now running the http tests to check for regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087579</commentid>
    <comment_count>10</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-22 14:03:01 -0700</bug_when>
    <thetext>Have finished running the http tests, there are no regressions caused by this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089053</commentid>
    <comment_count>11</comment_count>
      <attachid>251346</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-27 10:03:05 -0700</bug_when>
    <thetext>Comment on attachment 251346
Patch

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

&gt; Source/WebCore/platform/network/ResourceHandleInternal.h:167
&gt; +        bool m_addedCacheValidationHeaders;

There is a trend towards using syntax like this:
bool m_addedCacheValidationHeaders { false };
If this is done with all the variables here, we could completely remove the other #if USE(CURL) above, but let&apos;s not touch the soup or cfnetwork code in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089084</commentid>
    <comment_count>12</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-27 11:05:11 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 251346 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=251346&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/ResourceHandleInternal.h:167
&gt; &gt; +        bool m_addedCacheValidationHeaders;
&gt; 
&gt; There is a trend towards using syntax like this:
&gt; bool m_addedCacheValidationHeaders { false };
&gt; If this is done with all the variables here, we could completely remove the
&gt; other #if USE(CURL) above, but let&apos;s not touch the soup or cfnetwork code in
&gt; this patch.

Thanks for reviewing :) Should I make this change for all the CURL members before landing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089088</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-27 11:11:27 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Thanks for reviewing :) Should I make this change for all the CURL members
&gt; before landing?
Yep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089117</commentid>
    <comment_count>14</comment_count>
    <who name="">peavo</who>
    <bug_when>2015-04-27 12:03:10 -0700</bug_when>
    <thetext>Committed r183407: &lt;http://trac.webkit.org/changeset/183407&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251165</attachid>
            <date>2015-04-20 10:30:35 -0700</date>
            <delta_ts>2015-04-22 11:35:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143953-20150420192931.patch</filename>
            <type>text/plain</type>
            <size>2381</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MzAxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA0LTIwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbQ3VybF0gRmF2aWNvbnMg
bG9hZGVkIGZyb20gZGlzYyBjYWNoZSBhcmUgaWdub3JlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzk1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBmYXZpY29uIGlzIGxvYWRlZCBmcm9t
IHRoZSBDdXJsIGRpc2MgY2FjaGUsIHRoZSBpY29uIGRhdGEgaXMgdGhyb3duIGF3YXkuCisgICAg
ICAgIFRoaXMgaGFwcGVucyBiZWNhdXNlIHdlIGdpdmUgYSAzMDQgcmVzcG9uc2UsIHdoaWNoIG1h
a2VzIHRoZSBpY29uIGxvYWRlciBpZ25vcmUKKyAgICAgICAgdGhlIHJlc3BvbnNlLiBXZSBjYW4g
c29sdmUgdGhpcyBieSByZXNwb25kaW5nIHdpdGggMjAwIE9LLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1
cmxDYWNoZUVudHJ5OjpzZXRSZXNwb25zZUZyb21DYWNoZWRIZWFkZXJzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDdXJsQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorCiAyMDE1LTA0LTIw
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBT
dHlsZVJlc29sdmVyOjppbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZSgpIHdoZW4gdXNp
bmcgY29udGVudCBleHRlbnNpb25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0N1cmxDYWNoZUVudHJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50cnkuY3BwCShyZXZpc2lvbiAxODMw
MTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlRW50
cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyArMTczLDggQEAgYm9vbCBDdXJsQ2FjaGVF
bnRyeTo6bG9hZFJlc3BvbnNlSGVhZGVycwogLy8gU2V0IHJlc3BvbnNlIGhlYWRlcnMgZnJvbSBt
ZW1vcnkKIHZvaWQgQ3VybENhY2hlRW50cnk6OnNldFJlc3BvbnNlRnJvbUNhY2hlZEhlYWRlcnMo
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1
c0NvZGUoMzA0KTsKKyAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOworICAgIHJl
c3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyIpOwogICAgIHJlc3BvbnNlLnNldFNvdXJjZShS
ZXNvdXJjZVJlc3BvbnNlQmFzZTo6U291cmNlOjpEaXNrQ2FjaGUpOwogCiAgICAgLy8gSW50ZWdy
YXRlIHRoZSBoZWFkZXJzIGluIHRoZSByZXNwb25zZSB3aXRoIHRoZSBjYWNoZWQgb25lcy4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q3VybENhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDE4MzAxNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsQ2FjaGVNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgQ3VybENhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnMKIAogICAgIHJlbW92ZUNhY2hlRW50cnlDbGllbnQodXJsLCAmam9iKTsKIAotICAgIGlm
IChyZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID09IDMwNCkgeworICAgIGlmIChyZXNwb25zZS5z
b3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6U291cmNlOjpEaXNrQ2FjaGUpIHsKICAg
ICAgICAgcmVhZENhY2hlZERhdGEodXJsLCAmam9iLCByZXNwb25zZSk7CiAgICAgICAgIG1fTFJV
RW50cnlMaXN0LnByZXBlbmRPck1vdmVUb0ZpcnN0KHVybCk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251346</attachid>
            <date>2015-04-22 11:35:38 -0700</date>
            <delta_ts>2015-04-27 10:03:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143953-20150422203426.patch</filename>
            <type>text/plain</type>
            <size>4848</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MzExNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA0LTIyICBQZXIgQXJu
ZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbQ3VybF0gRmF2aWNvbnMg
bG9hZGVkIGZyb20gZGlzYyBjYWNoZSBhcmUgaWdub3JlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzk1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBmYXZpY29uIGlzIGxvYWRlZCBmcm9t
IHRoZSBDdXJsIGRpc2MgY2FjaGUsIHRoZSBpY29uIGRhdGEgaXMgdGhyb3duIGF3YXkuCisgICAg
ICAgIFRoaXMgaGFwcGVucyBiZWNhdXNlIHdlIGdpdmUgYSAzMDQgcmVzcG9uc2UsIHdoaWNoIG1h
a2VzIHRoZSBpY29uIGxvYWRlciBpZ25vcmUKKyAgICAgICAgdGhlIHJlc3BvbnNlLiBXZSBjYW4g
c29sdmUgdGhpcyBieSByZXNwb25kaW5nIHdpdGggMjAwIE9LLgorCisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJsQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aGVhZGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGVNYW5hZ2VyOjppbml0aWFsaXplSGFuZGxlKToKKwogMjAxNS0wNC0yMiAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHBvc3Qt
cmV2aWV3IGNsZWFuIHVwIGFmdGVyIHIxODMwOTYuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaAkocmV2
aXNpb24gMTgzMTAyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0LDYgKzk0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2F1dGhGYWlsdXJlQ291bnQoMCkKICAgICAg
ICAgICAgICwgbV9mb3JtRGF0YVN0cmVhbShsb2FkZXIpCiAgICAgICAgICAgICAsIG1fc3NsRXJy
b3JzKDApCisgICAgICAgICAgICAsIG1fYWRkZWRDYWNoZVZhbGlkYXRpb25IZWFkZXJzKGZhbHNl
KQogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgICAgICAsIG1fY2FuY2VsbGVkKGZhbHNl
KQpAQCAtMTYzLDYgKzE2NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVmVjdG9y
PGNoYXI+IG1fcG9zdEJ5dGVzOwogCiAgICAgICAgIE93blB0cjxNdWx0aXBhcnRIYW5kbGU+IG1f
bXVsdGlwYXJ0SGFuZGxlOworICAgICAgICBib29sIG1fYWRkZWRDYWNoZVZhbGlkYXRpb25IZWFk
ZXJzOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgICAgIEdSZWZQdHI8U291cE1lc3NhZ2U+
IG1fc291cE1lc3NhZ2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQ3VybENhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL0N1cmxDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAxODMxMDIp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybENhY2hlTWFuYWdl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIEN1cmxDYWNoZU1h
bmFnZXI6OmRpZFJlY2VpdmVSZXNwb25zCiAKICAgICByZW1vdmVDYWNoZUVudHJ5Q2xpZW50KHVy
bCwgJmpvYik7CiAKLSAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDQpIHsK
KyAgICBpZiAocmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZUJhc2U6OlNvdXJj
ZTo6RGlza0NhY2hlKSB7CiAgICAgICAgIHJlYWRDYWNoZWREYXRhKHVybCwgJmpvYiwgcmVzcG9u
c2UpOwogICAgICAgICBtX0xSVUVudHJ5TGlzdC5wcmVwZW5kT3JNb3ZlVG9GaXJzdCh1cmwpOwog
ICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAxODMxMDIp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUzLDcgKzU1MywxMiBAQCBzdGF0aWMgc2l6
ZV90IGhlYWRlckNhbGxiYWNrKGNoYXIqIHB0ciwKICAgICAgICAgaWYgKGNsaWVudCkgewogICAg
ICAgICAgICAgaWYgKGlzSHR0cE5vdE1vZGlmaWVkKGh0dHBDb2RlKSkgewogICAgICAgICAgICAg
ICAgIGNvbnN0IFN0cmluZyYgdXJsID0gam9iLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmco
KTsKLSAgICAgICAgICAgICAgICBDdXJsQ2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgpLmdldENh
Y2hlZFJlc3BvbnNlKHVybCwgZC0+bV9yZXNwb25zZSk7CisgICAgICAgICAgICAgICAgaWYgKEN1
cmxDYWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCkuZ2V0Q2FjaGVkUmVzcG9uc2UodXJsLCBkLT5t
X3Jlc3BvbnNlKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZC0+bV9hZGRlZENhY2hlVmFs
aWRhdGlvbkhlYWRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGQtPm1fcmVzcG9uc2Uu
c2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGQtPm1fcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIik7CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbGllbnQtPmRpZFJl
Y2VpdmVSZXNwb25zZShqb2IsIGQtPm1fcmVzcG9uc2UpOwogICAgICAgICAgICAgQ3VybENhY2hl
TWFuYWdlcjo6Z2V0SW5zdGFuY2UoKS5kaWRSZWNlaXZlUmVzcG9uc2UoKmpvYiwgZC0+bV9yZXNw
b25zZSk7CkBAIC0xMDg1LDcgKzEwOTAsOCBAQCB2b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6
aW5pdGlhbGl6ZUhhCiAgICAgaWYgKGpvYi0+Zmlyc3RSZXF1ZXN0KCkuaHR0cEhlYWRlckZpZWxk
cygpLnNpemUoKSA+IDApIHsKICAgICAgICAgSFRUUEhlYWRlck1hcCBjdXN0b21IZWFkZXJzID0g
am9iLT5maXJzdFJlcXVlc3QoKS5odHRwSGVhZGVyRmllbGRzKCk7CiAKLSAgICAgICAgaWYgKEN1
cmxDYWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCkuaXNDYWNoZWQodXJsKSkgeworICAgICAgICBi
b29sIGhhc0NhY2hlSGVhZGVycyA9IGN1c3RvbUhlYWRlcnMuY29udGFpbnMoSFRUUEhlYWRlck5h
bWU6OklmTW9kaWZpZWRTaW5jZSkgfHwgY3VzdG9tSGVhZGVycy5jb250YWlucyhIVFRQSGVhZGVy
TmFtZTo6SWZOb25lTWF0Y2gpOworICAgICAgICBpZiAoIWhhc0NhY2hlSGVhZGVycyAmJiBDdXJs
Q2FjaGVNYW5hZ2VyOjpnZXRJbnN0YW5jZSgpLmlzQ2FjaGVkKHVybCkpIHsKICAgICAgICAgICAg
IEN1cmxDYWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCkuYWRkQ2FjaGVFbnRyeUNsaWVudCh1cmws
IGpvYik7CiAgICAgICAgICAgICBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycyA9IEN1cmxD
YWNoZU1hbmFnZXI6OmdldEluc3RhbmNlKCkucmVxdWVzdEhlYWRlcnModXJsKTsKIApAQCAtMTA5
NiwxMCArMTEwMiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjppbml0aWFsaXplSGEK
ICAgICAgICAgICAgICAgICBjdXN0b21IZWFkZXJzLnNldChpdC0+a2V5LCBpdC0+dmFsdWUpOwog
ICAgICAgICAgICAgICAgICsraXQ7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3Qgc2VuZCBhbnkgY2FjaGUgaGVhZGVycyB3
aGVuIHVybCBpcyBub3QgY2FjaGVkLgotICAgICAgICAgICAgY3VzdG9tSGVhZGVycy5yZW1vdmUo
SFRUUEhlYWRlck5hbWU6OklmTW9kaWZpZWRTaW5jZSk7Ci0gICAgICAgICAgICBjdXN0b21IZWFk
ZXJzLnJlbW92ZShIVFRQSGVhZGVyTmFtZTo6SWZOb25lTWF0Y2gpOworICAgICAgICAgICAgZC0+
bV9hZGRlZENhY2hlVmFsaWRhdGlvbkhlYWRlcnMgPSB0cnVlOwogICAgICAgICB9CiAKICAgICAg
ICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY3VzdG9tSGVhZGVycy5lbmQo
KTsK
</data>
<flag name="review"
          id="276138"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="276543"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>