<?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>38871</bug_id>
          
          <creation_ts>2010-05-10 15:18:33 -0700</creation_ts>
          <short_desc>REGRESSION: Crash clicking background NPR tab after few minutes of sitting idle</short_desc>
          <delta_ts>2010-05-12 09:53:09 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>abarth</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223536</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-10 15:18:33 -0700</bug_when>
    <thetext>Crash in Page::setCanStartMedia() with the following steps:

1. Open WebKit, and load NPR in the first tab.
2. Open a bunch of other tabs…approximately 15 or so.
3. Let the browser sit for 15-20 minutes.
4. Click back to the NPR tab.
5. Crash.

Patch coming soon.

&lt;rdar://problem/7941504&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223540</commentid>
    <comment_count>1</comment_count>
      <attachid>55608</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-10 15:29:24 -0700</bug_when>
    <thetext>Created attachment 55608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223543</commentid>
    <comment_count>2</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-10 15:37:23 -0700</bug_when>
    <thetext>I should mention that I am trying to create a layout test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223586</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-10 16:44:35 -0700</bug_when>
    <thetext>I don&apos;t know that it is possible to make a test for this. Here is what a test would need to do to reproduce the problem:

1. Create an audio element. This we can obviously do in a layout test.
2. Destroy the audio element. This is only possible by forcing a garbage collection, which we can also do in a layout test.
3. Force Page::setCanStartMedia() to run. This is the part that I am not sure we can simulate in a layout test. This function is only called through WebKit when AppKit-y things are happening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223724</commentid>
    <comment_count>4</comment_count>
      <attachid>55608</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2010-05-10 21:34:10 -0700</bug_when>
    <thetext>Comment on attachment 55608
Patch

&gt; @@ -526,7 +547,7 @@ void HTMLMediaElement::loadInternal()
&gt;      // If we can&apos;t start a load right away, start it later.
&gt;      Page* page = document()-&gt;page();
&gt;      if (page &amp;&amp; !page-&gt;canStartMedia()) {
&gt; -        if (m_isWaitingUntilMediaCanStart)
&gt; +        if (m_isWaitingUntilMediaCanStart || !attached())
&gt;              return;

Are you certain this will work with audio elements created with &quot;new Audio()&quot; (these elements are not in the DOM are playable)?

r=me if you have verified that this continues to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223963</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-11 09:44:47 -0700</bug_when>
    <thetext>Thanks Eric! I know that the NPR site in question uses &quot;new Audio(),&quot; and I also know that they layout tests pass, and at least a couple of them also use &quot;new Audio(),&quot; so I feel relatively confident that this still works, but I will do a but more testing for good measure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224087</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-11 12:32:37 -0700</bug_when>
    <thetext>Oh no, I think you&apos;re right Eric! I had to set breakpoints to really test this, but it looks like, with my current patch, there is no crash because the audio element from NPR (created with &quot;new Audio()&quot; is never added to the m_mediaCanStartListeners HashMap. Obviously we can take out the !attached() check in HTMLMediaElement::loadInternal(), but then the bug still exists that we never REMOVE the element from the HashMap since we moved that code the detach, which will never be called. 

Looks like attach() and detach() are not the right place for this code after all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224093</commentid>
    <comment_count>7</comment_count>
      <attachid>55608</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-11 12:43:22 -0700</bug_when>
    <thetext>Comment on attachment 55608
Patch

r-minusing due to recent findings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224267</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-11 17:13:07 -0700</bug_when>
    <thetext>Beth landed a first refactoring step in &lt;http://trac.webkit.org/changeset/59186&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224292</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-11 17:38:42 -0700</bug_when>
    <thetext>I landed a second refactoring step: &lt;http://trac.webkit.org/changeset/59189&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224298</commentid>
    <comment_count>10</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-11 17:48:37 -0700</bug_when>
    <thetext>Patch coming soon!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224310</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-11 18:04:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59189 might have broken Qt Linux Release minimal and Qt Linux ARMv5 Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224395</commentid>
    <comment_count>12</comment_count>
      <attachid>55804</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-11 21:44:02 -0700</bug_when>
    <thetext>Created attachment 55804
New Patch

Here&apos;s a new patch that follows along with the plan that Darin and I concocted earlier to move the listeners HashSet to Document from Page. All of the layout tests pass, and I was able to catch the former-NPR-crash in the debugger, and I was able to see us properly adding and removing the listener from the HashSet and then not crashing, yay! And basic media browsing seems to work ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224691</commentid>
    <comment_count>13</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-05-12 09:53:09 -0700</bug_when>
    <thetext>Thanks Darin! Fixed with r59239.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55608</attachid>
            <date>2010-05-10 15:29:24 -0700</date>
            <delta_ts>2010-05-11 21:44:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>forReview.txt</filename>
            <type>text/plain</type>
            <size>5116</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTA5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDUtMTAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBm
b3IgPHJkYXI6Ly9wcm9ibGVtLzc5NDE1MDQ+IFJFR1JFU1NJT04gKDQuMC41LTQyQTM5KTogQ3Jh
c2ggCisgICAgICAgIGNsaWNraW5nIGJhY2tncm91bmQgTlBSIHRhYiBhZnRlciBmZXcgbWludXRl
cyBvZiBzaXR0aW5nIGlkbGUKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NzEKKworICAgICAgICBU
aGUgcHJvYmxlbSBpcyB0aGF0IEdhcmJhZ2VDb2xsZWN0aW9uIHJ1bnMgYW5kIGRlc3Ryb3lzIHRo
ZSAKKyAgICAgICAgSFRNTE1lZGlhRWxlbWVudC4gVGhlIGNvZGUgaW4gdGhlIEhUTUxNZWRpYUVs
ZW1lbnQgZGVzdHJ1Y3RvciB0aGF0IAorICAgICAgICBjYWxsZWQgcmVtb3ZlTWVkaWFDYW5TdGFy
dExpc3RlbmVyKCkgbmV2ZXIgcmFuIGJlY2F1c2UgdGhlIHBhZ2Ugd2FzIAorICAgICAgICBudWxs
IGF0IHRoYXQgdGltZS4gSWYgd2UgbW92ZSB0aGF0IGNvZGUgdG8gZGV0YWNoIGluc3RlYWQgb2Yg
dGhlIAorICAgICAgICBkZXN0cnVjdG9yLCB0aGVuIHdlIHN0aWxsIGhhdmUgYSBwYWdlIG9iamVj
dC4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVudCk6IFJlbW92ZSBjYWxsIHRv
IAorICAgICAgICByZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIoKQorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6YWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKTogTmV3IG1lbWJl
ciAKKyAgICAgICAgZnVuY3Rpb24gdGhhdCBjYWxscyBQYWdlOjogYWRkTWVkaWFDYW5TdGFydExp
c3RlbmVyKCkKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZU1lZGlh
Q2FuU3RhcnRMaXN0ZW5lcik6IE5ldyAKKyAgICAgICAgbWVtYmVyIGZ1bmN0aW9uIHRoYXQgY2Fs
bHMgUGFnZTo6IHJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcigpCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojp3aWxsTW92ZVRvTmV3T3duZXJEb2N1bWVudCk6IENhbGwgCisg
ICAgICAgIHJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcigpLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6ZGlkTW92ZVRvTmV3T3duZXJEb2N1bWVudCk6IENhbGwgCisgICAg
ICAgIGFkZE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcigpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6YXR0YWNoKTogQ2FsbCAKKyAgICAgICAgYWRkTWVkaWFDYW5TdGFydExpc3Rl
bmVyKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkZXRhY2gpOiBDYWxs
IAorICAgICAgICByZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIoKS4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRJbnRlcm5hbCk6IFJldHVybiBpZiAhYXR0YWNoZWQo
KS4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKwogMjAxMC0wNS0xMCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDU5
MDg0KQorKysgV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzYsMTkgKzEzNiwzMSBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50
KGNvbnN0CiAKIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKIHsKKyAgICBk
b2N1bWVudCgpLT51bnJlZ2lzdGVyRm9yRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzKHRoaXMp
OworICAgIGRvY3VtZW50KCktPnVucmVnaXN0ZXJGb3JNZWRpYVZvbHVtZUNhbGxiYWNrcyh0aGlz
KTsKK30KKwordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphZGRNZWRpYUNhblN0YXJ0TGlzdGVuZXIo
KQorewogICAgIGlmIChtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCkgewogICAgICAgICBp
ZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPnJl
bW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIHBhZ2UtPmFkZE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcih0aGlzKTsKICAgICB9Cit9CiAKLSAgICBkb2N1bWVudCgpLT51
bnJlZ2lzdGVyRm9yRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzKHRoaXMpOwotICAgIGRvY3Vt
ZW50KCktPnVucmVnaXN0ZXJGb3JNZWRpYVZvbHVtZUNhbGxiYWNrcyh0aGlzKTsKK3ZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6cmVtb3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKCkKK3sKKyAgICBpZiAo
bV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQpIHsKKyAgICAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBkb2N1bWVudCgpLT5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5yZW1vdmVNZWRpYUNhblN0
YXJ0TGlzdGVuZXIodGhpcyk7CisgICAgfQogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Ondp
bGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCkKIHsKICAgICBkb2N1bWVudCgpLT51bnJlZ2lzdGVy
Rm9yRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzKHRoaXMpOwogICAgIGRvY3VtZW50KCktPnVu
cmVnaXN0ZXJGb3JNZWRpYVZvbHVtZUNhbGxiYWNrcyh0aGlzKTsKKyAgICByZW1vdmVNZWRpYUNh
blN0YXJ0TGlzdGVuZXIoKTsKICAgICBIVE1MRWxlbWVudDo6d2lsbE1vdmVUb05ld093bmVyRG9j
dW1lbnQoKTsKIH0KIApAQCAtMTU2LDYgKzE2OCw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZGlkTW92ZVRvTmV3T3duZXIKIHsKICAgICBkb2N1bWVudCgpLT5yZWdpc3RlckZvckRvY3VtZW50
QWN0aXZhdGlvbkNhbGxiYWNrcyh0aGlzKTsKICAgICBkb2N1bWVudCgpLT5yZWdpc3RlckZvck1l
ZGlhVm9sdW1lQ2FsbGJhY2tzKHRoaXMpOworICAgIGFkZE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcigp
OwogICAgIEhUTUxFbGVtZW50OjpkaWRNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7CiB9CiAKQEAg
LTMxNSwxMiArMzI4LDIwIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YXR0YWNoKCkKICAgICBt
X25lZWRXaWRnZXRVcGRhdGUgPSB0cnVlOwogI2VuZGlmCiAKKyAgICBhZGRNZWRpYUNhblN0YXJ0
TGlzdGVuZXIoKTsKKwogICAgIEhUTUxFbGVtZW50OjphdHRhY2goKTsKIAogICAgIGlmIChyZW5k
ZXJlcigpKQogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCit2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRldGFjaCgpCit7CisgICAgcmVtb3ZlTWVkaWFDYW5TdGFy
dExpc3RlbmVyKCk7CisgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOworfQorCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICBIVE1M
RWxlbWVudDo6cmVjYWxjU3R5bGUoY2hhbmdlKTsKQEAgLTUyNiw3ICs1NDcsNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmxvYWRJbnRlcm5hbCgpCiAgICAgLy8gSWYgd2UgY2FuJ3Qgc3RhcnQg
YSBsb2FkIHJpZ2h0IGF3YXksIHN0YXJ0IGl0IGxhdGVyLgogICAgIFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudCgpLT5wYWdlKCk7CiAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmNhblN0YXJ0TWVkaWEoKSkg
ewotICAgICAgICBpZiAobV9pc1dhaXRpbmdVbnRpbE1lZGlhQ2FuU3RhcnQpCisgICAgICAgIGlm
IChtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCB8fCAhYXR0YWNoZWQoKSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgcGFnZS0+YWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKHRoaXMp
OwogICAgICAgICBtX2lzV2FpdGluZ1VudGlsTWVkaWFDYW5TdGFydCA9IHRydWU7CkluZGV4OiBX
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDU5MDg0KQorKysgV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDYgKzE3NSw3IEBAIHByb3Rl
Y3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRy
aWJ1dGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CisgICAgdmlydHVhbCB2b2lkIGRl
dGFjaCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZE1vdmVUb05ld093bmVyRG9jdW1lbnQoKTsKQEAgLTI3NSw2
ICsyNzYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UGF1c2VkSW50ZXJuYWwoYm9vbCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFDYW5TdGFydCgpOworICAgIHZvaWQgYWRkTWVkaWFDYW5T
dGFydExpc3RlbmVyKCk7CisgICAgdm9pZCByZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIoKTsK
IAogICAgIC8vIFJlc3RyaWN0aW9ucyB0byBjaGFuZ2UgZGVmYXVsdCBiZWhhdmlvcnMuIFRoaXMg
aXMgZWZmZWN0aXZlbHkgYSBjb21waWxlIHRpbWUgY2hvaWNlIGF0IHRoZSBtb21lbnQKICAgICAv
LyBiZWNhdXNlIHRoZXJlIGFyZSBubyBhY2Nlc3NvciBmdW5jdGlvbnMuCg==
</data>
<flag name="review"
          id="39837"
          type_id="1"
          status="-"
          setter="bdakin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55804</attachid>
            <date>2010-05-11 21:44:02 -0700</date>
            <delta_ts>2010-05-12 09:04:39 -0700</delta_ts>
            <desc>New Patch</desc>
            <filename>forReview.txt</filename>
            <type>text/plain</type>
            <size>5795</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTIwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMTEgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBm
b3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4ODcxIFJFR1JFU1NJ
T046IAorICAgICAgICBDcmFzaCBjbGlja2luZyBiYWNrZ3JvdW5kIE5QUiB0YWIgYWZ0ZXIgZmV3
IG1pbnV0ZXMgb2Ygc2l0dGluZyBpZGxlCisgICAgICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NDE1MDQ+CisKKyAgICAgICAgTW92ZSBtX21lZGlhQ2Fu
U3RhcnRMaXN0ZW5lcnMgSGFzaFNldCB0byBEb2N1bWVudCBhd2F5IGZyb20gUGFnZS4KKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRNZWRpYUNhblN0YXJ0TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGFrZUFueU1lZGlhQ2FuU3RhcnRM
aXN0ZW5lcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnRha2VBbnlNZWRpYUNhblN0YXJ0TGlzdGVu
ZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y2Fu
U3RhcnRNZWRpYSk6CisKIDIwMTAtMDUtMTEgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShy
ZXZpc2lvbiA1OTE5MikKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDkyMCwxOCArNDkyMCwyNCBAQCB2b2lkIERvY3VtZW50OjplbnF1ZXVlUG9wc3RhdGVF
dmVudChQYXNzCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihNZWRp
YUNhblN0YXJ0TGlzdGVuZXIqIGxpc3RlbmVyKQogewotICAgIC8vIFRoZSBwbGFuIGlzIHRvIG1v
dmUgbV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzIGZyb20gUGFnZSB0byBEb2N1bWVudCBzb29uLgot
ICAgIC8vIEZvciBub3csIHRoaXMgc2ltcGx5IGZvcndhcmRzIHRoZSBjYWxsIHRvIHRoZSBwYWdl
IGlmIGFueS4KLSAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKLSAgICAgICAgcGFn
ZS0+YWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICBBU1NFUlQoIW1fbWVk
aWFDYW5TdGFydExpc3RlbmVycy5jb250YWlucyhsaXN0ZW5lcikpOworICAgIG1fbWVkaWFDYW5T
dGFydExpc3RlbmVycy5hZGQobGlzdGVuZXIpOwogfQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVN
ZWRpYUNhblN0YXJ0TGlzdGVuZXIoTWVkaWFDYW5TdGFydExpc3RlbmVyKiBsaXN0ZW5lcikKIHsK
LSAgICAvLyBUaGUgcGxhbiBpcyB0byBtb3ZlIG1fbWVkaWFDYW5TdGFydExpc3RlbmVycyBmcm9t
IFBhZ2UgdG8gRG9jdW1lbnQgc29vbi4KLSAgICAvLyBGb3Igbm93LCB0aGlzIHNpbXBseSBmb3J3
YXJkcyB0aGUgY2FsbCB0byB0aGUgcGFnZSBpZiBhbnkuCi0gICAgaWYgKFBhZ2UqIHBhZ2UgPSB0
aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPnJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihs
aXN0ZW5lcik7CisgICAgQVNTRVJUKG1fbWVkaWFDYW5TdGFydExpc3RlbmVycy5jb250YWlucyhs
aXN0ZW5lcikpOworICAgIG1fbWVkaWFDYW5TdGFydExpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIp
OworfQorCitNZWRpYUNhblN0YXJ0TGlzdGVuZXIqIERvY3VtZW50Ojp0YWtlQW55TWVkaWFDYW5T
dGFydExpc3RlbmVyKCkKK3sKKyAgICBIYXNoU2V0PE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcio+Ojpp
dGVyYXRvciBzbG90ID0gbV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzLmJlZ2luKCk7CisgICAgaWYg
KHNsb3QgPT0gbV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzLmVuZCgpKQorICAgICAgICByZXR1cm4g
MDsKKyAgICBNZWRpYUNhblN0YXJ0TGlzdGVuZXIqIGxpc3RlbmVyID0gKnNsb3Q7CisgICAgbV9t
ZWRpYUNhblN0YXJ0TGlzdGVuZXJzLnJlbW92ZShzbG90KTsKKyAgICByZXR1cm4gbGlzdGVuZXI7
CiB9CiAKICNpZiBFTkFCTEUoWEhUTUxNUCkKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gNTkxOTIpCisr
KyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05NzcsNiArOTc3LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRNZWRpYUNhblN0YXJ0TGlzdGVuZXIoTWVkaWFDYW5T
dGFydExpc3RlbmVyKik7CiAgICAgdm9pZCByZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIoTWVk
aWFDYW5TdGFydExpc3RlbmVyKik7CisgICAgTWVkaWFDYW5TdGFydExpc3RlbmVyKiB0YWtlQW55
TWVkaWFDYW5TdGFydExpc3RlbmVyKCk7CiAKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFt
ZSosIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwpAQCAtMTI0OSw2ICsxMjUwLDggQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgUmVmUHRyPERvY3VtZW50V2Vha1JlZmVyZW5jZT4gbV93ZWFr
UmVmZXJlbmNlOworCisgICAgSGFzaFNldDxNZWRpYUNhblN0YXJ0TGlzdGVuZXIqPiBtX21lZGlh
Q2FuU3RhcnRMaXN0ZW5lcnM7CiB9OwogCiBpbmxpbmUgYm9vbCBEb2N1bWVudDo6aGFzRWxlbWVu
dFdpdGhJZChBdG9taWNTdHJpbmdJbXBsKiBpZCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGFnZS9Q
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDU5
MTkyKQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTMsMjcg
KzM5MywxMyBAQCBQbHVnaW5EYXRhKiBQYWdlOjpwbHVnaW5EYXRhKCkgY29uc3QKICAgICByZXR1
cm4gbV9wbHVnaW5EYXRhLmdldCgpOwogfQogCi12b2lkIFBhZ2U6OmFkZE1lZGlhQ2FuU3RhcnRM
aXN0ZW5lcihNZWRpYUNhblN0YXJ0TGlzdGVuZXIqIGxpc3RlbmVyKQoraW5saW5lIE1lZGlhQ2Fu
U3RhcnRMaXN0ZW5lciogUGFnZTo6dGFrZUFueU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcigpCiB7Ci0g
ICAgQVNTRVJUKCFtX2NhblN0YXJ0TWVkaWEpOwotICAgIEFTU0VSVCghbV9tZWRpYUNhblN0YXJ0
TGlzdGVuZXJzLmNvbnRhaW5zKGxpc3RlbmVyKSk7Ci0gICAgbV9tZWRpYUNhblN0YXJ0TGlzdGVu
ZXJzLmFkZChsaXN0ZW5lcik7Ci19Ci0KLXZvaWQgUGFnZTo6cmVtb3ZlTWVkaWFDYW5TdGFydExp
c3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciogbGlzdGVuZXIpCi17Ci0gICAgQVNTRVJUKG1f
bWVkaWFDYW5TdGFydExpc3RlbmVycy5jb250YWlucyhsaXN0ZW5lcikpOwotICAgIG1fbWVkaWFD
YW5TdGFydExpc3RlbmVycy5yZW1vdmUobGlzdGVuZXIpOwotfQotCi1NZWRpYUNhblN0YXJ0TGlz
dGVuZXIqIFBhZ2U6OnRha2VBbnlNZWRpYUNhblN0YXJ0TGlzdGVuZXIoKQotewotICAgIEhhc2hT
ZXQ8TWVkaWFDYW5TdGFydExpc3RlbmVyKj46Oml0ZXJhdG9yIHNsb3QgPSBtX21lZGlhQ2FuU3Rh
cnRMaXN0ZW5lcnMuYmVnaW4oKTsKLSAgICBpZiAoc2xvdCA9PSBtX21lZGlhQ2FuU3RhcnRMaXN0
ZW5lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIE1lZGlhQ2FuU3RhcnRMaXN0ZW5l
ciogbGlzdGVuZXIgPSAqc2xvdDsKLSAgICBtX21lZGlhQ2FuU3RhcnRMaXN0ZW5lcnMucmVtb3Zl
KHNsb3QpOwotICAgIHJldHVybiBsaXN0ZW5lcjsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1h
aW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkg
eworICAgICAgICBpZiAoTWVkaWFDYW5TdGFydExpc3RlbmVyKiBsaXN0ZW5lciA9IGZyYW1lLT5k
b2N1bWVudCgpLT50YWtlQW55TWVkaWFDYW5TdGFydExpc3RlbmVyKCkpCisgICAgICAgICAgICBy
ZXR1cm4gbGlzdGVuZXI7CisgICAgfQorICAgIHJldHVybiAwOwogfQogCiB2b2lkIFBhZ2U6OnNl
dENhblN0YXJ0TWVkaWEoYm9vbCBjYW5TdGFydE1lZGlhKQpJbmRleDogV2ViQ29yZS9wYWdlL1Bh
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiA1OTE5MikK
KysrIFdlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDExICs5Myw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgcmVmcmVzaFBsdWdpbnMo
Ym9vbCByZWxvYWQpOwogICAgICAgICBQbHVnaW5EYXRhKiBwbHVnaW5EYXRhKCkgY29uc3Q7CiAK
LSAgICAgICAgTWVkaWFDYW5TdGFydExpc3RlbmVyKiB0YWtlQW55TWVkaWFDYW5TdGFydExpc3Rl
bmVyKCk7CiAgICAgICAgIHZvaWQgc2V0Q2FuU3RhcnRNZWRpYShib29sKTsKICAgICAgICAgYm9v
bCBjYW5TdGFydE1lZGlhKCkgY29uc3QgeyByZXR1cm4gbV9jYW5TdGFydE1lZGlhOyB9Ci0gICAg
ICAgIHZvaWQgYWRkTWVkaWFDYW5TdGFydExpc3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciop
OwotICAgICAgICB2b2lkIHJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihNZWRpYUNhblN0YXJ0
TGlzdGVuZXIqKTsKIAogICAgICAgICBFZGl0b3JDbGllbnQqIGVkaXRvckNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZWRpdG9yQ2xpZW50OyB9CiAKQEAgLTIzOSw2ICsyMzYsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY2hlY2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKSBj
b25zdDsKICNlbmRpZgogCisgICAgICAgIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciogdGFrZUFueU1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcigpOworCiAgICAgICAgIE93blB0cjxDaHJvbWU+IG1fY2hyb21l
OwogICAgICAgICBPd25QdHI8U2VsZWN0aW9uQ29udHJvbGxlcj4gbV9kcmFnQ2FyZXRDb250cm9s
bGVyOwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0yOTYsNyArMjk1LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgbV9jdXN0b21IVE1MVG9rZW5pemVyQ2h1bmtTaXpl
OwogCiAgICAgICAgIGJvb2wgbV9jYW5TdGFydE1lZGlhOwotICAgICAgICBIYXNoU2V0PE1lZGlh
Q2FuU3RhcnRMaXN0ZW5lcio+IG1fbWVkaWFDYW5TdGFydExpc3RlbmVyczsKIAogICAgICAgICBP
d25QdHI8UGx1Z2luSGFsdGVyPiBtX3BsdWdpbkhhbHRlcjsKIAo=
</data>
<flag name="review"
          id="40079"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>