<?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>136174</bug_id>
          
          <creation_ts>2014-08-22 15:18:46 -0700</creation_ts>
          <short_desc>build.webkit.org/dashboard: Further improve Trac loading</short_desc>
          <delta_ts>2014-08-23 18:35:41 -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>Tools / Tests</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030809</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-08-22 15:18:46 -0700</bug_when>
    <thetext>Currently, Trac.js supports two use cases:

1. Continuously loading newest commits, in which case newly loaded commits are always newer than existing ones.

2. Progressively loading more and more commits, each time starting from current one. In this case, newly loaded commits are usually older than existing ones, except when a new commit gets landed.

Generalize this to load arbitrary ranges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030814</commentid>
    <comment_count>1</comment_count>
      <attachid>237003</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-08-22 15:28:35 -0700</bug_when>
    <thetext>Created attachment 237003
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030937</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-08-23 18:35:41 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r172892&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237003</attachid>
            <date>2014-08-22 15:28:35 -0700</date>
            <delta_ts>2014-08-23 08:56:11 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>TracLoading.txt</filename>
            <type>text/plain</type>
            <size>7033</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDE3Mjg3MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE0LTA4LTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIGJ1aWxkLndlYmtpdC5vcmcvZGFzaGJvYXJkOiBGdXJ0aGVyIGltcHJvdmUg
VHJhYyBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzYxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL1RyYWMuanM6CisgICAgICAgIChUcmFjLnByb3RvdHlwZS5f
eG1sVGltZWxpbmVVUkwpOiBQYXNzaW5nIC0xIGFzICJtYXgiIHJlc3VsdGVkIGluIGFuIG9mZiBi
eSBvbmUKKyAgICAgICAgZXJyb3IsIHRoZSBvbGRlc3QgY29tbWl0IHdpdGhpbiB0aGUgcmFuZ2Ug
d2Fzbid0IHJldHVybmVkLiBUaGUgY29ycmVjdCBhcmd1bWVudCBmb3IKKyAgICAgICAgIm5vIGxp
bWl0IiBpcyAwLgorICAgICAgICAoVHJhYy5wcm90b3R5cGUubG9hZCk6IEFkZGVkIGEgZnVuY3Rp
b24gdG8gbG9hZCBhIHNwZWNpZmljIHRpbWUgcmFuZ2UuCisgICAgICAgIChUcmFjLnByb3RvdHlw
ZS5fbG9hZGVkKTogVXBkYXRlZCB0byBzdXBwb3J0IGxvYWRpbmcgcmV2aXNpb25zIHRoYXQgYXJl
IGFyYml0cmFyaWx5CisgICAgICAgIHBvc2l0aW9uZWQgd2l0aCByZWdhcmRzIHRvIG9uZXMgdGhh
dCB3ZXJlIGFscmVhZHkga25vd24uCisKIDIwMTQtMDgtMjIgIENhcmxvcyBBbGJlcnRvIExvcGV6
IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gaW5zdGFsbC1kZXBl
bmRlbmNpZXMgZG9uJ3QgaW5zdGFsbHMgWHZmYiB0aGF0IGlzIG5lZWRlZCBmb3IgdGhlIHRlc3Rz
LgpJbmRleDogVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvVHJhYy5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9k
YXNoYm9hcmQvU2NyaXB0cy9UcmFjLmpzCShyZXZpc2lvbiAxNzI4NzMpCisrKyBUb29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9UcmFjLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw3ICs0NCw4IEBAIFRyYWMuTmVl
ZHNBdXRoZW50aWNhdGlvbiA9ICJuZWVkc0F1dGhlbnQKIFRyYWMuVXBkYXRlSW50ZXJ2YWwgPSA0
NTAwMDsgLy8gNDUgc2Vjb25kcwogCiBUcmFjLkV2ZW50ID0gewotICAgIENvbW1pdHNVcGRhdGVk
OiAiY29tbWl0cy11cGRhdGVkIgorICAgIENvbW1pdHNVcGRhdGVkOiAiY29tbWl0cy11cGRhdGVk
IiwKKyAgICBMb2FkZWQ6ICJsb2FkZWQiCiB9OwogCiBUcmFjLnByb3RvdHlwZSA9IHsKQEAgLTc4
LDcgKzc5LDcgQEAgVHJhYy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBmcm9tRGF5ID0gbmV3
IERhdGUoZnJvbURhdGUuZ2V0RnVsbFllYXIoKSwgZnJvbURhdGUuZ2V0TW9udGgoKSwgZnJvbURh
dGUuZ2V0RGF0ZSgpKTsKICAgICAgICAgdmFyIHRvRGF5ID0gbmV3IERhdGUodG9EYXRlLmdldEZ1
bGxZZWFyKCksIHRvRGF0ZS5nZXRNb250aCgpLCB0b0RhdGUuZ2V0RGF0ZSgpKTsKIAotICAgICAg
ICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInRpbWVsaW5lP2NoYW5nZXNldD1vbiZmb3JtYXQ9cnNz
Jm1heD0tMSIgKworICAgICAgICByZXR1cm4gdGhpcy5iYXNlVVJMICsgInRpbWVsaW5lP2NoYW5n
ZXNldD1vbiZmb3JtYXQ9cnNzJm1heD0wIiArCiAgICAgICAgICAgICAiJmZyb209IiArICAodG9E
YXkuZ2V0TW9udGgoKSArIDEpICsgIiUyRiIgKyB0b0RheS5nZXREYXRlKCkgKyAiJTJGIiArICh0
b0RheS5nZXRGdWxsWWVhcigpICUgMTAwKSArCiAgICAgICAgICAgICAiJmRheXNiYWNrPSIgKyAo
KHRvRGF5IC0gZnJvbURheSkgLyAxMDAwIC8gNjAgLyA2MCAvIDI0KTsKICAgICB9LApAQCAtMTI2
LDU5ICsxMjcsNDQgQEAgVHJhYy5wcm90b3R5cGUgPSB7CiAKICAgICBfbG9hZGVkOiBmdW5jdGlv
bihkYXRhRG9jdW1lbnQpCiAgICAgewotICAgICAgICB2YXIgZWFybGllc3RLbm93blJldmlzaW9u
ID0gMDsKLSAgICAgICAgdmFyIGxhdGVzdEtub3duUmV2aXNpb24gPSAwOwotICAgICAgICBpZiAo
dGhpcy5yZWNvcmRlZENvbW1pdHMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBlYXJsaWVzdEtub3du
UmV2aXNpb24gPSB0aGlzLnJlY29yZGVkQ29tbWl0c1swXS5yZXZpc2lvbk51bWJlcjsKLSAgICAg
ICAgICAgIGxhdGVzdEtub3duUmV2aXNpb24gPSB0aGlzLnJlY29yZGVkQ29tbWl0c1t0aGlzLnJl
Y29yZGVkQ29tbWl0cy5sZW5ndGggLSAxXS5yZXZpc2lvbk51bWJlcjsKLSAgICAgICAgfQorICAg
ICAgICB2YXIgcmVjb3JkZWRSZXZpc2lvbk51bWJlcnMgPSB0aGlzLnJlY29yZGVkQ29tbWl0cy5y
ZWR1Y2UoZnVuY3Rpb24ocHJldmlvdXNSZXN1bHQsIGNvbW1pdCkgeworICAgICAgICAgICAgcHJl
dmlvdXNSZXN1bHRbY29tbWl0LnJldmlzaW9uTnVtYmVyXSA9IGNvbW1pdDsKKyAgICAgICAgICAg
IHJldHVybiBwcmV2aW91c1Jlc3VsdDsKKyAgICAgICAgfSwge30pOwogCiAgICAgICAgIHZhciBr
bm93bkNvbW1pdHNXZXJlVXBkYXRlZCA9IGZhbHNlOwogICAgICAgICB2YXIgbmV3Q29tbWl0cyA9
IFtdOwotICAgICAgICB2YXIgbmV3Q29tbWl0c0JlZm9yZUVhcmxpZXN0S25vd25SZXZpc2lvbiA9
IFtdOwogCiAgICAgICAgIHZhciBjb21taXRJbmZvRWxlbWVudHMgPSBkYXRhRG9jdW1lbnQuZXZh
bHVhdGUoIi9yc3MvY2hhbm5lbC9pdGVtIiwgZGF0YURvY3VtZW50LCBudWxsLCBYUGF0aFJlc3Vs
dC5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSk7Ci0gICAgICAgIHZhciBjb21taXRJbmZvRWxl
bWVudCA9IHVuZGVmaW5lZDsKLSAgICAgICAgdmFyIGluZGV4SW5SZWNvcmRlZENvbW1pdHMgPSB1
bmRlZmluZWQ7CisgICAgICAgIHZhciBjb21taXRJbmZvRWxlbWVudDsKICAgICAgICAgd2hpbGUg
KGNvbW1pdEluZm9FbGVtZW50ID0gY29tbWl0SW5mb0VsZW1lbnRzLml0ZXJhdGVOZXh0KCkpIHsK
ICAgICAgICAgICAgIHZhciBjb21taXQgPSB0aGlzLl9jb252ZXJ0Q29tbWl0SW5mb0VsZW1lbnRU
b09iamVjdChkYXRhRG9jdW1lbnQsIGNvbW1pdEluZm9FbGVtZW50KTsKLSAgICAgICAgICAgIGlm
IChjb21taXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RLbm93blJldmlzaW9uKSB7Ci0gICAgICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGluZGV4SW5SZWNvcmRlZENvbW1pdHMgPT09
ICJ1bmRlZmluZWQiKTsKLSAgICAgICAgICAgICAgICBuZXdDb21taXRzLnB1c2goY29tbWl0KTsK
LSAgICAgICAgICAgIH0gZWxzZSBpZiAoY29tbWl0LnJldmlzaW9uTnVtYmVyIDwgZWFybGllc3RL
bm93blJldmlzaW9uKSB7Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIGlu
ZGV4SW5SZWNvcmRlZENvbW1pdHMgPT09ICJ1bmRlZmluZWQiIHx8IGluZGV4SW5SZWNvcmRlZENv
bW1pdHMgPT09IC0xKTsKLSAgICAgICAgICAgICAgICBuZXdDb21taXRzQmVmb3JlRWFybGllc3RL
bm93blJldmlzaW9uLnB1c2goY29tbWl0KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKHR5cGVvZiBpbmRleEluUmVjb3JkZWRDb21taXRzID09PSAidW5kZWZpbmVk
IikgewotICAgICAgICAgICAgICAgICAgICAvLyBXZSBjb3VsZCBoYXZlIHN0YXJ0ZWQgYW55d2hl
cmUgaW4gdGhlIHJlY29yZGVkIGNvbW1pdHMgYXJyYXksIGxldCdzIGZpbmQgd2hlcmUuCi0gICAg
ICAgICAgICAgICAgICAgIC8vIFdpdGggcGVyaW9kaWMgdXBkYXRlcywgdGhpcyB3aWxsIGJlIHRo
ZSBsYXRlc3QgcmVjb3JkZWQgY29tbWl0LCBzbyBzdGFydGluZyBmcm9tIHRoZSBlbmQuCi0gICAg
ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSB0aGlzLnJlY29yZGVkQ29tbWl0cy5sZW5ndGgg
LSAxOyBpID49IDA7IC0taSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVj
b3JkZWRDb21taXRzW2ldLnJldmlzaW9uTnVtYmVyID09PSBjb21taXQucmV2aXNpb25OdW1iZXIp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleEluUmVjb3JkZWRDb21taXRzID0g
aTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGluZGV4SW5SZWNvcmRlZENvbW1pdHMgPj0gMCk7
Ci0gICAgICAgICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5yZWNvcmRlZENvbW1pdHNbaW5k
ZXhJblJlY29yZGVkQ29tbWl0c10ucmV2aXNpb25OdW1iZXIgPT09IGNvbW1pdC5yZXZpc2lvbk51
bWJlcik7Ci0KKyAgICAgICAgICAgIGlmIChjb21taXQucmV2aXNpb25OdW1iZXIgaW4gcmVjb3Jk
ZWRSZXZpc2lvbk51bWJlcnMpIHsKICAgICAgICAgICAgICAgICAvLyBBdXRob3IgY291bGQgaGF2
ZSBjaGFuZ2VkLCBhcyBjb21taXQgcXVldWUgcmVwbGFjZXMgaXQgYWZ0ZXIgdGhlIGZhY3QuCi0g
ICAgICAgICAgICAgICAgaWYgKHRoaXMucmVjb3JkZWRDb21taXRzW2luZGV4SW5SZWNvcmRlZENv
bW1pdHNdLmF1dGhvciAhPT0gY29tbWl0LmF1dGhvcikgewotICAgICAgICAgICAgICAgICAgICB0
aGlzLnJlY29yZGVkQ29tbWl0c1tpbmRleEluUmVjb3JkZWRDb21taXRzXS5hdXRob3IgPSBjb21t
aXQuYXV0aG9yOworICAgICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlY29yZGVkUmV2aXNp
b25OdW1iZXJzW2NvbW1pdC5yZXZpc2lvbk51bWJlcl0ucmV2aXNpb25OdW1iZXIgPT09IGNvbW1p
dC5yZXZpc2lvbk51bWJlcik7CisgICAgICAgICAgICAgICAgaWYgKHJlY29yZGVkUmV2aXNpb25O
dW1iZXJzW2NvbW1pdC5yZXZpc2lvbk51bWJlcl0uYXV0aG9yICE9IGNvbW1pdC5hdXRob3IpIHsK
KyAgICAgICAgICAgICAgICAgICAgcmVjb3JkZWRSZXZpc2lvbk51bWJlcnNbY29tbWl0LnJldmlz
aW9uTnVtYmVyXS5hdXRob3IgPSBjb21taXQuYXV0aG9yOwogICAgICAgICAgICAgICAgICAgICBr
bm93bkNvbW1pdFdhc1VwZGF0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAtLWluZGV4SW5SZWNvcmRlZENvbW1pdHM7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBuZXdDb21taXRzLnB1c2goY29tbWl0KTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChuZXdDb21taXRzLmxlbmd0aCB8fCBuZXdDb21taXRzQmVm
b3JlRWFybGllc3RLbm93blJldmlzaW9uLmxlbmd0aCkKLSAgICAgICAgICAgIHRoaXMucmVjb3Jk
ZWRDb21taXRzID0gbmV3Q29tbWl0c0JlZm9yZUVhcmxpZXN0S25vd25SZXZpc2lvbi5yZXZlcnNl
KCkuY29uY2F0KHRoaXMucmVjb3JkZWRDb21taXRzLCBuZXdDb21taXRzLnJldmVyc2UoKSk7Cisg
ICAgICAgIGlmIChuZXdDb21taXRzLmxlbmd0aCkKKyAgICAgICAgICAgIHRoaXMucmVjb3JkZWRD
b21taXRzID0gbmV3Q29tbWl0cy5jb25jYXQodGhpcy5yZWNvcmRlZENvbW1pdHMpLnNvcnQoZnVu
Y3Rpb24oYSwgYikgeyByZXR1cm4gYS5yZXZpc2lvbk51bWJlciA8IGIucmV2aXNpb25OdW1iZXI7
IH0pOwogCi0gICAgICAgIGlmIChuZXdDb21taXRzLmxlbmd0aCB8fCBuZXdDb21taXRzQmVmb3Jl
RWFybGllc3RLbm93blJldmlzaW9uLmxlbmd0aCB8fCBrbm93bkNvbW1pdHNXZXJlVXBkYXRlZCkK
KyAgICAgICAgaWYgKG5ld0NvbW1pdHMubGVuZ3RoIHx8IGtub3duQ29tbWl0c1dlcmVVcGRhdGVk
KQogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoVHJhYy5FdmVudC5D
b21taXRzVXBkYXRlZCwgbnVsbCk7CiAgICAgfSwKIAorICAgIGxvYWQ6IGZ1bmN0aW9uKGZyb21E
YXRlLCB0b0RhdGUpCisgICAgeworICAgICAgICBsb2FkWE1MKHRoaXMuX3htbFRpbWVsaW5lVVJM
KGZyb21EYXRlLCB0b0RhdGUpLCBmdW5jdGlvbihkYXRhRG9jdW1lbnQpIHsKKyAgICAgICAgICAg
IHRoaXMuX2xvYWRlZChkYXRhRG9jdW1lbnQpOworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoVHJhYy5FdmVudC5Mb2FkZWQsIFtmcm9tRGF0ZSwgdG9EYXRlXSk7Cisg
ICAgICAgIH0uYmluZCh0aGlzKSwgdGhpcy5fbmVlZHNBdXRoZW50aWNhdGlvbiA/IHsgd2l0aENy
ZWRlbnRpYWxzOiB0cnVlIH0gOiB7fSk7CisgICAgfSwKKwogICAgIHVwZGF0ZTogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgbG9hZFhNTCh0aGlzLl94bWxUaW1lbGluZVVSTCgpLCB0aGlzLl9s
b2FkZWQuYmluZCh0aGlzKSwgdGhpcy5fbmVlZHNBdXRoZW50aWNhdGlvbiA/IHsgd2l0aENyZWRl
bnRpYWxzOiB0cnVlIH0gOiB7fSk7Cg==
</data>
<flag name="review"
          id="261708"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>