<?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>95440</bug_id>
          
          <creation_ts>2012-08-30 02:44:28 -0700</creation_ts>
          <short_desc>testing img.complete without waiting for decoding is wrong</short_desc>
          <delta_ts>2012-09-14 01:02:38 -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>NEW</bug_status>
          <resolution></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>28832</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jussi Kukkonen (jku)">jussi.kukkonen</reporter>
          <assigned_to name="Jussi Kukkonen (jku)">jussi.kukkonen</assigned_to>
          <cc>adele</cc>
    
    <cc>cshu</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>708454</commentid>
    <comment_count>0</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-08-30 02:44:28 -0700</bug_when>
    <thetext>I was trying to fix HTMLImageElement.complete (so it would return false when the image was not decodable), and realised the tests that use it are also wrong.

img.complete may (and should) change while the script is running. If we want to check the &quot;final&quot; value we can&apos;t do it when script execution starts: the image may not be loaded/decoded yet at that time. We should check img.complete only after decoding should be complete.

Fixing this reliably wasn&apos;t as easy as I hoped:
 * it seems even for inlined uri-data images, the decoding is still done in parallel with script execution
 * same goes for img.onload: checking for img.complete from the onload handler gives flaky results
...at least these were my results with the WIP patch in bug 28832

A timeout is an inherently flaky solution but still the best I could think of... with small images (like the testrunner ones) the decoding seems to take only milliseconds. I&apos;ll upload a patch with a timeout but I&apos;d be happy with a better solution if anyone has one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708462</commentid>
    <comment_count>1</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-08-30 03:11:27 -0700</bug_when>
    <thetext>https://www.w3.org/Bugs/Public/show_bug.cgi?id=18742</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710460</commentid>
    <comment_count>2</comment_count>
      <attachid>161873</attachid>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-03 01:00:16 -0700</bug_when>
    <thetext>Created attachment 161873
Patch

Review would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716951</commentid>
    <comment_count>3</comment_count>
      <attachid>161873</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-11 01:56:38 -0700</bug_when>
    <thetext>Comment on attachment 161873
Patch

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

&gt; LayoutTests/ChangeLog:4
&gt; +        Give image decoder a moment before testing img.complete
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=95440

Make it clear that this is about the tests.

&gt; LayoutTests/ChangeLog:15
&gt; +
&gt; +        Checking for img.complete before the decoding is finished is
&gt; +        incorrect. We don&apos;t have a good way to know when it is finished,
&gt; +        so use a timeout.
&gt; +
&gt; +        Also fix the expected values of the tests, and remove &quot;resource&quot; class
&gt; +        from the image (&quot;resource&quot; is invisible, meaning it&apos;s never actually
&gt; +        decoded, see https://bugs.webkit.org/show_bug.cgi?id=28832)
&gt; +

IT doesn&apos;t sounds like you are only talking about the tests here. You should make that more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717053</commentid>
    <comment_count>4</comment_count>
      <attachid>163335</attachid>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-11 04:39:04 -0700</bug_when>
    <thetext>Created attachment 163335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717057</commentid>
    <comment_count>5</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-11 04:52:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; Make it clear that this is about the tests.
&gt; 

Thanks. I tried to clarify the changelog, HTH.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717247</commentid>
    <comment_count>6</comment_count>
      <attachid>163335</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-11 09:14:30 -0700</bug_when>
    <thetext>Comment on attachment 163335
Patch

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

&gt; LayoutTests/ChangeLog:19
&gt; +        Remove extra line from expected results.

You seem to be adding that instead

&gt; LayoutTests/ChangeLog:24
&gt; +        * canvas/philip/tests/2d.drawImage.broken-expected.txt:
&gt; +        * canvas/philip/tests/2d.drawImage.broken.html:
&gt; +        * canvas/philip/tests/2d.pattern.image.broken-expected.txt:
&gt; +        * canvas/philip/tests/2d.pattern.image.broken.html:

explain why the tests were passing before? wrongly?

&gt; LayoutTests/canvas/philip/tests/2d.drawImage.broken.html:20
&gt; +// give decoder time to figure out the image is broken

comments start with capital and ends with a punctuation mark

&gt; LayoutTests/canvas/philip/tests/2d.drawImage.broken.html:21
&gt; +setTimeout(wrapFunction(function () {

Write in the changelog why this shouldnt result in flakyness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718043</commentid>
    <comment_count>7</comment_count>
      <attachid>163542</attachid>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-12 01:28:44 -0700</bug_when>
    <thetext>Created attachment 163542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718045</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-12 01:31:22 -0700</bug_when>
    <thetext>This doesn&apos;t make any sense to me.  img.complete should NOT change while script is running - in general nothing script-observable should change.

I don&apos;t know what you are referring to when talking about &quot;the decoder may not have...&quot;.  The decoders in WebCore are synchronous, they can&apos;t spontaneously change state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718048</commentid>
    <comment_count>9</comment_count>
      <attachid>163542</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-12 01:34:52 -0700</bug_when>
    <thetext>Comment on attachment 163542
Patch

This needs a better explanation at minimum.  It seems that this is just adding a setTimeout() to tests for no reason in its current incarnation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718052</commentid>
    <comment_count>10</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-12 01:38:13 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This doesn&apos;t make any sense to me.  img.complete should NOT change while script is running - in general nothing script-observable should change.

The spec clearly disagrees, but I realise that doesn&apos;t mean implementation needs to... the comment about synchronous decoders is interesting -- I&apos;ll look closer at what&apos;s really happening then and report back here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718132</commentid>
    <comment_count>11</comment_count>
      <attachid>163570</attachid>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-12 03:08:10 -0700</bug_when>
    <thetext>Created attachment 163570
test for img.complete behaviour

Here&apos;s a test for img.complete behaviour, hopefully works straight from bugzilla.

Results on chromium (not webkit master but a release):
---
Log:

* Testing img.complete on script startup
  decodable-visible: image.complete == false
  decodable-hidden: image.complete == false
  broken-visible: image.complete == false
  broken-hidden: image.complete == false

* Testing img.complete after 5 secs...
  decodable-visible: image.complete == true
  decodable-hidden: image.complete == true
  broken-visible: image.complete == true
  broken-hidden: image.complete == true
---

So the results do change while script is running -- because imageloader is still doing it&apos;s job (so my comment in the test is not very accurate -- the timeout is waiting for decoding results, but the images probably aren&apos;t even loaded at that point).
The end results are also wrong, which is what bug 28832 is about: broken images should not be &quot;complete&quot;.


EFL MiniBrowser with the 28832 patch gives:
---
Log:

* Testing img.complete on script startup
  decodable-visible: image.complete == false
  decodable-hidden: image.complete == false
  broken-visible: image.complete == false
  broken-hidden: image.complete == false

* Testing img.complete after 5 secs...
  decodable-visible: image.complete == true
  decodable-hidden: image.complete == true
  broken-visible: image.complete == false
  broken-hidden: image.complete == true
---

Broken visible images are now &quot;not complete&quot;. It&apos;s still saying broken hidden image is &quot;complete&quot;, I would argue that&apos;s according to spec and we definitely wouldn&apos;t want to start decoding just for this anyway...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718207</commentid>
    <comment_count>12</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-12 04:57:36 -0700</bug_when>
    <thetext>I was supposed to add info on what really happens after image loader finishes but I don&apos;t have that yet...

The test result (with patch from 28832) is that on the onload handler for a broken visible image, img.complete _is_ true. This changes to false (the correct value) just a bit later. My original assumption was that this was because in onload the image had been loaded (fulfilling the spec requirements for &quot;complete&quot;, if I read it correctly) but we didn&apos;t yet know it is not decodable.

I may have assumed too much there or my patch could be wrong so I&apos;ll try to document what _really_ happens there -- James, if you have knowledge of this please share.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720420</commentid>
    <comment_count>13</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-09-14 01:02:38 -0700</bug_when>
    <thetext>Looking at the sequence of events more carefully, this is what I think happens:
* imageloader starts working
* script starts (image.complete is always false because image is not loaded)
* decoder starts getting data
* onload event may happen here (valid images are now complete, but broken image 
  may be incorrectly complete because decoding has not failed yet)
* decoder may set failed=True here (but may also be earlier)

It looks to me like my original reasoning is valid. I&apos;ll be happy if someone shows where I&apos;m wrong though.

The flakiness could be minimized by waiting for the onload-events but that&apos;s just not enough, a timeout is still needed because decoder might might decide it has failed later than onload.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161873</attachid>
            <date>2012-09-03 01:00:16 -0700</date>
            <delta_ts>2012-09-11 04:38:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95440-20120903105618.patch</filename>
            <type>text/plain</type>
            <size>4180</size>
            <attacher name="Jussi Kukkonen (jku)">jussi.kukkonen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MzkxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzBiZWY5NDkyZGNhZDcxYTg0Nzhm
YzhmYmFlMWQ2YTVkODc5NGE4Mi4uNzVkMzcyYmIwNmRiZGNkZmY1Zjk1OTNjZWE4MzNhNGFkZTIz
YzdhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTAzICBKdXNzaSBLdWtrb25lbiAg
PGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KKworICAgICAgICBHaXZlIGltYWdlIGRlY29kZXIg
YSBtb21lbnQgYmVmb3JlIHRlc3RpbmcgaW1nLmNvbXBsZXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTQ0MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoZWNraW5nIGZvciBpbWcuY29tcGxldGUgYmVm
b3JlIHRoZSBkZWNvZGluZyBpcyBmaW5pc2hlZCBpcworICAgICAgICBpbmNvcnJlY3QuIFdlIGRv
bid0IGhhdmUgYSBnb29kIHdheSB0byBrbm93IHdoZW4gaXQgaXMgZmluaXNoZWQsCisgICAgICAg
IHNvIHVzZSBhIHRpbWVvdXQuCisKKyAgICAgICAgQWxzbyBmaXggdGhlIGV4cGVjdGVkIHZhbHVl
cyBvZiB0aGUgdGVzdHMsIGFuZCByZW1vdmUgInJlc291cmNlIiBjbGFzcworICAgICAgICBmcm9t
IHRoZSBpbWFnZSAoInJlc291cmNlIiBpcyBpbnZpc2libGUsIG1lYW5pbmcgaXQncyBuZXZlciBh
Y3R1YWxseQorICAgICAgICBkZWNvZGVkLCBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI4ODMyKQorCisKKyAgICAgICAgKiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LmRyYXdJbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi5odG1sOgorICAgICAgICAqIGNhbnZhcy9waGlsaXAv
dGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4uaHRtbDoKKwogMjAxMi0w
OS0wMiAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIGZhc3Qv
aHRtbC9tYXJxdWVlLWFsdGVybmF0ZS5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuYnJva2VuLWV4
cGVjdGVkLnR4dAppbmRleCA4NjMzMzlmYjhjZWQ2M2NjZDgxMmFhOWFkMGU3YmE5NWJmODMwNjAw
Li5kYjQxOGIyODM0ZDQ5ZWE0NDg3YmQwOTVjZjg1MzFmMmY2MmY5NDY0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4tZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdl
LmJyb2tlbi1leHBlY3RlZC50eHQKQEAgLTEgKzEsMiBAQAogUGFzc2VkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi5odG1s
IGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuYnJva2VuLmh0
bWwKaW5kZXggYWVmMGM2NzhhNGZhZDMyYWFkNDUyYjY3NjE1MDE4ODVkMDUxM2YyNi4uMzAwZTg0
YjIxMzU0MDhmZDA0NmNjOGE4N2Y0YWIzYjJmNDE0MDFiNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuYnJva2VuLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuYnJva2VuLmh0bWwKQEAg
LTE0LDEyICsxNCwxNyBAQCBfYWRkVGVzdChmdW5jdGlvbihjYW52YXMsIGN0eCkgewogCiBjdHgu
ZmlsbFN0eWxlID0gJyMwZjAnOwogY3R4LmZpbGxSZWN0KDAsIDAsIDEwMCwgNTApOwotdmFyIGlt
ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicm9rZW4ucG5nJyk7Ci1fYXNzZXJ0U2FtZShp
bWcuY29tcGxldGUsIGZhbHNlLCAiaW1nLmNvbXBsZXRlIiwgImZhbHNlIik7Ci1jdHguZHJhd0lt
YWdlKGltZywgMCwgMCk7CiAKK2RlZmVyVGVzdCgpOworCisvLyBnaXZlIGRlY29kZXIgdGltZSB0
byBmaWd1cmUgb3V0IHRoZSBpbWFnZSBpcyBicm9rZW4KK3NldFRpbWVvdXQod3JhcEZ1bmN0aW9u
KGZ1bmN0aW9uICgpIHsKKyAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicm9r
ZW4ucG5nJyk7CisgIF9hc3NlcnRTYW1lKGltZy5jb21wbGV0ZSwgZmFsc2UsICJpbWcuY29tcGxl
dGUiLCAiZmFsc2UiKTsKKyAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOworfSksIDEwMCk7CiAK
IH0pOwogPC9zY3JpcHQ+Ci08aW1nIHNyYz0iLi4vaW1hZ2VzL2Jyb2tlbi5wbmciIGlkPSJicm9r
ZW4ucG5nIiBjbGFzcz0icmVzb3VyY2UiPgorPGltZyBzcmM9Ii4uL2ltYWdlcy9icm9rZW4ucG5n
IiBpZD0iYnJva2VuLnBuZyI+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmJyb2tlbi1leHBlY3RlZC50
eHQKaW5kZXggODYzMzM5ZmI4Y2VkNjNjY2Q4MTJhYTlhZDBlN2JhOTViZjgzMDYwMC4uZGI0MThi
MjgzNGQ0OWVhNDQ4N2JkMDk1Y2Y4NTMxZjJmNjJmOTQ2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmJyb2tlbi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdl
LmJyb2tlbi1leHBlY3RlZC50eHQKQEAgLTEgKzEsMiBAQAogUGFzc2VkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4u
aHRtbCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5i
cm9rZW4uaHRtbAppbmRleCA3MDJmODEyNDg0OGY1YWQzYjY4NjgzYjE4YWY0ZjcxYTY4ZjYxMGFm
Li4zNzYzYTdiZjA5YjkzZTIwYTYyMTNmYWRiNWQ2OTA1MWNkODg1NTNlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdl
LmJyb2tlbi5odG1sCkBAIC0xMiwxMiArMTIsMTYgQEAKIDxzY3JpcHQ+CiBfYWRkVGVzdChmdW5j
dGlvbihjYW52YXMsIGN0eCkgewogCi12YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2Jyb2tlbi5wbmcnKTsKLV9hc3NlcnRTYW1lKGltZy5jb21wbGV0ZSwgZmFsc2UsICJpbWcuY29t
cGxldGUiLCAiZmFsc2UiKTsKLV9hc3NlcnRTYW1lKGN0eC5jcmVhdGVQYXR0ZXJuKGltZywgJ3Jl
cGVhdCcpLCBudWxsLCAiY3R4LmNyZWF0ZVBhdHRlcm4oaW1nLCAncmVwZWF0JykiLCAibnVsbCIp
OworZGVmZXJUZXN0KCk7CiAKKy8vIGdpdmUgZGVjb2RlciB0aW1lIHRvIGZpZ3VyZSBvdXQgdGhl
IGltYWdlIGlzIGJyb2tlbgorc2V0VGltZW91dCh3cmFwRnVuY3Rpb24oZnVuY3Rpb24gKCkgewor
ICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jyb2tlbi5wbmcnKTsKKyAgX2Fz
c2VydFNhbWUoaW1nLmNvbXBsZXRlLCBmYWxzZSwgImltZy5jb21wbGV0ZSIsICJmYWxzZSIpOwor
ICBfYXNzZXJ0U2FtZShjdHguY3JlYXRlUGF0dGVybihpbWcsICdyZXBlYXQnKSwgbnVsbCwgImN0
eC5jcmVhdGVQYXR0ZXJuKGltZywgJ3JlcGVhdCcpIiwgIm51bGwiKTsKK30pLCAxMDApOwogCiB9
KTsKIDwvc2NyaXB0PgotPGltZyBzcmM9Ii4uL2ltYWdlcy9icm9rZW4ucG5nIiBpZD0iYnJva2Vu
LnBuZyIgY2xhc3M9InJlc291cmNlIj4KKzxpbWcgc3JjPSIuLi9pbWFnZXMvYnJva2VuLnBuZyIg
aWQ9ImJyb2tlbi5wbmciPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163335</attachid>
            <date>2012-09-11 04:39:04 -0700</date>
            <delta_ts>2012-09-12 01:28:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95440-20120911143440.patch</filename>
            <type>text/plain</type>
            <size>4527</size>
            <attacher name="Jussi Kukkonen (jku)">jussi.kukkonen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTcwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODhkZTk0ZDIxMWZkYzVmZjZmNzY5
OGY4OTliOWFjODA1YWVlMjBlNy4uOTQ1OTNiZDFjNWFmNGEwNjU2MjI1ZTg1ZjJhMWQ1ZDczM2Nh
YWNhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTExICBKdXNzaSBLdWtrb25lbiAg
PGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KKworICAgICAgICBUZXN0IGltZy5jb21wbGV0ZSBm
b3IgYnJva2VuIGltYWdlcyBvbmx5IGFmdGVyIGEgdGltZW91dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0NDAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAyZC5kcmF3SW1hZ2UuYnJva2VuLWV4cGVjdGVk
IGFuZCAyZC5wYXR0ZXJuLmltYWdlLmJyb2tlbiBzaG91bGQgb25seQorICAgICAgICB0ZXN0IGlt
Zy5jb21wbGV0ZSBhZnRlciB0aGUgaW1hZ2UgImJyb2tlbm5lc3MiIChkZWNvZGVyIHN1Y2Nlc3Mg
b3IKKyAgICAgICAgZmFpbHVyZSkgaGFzIGJlZW4gZXZhbHVhdGVkOiB0aGlzIGhhcyBub3QgaGFw
cGVuZWQgd2hlbiB0aGUgc2NyaXB0CisgICAgICAgIHN0YXJ0cyBydW5uaW5nLiBXZSBkb24ndCBo
YXZlIGEgZ29vZCB3YXkgdG8ga25vdyB3aGVuIGV4YWN0bHkgaXQKKyAgICAgICAgaGFwcGVucywg
c28gdXNlIGEgdGltZW91dC4KKworICAgICAgICBGb3IgdGhlIHNhbWUgcmVhc29ucywgcmVtb3Zl
ICJyZXNvdXJjZSIgY2xhc3MgZnJvbSB0aGUgaW1hZ2UgdXNlZCBpbgorICAgICAgICB0aGUgdGVz
dHM6ICJyZXNvdXJjZSIgY2xhc3MgaXMgaW52aXNpYmxlLCBhbmQgaW52aXNpYmxlIGltYWdlcyBh
cmUKKyAgICAgICAgbm90IGRlY29kZWQuIEluIHRoYXQgY2FzZSB0aGUgImJyb2tlbm5lc3MiIG9m
IGFuIGltYWdlIGp1c3QgY2FuJ3QgYmUKKyAgICAgICAgdGVzdGVkIChzZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4ODMyKS4KKworICAgICAgICBSZW1vdmUgZXh0
cmEgbGluZSBmcm9tIGV4cGVjdGVkIHJlc3VsdHMuCisKKyAgICAgICAgKiBjYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNhbnZh
cy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi5odG1sOgorICAgICAgICAqIGNhbnZh
cy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4uaHRtbDoK
KwogMjAxMi0wOS0xMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGlu
dGVsLmNvbT4KIAogICAgICAgICBbV0syXVtXVFJdIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0TWluaW11bVRpbWVySW50ZXJ2YWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9r
ZW4tZXhwZWN0ZWQudHh0CmluZGV4IDg2MzMzOWZiOGNlZDYzY2NkODEyYWE5YWQwZTdiYTk1YmY4
MzA2MDAuLmRiNDE4YjI4MzRkNDllYTQ0ODdiZDA5NWNmODUzMWYyZjYyZjk0NjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3
SW1hZ2UuYnJva2VuLWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACiBQYXNzZWQKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuYnJva2Vu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9r
ZW4uaHRtbAppbmRleCBhZWYwYzY3OGE0ZmFkMzJhYWQ0NTJiNjc2MTUwMTg4NWQwNTEzZjI2Li4z
MDBlODRiMjEzNTQwOGZkMDQ2Y2M4YTg3ZjRhYjNiMmY0MTQwMWI2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4uaHRt
bApAQCAtMTQsMTIgKzE0LDE3IEBAIF9hZGRUZXN0KGZ1bmN0aW9uKGNhbnZhcywgY3R4KSB7CiAK
IGN0eC5maWxsU3R5bGUgPSAnIzBmMCc7CiBjdHguZmlsbFJlY3QoMCwgMCwgMTAwLCA1MCk7Ci12
YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jyb2tlbi5wbmcnKTsKLV9hc3NlcnRT
YW1lKGltZy5jb21wbGV0ZSwgZmFsc2UsICJpbWcuY29tcGxldGUiLCAiZmFsc2UiKTsKLWN0eC5k
cmF3SW1hZ2UoaW1nLCAwLCAwKTsKIAorZGVmZXJUZXN0KCk7CisKKy8vIGdpdmUgZGVjb2RlciB0
aW1lIHRvIGZpZ3VyZSBvdXQgdGhlIGltYWdlIGlzIGJyb2tlbgorc2V0VGltZW91dCh3cmFwRnVu
Y3Rpb24oZnVuY3Rpb24gKCkgeworICB2YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2Jyb2tlbi5wbmcnKTsKKyAgX2Fzc2VydFNhbWUoaW1nLmNvbXBsZXRlLCBmYWxzZSwgImltZy5j
b21wbGV0ZSIsICJmYWxzZSIpOworICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7Cit9KSwgMTAw
KTsKIAogfSk7CiA8L3NjcmlwdD4KLTxpbWcgc3JjPSIuLi9pbWFnZXMvYnJva2VuLnBuZyIgaWQ9
ImJyb2tlbi5wbmciIGNsYXNzPSJyZXNvdXJjZSI+Cis8aW1nIHNyYz0iLi4vaW1hZ2VzL2Jyb2tl
bi5wbmciIGlkPSJicm9rZW4ucG5nIj4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmJyb2tlbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLWV4cGVj
dGVkLnR4dAppbmRleCA4NjMzMzlmYjhjZWQ2M2NjZDgxMmFhOWFkMGU3YmE5NWJmODMwNjAwLi5k
YjQxOGIyODM0ZDQ5ZWE0NDg3YmQwOTVjZjg1MzFmMmY2MmY5NDY0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4u
aW1hZ2UuYnJva2VuLWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACiBQYXNzZWQKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmJy
b2tlbi5odG1sIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmlt
YWdlLmJyb2tlbi5odG1sCmluZGV4IDcwMmY4MTI0ODQ4ZjVhZDNiNjg2ODNiMThhZjRmNzFhNjhm
NjEwYWYuLjM3NjNhN2JmMDliOTNlMjBhNjIxM2ZhZGI1ZDY5MDUxY2Q4ODU1M2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9r
ZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4u
aW1hZ2UuYnJva2VuLmh0bWwKQEAgLTEyLDEyICsxMiwxNiBAQAogPHNjcmlwdD4KIF9hZGRUZXN0
KGZ1bmN0aW9uKGNhbnZhcywgY3R4KSB7CiAKLXZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYnJva2VuLnBuZycpOwotX2Fzc2VydFNhbWUoaW1nLmNvbXBsZXRlLCBmYWxzZSwgImlt
Zy5jb21wbGV0ZSIsICJmYWxzZSIpOwotX2Fzc2VydFNhbWUoY3R4LmNyZWF0ZVBhdHRlcm4oaW1n
LCAncmVwZWF0JyksIG51bGwsICJjdHguY3JlYXRlUGF0dGVybihpbWcsICdyZXBlYXQnKSIsICJu
dWxsIik7CitkZWZlclRlc3QoKTsKIAorLy8gZ2l2ZSBkZWNvZGVyIHRpbWUgdG8gZmlndXJlIG91
dCB0aGUgaW1hZ2UgaXMgYnJva2VuCitzZXRUaW1lb3V0KHdyYXBGdW5jdGlvbihmdW5jdGlvbiAo
KSB7CisgIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnJva2VuLnBuZycpOwor
ICBfYXNzZXJ0U2FtZShpbWcuY29tcGxldGUsIGZhbHNlLCAiaW1nLmNvbXBsZXRlIiwgImZhbHNl
Iik7CisgIF9hc3NlcnRTYW1lKGN0eC5jcmVhdGVQYXR0ZXJuKGltZywgJ3JlcGVhdCcpLCBudWxs
LCAiY3R4LmNyZWF0ZVBhdHRlcm4oaW1nLCAncmVwZWF0JykiLCAibnVsbCIpOworfSksIDEwMCk7
CiAKIH0pOwogPC9zY3JpcHQ+Ci08aW1nIHNyYz0iLi4vaW1hZ2VzL2Jyb2tlbi5wbmciIGlkPSJi
cm9rZW4ucG5nIiBjbGFzcz0icmVzb3VyY2UiPgorPGltZyBzcmM9Ii4uL2ltYWdlcy9icm9rZW4u
cG5nIiBpZD0iYnJva2VuLnBuZyI+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163542</attachid>
            <date>2012-09-12 01:28:44 -0700</date>
            <delta_ts>2012-09-12 01:34:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95440-20120912112418.patch</filename>
            <type>text/plain</type>
            <size>4865</size>
            <attacher name="Jussi Kukkonen (jku)">jussi.kukkonen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTcwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODhkZTk0ZDIxMWZkYzVmZjZmNzY5
OGY4OTliOWFjODA1YWVlMjBlNy4uZGRkZTk0NGYwYzI5ZGMwZGJjODE5YjNiZWEyNTdjZjZlZmFj
OGExMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTExICBKdXNzaSBLdWtrb25lbiAg
PGp1c3NpLmt1a2tvbmVuQGludGVsLmNvbT4KKworICAgICAgICBUZXN0IGltZy5jb21wbGV0ZSBm
b3IgYnJva2VuIGltYWdlcyBvbmx5IGFmdGVyIGEgdGltZW91dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0NDAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAyZC5kcmF3SW1hZ2UuYnJva2VuLWV4cGVjdGVk
IGFuZCAyZC5wYXR0ZXJuLmltYWdlLmJyb2tlbiBzaG91bGQgb25seQorICAgICAgICB0ZXN0IGlt
Zy5jb21wbGV0ZSBhZnRlciB0aGUgaW1hZ2UgImJyb2tlbm5lc3MiIChkZWNvZGVyIHN1Y2Nlc3Mg
b3IKKyAgICAgICAgZmFpbHVyZSkgaGFzIGJlZW4gZXZhbHVhdGVkOiB0aGlzIGhhcyBub3QgaGFw
cGVuZWQgd2hlbiB0aGUgc2NyaXB0CisgICAgICAgIHN0YXJ0cyBydW5uaW5nLiBXZSBkbyBub3Qg
aGF2ZSBhIHJlbGlhYmxlIHdheSB0byBrbm93IHdoZW4gd2UgY2FuCisgICAgICAgIHRlc3QgaXQg
c28gaGF2ZSB0byB1c2UgYSB0aW1lb3V0IChsaWtlIHNldmVyYWwgb3RoZXIgcGhpbGlwIHRlc3Rz
KToKKyAgICAgICAgVGhlIG1pbmltdW0gamF2YXNjcmlwdCB0aW1lb3V0ICg0bXMpIHNlZW1zIHRv
IGJlIGVub3VnaCBpbiBteSB0ZXN0cyBzbworICAgICAgICB0aGUgMTAwbXMgaW4gdGhlIHRlc3Qg
c2hvdWxkIGhhdmUgc29tZSBzYWZldHkgYnVmZmVyLgorCisgICAgICAgIEZvciB0aGUgc2FtZSBy
ZWFzb25zLCByZW1vdmUgInJlc291cmNlIiBjbGFzcyBmcm9tIHRoZSBpbWFnZSB1c2VkIGluCisg
ICAgICAgIHRoZSB0ZXN0czogInJlc291cmNlIiBjbGFzcyBpcyBpbnZpc2libGUsIGFuZCBpbnZp
c2libGUgaW1hZ2VzIGFyZQorICAgICAgICBub3QgZGVjb2RlZC4gSW4gdGhhdCBjYXNlIHRoZSAi
YnJva2VubmVzcyIgb2YgYW4gaW1hZ2UganVzdCBjYW4ndCBiZQorICAgICAgICB0ZXN0ZWQgKHNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4MzIpLgorCisgICAg
ICAgIEFkZCBuZWVkZWQgZXh0cmEgbGluZSB0byBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
IFRoZSB0ZXN0cyBzdGlsbCBmYWlsIGFmdGVyIHRoaXMgb24gZXZlcnkgcG9ydCwgYnV0IG5vdyB0
aGV5IGZhaWwgZm9yCisgICAgICAgIGNvcnJlY3QgcmVhc29ucyAoYnVnIDI4ODMyIGlzIGFib3V0
IG1ha2luZyB0aGUgdGVzdHMgcGFzcykuCisKKyAgICAgICAgKiBjYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLmRyYXdJbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNhbnZhcy9waGls
aXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi5odG1sOgorICAgICAgICAqIGNhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4uaHRtbDoKKwogMjAx
Mi0wOS0xMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNv
bT4KIAogICAgICAgICBbV0syXVtXVFJdIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0TWluaW11bVRpbWVySW50ZXJ2YWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4tZXhw
ZWN0ZWQudHh0CmluZGV4IDg2MzMzOWZiOGNlZDYzY2NkODEyYWE5YWQwZTdiYTk1YmY4MzA2MDAu
LmRiNDE4YjI4MzRkNDllYTQ0ODdiZDA5NWNmODUzMWYyZjYyZjk0NjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJyb2tlbi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2Uu
YnJva2VuLWV4cGVjdGVkLnR4dApAQCAtMSArMSwyIEBACiBQYXNzZWQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3SW1hZ2UuYnJva2VuLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4uaHRt
bAppbmRleCBhZWYwYzY3OGE0ZmFkMzJhYWQ0NTJiNjc2MTUwMTg4NWQwNTEzZjI2Li4zYWYxZjkx
NjUxZTI4ZTI5N2JiM2RiMjA3ZDdiOGUyNDA2ZDQzNDMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4uaHRtbApAQCAt
MTQsMTIgKzE0LDE3IEBAIF9hZGRUZXN0KGZ1bmN0aW9uKGNhbnZhcywgY3R4KSB7CiAKIGN0eC5m
aWxsU3R5bGUgPSAnIzBmMCc7CiBjdHguZmlsbFJlY3QoMCwgMCwgMTAwLCA1MCk7Ci12YXIgaW1n
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jyb2tlbi5wbmcnKTsKLV9hc3NlcnRTYW1lKGlt
Zy5jb21wbGV0ZSwgZmFsc2UsICJpbWcuY29tcGxldGUiLCAiZmFsc2UiKTsKLWN0eC5kcmF3SW1h
Z2UoaW1nLCAwLCAwKTsKIAorZGVmZXJUZXN0KCk7CisKKy8vIEdpdmUgZGVjb2RlciB0aW1lIHRv
IGZpZ3VyZSBvdXQgdGhlIGltYWdlIGlzIGJyb2tlbi4KK3NldFRpbWVvdXQod3JhcEZ1bmN0aW9u
KGZ1bmN0aW9uICgpIHsKKyAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicm9r
ZW4ucG5nJyk7CisgIF9hc3NlcnRTYW1lKGltZy5jb21wbGV0ZSwgZmFsc2UsICJpbWcuY29tcGxl
dGUiLCAiZmFsc2UiKTsKKyAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDApOworfSksIDEwMCk7CiAK
IH0pOwogPC9zY3JpcHQ+Ci08aW1nIHNyYz0iLi4vaW1hZ2VzL2Jyb2tlbi5wbmciIGlkPSJicm9r
ZW4ucG5nIiBjbGFzcz0icmVzb3VyY2UiPgorPGltZyBzcmM9Ii4uL2ltYWdlcy9icm9rZW4ucG5n
IiBpZD0iYnJva2VuLnBuZyI+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NhbnZhcy9waGls
aXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmJyb2tlbi1leHBlY3RlZC50
eHQKaW5kZXggODYzMzM5ZmI4Y2VkNjNjY2Q4MTJhYTlhZDBlN2JhOTViZjgzMDYwMC4uZGI0MThi
MjgzNGQ0OWVhNDQ4N2JkMDk1Y2Y4NTMxZjJmNjJmOTQ2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdlLmJyb2tlbi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdl
LmJyb2tlbi1leHBlY3RlZC50eHQKQEAgLTEgKzEsMiBAQAogUGFzc2VkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5icm9rZW4u
aHRtbCBiL0xheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0dGVybi5pbWFnZS5i
cm9rZW4uaHRtbAppbmRleCA3MDJmODEyNDg0OGY1YWQzYjY4NjgzYjE4YWY0ZjcxYTY4ZjYxMGFm
Li4yMWI1NmMxZGE2NDFiZmQ1NDYwMTJkNWUzNGI4YWQwZTQwZDE3MmYzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdHRlcm4uaW1hZ2UuYnJva2VuLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXR0ZXJuLmltYWdl
LmJyb2tlbi5odG1sCkBAIC0xMiwxMiArMTIsMTYgQEAKIDxzY3JpcHQ+CiBfYWRkVGVzdChmdW5j
dGlvbihjYW52YXMsIGN0eCkgewogCi12YXIgaW1nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2Jyb2tlbi5wbmcnKTsKLV9hc3NlcnRTYW1lKGltZy5jb21wbGV0ZSwgZmFsc2UsICJpbWcuY29t
cGxldGUiLCAiZmFsc2UiKTsKLV9hc3NlcnRTYW1lKGN0eC5jcmVhdGVQYXR0ZXJuKGltZywgJ3Jl
cGVhdCcpLCBudWxsLCAiY3R4LmNyZWF0ZVBhdHRlcm4oaW1nLCAncmVwZWF0JykiLCAibnVsbCIp
OworZGVmZXJUZXN0KCk7CiAKKy8vIEdpdmUgZGVjb2RlciB0aW1lIHRvIGZpZ3VyZSBvdXQgdGhl
IGltYWdlIGlzIGJyb2tlbi4KK3NldFRpbWVvdXQod3JhcEZ1bmN0aW9uKGZ1bmN0aW9uICgpIHsK
KyAgdmFyIGltZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicm9rZW4ucG5nJyk7CisgIF9h
c3NlcnRTYW1lKGltZy5jb21wbGV0ZSwgZmFsc2UsICJpbWcuY29tcGxldGUiLCAiZmFsc2UiKTsK
KyAgX2Fzc2VydFNhbWUoY3R4LmNyZWF0ZVBhdHRlcm4oaW1nLCAncmVwZWF0JyksIG51bGwsICJj
dHguY3JlYXRlUGF0dGVybihpbWcsICdyZXBlYXQnKSIsICJudWxsIik7Cit9KSwgMTAwKTsKIAog
fSk7CiA8L3NjcmlwdD4KLTxpbWcgc3JjPSIuLi9pbWFnZXMvYnJva2VuLnBuZyIgaWQ9ImJyb2tl
bi5wbmciIGNsYXNzPSJyZXNvdXJjZSI+Cis8aW1nIHNyYz0iLi4vaW1hZ2VzL2Jyb2tlbi5wbmci
IGlkPSJicm9rZW4ucG5nIj4KIAo=
</data>
<flag name="review"
          id="175029"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>163570</attachid>
            <date>2012-09-12 03:08:10 -0700</date>
            <delta_ts>2012-09-12 03:08:10 -0700</delta_ts>
            <desc>test for img.complete behaviour</desc>
            <filename>img-timeout.html</filename>
            <type>text/html</type>
            <size>1437</size>
            <attacher name="Jussi Kukkonen (jku)">jussi.kukkonen</attacher>
            
              <data encoding="base64">PHByZSBpZCA9ImxvZyI+TG9nOiA8L3ByZT4KPGltZyBzcmM9Imh0dHBzOi8vZHZjcy53My5vcmcv
aGcvaHRtbC9yYXctZmlsZS9jZDk4OTAxZmQxMTQvdGVzdHMvc3VibWlzc2lvbi9QaGlsaXBUYXls
b3IvaW1hZ2VzL2dyZWVuLnBuZyIgaWQ9ImRlY29kYWJsZS12aXNpYmxlIj4KPGltZyBzcmM9Imh0
dHBzOi8vZHZjcy53My5vcmcvaGcvaHRtbC9yYXctZmlsZS9iYTgyOTlhY2JmZWUvdGVzdHMvc3Vi
bWlzc2lvbi9QaGlsaXBUYXlsb3IvaW1hZ2VzL2dyZWVuLnBuZyIgaWQ9ImRlY29kYWJsZS1oaWRk
ZW4iIHN0eWxlPSJ2aXNpYmlsaXR5OmhpZGRlbiI+CjxpbWcgc3JjPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL2h0bWwvcmF3LWZpbGUvY2Q5ODkwMWZkMTE0L3Rlc3RzL3N1Ym1pc3Npb24vUGhpbGlw
VGF5bG9yL2ltYWdlcy9icm9rZW4ucG5nIiBpZD0iYnJva2VuLXZpc2libGUiPgo8aW1nIHNyYz0i
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9odG1sL3Jhdy1maWxlL2JhODI5OWFjYmZlZS90ZXN0cy9z
dWJtaXNzaW9uL1BoaWxpcFRheWxvci9pbWFnZXMvYnJva2VuLnBuZyIgaWQ9ImJyb2tlbi1oaWRk
ZW4iIHN0eWxlPSJ2aXNpYmlsaXR5OmhpZGRlbiI+CjxzY3JpcHQ+CiAgdmFyIGxvZyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKCgogIGxvZy50ZXh0Q29udGVudCArPSAiXG5cbiog
VGVzdGluZyBpbWcuY29tcGxldGUgb24gc2NyaXB0IHN0YXJ0dXAiOwogIGNoZWNrX2NvbXBsZXRl
KCk7CiAgbG9nLnRleHRDb250ZW50ICs9ICJcblxuKiBUZXN0aW5nIGltZy5jb21wbGV0ZSBhZnRl
ciA1IHNlY3MuLi4iOwogIHNldFRpbWVvdXQgKGNoZWNrX2NvbXBsZXRlLCA1MDAwKTsKCiAgZnVu
Y3Rpb24gY2hlY2tfY29tcGxldGUgKCkKICB7CiAgICB2YXIgaW1nID0gImRlY29kYWJsZS12aXNp
YmxlIjsKICAgIGxvZy50ZXh0Q29udGVudCArPSAiXG4gICIgKyBpbWcgKyI6IGltYWdlLmNvbXBs
ZXRlID09ICIgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbWcpLmNvbXBsZXRlOwogICAgCiAg
ICBpbWcgPSAiZGVjb2RhYmxlLWhpZGRlbiI7CiAgICBsb2cudGV4dENvbnRlbnQgKz0gIlxuICAi
ICsgaW1nICsiOiBpbWFnZS5jb21wbGV0ZSA9PSAiICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aW1nKS5jb21wbGV0ZTsKICAgIAogICAgaW1nID0gImJyb2tlbi12aXNpYmxlIjsKICAgIGxvZy50
ZXh0Q29udGVudCArPSAiXG4gICIgKyBpbWcgKyI6IGltYWdlLmNvbXBsZXRlID09ICIgKyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZChpbWcpLmNvbXBsZXRlOwogICAgCiAgICBpbWcgPSAiYnJva2Vu
LWhpZGRlbiI7CiAgICBsb2cudGV4dENvbnRlbnQgKz0gIlxuICAiICsgaW1nICsiOiBpbWFnZS5j
b21wbGV0ZSA9PSAiICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW1nKS5jb21wbGV0ZTsKICB9
Cjwvc2NyaXB0PgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>