<?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>28245</bug_id>
          
          <creation_ts>2009-08-12 21:32:17 -0700</creation_ts>
          <short_desc>findNextLineBreak crashes when inserting a blank span in front of a long line</short_desc>
          <delta_ts>2009-12-28 22:25:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Patrick Geiller">parmanoir</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>139714</commentid>
    <comment_count>0</comment_count>
      <attachid>34714</attachid>
    <who name="Patrick Geiller">parmanoir</who>
    <bug_when>2009-08-12 21:32:17 -0700</bug_when>
    <thetext>Created attachment 34714
Test case, will crash nightly when clicking the button

When using range.insertNode to add a SPAN in a DIV containing repeating non-breaking characters and a line break, Safari crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139715</commentid>
    <comment_count>1</comment_count>
    <who name="Patrick Geiller">parmanoir</who>
    <bug_when>2009-08-12 21:34:30 -0700</bug_when>
    <thetext>bug #18282 also crashes in findNextLineBreak, but with a different stack trace. 

Here&apos;s this bug&apos;s stack trace.

0   com.apple.WebCore             	0x0145bd75 WebCore::RenderBlock::findNextLineBreak(WebCore::BidiResolver&lt;WebCore::InlineIterator, WebCore::BidiRun&gt;&amp;, bool, bool&amp;, bool&amp;, WebCore::EClear*) + 5445
1   com.apple.WebCore             	0x0145dce4 WebCore::RenderBlock::layoutInlineChildren(bool, int&amp;, int&amp;) + 2180
2   com.apple.WebCore             	0x01451e0a WebCore::RenderBlock::layoutBlock(bool) + 570
3   com.apple.WebCore             	0x01443778 WebCore::RenderBlock::layout() + 40
4   com.apple.WebCore             	0x01451352 WebCore::RenderBlock::layoutBlockChildren(bool, int&amp;) + 914
5   com.apple.WebCore             	0x014522dc WebCore::RenderBlock::layoutBlock(bool) + 1804
6   com.apple.WebCore             	0x01443778 WebCore::RenderBlock::layout() + 40
7   com.apple.WebCore             	0x01451352 WebCore::RenderBlock::layoutBlockChildren(bool, int&amp;) + 914
8   com.apple.WebCore             	0x014522dc WebCore::RenderBlock::layoutBlock(bool) + 1804
9   com.apple.WebCore             	0x01443778 WebCore::RenderBlock::layout() + 40
10  com.apple.WebCore             	0x01451352 WebCore::RenderBlock::layoutBlockChildren(bool, int&amp;) + 914
11  com.apple.WebCore             	0x014522dc WebCore::RenderBlock::layoutBlock(bool) + 1804
12  com.apple.WebCore             	0x01443778 WebCore::RenderBlock::layout() + 40
13  com.apple.WebCore             	0x01451352 WebCore::RenderBlock::layoutBlockChildren(bool, int&amp;) + 914
14  com.apple.WebCore             	0x014522dc WebCore::RenderBlock::layoutBlock(bool) + 1804
15  com.apple.WebCore             	0x01443778 WebCore::RenderBlock::layout() + 40
16  com.apple.WebCore             	0x014f8b6a WebCore::RenderView::layout() + 250</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174322</commentid>
    <comment_count>2</comment_count>
      <attachid>45394</attachid>
    <who name="Mike Moretti">webkit9</who>
    <bug_when>2009-12-22 12:05:28 -0800</bug_when>
    <thetext>Created attachment 45394
Fix for bug

The bug was caused by a null/empty string not being checked (and the string getting accessed by a bad index).  I added a check for empty string and the crash no longer happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174323</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-22 12:09:09 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45394 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174328</commentid>
    <comment_count>4</comment_count>
      <attachid>45394</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-22 12:18:57 -0800</bug_when>
    <thetext>Comment on attachment 45394
Fix for bug

Looks good. There are tabs in the test case, so we won&apos;t be able to land it.

&gt; -                            if (lBreak.obj &amp;&amp; shouldPreserveNewline(lBreak.obj) &amp;&amp; lBreak.obj-&gt;isText() &amp;&amp; !toRenderText(lBreak.obj)-&gt;isWordBreak() &amp;&amp; toRenderText(lBreak.obj)-&gt;characters()[lBreak.pos] == &apos;\n&apos;) {
&gt; +                            if (lBreak.obj &amp;&amp; shouldPreserveNewline(lBreak.obj) &amp;&amp; lBreak.obj-&gt;isText() &amp;&amp; toRenderText(lBreak.obj)-&gt;textLength() &gt; 0 &amp;&amp; !toRenderText(lBreak.obj)-&gt;isWordBreak() &amp;&amp; toRenderText(lBreak.obj)-&gt;characters()[lBreak.pos] == &apos;\n&apos;) {

Another way to write this is:

    (*toRenderText(lBreak.obj)-&gt;text())[0] == &apos;\n&apos;

Because subscripting with StringImpl does a range check. It&apos;s not super-elegant, but a little less wordy.

Normally in WebKit code we do not write &quot;&gt; 0&quot; for cases like this. It would just be &quot;textLength() &amp;&amp;&quot;.

&gt; +        alert(div.innerHTML);

Typically we prefer to put the results of the test into an element rather than using alerts. This makes it smoother to run the test in the web browser.

You can set the textContent of some other element to the innerHTML of this element.

If you are doing the alert to trigger the crash, then there&apos;s a chance the layout will not be triggered and the won&apos;t happen inside DumpRenderTree, since alert may not force layout. Did you check that the test does indeed crash in DumpRenderTree without the patch? If it does not, you may want to do something else to trigger layout.

review- only because of the tabs -- the patch is otherwise OK, but please consider my comments for possible refinements too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174572</commentid>
    <comment_count>5</comment_count>
      <attachid>45431</attachid>
    <who name="Mike Moretti">webkit9</who>
    <bug_when>2009-12-23 04:51:44 -0800</bug_when>
    <thetext>Created attachment 45431
Bug fix patch - Removed tabs

Sorry about the tabs.  I removed them now.

As for the indexing, I didn&apos;t want to use indexing because &quot;characters&quot; actually returns null, not a valid string (I don&apos;t know what &quot;text()&quot; does yet without looking further).

I also wasn&apos;t sure if textLength() would ever return a -1; I am still not as up to speed on the webkit code as I would like yet.

I looked at 3 or 4 test cases to find one to use as an example but wasn&apos;t sure which was best, so I randomly picked one and it had alerts in it.  If you can point me to a better example that would be great!  I would rather write a proper test case next time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174574</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-23 04:55:48 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45431 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174722</commentid>
    <comment_count>7</comment_count>
      <attachid>45431</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-23 20:38:24 -0800</bug_when>
    <thetext>Comment on attachment 45431
Bug fix patch - Removed tabs

(In reply to comment #5)
&gt; As for the indexing, I didn&apos;t want to use indexing because &quot;characters&quot;
&gt; actually returns null, not a valid string (I don&apos;t know what &quot;text()&quot; does yet
&gt; without looking further).

I know that you didn&apos;t know that!

But text() returns a StringImpl* that does indeed handle the [0] case, as I said.

&gt; I also wasn&apos;t sure if textLength() would ever return a -1

It would not.

It&apos;s OK not to know these things when you first wrote the patch. You can learn them during patch review.

What&apos;s not as OK is to just leave the patch as-is without responding to the comments. I can understand you not changing if you don&apos;t agree, but just saying &quot;I didn&apos;t know when I originally wrote this&quot; doesn&apos;t justify leaving the patch as is.

&gt; I looked at 3 or 4 test cases to find one to use as an example but wasn&apos;t sure
&gt; which was best, so I randomly picked one and it had alerts in it.  If you can
&gt; point me to a better example that would be great!

Your attitude is fine, but your difficulty finding an example without alerts is strange. I started looking in the fast/dom directory alphabetically right where your new test would go and found:

    inner-text.html
    inner-width-height.html

I can provide many other examples that don&apos;t use alert.

&gt; I would rather write a proper test case next time.

Please do it this time, lets not wait for next time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174759</commentid>
    <comment_count>8</comment_count>
      <attachid>45466</attachid>
    <who name="Mike Moretti">webkit9</who>
    <bug_when>2009-12-24 05:16:56 -0800</bug_when>
    <thetext>Created attachment 45466
Updated fix - removed alerts in test case, minor recommended code change

Sorry for any miscommunication/misunderstanding that may have occurred.  I was working under the assumption that the sole reason the patch was rejected was for the tabs in the test case.  I had considered your suggestions as you requested, but did not know they were required to commit the fix.  Considering that the bug was actually fixed, and the review comment was that it was an OK fix, I chose to move on to fix another bug rather than spend an extra day or so recoding the fix and testing it again, but keeping your comments in mind for future fixes.

After the current review rejection, I went back into the code and tried to implement the text()[] recommendation.  However, unfortunately, it does&apos;nt compile, giving an error about a non-existent == operator for ...-&gt;text()[lBreak.pos].  I am not sure I can implement this recommendation without spending much more time trying to research it.

As for the test case without alerts, as was mentioned previously, there were at least 3 completely different test cases I had originally looked at and was not sure which to use to base my test on.  After your suggestion, rather than going and randomly picking another test case that had no alerts but may still not be a good base, I was hoping you could point me to one that was a good example to use for all my future test cases so it would save review time later.

I&apos;ve updated the test case to remove alerts as per your recommendation, and have removed the &gt; 0.  However, I have not implemented the recommended text()[] fix as I do not currently have the knowledge to get it working.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174763</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-24 05:20:58 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45466 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175401</commentid>
    <comment_count>10</comment_count>
      <attachid>45466</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-28 22:25:25 -0800</bug_when>
    <thetext>Comment on attachment 45466
Updated fix - removed alerts in test case, minor recommended code change

Clearing flags on attachment: 45466

Committed r52607: &lt;http://trac.webkit.org/changeset/52607&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175402</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-28 22:25:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>34714</attachid>
            <date>2009-08-12 21:32:17 -0700</date>
            <delta_ts>2009-08-12 21:32:17 -0700</delta_ts>
            <desc>Test case, will crash nightly when clicking the button</desc>
            <filename>! CRASH.html</filename>
            <type>text/html</type>
            <size>1189</size>
            <attacher name="Patrick Geiller">parmanoir</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs
Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25h
bC5kdGQiPgo8aHRtbD4KPGhlYWQ+Cgk8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNv
bnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KCTx0aXRsZT5IaWdobGlnaHRlcjwv
dGl0bGU+Cgk8c3R5bGU+CgkJI2hpZ2hsaWdodGVkCgkJewoJCQl3aGl0ZS1zcGFjZTogcHJlLXdy
YXA7CgkJfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGRpdiBpZD0naGlnaGxpZ2h0ZWQnPjwv
ZGl2PgoJPGJ1dHRvbiBvbmNsaWNrPSdjcmFzaCgpJz5DbGljayB0byBjcmFzaDwvYnV0dG9uPgoJ
CTxzY3JpcHQ+CgkJCXZhciBzdHIgPSAnX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fJwoJCQloaWdobGlnaHRlZC5pbm5l
ckhUTUwgPSAnPGRpdj4nICsgc3RyICsgJ1xuPC9kaXY+JwoJCQlmdW5jdGlvbgljcmFzaCgpCgkJ
CXsKCQkJCXZhciBzZWwgPSBnZXRTZWxlY3Rpb24oKQoJCQkJc2VsLnNldFBvc2l0aW9uKGhpZ2hs
aWdodGVkLmZpcnN0Q2hpbGQsIDApCgoJCQkJdmFyIHJhbmdlID0gc2VsLmdldFJhbmdlQXQoMCkK
CQkJCXZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnU1BBTicpCgkJCQlyYW5nZS5p
bnNlcnROb2RlKHNwYW4pCgkJCX0KCTwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45394</attachid>
            <date>2009-12-22 12:05:28 -0800</date>
            <delta_ts>2009-12-22 12:18:57 -0800</delta_ts>
            <desc>Fix for bug</desc>
            <filename>bug-28245-fix.patch</filename>
            <type>text/plain</type>
            <size>6047</size>
            <attacher name="Mike Moretti">webkit9</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjQ5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMTItMjIgIE1pa2UgTW9yZXR0aSAgPHdlYmtpdDlAbW9yZGVu
dC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGJ1ZyAyODI0NSAtIHByb2JsZW0gd2l0aCBpbnNlcnRpbmcgYSBzcGFuIGludG8gYSBsb25n
IHRleHQgYmxvY2sgY2F1c2luZyBhIGNyYXNoIGJlY2F1c2Ugb2YgYSBudWxsIHN0cmluZworCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0
NS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayk6CisKIDIw
MDktMTItMjEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xp
bmVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAJKHJldmlzaW9uIDUyNDg3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkyNyw3ICsxOTI3LDcg
QEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChsaW5lV2FzVG9vV2lkZSB8fCB3ICsgdG1wVyA+IHdpZHRoKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxCcmVhay5vYmogJiYgc2hvdWxkUHJlc2Vy
dmVOZXdsaW5lKGxCcmVhay5vYmopICYmIGxCcmVhay5vYmotPmlzVGV4dCgpICYmICF0b1JlbmRl
clRleHQobEJyZWFrLm9iaiktPmlzV29yZEJyZWFrKCkgJiYgdG9SZW5kZXJUZXh0KGxCcmVhay5v
YmopLT5jaGFyYWN0ZXJzKClbbEJyZWFrLnBvc10gPT0gJ1xuJykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChsQnJlYWsub2JqICYmIHNob3VsZFByZXNlcnZlTmV3bGluZShsQnJl
YWsub2JqKSAmJiBsQnJlYWsub2JqLT5pc1RleHQoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm9i
aiktPnRleHRMZW5ndGgoKSA+IDAgJiYgIXRvUmVuZGVyVGV4dChsQnJlYWsub2JqKS0+aXNXb3Jk
QnJlYWsoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm9iaiktPmNoYXJhY3RlcnMoKVtsQnJlYWsu
cG9zXSA9PSAnXG4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3Rv
cHBlZElnbm9yaW5nU3BhY2VzICYmIHBvcyA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3RvcCByaWdodCBiZWZvcmUgdGhlIG5ld2xpbmUg
YW5kIHRoZW4gc3RhcnQgdXAgYWdhaW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgSW5saW5lSXRlcmF0b3IoMCwgbywg
cG9zIC0gMSkpOyAvLyBTdG9wCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MjQ5NCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEyLTIy
ICBNaWtlIE1vcmV0dGkgIDx3ZWJraXQ5QG1vcmRlbnQuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBidWcgMjgyNDUgLSBwcm9ibGVtIHdp
dGggaW5zZXJ0aW5nIGEgc3BhbiBpbnRvIGEgbG9uZyB0ZXh0IGJsb2NrIGNhdXNpbmcgYSBjcmFz
aCBiZWNhdXNlIG9mIGEgbnVsbCBzdHJpbmcKKworICAgICAgICAqIGZhc3QvZG9tL2luc2VydC1z
cGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS5odG1sOiBB
ZGRlZC4KKwogMjAwOS0xMi0yMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5zZXJ0LXNwYW4taW50by1sb25nLXRleHQt
YnVnLTI4MjQ1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorQUxFUlQ6IDxkaXY+X19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCis8L2Rp
dj4KK0FMRVJUOiA8ZGl2PjxzcGFuPjwvc3Bhbj5fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKzwvZGl2PgorVGhpcyB0
ZXN0cyB0aGF0IGluc2VydGluZyBhIHNwYW4gaW50byBhIHNlbGVjdGlvbiBvZiBhIGRpdiB3aXRo
IGxvdHMgb2Ygbm9uLXdvcmQtYnJva2VuIGNoYXJhY3RlcnMgZG9lc24ndCBjcmFzaC4KK19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9pbnNlcnQtc3Bhbi1pbnRvLWxv
bmctdGV4dC1idWctMjgyNDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9pbnNlcnQtc3Bhbi1pbnRvLWxvbmctdGV4dC1idWctMjgyNDUuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0y
ODI0NS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACis8aHRtbD4NCis8aGVhZD4N
Cis8c3R5bGU+DQorI2hpZ2hsaWdodGVkDQorew0KK3doaXRlLXNwYWNlOiBwcmUtd3JhcDsNCit9
DQorPC9zdHlsZT4NCisgIDxzY3JpcHQ+DQorICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7DQorICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKQ0KKw0KKyAgICAJdmFyIHN0ciA9ICdfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18nDQorICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpZ2hs
aWdodGVkJyk7DQorICAgIAlkaXYuaW5uZXJIVE1MID0gJzxkaXY+JyArIHN0ciArICdcbjwvZGl2
PicNCisgICAgICAgIGFsZXJ0KGRpdi5pbm5lckhUTUwpOw0KKw0KKyAgICAJLy8gVGVzdCBjcmFz
aA0KKyAgICAJdmFyIHNlbCA9IGdldFNlbGVjdGlvbigpOw0KKyAgICAJc2VsLnNldFBvc2l0aW9u
KGRpdi5maXJzdENoaWxkLCAwKTsNCisgICAgDQorCXZhciByYW5nZSA9IHNlbC5nZXRSYW5nZUF0
KDApOw0KKyAgICAJdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdTUEFOJyk7DQor
ICAgIAlyYW5nZS5pbnNlcnROb2RlKHNwYW4pOw0KKyAgICAJYWxlcnQoZGl2LmlubmVySFRNTCk7
DQorICAgIH0NCisgIDwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+DQorICBUaGlzIHRlc3RzIHRoYXQgaW5zZXJ0aW5nIGEgc3BhbiBpbnRvIGEgc2VsZWN0aW9u
IG9mIGEgZGl2IHdpdGggbG90cyBvZiBub24td29yZC1icm9rZW4gY2hhcmFjdGVycyBkb2Vzbid0
IGNyYXNoLg0KKyAgPGRpdiBpZD0iaGlnaGxpZ2h0ZWQiPjwvZGl2Pg0KKzwvYm9keT4NCis8L2h0
bWw+DQo=
</data>
<flag name="review"
          id="27421"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45431</attachid>
            <date>2009-12-23 04:51:44 -0800</date>
            <delta_ts>2009-12-23 20:38:24 -0800</delta_ts>
            <desc>Bug fix patch - Removed tabs</desc>
            <filename>bug-28245-fix.patch</filename>
            <type>text/plain</type>
            <size>6074</size>
            <attacher name="Mike Moretti">webkit9</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjQ5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMTItMjIgIE1pa2UgTW9yZXR0aSAgPHdlYmtpdDlAbW9yZGVu
dC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGJ1ZyAyODI0NSAtIHByb2JsZW0gd2l0aCBpbnNlcnRpbmcgYSBzcGFuIGludG8gYSBsb25n
IHRleHQgYmxvY2sgY2F1c2luZyBhIGNyYXNoIGJlY2F1c2Ugb2YgYSBudWxsIHN0cmluZworCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0
NS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayk6CisKIDIw
MDktMTItMjEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xp
bmVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAJKHJldmlzaW9uIDUyNDg3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkyNyw3ICsxOTI3LDcg
QEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChsaW5lV2FzVG9vV2lkZSB8fCB3ICsgdG1wVyA+IHdpZHRoKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxCcmVhay5vYmogJiYgc2hvdWxkUHJlc2Vy
dmVOZXdsaW5lKGxCcmVhay5vYmopICYmIGxCcmVhay5vYmotPmlzVGV4dCgpICYmICF0b1JlbmRl
clRleHQobEJyZWFrLm9iaiktPmlzV29yZEJyZWFrKCkgJiYgdG9SZW5kZXJUZXh0KGxCcmVhay5v
YmopLT5jaGFyYWN0ZXJzKClbbEJyZWFrLnBvc10gPT0gJ1xuJykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChsQnJlYWsub2JqICYmIHNob3VsZFByZXNlcnZlTmV3bGluZShsQnJl
YWsub2JqKSAmJiBsQnJlYWsub2JqLT5pc1RleHQoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm9i
aiktPnRleHRMZW5ndGgoKSA+IDAgJiYgIXRvUmVuZGVyVGV4dChsQnJlYWsub2JqKS0+aXNXb3Jk
QnJlYWsoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm9iaiktPmNoYXJhY3RlcnMoKVtsQnJlYWsu
cG9zXSA9PSAnXG4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3Rv
cHBlZElnbm9yaW5nU3BhY2VzICYmIHBvcyA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gc3RvcCByaWdodCBiZWZvcmUgdGhlIG5ld2xpbmUg
YW5kIHRoZW4gc3RhcnQgdXAgYWdhaW4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZGRNaWRwb2ludChsaW5lTWlkcG9pbnRTdGF0ZSwgSW5saW5lSXRlcmF0b3IoMCwgbywg
cG9zIC0gMSkpOyAvLyBTdG9wCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MjQ5NCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEyLTIy
ICBNaWtlIE1vcmV0dGkgIDx3ZWJraXQ5QG1vcmRlbnQuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBidWcgMjgyNDUgLSBwcm9ibGVtIHdp
dGggaW5zZXJ0aW5nIGEgc3BhbiBpbnRvIGEgbG9uZyB0ZXh0IGJsb2NrIGNhdXNpbmcgYSBjcmFz
aCBiZWNhdXNlIG9mIGEgbnVsbCBzdHJpbmcKKworICAgICAgICAqIGZhc3QvZG9tL2luc2VydC1z
cGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS5odG1sOiBB
ZGRlZC4KKwogMjAwOS0xMi0yMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5zZXJ0LXNwYW4taW50by1sb25nLXRleHQt
YnVnLTI4MjQ1LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorQUxFUlQ6IDxkaXY+X19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCis8L2Rp
dj4KK0FMRVJUOiA8ZGl2PjxzcGFuPjwvc3Bhbj5fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKzwvZGl2PgorVGhpcyB0
ZXN0cyB0aGF0IGluc2VydGluZyBhIHNwYW4gaW50byBhIHNlbGVjdGlvbiBvZiBhIGRpdiB3aXRo
IGxvdHMgb2Ygbm9uLXdvcmQtYnJva2VuIGNoYXJhY3RlcnMgZG9lc24ndCBjcmFzaC4KK19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9pbnNlcnQtc3Bhbi1pbnRvLWxv
bmctdGV4dC1idWctMjgyNDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9pbnNlcnQtc3Bhbi1pbnRvLWxvbmctdGV4dC1idWctMjgyNDUuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0y
ODI0NS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACis8aHRtbD4NCis8aGVhZD4N
Cis8c3R5bGU+DQorI2hpZ2hsaWdodGVkDQorew0KK3doaXRlLXNwYWNlOiBwcmUtd3JhcDsNCit9
DQorPC9zdHlsZT4NCisgIDxzY3JpcHQ+DQorICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7DQorICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KKyAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKQ0KKw0KKyAgICAgICAgdmFyIHN0ciA9ICdfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18nDQorICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hp
Z2hsaWdodGVkJyk7DQorICAgICAgICBkaXYuaW5uZXJIVE1MID0gJzxkaXY+JyArIHN0ciArICdc
bjwvZGl2PicNCisgICAgICAgIGFsZXJ0KGRpdi5pbm5lckhUTUwpOw0KKw0KKyAgICAgICAgLy8g
VGVzdCBjcmFzaA0KKyAgICAgICAgdmFyIHNlbCA9IGdldFNlbGVjdGlvbigpOw0KKyAgICAgICAg
c2VsLnNldFBvc2l0aW9uKGRpdi5maXJzdENoaWxkLCAwKTsNCisgICAgDQorICAgIHZhciByYW5n
ZSA9IHNlbC5nZXRSYW5nZUF0KDApOw0KKyAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdTUEFOJyk7DQorICAgICAgICByYW5nZS5pbnNlcnROb2RlKHNwYW4pOw0KKyAg
ICAgICAgYWxlcnQoZGl2LmlubmVySFRNTCk7DQorICAgIH0NCisgIDwvc2NyaXB0Pg0KKzwvaGVh
ZD4NCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+DQorICBUaGlzIHRlc3RzIHRoYXQgaW5zZXJ0
aW5nIGEgc3BhbiBpbnRvIGEgc2VsZWN0aW9uIG9mIGEgZGl2IHdpdGggbG90cyBvZiBub24td29y
ZC1icm9rZW4gY2hhcmFjdGVycyBkb2Vzbid0IGNyYXNoLg0KKyAgPGRpdiBpZD0iaGlnaGxpZ2h0
ZWQiPjwvZGl2Pg0KKzwvYm9keT4NCis8L2h0bWw+DQo=
</data>
<flag name="review"
          id="27474"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45466</attachid>
            <date>2009-12-24 05:16:56 -0800</date>
            <delta_ts>2009-12-28 22:25:25 -0800</delta_ts>
            <desc>Updated fix - removed alerts in test case, minor recommended code change</desc>
            <filename>bug-28245-fix.patch</filename>
            <type>text/plain</type>
            <size>6244</size>
            <attacher name="Mike Moretti">webkit9</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjQ5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMTItMjIgIE1pa2UgTW9yZXR0aSAgPHdlYmtpdDlAbW9yZGVu
dC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGJ1ZyAyODI0NSAtIHByb2JsZW0gd2l0aCBpbnNlcnRpbmcgYSBzcGFuIGludG8gYSBsb25n
IHRleHQgYmxvY2sgY2F1c2luZyBhIGNyYXNoIGJlY2F1c2Ugb2YgYSBudWxsIHN0cmluZworCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0
NS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5kTmV4dExpbmVCcmVhayk6CisKIDIw
MDktMTItMjEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xp
bmVMYXlvdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAJKHJldmlzaW9uIDUyNDg3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkyNyw3ICsxOTI3LDcg
QEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OmZpbmROZXh0TGluZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChsaW5lV2FzVG9vV2lkZSB8fCB3ICsgdG1wVyA+IHdpZHRoKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxCcmVhay5vYmogJiYgc2hvdWxkUHJlc2Vy
dmVOZXdsaW5lKGxCcmVhay5vYmopICYmIGxCcmVhay5vYmotPmlzVGV4dCgpICYmICF0b1JlbmRl
clRleHQobEJyZWFrLm9iaiktPmlzV29yZEJyZWFrKCkgJiYgdG9SZW5kZXJUZXh0KGxCcmVhay5v
YmopLT5jaGFyYWN0ZXJzKClbbEJyZWFrLnBvc10gPT0gJ1xuJykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChsQnJlYWsub2JqICYmIHNob3VsZFByZXNlcnZlTmV3bGluZShsQnJl
YWsub2JqKSAmJiBsQnJlYWsub2JqLT5pc1RleHQoKSAmJiB0b1JlbmRlclRleHQobEJyZWFrLm9i
aiktPnRleHRMZW5ndGgoKSAmJiAhdG9SZW5kZXJUZXh0KGxCcmVhay5vYmopLT5pc1dvcmRCcmVh
aygpICYmIHRvUmVuZGVyVGV4dChsQnJlYWsub2JqKS0+Y2hhcmFjdGVycygpW2xCcmVhay5wb3Nd
ID09ICdcbicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdG9wcGVk
SWdub3JpbmdTcGFjZXMgJiYgcG9zID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gV2UgbmVlZCB0byBzdG9wIHJpZ2h0IGJlZm9yZSB0aGUgbmV3bGluZSBhbmQg
dGhlbiBzdGFydCB1cCBhZ2Fpbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFkZE1pZHBvaW50KGxpbmVNaWRwb2ludFN0YXRlLCBJbmxpbmVJdGVyYXRvcigwLCBvLCBwb3Mg
LSAxKSk7IC8vIFN0b3AKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDUyNDk0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTItMjIgIE1p
a2UgTW9yZXR0aSAgPHdlYmtpdDlAbW9yZGVudC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGJ1ZyAyODI0NSAtIHByb2JsZW0gd2l0aCBp
bnNlcnRpbmcgYSBzcGFuIGludG8gYSBsb25nIHRleHQgYmxvY2sgY2F1c2luZyBhIGNyYXNoIGJl
Y2F1c2Ugb2YgYSBudWxsIHN0cmluZworCisgICAgICAgICogZmFzdC9kb20vaW5zZXJ0LXNwYW4t
aW50by1sb25nLXRleHQtYnVnLTI4MjQ1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vaW5zZXJ0LXNwYW4taW50by1sb25nLXRleHQtYnVnLTI4MjQ1Lmh0bWw6IEFkZGVk
LgorCiAyMDA5LTEyLTIxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vaW5z
ZXJ0LXNwYW4taW50by1sb25nLXRleHQtYnVnLTI4MjQ1LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9pbnNlcnQtc3Bhbi1pbnRvLWxvbmctdGV4dC1idWct
MjgyNDUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20v
aW5zZXJ0LXNwYW4taW50by1sb25nLXRleHQtYnVnLTI4MjQ1LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3IEBACitUaGlzIHRlc3RzIHRoYXQgaW5zZXJ0aW5nIGEgc3BhbiBp
bnRvIGEgc2VsZWN0aW9uIG9mIGEgZGl2IHdpdGggbG90cyBvZiBub24td29yZC1icm9rZW4gY2hh
cmFjdGVycyBkb2Vzbid0IGNyYXNoLgorX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCis8ZGl2Pl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwor
PC9kaXY+Cis8ZGl2PjxzcGFuPjwvc3Bhbj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKzwvZGl2PgorCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9pbnNlcnQtc3Bhbi1pbnRvLWxvbmctdGV4dC1idWctMjgyNDUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9pbnNlcnQtc3Bhbi1pbnRv
LWxvbmctdGV4dC1idWctMjgyNDUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL2luc2VydC1zcGFuLWludG8tbG9uZy10ZXh0LWJ1Zy0yODI0NS5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQwIEBACis8aHRtbD4NCis8aGVhZD4NCis8c3R5bGU+DQorI2hpZ2hs
aWdodGVkDQorew0KK3doaXRlLXNwYWNlOiBwcmUtd3JhcDsNCit9DQorPC9zdHlsZT4NCisgIDxz
Y3JpcHQ+DQorICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgew0KKyAgICAgICAgcHJlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsNCisgICAgICAgIHByZS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKSk7DQorICAgIH0NCisNCisgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsNCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpDQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpDQorDQor
ICAgICAgICB2YXIgc3RyID0gJ19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXycNCisgICAgICAgIHZhciBkaXYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnaGlnaGxpZ2h0ZWQnKTsNCisgICAgICAgIGRpdi5pbm5lckhU
TUwgPSAnPGRpdj4nICsgc3RyICsgJ1xuPC9kaXY+Jw0KKyAgICAgICAgZGVidWcoZGl2LmlubmVy
SFRNTCk7DQorDQorICAgICAgICAvLyBUZXN0IGNyYXNoDQorICAgICAgICB2YXIgc2VsID0gZ2V0
U2VsZWN0aW9uKCk7DQorICAgICAgICBzZWwuc2V0UG9zaXRpb24oZGl2LmZpcnN0Q2hpbGQsIDAp
Ow0KKyAgICANCisgICAgICAgIHZhciByYW5nZSA9IHNlbC5nZXRSYW5nZUF0KDApOw0KKyAgICAg
ICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdTUEFOJyk7DQorICAgICAgICBy
YW5nZS5pbnNlcnROb2RlKHNwYW4pOw0KKyAgICAgICAgZGVidWcoZGl2LmlubmVySFRNTCk7DQor
ICAgIH0NCisgIDwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
DQorICBUaGlzIHRlc3RzIHRoYXQgaW5zZXJ0aW5nIGEgc3BhbiBpbnRvIGEgc2VsZWN0aW9uIG9m
IGEgZGl2IHdpdGggbG90cyBvZiBub24td29yZC1icm9rZW4gY2hhcmFjdGVycyBkb2Vzbid0IGNy
YXNoLg0KKyAgPGRpdiBpZD0iaGlnaGxpZ2h0ZWQiPjwvZGl2Pg0KKyAgPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>