<?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>99769</bug_id>
          
          <creation_ts>2012-10-18 15:48:43 -0700</creation_ts>
          <short_desc>Reorder some functions in SubresourceLoader to permit main resources</short_desc>
          <delta_ts>2012-10-19 10:41:05 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>49246</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745661</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-18 15:48:43 -0700</bug_when>
    <thetext>Most resource types that go through the memory cache (and therefore through SubresourceLoader) are not sensitive to the exact ordering of the callbacks they receive, particularly as it relates to ResourceLoadNotifier calls.  Main resources are not so lenient.  For main resources to be cacheable and maintain the current behavior as precisely as possible, we will need to rearrange SubresourceLoader&apos;s willSendRequest() and didReceiveData().

For willSendRequest(), there are two calls, there are a series of checks that can result in the request being canceled, plus calls to CachedResource::willSendRequest() and ResourceLoader::willSendRequest().  MainResourceLoader (which will be a CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest() is called, but the calls are out of order for that, so swap those.

For didReceiveData(), We need to populate ResourceLoader::m_resourceData before notifying CachedResource of new data.  Currently the call order is :
(Start call to ResourceLoader::didReceiveData)
addData()
frameLoader()-&gt;notifier()-&gt;didReceiveData()
(End call to ResourceLoader::didReceiveData)
sendDataToResource()

Main resources want the order to be:
addData()
sendDataToResource()
frameLoader()-&gt;notifier()-&gt;didReceiveData()

...which is not permitted via calling ResourceLoader::didReceiveData().  Therefore, call all three directly, rather than delegating to the parent class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745686</commentid>
    <comment_count>1</comment_count>
      <attachid>169496</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-18 16:02:17 -0700</bug_when>
    <thetext>Created attachment 169496
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746424</commentid>
    <comment_count>2</comment_count>
      <attachid>169496</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 10:32:42 -0700</bug_when>
    <thetext>Comment on attachment 169496
patch

This looks much better.  I&apos;m sort of amazed that the old code worked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746431</commentid>
    <comment_count>3</comment_count>
      <attachid>169496</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 10:41:01 -0700</bug_when>
    <thetext>Comment on attachment 169496
patch

Clearing flags on attachment: 169496

Committed r131919: &lt;http://trac.webkit.org/changeset/131919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746432</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 10:41:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169496</attachid>
            <date>2012-10-18 16:02:17 -0700</date>
            <delta_ts>2012-10-19 10:41:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>srl.txt</filename>
            <type>text/plain</type>
            <size>4450</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTgxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTE4ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVvcmRlciBzb21lIGZ1bmN0
aW9ucyBpbiBTdWJyZXNvdXJjZUxvYWRlciB0byBwZXJtaXQgbWFpbiByZXNvdXJjZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzY5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9zdCByZXNvdXJjZSB0
eXBlcyB0aGF0IGdvIHRocm91Z2ggdGhlIG1lbW9yeSBjYWNoZSAoYW5kIHRoZXJlZm9yZQorICAg
ICAgICB0aHJvdWdoIFN1YnJlc291cmNlTG9hZGVyKSBhcmUgbm90IHNlbnNpdGl2ZSB0byB0aGUg
ZXhhY3Qgb3JkZXJpbmcgb2YKKyAgICAgICAgdGhlIGNhbGxiYWNrcyB0aGV5IHJlY2VpdmUsIHBh
cnRpY3VsYXJseSBhcyBpdCByZWxhdGVzIHRvIFJlc291cmNlTG9hZE5vdGlmaWVyCisgICAgICAg
IGNhbGxzLiAgTWFpbiByZXNvdXJjZXMgYXJlIG5vdCBzbyBsZW5pZW50LiAgRm9yIG1haW4gcmVz
b3VyY2VzIHRvIGJlIGNhY2hlYWJsZQorICAgICAgICBhbmQgbWFpbnRhaW4gdGhlIGN1cnJlbnQg
YmVoYXZpb3IgYXMgcHJlY2lzZWx5IGFzIHBvc3NpYmxlLCB3ZSB3aWxsIG5lZWQgdG8KKyAgICAg
ICAgcmVhcnJhbmdlIFN1YnJlc291cmNlTG9hZGVyJ3Mgd2lsbFNlbmRSZXF1ZXN0KCkgYW5kIGRp
ZFJlY2VpdmVEYXRhKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3RvciBvbmx5Lgor
CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1YnJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOiBUaGVyZSBhcmUgYSBzZXJp
ZXMgb2YgY2hlY2tzIHRoYXQgY2FuIHJlc3VsdAorICAgICAgICAgICAgaW4gdGhlIHJlcXVlc3Qg
YmVpbmcgY2FuY2VsZWQsIHBsdXMgY2FsbHMgdG8gQ2FjaGVkUmVzb3VyY2U6OndpbGxTZW5kUmVx
dWVzdCgpIGFuZAorICAgICAgICAgICAgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCgp
LiAgTWFpblJlc291cmNlTG9hZGVyICh3aGljaCB3aWxsIGJlIGEKKyAgICAgICAgICAgIENhY2hl
ZFJlc291cmNlQ2xpZW50KSBoYXMgd29yayBpdCBleHBlY3RzIHRvIGRvIGJlZm9yZSBSZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KCkKKyAgICAgICAgICAgIGlzIGNhbGxlZCwgYnV0IHRo
ZSBjYWxscyBhcmUgb3V0IG9mIG9yZGVyIGZvciB0aGF0LCBzbyBzd2FwIHRob3NlLgorICAgICAg
ICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKTogV2UgbmVlZCB0
byBwb3B1bGF0ZSBSZXNvdXJjZUxvYWRlcjo6bV9yZXNvdXJjZURhdGEKKyAgICAgICAgICAgIGJl
Zm9yZSBub3RpZnlpbmcgQ2FjaGVkUmVzb3VyY2Ugb2YgbmV3IGRhdGEsIGJ1dCB3ZSBhbHNvIHdh
bnQgdG8gZG8gQ2FjaGVkUmVzb3VyY2VDbGllbnRzIGNhbGxzCisgICAgICAgICAgICBiZWZvcmUg
Y2FsbGluZyBSZXNvdXJjZUxvYWROb3RpZmllci4gVGhpcyBtZWFucyB3ZSBjYW4ndCBkZWxlZ2F0
ZSB0byBSZXNvdXJjZUxvYWRlci4KKwogMjAxMi0xMC0xOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEzMTgxMC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmNwcAkocmV2aXNpb24gMTMxNzczKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDE3ICsxMjgsMjQgQEAKIHsKICAg
ICAvLyBTdG9yZSB0aGUgcHJldmlvdXMgVVJMIGJlY2F1c2UgdGhlIGNhbGwgdG8gUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdCB3aWxsIG1vZGlmeSBpdC4KICAgICBLVVJMIHByZXZpb3Vz
VVJMID0gcmVxdWVzdCgpLnVybCgpOwotICAgIAotICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Ci0gICAgaWYgKCFwcmV2aW91
c1VSTC5pc051bGwoKSAmJiAhbmV3UmVxdWVzdC5pc051bGwoKSAmJiBwcmV2aW91c1VSTCAhPSBu
ZXdSZXF1ZXN0LnVybCgpKSB7Ci0gICAgICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5jYW5SZXF1ZXN0KG1fcmVzb3VyY2UtPnR5cGUoKSwgbmV3UmVxdWVz
dC51cmwoKSkpIHsKLSAgICAgICAgICAgIGlmIChtX3Jlc291cmNlLT50eXBlKCkgIT0gQ2FjaGVk
UmVzb3VyY2U6OkltYWdlUmVzb3VyY2UgfHwgIW1fZG9jdW1lbnRMb2FkZXItPmNhY2hlZFJlc291
cmNlTG9hZGVyKCktPnNob3VsZERlZmVySW1hZ2VMb2FkKG5ld1JlcXVlc3QudXJsKCkpKSB7Ci0g
ICAgICAgICAgICAgICAgbV9yZXNvdXJjZS0+d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJl
ZGlyZWN0UmVzcG9uc2UpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0K
KworICAgIEFTU0VSVCghbmV3UmVxdWVzdC5pc051bGwoKSk7CisgICAgaWYgKCFwcmV2aW91c1VS
TC5pc051bGwoKSAmJiBwcmV2aW91c1VSTCAhPSBuZXdSZXF1ZXN0LnVybCgpKSB7CisgICAgICAg
IGlmICghbV9kb2N1bWVudExvYWRlci0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+Y2FuUmVxdWVz
dChtX3Jlc291cmNlLT50eXBlKCksIG5ld1JlcXVlc3QudXJsKCkpKSB7CisgICAgICAgICAgICBj
YW5jZWwoKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjYW5jZWwo
KTsKKyAgICAgICAgaWYgKG1fcmVzb3VyY2UtPnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6SW1h
Z2VSZXNvdXJjZSAmJiBtX2RvY3VtZW50TG9hZGVyLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5z
aG91bGREZWZlckltYWdlTG9hZChuZXdSZXF1ZXN0LnVybCgpKSkgeworICAgICAgICAgICAgY2Fu
Y2VsKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbV9yZXNvdXJj
ZS0+d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIH0K
KworICAgIGlmIChuZXdSZXF1ZXN0LmlzTnVsbCgpIHx8IHJlYWNoZWRUZXJtaW5hbFN0YXRlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3Qo
bmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiB9CiAKIHZvaWQgU3VicmVzb3VyY2VMb2Fk
ZXI6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxv
bmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCkBAIC0yMDcsMTIgKzIxNCwxMSBAQAogICAgIC8v
IFJlZmVyZW5jZSB0aGUgb2JqZWN0IGluIHRoaXMgbWV0aG9kIHNpbmNlIHRoZSBhZGRpdGlvbmFs
IHByb2Nlc3NpbmcgY2FuIGRvCiAgICAgLy8gYW55dGhpbmcgaW5jbHVkaW5nIHJlbW92aW5nIHRo
ZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyAz
MjY2MjE2LgogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKLSAg
ICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0
YUxlbmd0aCwgYWxsQXRPbmNlKTsKLQotICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZW5kRGF0YVRvUmVzb3VyY2UoZGF0YSwgbGVuZ3Ro
KTsKKyAgICBhZGREYXRhKGRhdGEsIGxlbmd0aCwgYWxsQXRPbmNlKTsKKyAgICBpZiAoIW1fbG9h
ZGluZ011bHRpcGFydENvbnRlbnQpCisgICAgICAgIHNlbmREYXRhVG9SZXNvdXJjZShkYXRhLCBs
ZW5ndGgpOworICAgIGlmIChzaG91bGRTZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgJiYgbV9m
cmFtZSkKKyAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkUmVjZWl2ZURhdGEo
dGhpcywgZGF0YSwgbGVuZ3RoLCBzdGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7
CiB9CiAKIGJvb2wgU3VicmVzb3VyY2VMb2FkZXI6OmNoZWNrRm9ySFRUUFN0YXR1c0NvZGVFcnJv
cigpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>