<?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>159962</bug_id>
          
          <creation_ts>2016-07-19 19:50:34 -0700</creation_ts>
          <short_desc>PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender is alive</short_desc>
          <delta_ts>2016-07-20 06:03:31 -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>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1212638</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-19 19:50:34 -0700</bug_when>
    <thetext>PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender is alive. We have both PostResolutionCallbackDisabler and ResourceLoadSuspender that call LoaderStrategy::suspendPendingRequests() / LoaderStrategy::resumePendingRequests(). However, PostResolutionCallbackDisabler and ResourceLoadSuspender are not aware of each other. It is therefore possible for a PostResolutionCallbackDisabler object to get destroyed and for LoaderStrategy::resumePendingRequests() to be called while a ResourceLoadSuspender object is alive.

This leads to hard to investigate crashes where we end up re-entering WebKit and killing the style resolver.

My proposal is to drop ResourceLoadSuspender and use PostResolutionCallbackDisabler instead. There is only one user of ResourceLoadSuspender and PostResolutionCallbackDisabler is better because it manages a resolutionNestingDepth counter internally to make sure it only calls LoaderStrategy::resumePendingRequests() once all PostResolutionCallbackDisabler instances are destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212639</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-19 19:50:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/21439264&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212640</commentid>
    <comment_count>2</comment_count>
      <attachid>284079</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-07-19 19:54:40 -0700</bug_when>
    <thetext>Created attachment 284079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212714</commentid>
    <comment_count>3</comment_count>
      <attachid>284079</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-07-20 05:42:23 -0700</bug_when>
    <thetext>Comment on attachment 284079
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212716</commentid>
    <comment_count>4</comment_count>
      <attachid>284079</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 06:03:26 -0700</bug_when>
    <thetext>Comment on attachment 284079
Patch

Clearing flags on attachment: 284079

Committed r203450: &lt;http://trac.webkit.org/changeset/203450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212717</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-20 06:03:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284079</attachid>
            <date>2016-07-19 19:54:40 -0700</date>
            <delta_ts>2016-07-20 06:03:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-159962-20160719195343.patch</filename>
            <type>text/plain</type>
            <size>4213</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI1YjFhYTQwMzEyNWI1
OTc2NWQxMWQ2YjAzZTM1ZjA0NmIzZTNkYi4uNzMwMjBkMzk2NGE5NGZkMmU5YzllZjkzOTk5YzA3
ODE5YjAyYzM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM5IEBACiAyMDE2LTA3LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgUG9zdFJlc29sdXRpb25DYWxs
YmFja0Rpc2FibGVyIGNhbiByZXN1bWUgcGVuZGluZyByZXF1ZXN0cyB3aGlsZSBhIFJlc291cmNl
TG9hZFN1c3BlbmRlciBpcyBhbGl2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU5OTYyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTQzOTI2ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQb3N0UmVz
b2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgY2FuIHJlc3VtZSBwZW5kaW5nIHJlcXVlc3RzIHdoaWxl
IGEgUmVzb3VyY2VMb2FkU3VzcGVuZGVyCisgICAgICAgIGlzIGFsaXZlLiBXZSBoYXZlIGJvdGgg
UG9zdFJlc29sdXRpb25DYWxsYmFja0Rpc2FibGVyIGFuZCBSZXNvdXJjZUxvYWRTdXNwZW5kZXIg
dGhhdAorICAgICAgICBjYWxsIExvYWRlclN0cmF0ZWd5OjpzdXNwZW5kUGVuZGluZ1JlcXVlc3Rz
KCkgLyBMb2FkZXJTdHJhdGVneTo6cmVzdW1lUGVuZGluZ1JlcXVlc3RzKCkuCisgICAgICAgIEhv
d2V2ZXIsIFBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBhbmQgUmVzb3VyY2VMb2FkU3Vz
cGVuZGVyIGFyZSBub3QgYXdhcmUgb2YgZWFjaAorICAgICAgICBvdGhlci4gSXQgaXMgdGhlcmVm
b3JlIHBvc3NpYmxlIGZvciBhIFBvc3RSZXNvbHV0aW9uQ2FsbGJhY2tEaXNhYmxlciBvYmplY3Qg
dG8gZ2V0CisgICAgICAgIGRlc3Ryb3llZCwgY2F1c2luZyBMb2FkZXJTdHJhdGVneTo6cmVzdW1l
UGVuZGluZ1JlcXVlc3RzKCkgdG8gYmUgY2FsbGVkIHdoaWxlIGEKKyAgICAgICAgUmVzb3VyY2VM
b2FkU3VzcGVuZGVyIG9iamVjdCBpcyBhbGl2ZS4KKworICAgICAgICBUaGlzIGxlYWRzIHRvIGhh
cmQgdG8gaW52ZXN0aWdhdGUgY3Jhc2hlcyB3aGVyZSB3ZSBlbmQgdXAgcmUtZW50ZXJpbmcgV2Vi
S2l0IGFuZCBraWxsaW5nCisgICAgICAgIHRoZSBzdHlsZSByZXNvbHZlci4KKworICAgICAgICBU
aGlzIHBhdGNoIGRyb3BzIFJlc291cmNlTG9hZFN1c3BlbmRlciBhbmQgdXNlcyBQb3N0UmVzb2x1
dGlvbkNhbGxiYWNrRGlzYWJsZXIgaW5zdGVhZC4KKyAgICAgICAgVGhlcmUgd2FzIG9ubHkgb25l
IHVzZXIgb2YgUmVzb3VyY2VMb2FkU3VzcGVuZGVyIGFuZCBQb3N0UmVzb2x1dGlvbkNhbGxiYWNr
RGlzYWJsZXIKKyAgICAgICAgaXMgYmV0dGVyIGJlY2F1c2UgaXQgbWFuYWdlcyBhIHJlc29sdXRp
b25OZXN0aW5nRGVwdGggY291bnRlciBpbnRlcm5hbGx5IHRvIG1ha2Ugc3VyZQorICAgICAgICBp
dCBvbmx5IGNhbGxzIExvYWRlclN0cmF0ZWd5OjpyZXN1bWVQZW5kaW5nUmVxdWVzdHMoKSBvbmNl
IGFsbAorICAgICAgICBQb3N0UmVzb2x1dGlvbkNhbGxiYWNrRGlzYWJsZXIgaW5zdGFuY2VzIGFy
ZSBkZXN0cm95ZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGVyZSBpcyBubyBlYXN5IHdh
eSB0byByZXByb2R1Y2UgdGhlIGNyYXNoZXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnN0eWxlRm9yRWxlbWVudElnbm9yaW5nUGVu
ZGluZ1N0eWxlc2hlZXRzKToKKyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3VzcGVuZGVyOjpSZXNvdXJjZUxvYWRTdXNw
ZW5kZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3VzcGVuZGVy
Ojp+UmVzb3VyY2VMb2FkU3VzcGVuZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvTG9h
ZGVyU3RyYXRlZ3kuaDoKKworMjAxNi0wNy0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCiAgICAgICAgIERvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygpIC8gY3JlYXRlQXR0cmli
dXRlTlMoKSBwYXJhbWV0ZXJzIHNob3VsZCBiZSBtYW5kYXRvcnkKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTkzOAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA1NjRhOTYxMmM0YWJkYTA1MTgzOGY3Y2M5NGY3N2IyMWYzNGFhNWRmLi42OTMw
NTQwODI0ZGU3Njk4MDBiNDgxNjk0YjA5OTIyOTE2YmEzZTExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTIwNDMsNyArMjA0Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4g
RG9jdW1lbnQ6OnN0eWxlRm9yRWxlbWVudElnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzCiAgICAg
QVNTRVJUKCZlbGVtZW50LmRvY3VtZW50KCkgPT0gdGhpcyk7CiAKICAgICAvLyBPbiBpT1MgcmVx
dWVzdCBkZWxlZ2F0ZXMgY2FsbGVkIGR1cmluZyBzdHlsZUZvckVsZW1lbnQgbWF5IHJlc3VsdCBp
biByZS1lbnRlcmluZyBXZWJLaXQgYW5kIGtpbGxpbmcgdGhlIHN0eWxlIHJlc29sdmVyLgotICAg
IFJlc291cmNlTG9hZFN1c3BlbmRlciBzdXNwZW5kZXI7CisgICAgU3R5bGU6OlBvc3RSZXNvbHV0
aW9uQ2FsbGJhY2tEaXNhYmxlciBkaXNhYmxlcigqdGhpcyk7CiAKICAgICBUZW1wb3JhcnlDaGFu
Z2U8Ym9vbD4gY2hhbmdlKG1faWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzLCB0cnVlKTsKICAgICBh
dXRvIGVsZW1lbnRTdHlsZSA9IGVsZW1lbnQucmVzb2x2ZVN0eWxlKHBhcmVudFN0eWxlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDdmZTc2MzFhMjkwNGY5
ZTFiZmIxNjA0MTdmODVjMjU2YTg4MTBiMjMuLjc1YWFlNDI4NTNiZTRjNjAwYWM1NmM1OTk1OWFm
YTQyZmUyOWE2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmNwcApA
QCAtMzQsMTYgKzM0LDYgQEAgTG9hZGVyU3RyYXRlZ3k6On5Mb2FkZXJTdHJhdGVneSgpCiB7CiB9
CiAKLVJlc291cmNlTG9hZFN1c3BlbmRlcjo6UmVzb3VyY2VMb2FkU3VzcGVuZGVyKCkKLXsKLSAg
ICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+c3VzcGVuZFBlbmRpbmdS
ZXF1ZXN0cygpOwotfQotCi1SZXNvdXJjZUxvYWRTdXNwZW5kZXI6On5SZXNvdXJjZUxvYWRTdXNw
ZW5kZXIoKQotewotICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5y
ZXN1bWVQZW5kaW5nUmVxdWVzdHMoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNjIxZWYwZGM4MjdlOTEx
N2RhZWQ1NTI2NGFlNjM4ZGE5NDIwNDY2ZS4uNzdjZDVjMzc3NGM2NTEwNTc3YmExMjY5MzgyMDUx
MDA0ZjU0ZjFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0
ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTY1
LDEyICs2NSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Mb2FkZXJTdHJhdGVneSgpOwog
fTsKIAotY2xhc3MgUmVzb3VyY2VMb2FkU3VzcGVuZGVyIHsKLXB1YmxpYzoKLSAgICBSZXNvdXJj
ZUxvYWRTdXNwZW5kZXIoKTsKLSAgICB+UmVzb3VyY2VMb2FkU3VzcGVuZGVyKCk7Ci19OwotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBMb2FkZXJTdHJhdGVneV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>