<?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>70218</bug_id>
          
          <creation_ts>2011-10-16 23:51:25 -0700</creation_ts>
          <short_desc>[Soup] ApplicationCache download fails when response is cached by network layer</short_desc>
          <delta_ts>2011-10-20 00:13:38 -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>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>0</everconfirmed>
          <reporter name="Donggwan Kim">donggwan.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>484958</commentid>
    <comment_count>0</comment_count>
    <who name="Donggwan Kim">donggwan.kim</who>
    <bug_when>2011-10-16 23:51:25 -0700</bug_when>
    <thetext>Repro Step
    1. Build WebKit with libsoup in which SOUP_CACHE is enabled.
    2. connect to http://html5demos.com/offlineapp
    3. If 304(Not modified) response is received when Application Cache request for html5demos.css or h5utils-offline.js, then downloads failed 
Cause
    For current implementation of ApplicationCacheGroup, if 304 response is received for resource that is not cached by ApplicationCacheGroup, then downloads failed.
    If ApplicationCacheGroup requests resource when it downloads complete by SubResourceLoader and is cached by libsoup, then could get 304 response.
    In case of this, downloads failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484961</commentid>
    <comment_count>1</comment_count>
      <attachid>111219</attachid>
    <who name="Donggwan Kim">donggwan.kim</who>
    <bug_when>2011-10-16 23:54:52 -0700</bug_when>
    <thetext>Created attachment 111219
first patch for this bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485326</commentid>
    <comment_count>2</comment_count>
      <attachid>111219</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-17 11:46:50 -0700</bug_when>
    <thetext>Comment on attachment 111219
first patch for this bug

Some comments: 

1. Fixes should have regression tests.

2. WebCore assumes that network layer doesn&apos;t pass 304 if it has the data. Soup should just transform the response as if it was not cached.

3. The proposed code doesn&apos;t work correctly anyway, as the response cached by Soup won&apos;t be saved in application cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487370</commentid>
    <comment_count>3</comment_count>
    <who name="Donggwan Kim">donggwan.kim</who>
    <bug_when>2011-10-20 00:13:38 -0700</bug_when>
    <thetext>Fixed by libsoup</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111219</attachid>
            <date>2011-10-16 23:54:52 -0700</date>
            <delta_ts>2011-10-17 11:46:49 -0700</delta_ts>
            <desc>first patch for this bug</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>2725</size>
            <attacher name="Donggwan Kim">donggwan.kim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTg5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTYgIERvbmdnd2Fu
IEtpbSAgPGRvbmdnd2FuLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBGaXggRG93bmxvYWQg
cHJvYmxlbSBvZiBBcHBsaWNhdGlvbkNhY2hlIHdpdGggMzA0KE5vdCBNb2RpZmllZCkgcmVzcG9u
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjE4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKwogMjAxMS0xMC0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFsd2F5cyBkaXNhYmxlIEVOQUJMRShPTl9GSVJTVF9URVhU
QVJFQV9GT0NVU19TRUxFQ1RfQUxMKSBhbmQgZGVsZXRlIGFzc29jaWF0ZWQgY29kZQpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAJKHJldmlzaW9uIDk3NTgyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUx
OCwxOCArNTE4LDE4IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRSZWNlaXZlUmUK
ICAgICBpZiAoIW1fbmV3ZXN0Q2FjaGUpCiAgICAgICAgIEFTU0VSVCghKHR5cGUgJiBBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2U6Ok1hc3RlcikpOwogCi0gICAgaWYgKG1fbmV3ZXN0Q2FjaGUgJiYg
cmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDQpIHsgLy8gTm90IG1vZGlmaWVkLgotICAg
ICAgICBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UqIG5ld2VzdENhY2hlZFJlc291cmNlID0gbV9u
ZXdlc3RDYWNoZS0+cmVzb3VyY2VGb3JVUkwodXJsKTsKLSAgICAgICAgaWYgKG5ld2VzdENhY2hl
ZFJlc291cmNlKSB7Ci0gICAgICAgICAgICBtX2NhY2hlQmVpbmdVcGRhdGVkLT5hZGRSZXNvdXJj
ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmNyZWF0ZSh1cmwsIG5ld2VzdENhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLCB0eXBlLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+ZGF0YSgpLCBuZXdl
c3RDYWNoZWRSZXNvdXJjZS0+cGF0aCgpKSk7Ci0gICAgICAgICAgICBtX3BlbmRpbmdFbnRyaWVz
LnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsKLSAgICAgICAg
ICAgIG1fY3VycmVudEhhbmRsZS0+Y2FuY2VsKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRIYW5k
bGUgPSAwOwotICAgICAgICAgICAgLy8gTG9hZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55Lgot
ICAgICAgICAgICAgc3RhcnRMb2FkaW5nRW50cnkoKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA9PSAzMDQpIHsgLy8gTm90IG1vZGlmaWVk
LgorICAgICAgICBpZiAobV9uZXdlc3RDYWNoZSkgeworICAgICAgICAgICAgQXBwbGljYXRpb25D
YWNoZVJlc291cmNlKiBuZXdlc3RDYWNoZWRSZXNvdXJjZSA9IG1fbmV3ZXN0Q2FjaGUtPnJlc291
cmNlRm9yVVJMKHVybCk7CisgICAgICAgICAgICBpZiAobmV3ZXN0Q2FjaGVkUmVzb3VyY2UpCisg
ICAgICAgICAgICAgICAgbV9jYWNoZUJlaW5nVXBkYXRlZC0+YWRkUmVzb3VyY2UoQXBwbGljYXRp
b25DYWNoZVJlc291cmNlOjpjcmVhdGUodXJsLCBuZXdlc3RDYWNoZWRSZXNvdXJjZS0+cmVzcG9u
c2UoKSwgdHlwZSwgbmV3ZXN0Q2FjaGVkUmVzb3VyY2UtPmRhdGEoKSwgbmV3ZXN0Q2FjaGVkUmVz
b3VyY2UtPnBhdGgoKSkpOwogICAgICAgICB9Ci0gICAgICAgIC8vIFRoZSBzZXJ2ZXIgY291bGQg
cmV0dXJuIDMwNCBmb3IgYW4gdW5jb25kaXRpb25hbCByZXF1ZXN0IC0gaW4gdGhpcyBjYXNlLCB3
ZSBoYW5kbGUgdGhlIHJlc3BvbnNlIGFzIGEgbm9ybWFsIGVycm9yLgorICAgICAgICBtX3BlbmRp
bmdFbnRyaWVzLnJlbW92ZShtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKTsK
KyAgICAgICAgbV9jdXJyZW50SGFuZGxlLT5jYW5jZWwoKTsKKyAgICAgICAgbV9jdXJyZW50SGFu
ZGxlID0gMDsKKyAgICAgICAgLy8gTG9hZCB0aGUgbmV4dCByZXNvdXJjZSwgaWYgYW55LgorICAg
ICAgICBzdGFydExvYWRpbmdFbnRyeSgpOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
aWYgKHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgLyAxMDAgIT0gMiB8fCByZXNwb25zZS51cmwo
KSAhPSBtX2N1cnJlbnRIYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpKSB7Cg==
</data>
<flag name="review"
          id="108985"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="108986"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>