<?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>47118</bug_id>
          
          <creation_ts>2010-10-04 14:51:22 -0700</creation_ts>
          <short_desc>Crash at WebCore::nextCandidate + 27</short_desc>
          <delta_ts>2010-10-04 16:31:33 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrica Casucci">enrica</reporter>
          <assigned_to name="Enrica Casucci">enrica</assigned_to>
          <cc>darin</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>289166</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-04 14:51:22 -0700</bug_when>
    <thetext>This crash can be consistently reproduced at www.multiply.com with the following steps:

1. Create a Multiply account
2. Compose a new blog entry with some short text
3. Select a picture from disk to insert

Crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289188</commentid>
    <comment_count>1</comment_count>
      <attachid>69696</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-04 15:09:59 -0700</bug_when>
    <thetext>Created attachment 69696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289196</commentid>
    <comment_count>2</comment_count>
      <attachid>69696</attachid>
    <who name="">mitz</who>
    <bug_when>2010-10-04 15:15:31 -0700</bug_when>
    <thetext>Comment on attachment 69696
Patch

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

&gt; WebCore/rendering/RenderWidget.cpp:-83
&gt; -    if (widgetHierarchyUpdateSuspendCount == 1) {
&gt; -        WidgetToParentMap map = widgetNewParentMap();
&gt; -        widgetNewParentMap().clear();
&gt; -        WidgetToParentMap::iterator end = map.end();
&gt; -        for (WidgetToParentMap::iterator it = map.begin(); it != end; ++it) {
&gt; -            Widget* child = it-&gt;first.get();
&gt; -            ScrollView* currentParent = child-&gt;parent();
&gt; -            FrameView* newParent = it-&gt;second;
&gt; -            if (newParent != currentParent) {
&gt; -                if (currentParent)
&gt; -                    currentParent-&gt;removeChild(child);
&gt; -                if (newParent)
&gt; -                    newParent-&gt;addChild(child);
&gt; -            }
&gt; +    if (--widgetHierarchyUpdateSuspendCount)
&gt; +        return;
&gt; +    WidgetToParentMap map = widgetNewParentMap();
&gt; +    widgetNewParentMap().clear();
&gt; +    WidgetToParentMap::iterator end = map.end();
&gt; +    for (WidgetToParentMap::iterator it = map.begin(); it != end; ++it) {
&gt; +        Widget* child = it-&gt;first.get();
&gt; +        ScrollView* currentParent = child-&gt;parent();
&gt; +        FrameView* newParent = it-&gt;second;
&gt; +        if (newParent != currentParent) {
&gt; +            if (currentParent)
&gt; +                currentParent-&gt;removeChild(child);
&gt; +            if (newParent)
&gt; +                newParent-&gt;addChild(child);
&gt;          }
&gt;      }
&gt; -    widgetHierarchyUpdateSuspendCount--;

This change allows hierarchy updates to happen synchronously during this function. The code was written purposefully to disallow this, so I don’t think this change is right (in particular, it can cause earlier hierarchy changes to win over later ones). Hitting the assertion is often a sign of some other problem in the code. Are you still hitting it with the above change to canonicalPosition()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289240</commentid>
    <comment_count>3</comment_count>
      <attachid>69705</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-04 15:48:34 -0700</bug_when>
    <thetext>Created attachment 69705
patch2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289244</commentid>
    <comment_count>4</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-04 15:55:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 69696 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69696&amp;action=review
&gt; 
&gt; &gt; WebCore/rendering/RenderWidget.cpp:-83
&gt; &gt; -    if (widgetHierarchyUpdateSuspendCount == 1) {
&gt; &gt; -        WidgetToParentMap map = widgetNewParentMap();
&gt; &gt; -        widgetNewParentMap().clear();
&gt; &gt; -        WidgetToParentMap::iterator end = map.end();
&gt; &gt; -        for (WidgetToParentMap::iterator it = map.begin(); it != end; ++it) {
&gt; &gt; -            Widget* child = it-&gt;first.get();
&gt; &gt; -            ScrollView* currentParent = child-&gt;parent();
&gt; &gt; -            FrameView* newParent = it-&gt;second;
&gt; &gt; -            if (newParent != currentParent) {
&gt; &gt; -                if (currentParent)
&gt; &gt; -                    currentParent-&gt;removeChild(child);
&gt; &gt; -                if (newParent)
&gt; &gt; -                    newParent-&gt;addChild(child);
&gt; &gt; -            }
&gt; &gt; +    if (--widgetHierarchyUpdateSuspendCount)
&gt; &gt; +        return;
&gt; &gt; +    WidgetToParentMap map = widgetNewParentMap();
&gt; &gt; +    widgetNewParentMap().clear();
&gt; &gt; +    WidgetToParentMap::iterator end = map.end();
&gt; &gt; +    for (WidgetToParentMap::iterator it = map.begin(); it != end; ++it) {
&gt; &gt; +        Widget* child = it-&gt;first.get();
&gt; &gt; +        ScrollView* currentParent = child-&gt;parent();
&gt; &gt; +        FrameView* newParent = it-&gt;second;
&gt; &gt; +        if (newParent != currentParent) {
&gt; &gt; +            if (currentParent)
&gt; &gt; +                currentParent-&gt;removeChild(child);
&gt; &gt; +            if (newParent)
&gt; &gt; +                newParent-&gt;addChild(child);
&gt; &gt;          }
&gt; &gt;      }
&gt; &gt; -    widgetHierarchyUpdateSuspendCount--;
&gt; 
&gt; This change allows hierarchy updates to happen synchronously during this function. The code was written purposefully to disallow this, so I don’t think this change is right (in particular, it can cause earlier hierarchy changes to win over later ones). Hitting the assertion is often a sign of some other problem in the code. Are you still hitting it with the above change to canonicalPosition()?

Removed the change to RenderWidget.cpp. Created https://bugs.webkit.org/show_bug.cgi?id=47126 to track the assert issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289261</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-04 16:10:19 -0700</bug_when>
    <thetext>Sorry, my fault, I pushed Enrica to make this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289263</commentid>
    <comment_count>6</comment_count>
      <attachid>69705</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-04 16:11:07 -0700</bug_when>
    <thetext>Comment on attachment 69705
patch2

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

&gt; WebCore/editing/VisiblePosition.cpp:444
&gt; +    // The updateLayout call below can do so much, that even the position passed

This comma should be removed.

&gt; LayoutTests/editing/selection/focus-crash.html:45
&gt;  \ No newline at end of file

Why no newline?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289279</commentid>
    <comment_count>7</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2010-10-04 16:31:33 -0700</bug_when>
    <thetext>Addressed comments.
Committed revision 69051.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69696</attachid>
            <date>2010-10-04 15:09:59 -0700</date>
            <delta_ts>2010-10-04 15:48:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug7282934.txt</filename>
            <type>text/plain</type>
            <size>7085</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMTAtMDQgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
cmFzaCBhdCBXZWJDb3JlOjpuZXh0Q2FuZGlkYXRlICsgMjcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MjgyOTM0PgorCisgICAgICAgIFdoZW4gd2UgY2Fub25pY2FsaXplIGEgUG9zaXRpb24gdG8g
Y3JlYXRlIGEgVmlzaWJsZVBvc2l0aW9uLCB0aGUgcG9zaXRpb24KKyAgICAgICAgaXMgcGFzc2Vk
IGJ5IHJlZmVyZW5jZS4gSW4gY2Fub25pY2FsUG9zaXRpb24gd2UgY2FsbCB1cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMKKyAgICAgICAgdGhhdCBjYW4gcHJvZHVjZSBhIGxvdCBv
ZiBzaWRlIGVmZmVjdHMsIGluY2x1ZGluZyBjaGFuZ2luZyB0aGUgc2VsZWN0aW9uLgorICAgICAg
ICBUaGlzIGJlY29tZXMgYSBzZXJpb3VzIHByb2JsZW0gd2huZSB0aGUgcG9zaXRpb24gcGFzc2Vk
IGFzIHJlZmVyZW5jZSBpcyBvbmUgb2YKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBlbmRwb2ludHMu
CisgICAgICAgIFdoaWxlIGludmVzdGlnYXRpbmcgdGhpcyBwcm9ibGVtLCBJIGNhbWUgYWNyb3Nz
IGFuIGFzc2VydGlvbiBpbiBSZW5kZXJXaWRnZXQgYW5kIAorICAgICAgICBJIGZpeGVkIHRoYXQg
dG9vLgorICAgICAgICAKKyAgICAgICAgVGVzdDogZWRpdGluZy9zZWxlY3Rpb24vZm9jdXMtY3Jh
c2guaHRtbAorCisgICAgICAgICogZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VmlzaWJsZVBvc2l0aW9uOjpjYW5vbmljYWxQb3NpdGlvbik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJX
aWRnZXQ6OnJlc3VtZVdpZGdldEhpZXJhcmNoeVVwZGF0ZXMpOgorCiAyMDEwLTEwLTA0ICBIdWFo
dWkgV3UgIDxtZWRpYWRlcGVuZGVudEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAkocmV2aXNp
b24gNjkwMzcpCisrKyBXZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDM5LDggKzQzOSwxMyBAQCBzdGF0aWMgUG9zaXRpb24gY2Fub25pY2FsaXpl
Q2FuZGlkYXRlKGNvCiAgICAgcmV0dXJuIGNhbmRpZGF0ZTsKIH0KIAotUG9zaXRpb24gVmlzaWJs
ZVBvc2l0aW9uOjpjYW5vbmljYWxQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCitQ
b3NpdGlvbiBWaXNpYmxlUG9zaXRpb246OmNhbm9uaWNhbFBvc2l0aW9uKGNvbnN0IFBvc2l0aW9u
JiBwYXNzZWRQb3NpdGlvbikKIHsKKyAgICAvLyBUaGUgdXBkYXRlTGF5b3V0IGNhbGwgYmVsb3cg
Y2FuIGRvIHNvIG11Y2gsIHRoYXQgZXZlbiB0aGUgcG9zaXRpb24gcGFzc2VkCisgICAgLy8gaW4g
dG8gdXMgbWlnaHQgZ2V0IGNoYW5nZWQgYXMgYSBzaWRlIGVmZmVjdC4gU3BlY2lmaWNhbGx5LCB0
aGVyZSBhcmUgY29kZQorICAgIC8vIHBhdGhzIHRoYXQgcGFzcyBzZWxlY3Rpb24gZW5kcG9pbnRz
LCBhbmQgdXBkYXRlTGF5b3V0IGNhbiBjaGFuZ2UgdGhlIHNlbGVjdGlvbi4KKyAgICBQb3NpdGlv
biBwb3NpdGlvbiA9IHBhc3NlZFBvc2l0aW9uOworCiAgICAgLy8gRklYTUUgKDk1MzUpOiAgQ2Fu
b25pY2FsaXppbmcgdG8gdGhlIGxlZnRtb3N0IGNhbmRpZGF0ZSBtZWFucyB0aGF0IGlmIHdlJ3Jl
IGF0IGEgbGluZSB3cmFwLCB3ZSB3aWxsIAogICAgIC8vIGFzayByZW5kZXJlcnMgdG8gcGFpbnQg
ZG93bnN0cmVhbSBjYXJldHMgZm9yIG90aGVyIHJlbmRlcmVycy4KICAgICAvLyBUbyBmaXggdGhp
cywgd2UgbmVlZCB0byBlaXRoZXIgYSkgYWRkIGNvZGUgdG8gYWxsIHBhaW50Q2FyZXRzIHRvIHBh
c3MgdGhlIHJlc3BvbnNpYmlsaXR5IG9mZiB0bwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuY3BwCShyZXZpc2lvbiA2OTAzNykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdl
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDIzICs2NCwyMiBAQCB2b2lkIFJlbmRlcldpZGdl
dDo6c3VzcGVuZFdpZGdldEhpZXJhcmNoCiB2b2lkIFJlbmRlcldpZGdldDo6cmVzdW1lV2lkZ2V0
SGllcmFyY2h5VXBkYXRlcygpCiB7CiAgICAgQVNTRVJUKHdpZGdldEhpZXJhcmNoeVVwZGF0ZVN1
c3BlbmRDb3VudCk7Ci0gICAgaWYgKHdpZGdldEhpZXJhcmNoeVVwZGF0ZVN1c3BlbmRDb3VudCA9
PSAxKSB7Ci0gICAgICAgIFdpZGdldFRvUGFyZW50TWFwIG1hcCA9IHdpZGdldE5ld1BhcmVudE1h
cCgpOwotICAgICAgICB3aWRnZXROZXdQYXJlbnRNYXAoKS5jbGVhcigpOwotICAgICAgICBXaWRn
ZXRUb1BhcmVudE1hcDo6aXRlcmF0b3IgZW5kID0gbWFwLmVuZCgpOwotICAgICAgICBmb3IgKFdp
ZGdldFRvUGFyZW50TWFwOjppdGVyYXRvciBpdCA9IG1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpIHsKLSAgICAgICAgICAgIFdpZGdldCogY2hpbGQgPSBpdC0+Zmlyc3QuZ2V0KCk7Ci0gICAg
ICAgICAgICBTY3JvbGxWaWV3KiBjdXJyZW50UGFyZW50ID0gY2hpbGQtPnBhcmVudCgpOwotICAg
ICAgICAgICAgRnJhbWVWaWV3KiBuZXdQYXJlbnQgPSBpdC0+c2Vjb25kOwotICAgICAgICAgICAg
aWYgKG5ld1BhcmVudCAhPSBjdXJyZW50UGFyZW50KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGN1
cnJlbnRQYXJlbnQpCi0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQtPnJlbW92ZUNo
aWxkKGNoaWxkKTsKLSAgICAgICAgICAgICAgICBpZiAobmV3UGFyZW50KQotICAgICAgICAgICAg
ICAgICAgICBuZXdQYXJlbnQtPmFkZENoaWxkKGNoaWxkKTsKLSAgICAgICAgICAgIH0KKyAgICBp
ZiAoLS13aWRnZXRIaWVyYXJjaHlVcGRhdGVTdXNwZW5kQ291bnQpCisgICAgICAgIHJldHVybjsK
KyAgICBXaWRnZXRUb1BhcmVudE1hcCBtYXAgPSB3aWRnZXROZXdQYXJlbnRNYXAoKTsKKyAgICB3
aWRnZXROZXdQYXJlbnRNYXAoKS5jbGVhcigpOworICAgIFdpZGdldFRvUGFyZW50TWFwOjppdGVy
YXRvciBlbmQgPSBtYXAuZW5kKCk7CisgICAgZm9yIChXaWRnZXRUb1BhcmVudE1hcDo6aXRlcmF0
b3IgaXQgPSBtYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIFdpZGdldCog
Y2hpbGQgPSBpdC0+Zmlyc3QuZ2V0KCk7CisgICAgICAgIFNjcm9sbFZpZXcqIGN1cnJlbnRQYXJl
bnQgPSBjaGlsZC0+cGFyZW50KCk7CisgICAgICAgIEZyYW1lVmlldyogbmV3UGFyZW50ID0gaXQt
PnNlY29uZDsKKyAgICAgICAgaWYgKG5ld1BhcmVudCAhPSBjdXJyZW50UGFyZW50KSB7CisgICAg
ICAgICAgICBpZiAoY3VycmVudFBhcmVudCkKKyAgICAgICAgICAgICAgICBjdXJyZW50UGFyZW50
LT5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgICAgICAgICBpZiAobmV3UGFyZW50KQorICAgICAg
ICAgICAgICAgIG5ld1BhcmVudC0+YWRkQ2hpbGQoY2hpbGQpOwogICAgICAgICB9CiAgICAgfQot
ICAgIHdpZGdldEhpZXJhcmNoeVVwZGF0ZVN1c3BlbmRDb3VudC0tOwogfQogCiBzdGF0aWMgdm9p
ZCBtb3ZlV2lkZ2V0VG9QYXJlbnRTb29uKFdpZGdldCogY2hpbGQsIEZyYW1lVmlldyogcGFyZW50
KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gNjkwMzcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0wNCAgRW5yaWNhIENhc3VjY2kg
IDxlbnJpY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENyYXNoIGF0IFdlYkNvcmU6Om5leHRDYW5kaWRhdGUgKyAyNworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcxMTgKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzcyODI5MzQ+CisKKyAgICAgICAgKiBlZGl0aW5nL3Jlc291cmNlcy9p
ZnJhbWVib2R5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2ZvY3Vz
LWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24v
Zm9jdXMtY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMTAtMTAtMDQgIEFscGhhIExhbSAgPGhjbGFt
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguIE5vdCByZXZpZXdlZC4KSW5kZXg6
IExheW91dFRlc3RzL2VkaXRpbmcvcmVzb3VyY2VzL2lmcmFtZWJvZHkuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Jlc291cmNlcy9pZnJhbWVib2R5Lmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Jlc291cmNlcy9pZnJhbWVib2R5Lmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorPGh0bWw+IAorPGhlYWQ+Cis8L2hlYWQ+IAor
PGJvZHkgaWQ9J2ZyYW1lZWRpdCcgY29udGVudGVkaXRhYmxlIHN0eWxlPSJib3JkZXI6IHNvbGlk
IHJlZCAxcHgiPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZm9jdXMtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZvY3VzLWNyYXNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZvY3VzLWNyYXNoLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitUbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBjbGljayB0aGUgIkNyYXNoIG1lIiBidXR0b24uIAorU1VDQ0VFREVECkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9mb2N1cy1jcmFzaC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZvY3VzLWNyYXNoLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9mb2N1cy1jcmFzaC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACis8aHRtbD48aGVhZD4KKzx0aXRsZT5Gb2N1cyBj
cmFzaDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWQoKSI+CitUbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBjbGljayB0aGUgIkNyYXNoIG1lIiBidXR0b24uCis8ZGl2IGlkPSdj
b250YWluZXInPgorICAgIDxpZnJhbWUgaWQ9J3Rlc3RmcmFtZScgc3R5bGU9IndpZHRoOiAxMDAl
OyBoZWlnaHQ6MjAwcHg7IiBzcmM9Ii4uL3Jlc291cmNlcy9pZnJhbWVib2R5Lmh0bWwiPjwvaWZy
YW1lPgorPC9kaXY+Cis8aW5wdXQgaWQ9J3Rlc3RidXR0b24nIHR5cGU9ImJ1dHRvbiIgdmFsdWU9
IkNyYXNoIG1lIiBvbmNsaWNrPSJjcmFzaCgpIj4KKzx1bCBpZD0iY29uc29sZSI+PC91bD4KKzxz
Y3JpcHQ+CisKK2Z1bmN0aW9uIGxvYWQoKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0ZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuZm9jdXMoKTsKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICBpZiAoZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdmFy
IGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0YnV0dG9uJyk7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGJ1dHRvbi5vZmZzZXRMZWZ0ICsgMTAsIGJ1dHRvbi5v
ZmZzZXRUb3AgKyA1KQorICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KK30KKworZnVuY3Rpb24gY3Jhc2goKQorewor
ICAgIHZhciBmb2N1c2VsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGZyYW1lJyku
Y29udGVudFdpbmRvdzsKKyAgICB2YXIgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b250YWluZXInKTsKKyAgICBlbGVtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgZm9jdXNl
bGVtLmZvY3VzKCk7CisgICAgbG9nKCJTVUNDRUVERUQiKTsKK30KKworZnVuY3Rpb24gbG9nKHN0
cikgeworICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgbGku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7CisgICAgdmFyIGNvbnNv
bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworICAgIGNvbnNvbGUuYXBw
ZW5kQ2hpbGQobGkpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69705</attachid>
            <date>2010-10-04 15:48:34 -0700</date>
            <delta_ts>2010-10-04 16:11:07 -0700</delta_ts>
            <desc>patch2</desc>
            <filename>bug7282934.txt</filename>
            <type>text/plain</type>
            <size>5067</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTAzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMTAtMDQgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
cmFzaCBhdCBXZWJDb3JlOjpuZXh0Q2FuZGlkYXRlICsgMjcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MjgyOTM0PgorCisgICAgICAgIFdoZW4gd2UgY2Fub25pY2FsaXplIGEgUG9zaXRpb24gdG8g
Y3JlYXRlIGEgVmlzaWJsZVBvc2l0aW9uLCB0aGUgcG9zaXRpb24KKyAgICAgICAgaXMgcGFzc2Vk
IGJ5IHJlZmVyZW5jZS4gSW4gY2Fub25pY2FsUG9zaXRpb24gd2UgY2FsbCB1cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMKKyAgICAgICAgdGhhdCBjYW4gcHJvZHVjZSBhIGxvdCBv
ZiBzaWRlIGVmZmVjdHMsIGluY2x1ZGluZyBjaGFuZ2luZyB0aGUgc2VsZWN0aW9uLgorICAgICAg
ICBUaGlzIGJlY29tZXMgYSBzZXJpb3VzIHByb2JsZW0gd2huZSB0aGUgcG9zaXRpb24gcGFzc2Vk
IGFzIHJlZmVyZW5jZSBpcyBvbmUgb2YKKyAgICAgICAgdGhlIHNlbGVjdGlvbiBlbmRwb2ludHMu
CisgICAgICAgIAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9mb2N1cy1jcmFzaC5o
dG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpWaXNpYmxlUG9zaXRpb246OmNhbm9uaWNhbFBvc2l0aW9uKToKKwogMjAxMC0xMC0w
NCAgSHVhaHVpIFd1ICA8bWVkaWFkZXBlbmRlbnRAZ21haWwuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAJ
KHJldmlzaW9uIDY5MDM3KQorKysgV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQzOSw4ICs0MzksMTMgQEAgc3RhdGljIFBvc2l0aW9uIGNhbm9u
aWNhbGl6ZUNhbmRpZGF0ZShjbwogICAgIHJldHVybiBjYW5kaWRhdGU7CiB9CiAKLVBvc2l0aW9u
IFZpc2libGVQb3NpdGlvbjo6Y2Fub25pY2FsUG9zaXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0
aW9uKQorUG9zaXRpb24gVmlzaWJsZVBvc2l0aW9uOjpjYW5vbmljYWxQb3NpdGlvbihjb25zdCBQ
b3NpdGlvbiYgcGFzc2VkUG9zaXRpb24pCiB7CisgICAgLy8gVGhlIHVwZGF0ZUxheW91dCBjYWxs
IGJlbG93IGNhbiBkbyBzbyBtdWNoLCB0aGF0IGV2ZW4gdGhlIHBvc2l0aW9uIHBhc3NlZAorICAg
IC8vIGluIHRvIHVzIG1pZ2h0IGdldCBjaGFuZ2VkIGFzIGEgc2lkZSBlZmZlY3QuIFNwZWNpZmlj
YWxseSwgdGhlcmUgYXJlIGNvZGUKKyAgICAvLyBwYXRocyB0aGF0IHBhc3Mgc2VsZWN0aW9uIGVu
ZHBvaW50cywgYW5kIHVwZGF0ZUxheW91dCBjYW4gY2hhbmdlIHRoZSBzZWxlY3Rpb24uCisgICAg
UG9zaXRpb24gcG9zaXRpb24gPSBwYXNzZWRQb3NpdGlvbjsKKwogICAgIC8vIEZJWE1FICg5NTM1
KTogIENhbm9uaWNhbGl6aW5nIHRvIHRoZSBsZWZ0bW9zdCBjYW5kaWRhdGUgbWVhbnMgdGhhdCBp
ZiB3ZSdyZSBhdCBhIGxpbmUgd3JhcCwgd2Ugd2lsbCAKICAgICAvLyBhc2sgcmVuZGVyZXJzIHRv
IHBhaW50IGRvd25zdHJlYW0gY2FyZXRzIGZvciBvdGhlciByZW5kZXJlcnMuCiAgICAgLy8gVG8g
Zml4IHRoaXMsIHdlIG5lZWQgdG8gZWl0aGVyIGEpIGFkZCBjb2RlIHRvIGFsbCBwYWludENhcmV0
cyB0byBwYXNzIHRoZSByZXNwb25zaWJpbGl0eSBvZmYgdG8KSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY5
MDM3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMDQgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmFzaCBhdCBX
ZWJDb3JlOjpuZXh0Q2FuZGlkYXRlICsgMjcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ3MTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjgyOTM0
PgorCisgICAgICAgICogZWRpdGluZy9yZXNvdXJjZXMvaWZyYW1lYm9keS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9mb2N1cy1jcmFzaC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2ZvY3VzLWNyYXNoLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTEwLTA0ICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQnVpbGQgZml4LiBOb3QgcmV2aWV3ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Jl
c291cmNlcy9pZnJhbWVib2R5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9yZXNvdXJjZXMvaWZyYW1lYm9keS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9yZXNvdXJjZXMvaWZyYW1lYm9keS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYgQEAKKzxodG1sPiAKKzxoZWFkPgorPC9oZWFkPiAKKzxib2R5IGlkPSdmcmFtZWVkaXQnIGNv
bnRlbnRlZGl0YWJsZSBzdHlsZT0iYm9yZGVyOiBzb2xpZCByZWQgMXB4Ij4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2ZvY3VzLWNyYXNoLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9m
b2N1cy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9mb2N1cy1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMiBAQAorVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgY2xpY2sgdGhlICJDcmFzaCBt
ZSIgYnV0dG9uLiAKK1NVQ0NFRURFRApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZm9jdXMtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9mb2N1cy1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZm9jdXMtY3Jhc2guaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
NCBAQAorPGh0bWw+PGhlYWQ+Cis8dGl0bGU+Rm9jdXMgY3Jhc2g8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJsb2FkKCkiPgorVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgY2xpY2sg
dGhlICJDcmFzaCBtZSIgYnV0dG9uLgorPGRpdiBpZD0nY29udGFpbmVyJz4KKyAgICA8aWZyYW1l
IGlkPSd0ZXN0ZnJhbWUnIHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OjIwMHB4OyIgc3JjPSIu
Li9yZXNvdXJjZXMvaWZyYW1lYm9keS5odG1sIj48L2lmcmFtZT4KKzwvZGl2PgorPGlucHV0IGlk
PSd0ZXN0YnV0dG9uJyB0eXBlPSJidXR0b24iIHZhbHVlPSJDcmFzaCBtZSIgb25jbGljaz0iY3Jh
c2goKSI+Cis8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBsb2Fk
KCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGZyYW1lJykuY29udGVudFdp
bmRvdy5kb2N1bWVudC5ib2R5LmZvY3VzKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgaWYgKGV2ZW50U2VuZGVyKSB7CisgICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdGJ1dHRvbicpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhidXR0b24ub2Zmc2V0TGVmdCArIDEwLCBidXR0b24ub2Zmc2V0VG9wICsgNSkKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
KyAgICB9Cit9CisKK2Z1bmN0aW9uIGNyYXNoKCkKK3sKKyAgICB2YXIgZm9jdXNlbGVtID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RmcmFtZScpLmNvbnRlbnRXaW5kb3c7CisgICAgdmFy
IGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CisgICAgZWxlbS5z
dHlsZS5kaXNwbGF5ID0gJ25vbmUnOworICAgIGZvY3VzZWxlbS5mb2N1cygpOworICAgIGxvZygi
U1VDQ0VFREVEIik7Cit9CisKK2Z1bmN0aW9uIGxvZyhzdHIpIHsKKyAgICB2YXIgbGkgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHN0cikpOworICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNvbnNvbGUiKTsKKyAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKK30KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="59433"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>