<?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>98561</bug_id>
          
          <creation_ts>2012-10-05 15:03:19 -0700</creation_ts>
          <short_desc>Perf test pesults page takes forever to load on a machine with a slow Internet connection</short_desc>
          <delta_ts>2012-10-08 12:01:52 -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>
          
          <blocked>77037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>ojan</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736007</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-05 15:03:19 -0700</bug_when>
    <thetext>Right now, perf. tests&apos; results page tries to load both local and remote files. As a result, when your computer is connected to a really slow network (e.g. public WiFi), it could take ages to load because it pauses the parser.

We should dynamically load scripts asynchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736009</commentid>
    <comment_count>1</comment_count>
      <attachid>167394</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-05 15:05:21 -0700</bug_when>
    <thetext>Created attachment 167394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736031</commentid>
    <comment_count>2</comment_count>
      <attachid>167394</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-05 15:25:21 -0700</bug_when>
    <thetext>Comment on attachment 167394
Patch

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

&gt; PerformanceTests/resources/results-template.html:514
&gt; +(function () {

You probably want to move this whole block close to the top of the file so that we start doing the network request ASAP.

&gt; PerformanceTests/resources/results-template.html:538
&gt; +            loadScript(prefix + &apos;/&apos; + plugins[i], function () {
&gt; +                numberOfLoadedPlugins++;
&gt; +                if (numberOfLoadedPlugins == plugins.length)
&gt; +                    init();
&gt; +            }, (function (plugin) {
&gt; +                return function () { alert(&quot;Failed to load &quot; + plugin); }
&gt; +            })(prefixes[i]));

These nested function calls are really hard to read. Can you make a local named helper function?

&gt; PerformanceTests/resources/results-template.html:542
&gt; +    var prefixes = [&apos;%AbsolutePathToWebKitTrunk%&apos;, &apos;https://svn.webkit.org/repository/webkit/trunk&apos;];

Instead of trying both, could you try the local one first and only do the network one if that fails? The local once should error out pretty quickly when it&apos;s not available.

&gt; PerformanceTests/resources/results-template.html:556
&gt; +        loadScript(prefixes[i] + &apos;/&apos; + jQuery, (function (prefix) {
&gt; +            return function () {
&gt; +                if (!startedLoadingPlugins)
&gt; +                    loadPlugins(prefix);
&gt; +                startedLoadingPlugins = true;                
&gt; +            }
&gt; +        })(prefixes[i]), function () {
&gt; +            numberOfFailures++;
&gt; +            if (numberOfFailures == prefixes.length)
&gt; +                alert(&quot;Failed to load jQuery.&quot;);
&gt; +        });

Ditto. Hard to read. It would also help if you put the second argument to loadScript on a newline after the comma.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736902</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-10-08 12:01:52 -0700</bug_when>
    <thetext>Committed r130669: &lt;http://trac.webkit.org/changeset/130669&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167394</attachid>
            <date>2012-10-05 15:05:21 -0700</date>
            <delta_ts>2012-10-05 15:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98561-20121005150428.patch</filename>
            <type>text/plain</type>
            <size>5080</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzA1NTcpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTA1ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFBlcmYgdGVzdCBwZXN1
bHRzIHBhZ2UgdGFrZXMgZm9yZXZlciB0byBsb2FkIG9uIGEgbWFjaGluZSB3aXRoIGEgc2xvdyBJ
bnRlcm5ldCBjb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05ODU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRyeSBsb2FkaW5nIGpxdWVyeSBib3RoIGxvY2FsbHkgYW5kIHJlbW90ZWx5LCBh
bmQgdXNlIHRoZSBzYW1lIG1ldGhvZCB0byBsb2FkIHRoZSByZW1haW5pbmcKKyAgICAgICAganF1
ZXJ5IHBsdWdpbnMgd2hlbiBlaXRoZXIgb25lIHN1Y2NlZWRzLgorCisgICAgICAgICogcmVzb3Vy
Y2VzL3Jlc3VsdHMtdGVtcGxhdGUuaHRtbDoKKwogMjAxMi0xMC0wNCAgSGF5YXRvIEl0byAgPGhh
eWF0b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1JlZmFjdG9yaW5nXSBJbnRyb2R1Y2UgYSB0
cmF2ZXJzYWwgc3RyYXRlZ3kgaW4gU2VsZWN0b3JDaGVja2VyCkluZGV4OiBQZXJmb3JtYW5jZVRl
c3RzL3Jlc291cmNlcy9yZXN1bHRzLXRlbXBsYXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUGVyZm9y
bWFuY2VUZXN0cy9yZXNvdXJjZXMvcmVzdWx0cy10ZW1wbGF0ZS5odG1sCShyZXZpc2lvbiAxMzA1
MzEpCisrKyBQZXJmb3JtYW5jZVRlc3RzL3Jlc291cmNlcy9yZXN1bHRzLXRlbXBsYXRlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIsMTMgKzIsNiBAQAogPGh0bWw+CiA8aGVhZD4KIDx0aXRsZT5X
ZWJLaXQgUGVyZm9ybWFuY2UgVGVzdCBSZXN1bHRzPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIlQWJz
b2x1dGVQYXRoVG9XZWJLaXRUcnVuayUvUGVyZm9ybWFuY2VUZXN0cy9Ecm9tYWVvL3Jlc291cmNl
cy9kcm9tYWVvL3dlYi9saWIvanF1ZXJ5LTEuNi40LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJodHRwczovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL1BlcmZvcm1hbmNlVGVzdHMv
RHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlby93ZWIvbGliL2pxdWVyeS0xLjYuNC5qcz9mb3JtYXQ9
dHh0Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIlQWJzb2x1dGVQYXRoVG9XZWJLaXRUcnVuayUv
UGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvanF1ZXJ5LmZsb3QubWluLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJodHRwczovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL1BlcmZv
cm1hbmNlVGVzdHMvcmVzb3VyY2VzL2pxdWVyeS5mbG90Lm1pbi5qcz9mb3JtYXQ9dHh0Ij48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIlQWJzb2x1dGVQYXRoVG9XZWJLaXRUcnVuayUvUGVyZm9ybWFu
Y2VUZXN0cy9yZXNvdXJjZXMvanF1ZXJ5LnRhYmxlc29ydGVyLm1pbi5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVuay9QZXJmb3Jt
YW5jZVRlc3RzL3Jlc291cmNlcy9qcXVlcnkudGFibGVzb3J0ZXIubWluLmpzP2Zvcm1hdD10eHQi
Pjwvc2NyaXB0PgotPHNjcmlwdCBpZD0ianNvbiIgdHlwZT0iYXBwbGljYXRpb24vanNvbiI+JVBl
Zm9ybWFuY2VUZXN0c1Jlc3VsdHNKU09OJTwvc2NyaXB0PgogPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KIAogc2VjdGlvbiB7CkBAIC0xMzYsMjEgKzEyOSw2IEBAIHRkLndvcnNlIHsKIFJlc3VsdCA8
c3BhbiBpZD0idGltZS1tZW1vcnkiIGNsYXNzPSJjaGVja2JveCI+PHNwYW4gY2xhc3M9ImNoZWNr
ZWQiPlRpbWU8L3NwYW4+PHNwYW4+TWVtb3J5PC9zcGFuPjwvc3Bhbj4KIFJlZmVyZW5jZSA8c3Bh
biBpZD0icmVmZXJlbmNlIiBjbGFzcz0iY2hlY2tib3giPjwvc3Bhbj4KIDwvZGl2PgotPHNjcmlw
dD4KLQotJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkgewotICAgICQoJy5jaGVja2JveCcp
LmVhY2goZnVuY3Rpb24gKGluZGV4LCBjaGVja2JveCkgewotICAgICAgICAkKGNoZWNrYm94KS5j
aGlsZHJlbignc3BhbicpLmNsaWNrKGZ1bmN0aW9uIChldmVudCkgewotICAgICAgICAgICAgaWYg
KCQodGhpcykuaGFzQ2xhc3MoJ2NoZWNrZWQnKSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICAkKGNoZWNrYm94KS5jaGlsZHJlbignc3BhbicpLnJlbW92ZUNsYXNzKCdjaGVj
a2VkJyk7Ci0gICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdjaGVja2VkJyk7Ci0gICAgICAg
ICAgICAkKGNoZWNrYm94KS50cmlnZ2VyKCdjaGFuZ2UnLCAkKHRoaXMpKTsKLSAgICAgICAgfSk7
Ci0gICAgfSk7Ci19KQotCi08L3NjcmlwdD4KIDx0YWJsZSBpZD0iY29udGFpbmVyIj48L3RhYmxl
PgogPHNjcmlwdD4KIApAQCAtNDgwLDYgKzQ1OCwxNiBAQCBmdW5jdGlvbiBjcmVhdGVUYWJsZVJv
dyh0ZXN0LCByZWZlcmVuY2VSCiB9CiAKIGZ1bmN0aW9uIGluaXQoKSB7CisgICAgJCgnLmNoZWNr
Ym94JykuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGNoZWNrYm94KSB7CisgICAgICAgICQoY2hlY2ti
b3gpLmNoaWxkcmVuKCdzcGFuJykuY2xpY2soZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgICAg
ICBpZiAoJCh0aGlzKS5oYXNDbGFzcygnY2hlY2tlZCcpKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICQoY2hlY2tib3gpLmNoaWxkcmVuKCdzcGFuJykucmVtb3ZlQ2xhc3Mo
J2NoZWNrZWQnKTsKKyAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2NoZWNrZWQnKTsKKyAg
ICAgICAgICAgICQoY2hlY2tib3gpLnRyaWdnZXIoJ2NoYW5nZScsICQodGhpcykpOworICAgICAg
ICB9KTsKKyAgICB9KTsKKwogICAgICQudGFibGVzb3J0ZXIuYWRkUGFyc2VyKHsKICAgICAgICAg
aWQ6ICdjb21wYXJpc29uJywKICAgICAgICAgaXM6IGZ1bmN0aW9uKHMpIHsKQEAgLTUyMyw4ICs1
MTEsNTMgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICB9KTsKIH0KIAotaW5pdCgpOworKGZ1bmN0
aW9uICgpIHsKKyAgICB2YXIgalF1ZXJ5ID0gWydQZXJmb3JtYW5jZVRlc3RzL0Ryb21hZW8vcmVz
b3VyY2VzL2Ryb21hZW8vd2ViL2xpYi9qcXVlcnktMS42LjQuanMnXTsKKyAgICB2YXIgcGx1Z2lu
cyA9IFsnUGVyZm9ybWFuY2VUZXN0cy9yZXNvdXJjZXMvanF1ZXJ5LmZsb3QubWluLmpzJywgJ1Bl
cmZvcm1hbmNlVGVzdHMvcmVzb3VyY2VzL2pxdWVyeS50YWJsZXNvcnRlci5taW4uanMnXTsKKwor
ICAgIGZ1bmN0aW9uIGxvYWRTY3JpcHQoc3JjLCBsb2FkZWQsIGZhaWxlZCkgeworICAgICAgICB2
YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CisgICAgICAgIHNj
cmlwdC5hc3luYyA9IHRydWU7CisgICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7CisgICAgICAgIHNj
cmlwdC5vbmxvYWQgPSBsb2FkZWQ7CisgICAgICAgIGlmIChmYWlsZWQpCisgICAgICAgICAgICBz
Y3JpcHQub25lcnJvciA9IGZhaWxlZDsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChzY3JpcHQpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvYWRQbHVnaW5zKHByZWZpeCkgewor
ICAgICAgICB2YXIgbnVtYmVyT2ZMb2FkZWRQbHVnaW5zID0gMDsKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHBsdWdpbnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGxvYWRTY3Jp
cHQocHJlZml4ICsgJy8nICsgcGx1Z2luc1tpXSwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
ICAgIG51bWJlck9mTG9hZGVkUGx1Z2lucysrOworICAgICAgICAgICAgICAgIGlmIChudW1iZXJP
ZkxvYWRlZFBsdWdpbnMgPT0gcGx1Z2lucy5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIGlu
aXQoKTsKKyAgICAgICAgICAgIH0sIChmdW5jdGlvbiAocGx1Z2luKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgYWxlcnQoIkZhaWxlZCB0byBsb2FkICIgKyBwbHVnaW4p
OyB9CisgICAgICAgICAgICB9KShwcmVmaXhlc1tpXSkpOworICAgICAgICB9CisgICAgfQorCisg
ICAgdmFyIHByZWZpeGVzID0gWyclQWJzb2x1dGVQYXRoVG9XZWJLaXRUcnVuayUnLCAnaHR0cHM6
Ly9zdm4ud2Via2l0Lm9yZy9yZXBvc2l0b3J5L3dlYmtpdC90cnVuayddOworICAgIHZhciBudW1i
ZXJPZkZhaWx1cmVzID0gMDsKKyAgICB2YXIgc3RhcnRlZExvYWRpbmdQbHVnaW5zID0gZmFsc2U7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmVmaXhlcy5sZW5ndGg7IGkrKykgeworICAgICAg
ICBsb2FkU2NyaXB0KHByZWZpeGVzW2ldICsgJy8nICsgalF1ZXJ5LCAoZnVuY3Rpb24gKHByZWZp
eCkgeworICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIXN0YXJ0ZWRMb2FkaW5nUGx1Z2lucykKKyAgICAgICAgICAgICAgICAgICAgbG9hZFBsdWdp
bnMocHJlZml4KTsKKyAgICAgICAgICAgICAgICBzdGFydGVkTG9hZGluZ1BsdWdpbnMgPSB0cnVl
OyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSkocHJlZml4ZXNbaV0p
LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBudW1iZXJPZkZhaWx1cmVzKys7CisgICAgICAg
ICAgICBpZiAobnVtYmVyT2ZGYWlsdXJlcyA9PSBwcmVmaXhlcy5sZW5ndGgpCisgICAgICAgICAg
ICAgICAgYWxlcnQoIkZhaWxlZCB0byBsb2FkIGpRdWVyeS4iKTsKKyAgICAgICAgfSk7CisgICAg
fQorfSkoKTsKIAogPC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJqc29uIiB0eXBlPSJhcHBsaWNhdGlv
bi9qc29uIj4lUGVmb3JtYW5jZVRlc3RzUmVzdWx0c0pTT04lPC9zY3JpcHQ+CiA8L2JvZHk+CiA8
L2h0bWw+Cg==
</data>
<flag name="review"
          id="180062"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>