<?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>98463</bug_id>
          
          <creation_ts>2012-10-04 16:28:39 -0700</creation_ts>
          <short_desc>Post-r130226 Cleanup: Comment a complicate if statement and make it a helper</short_desc>
          <delta_ts>2012-10-08 17:59:36 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>735113</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-04 16:28:39 -0700</bug_when>
    <thetext>As requested in https://bugs.webkit.org/show_bug.cgi?id=96539#c6 :

&gt;&gt; Source/WebCore/rendering/RenderLayer.cpp:1793
&gt;&gt; +                if ((frameElement &amp;&amp; frameElement-&gt;scrollingMode() != ScrollbarAlwaysOff) || (!frameView-&gt;frame()-&gt;eventHandler()-&gt;autoscrollInProgress() &amp;&amp; !frameView-&gt;wasScrolledByUser())) {
&gt; 
&gt; it is turning to be a long line.

An inline helper function could spread this out over multiple lines and allow a comment on each line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735117</commentid>
    <comment_count>1</comment_count>
      <attachid>167203</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-10-04 16:38:12 -0700</bug_when>
    <thetext>Created attachment 167203
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737155</commentid>
    <comment_count>2</comment_count>
      <attachid>167203</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-08 16:02:23 -0700</bug_when>
    <thetext>Comment on attachment 167203
patch

Amen, brother.  Amen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737198</commentid>
    <comment_count>3</comment_count>
      <attachid>167203</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-08 16:20:27 -0700</bug_when>
    <thetext>Comment on attachment 167203
patch

Clearing flags on attachment: 167203

Committed r130700: &lt;http://trac.webkit.org/changeset/130700&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737199</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-08 16:20:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737283</commentid>
    <comment_count>5</comment_count>
      <attachid>167203</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-08 17:59:36 -0700</bug_when>
    <thetext>Comment on attachment 167203
patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:1771
&gt; +    // If scrollbars aren&apos;t explicitly forbidden, permit scrolling.
&gt; +    if (frameElement &amp;&amp; frameElement-&gt;scrollingMode() != ScrollbarAlwaysOff)
&gt; +        return true;
&gt; +
&gt; +    // If scrollbars are forbidden, user initiated scrolls should obviously be ignored.
&gt; +    if (frameView-&gt;wasScrolledByUser())
&gt; +        return false;
&gt; +
&gt; +    // Forbid autoscrolls when scrollbars are off, but permits other programmatic scrolls,
&gt; +    // like navigation to an anchor.
&gt; +    return !frameView-&gt;frame()-&gt;eventHandler()-&gt;autoscrollInProgress();

Great idea to do this!

I’d prefer comments that talk more about “why” and do less restatement of what the code says. Kind of like this:

    // The goal here is to forbid user-initiated scrolling in frames that forbid scrollbars.

    // If scrollbars are not forbidden, we’d like to allow scrolling without further checks.

    // The most obvious kind of user-initiated scrolling is indicated by state in the FrameView.

    // Autoscrolling is an indirect form of user-initiated scrolling, also forbidden, and requires a separate check.

I also think it would be clearer if the last return statement was an if statement saying &quot;if (autoscrollInProgress) return false;&quot;

It’s also unclear why “was scrolled by user” is a way to tell that the current scrolling is a user scroll. The word “was” there seems to indicate we’re indicating something about the past, not about the current scroll event.

And given its true purpose, why doesn’t the “was scrolled by user” function return true when autoscroll is in progress? If it did, this code would be simpler.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167203</attachid>
            <date>2012-10-04 16:38:12 -0700</date>
            <delta_ts>2012-10-08 17:59:36 -0700</delta_ts>
            <desc>patch</desc>
            <filename>rl.txt</filename>
            <type>text/plain</type>
            <size>2628</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMDQzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTA0ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUG9zdC1yMTMwMjI2IENsZWFu
dXA6IENvbW1lbnQgYSBjb21wbGljYXRlZCBpZiBzdGF0ZW1lbnQgYW5kIG1ha2UgaXQgYSBoZWxw
ZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQ2
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgcmVmYWN0b3Igb25seS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmcmFtZUVsZW1lbnRBbmRWaWV3UGVybWl0U2Nyb2xs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKToK
KwogMjAxMi0xMC0wNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBCdWlsZCBmaXggYWZ0ZXIgcjEzMDQxMS4gQWRkIHRoZSByaWdodCBvZmZzZXQuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDEzMDMzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE3NTYsNiArMTc1NiwyMSBAQAogICAgICAgICByZW5kZXJlcigpLT5ub2RlKCktPmRv
Y3VtZW50KCktPmV2ZW50UXVldWUoKS0+ZW5xdWV1ZU9yRGlzcGF0Y2hTY3JvbGxFdmVudChyZW5k
ZXJlcigpLT5ub2RlKCksIERvY3VtZW50RXZlbnRRdWV1ZTo6U2Nyb2xsRXZlbnRFbGVtZW50VGFy
Z2V0KTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGZyYW1lRWxlbWVudEFuZFZpZXdQZXJtaXRT
Y3JvbGwoSFRNTEZyYW1lRWxlbWVudCogZnJhbWVFbGVtZW50LCBGcmFtZVZpZXcqIGZyYW1lVmll
dykgCit7CisgICAgLy8gSWYgc2Nyb2xsYmFycyBhcmVuJ3QgZXhwbGljaXRseSBmb3JiaWRkZW4s
IHBlcm1pdCBzY3JvbGxpbmcuCisgICAgaWYgKGZyYW1lRWxlbWVudCAmJiBmcmFtZUVsZW1lbnQt
PnNjcm9sbGluZ01vZGUoKSAhPSBTY3JvbGxiYXJBbHdheXNPZmYpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgLy8gSWYgc2Nyb2xsYmFycyBhcmUgZm9yYmlkZGVuLCB1c2VyIGluaXRpYXRl
ZCBzY3JvbGxzIHNob3VsZCBvYnZpb3VzbHkgYmUgaWdub3JlZC4KKyAgICBpZiAoZnJhbWVWaWV3
LT53YXNTY3JvbGxlZEJ5VXNlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBG
b3JiaWQgYXV0b3Njcm9sbHMgd2hlbiBzY3JvbGxiYXJzIGFyZSBvZmYsIGJ1dCBwZXJtaXRzIG90
aGVyIHByb2dyYW1tYXRpYyBzY3JvbGxzLAorICAgIC8vIGxpa2UgbmF2aWdhdGlvbiB0byBhbiBh
bmNob3IuCisgICAgcmV0dXJuICFmcmFtZVZpZXctPmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5h
dXRvc2Nyb2xsSW5Qcm9ncmVzcygpOworfQorCiB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0
VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYg
YWxpZ25YLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSkKIHsKICAgICBSZW5kZXJMYXll
ciogcGFyZW50TGF5ZXIgPSAwOwpAQCAtMTgwNiw4ICsxODIxLDcgQEAKICAgICAgICAgICAgICAg
ICBpZiAob3duZXJFbGVtZW50LT5oYXNUYWdOYW1lKGZyYW1lVGFnKSB8fCBvd25lckVsZW1lbnQt
Pmhhc1RhZ05hbWUoaWZyYW1lVGFnKSkKICAgICAgICAgICAgICAgICAgICAgZnJhbWVFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudCo+KG93bmVyRWxlbWVudCk7CiAKLSAgICAg
ICAgICAgICAgICBpZiAoKGZyYW1lRWxlbWVudCAmJiBmcmFtZUVsZW1lbnQtPnNjcm9sbGluZ01v
ZGUoKSAhPSBTY3JvbGxiYXJBbHdheXNPZmYpCi0gICAgICAgICAgICAgICAgICAgIHx8ICghZnJh
bWVWaWV3LT5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+YXV0b3Njcm9sbEluUHJvZ3Jlc3MoKSAm
JiAhZnJhbWVWaWV3LT53YXNTY3JvbGxlZEJ5VXNlcigpKSkgeworICAgICAgICAgICAgICAgIGlm
IChmcmFtZUVsZW1lbnRBbmRWaWV3UGVybWl0U2Nyb2xsKGZyYW1lRWxlbWVudCwgZnJhbWVWaWV3
KSkgewogICAgICAgICAgICAgICAgICAgICBMYXlvdXRSZWN0IHZpZXdSZWN0ID0gZnJhbWVWaWV3
LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAgICAgICAgICAgICAgICAgTGF5b3V0UmVjdCBl
eHBvc2VSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCByZWN0LCBhbGlnblgsIGFsaWdu
WSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>