<?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>60071</bug_id>
          
          <creation_ts>2011-05-03 15:27:08 -0700</creation_ts>
          <short_desc>Crash in SpellingCorrectionController::respondToChangedSelection</short_desc>
          <delta_ts>2011-05-03 16:42: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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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, PlatformOnly</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>ap</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>397454</commentid>
    <comment_count>0</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-05-03 15:27:08 -0700</bug_when>
    <thetext>Probably caused by not validating the selection bounds.

&lt;rdar://problem/9358190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397477</commentid>
    <comment_count>1</comment_count>
      <attachid>92152</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-05-03 15:58:37 -0700</bug_when>
    <thetext>Created attachment 92152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397482</commentid>
    <comment_count>2</comment_count>
      <attachid>92152</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-03 16:02:37 -0700</bug_when>
    <thetext>Comment on attachment 92152
Patch

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

&gt; Source/WebCore/editing/SpellingCorrectionController.cpp:390
&gt; +    // Creating a Visible position triggers a layout and there is no
&gt; +    // guarantee that the selection is still valid.

Seems odd that layout cases a position to become null but okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397503</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-03 16:19:21 -0700</bug_when>
    <thetext>Is the _selection_ actually becoming invalid? The comment seems slightly confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397521</commentid>
    <comment_count>4</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-05-03 16:34:09 -0700</bug_when>
    <thetext>The selection is in a text field that gets hidden. The spelling code builds a VisiblePosition from the start position of the selection, producing a null position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397524</commentid>
    <comment_count>5</comment_count>
      <attachid>92152</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-03 16:36:00 -0700</bug_when>
    <thetext>Comment on attachment 92152
Patch

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

&gt; LayoutTests/editing/selection/undo-crash-expected.txt:2
&gt; +SUCCEEDED

PASS might be more consistent with the rest of editing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397525</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-03 16:36:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; The selection is in a text field that gets hidden. The spelling code builds a VisiblePosition from the start position of the selection, producing a null position.

Makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>397528</commentid>
    <comment_count>7</comment_count>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-05-03 16:42:09 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/85687</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92152</attachid>
            <date>2011-05-03 15:58:37 -0700</date>
            <delta_ts>2011-05-03 16:36:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>undocrash.txt</filename>
            <type>text/plain</type>
            <size>4311</size>
            <attacher name="Enrica Casucci">enrica</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1Njc1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMDMgIEVucmljYSBD
YXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDcmFzaCBpbiBTcGVsbGluZ0NvcnJlY3Rpb25Db250cm9sbGVy
OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAwNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkzNTgx
OTA+CisKKyAgICAgICAgQ3JlYXRpbmcgYSBWaXNpYmxlIHBvc2l0aW9uIGNvdWxkIHRyaWdnZXIg
YSBsYXlvdXQgYW5kIHRoZXJlIGlzIG5vCisgICAgICAgIGd1YXJhbnRlZSB0aGF0IHRoZSBzZWxl
Y3Rpb24gaXMgc3RpbGwgdmFsaWQgYWZ0ZXIgdGhhdC4KKworICAgICAgICBUZXN0czogZWRpdGlu
Zy9zZWxlY3Rpb24vdW5kby1jcmFzaC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsaW5n
Q29ycmVjdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxpbmdDb3Jy
ZWN0aW9uQ29udHJvbGxlcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbik6CisKIDIwMTEtMDUt
MDMgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVs
bGluZ0NvcnJlY3Rpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA4NTY2
MikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJvbGxl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICszODUsMTIgQEAgdm9pZCBTcGVsbGluZ0Nv
cnJlY3Rpb25Db250cm9sbGVyOjpyZXNwbwogICAgICAgICByZXR1cm47CiAKICAgICBWaXNpYmxl
UG9zaXRpb24gc2VsZWN0aW9uUG9zaXRpb24gPSBjdXJyZW50U2VsZWN0aW9uLnN0YXJ0KCk7Cisg
ICAgCisgICAgLy8gQ3JlYXRpbmcgYSBWaXNpYmxlIHBvc2l0aW9uIHRyaWdnZXJzIGEgbGF5b3V0
IGFuZCB0aGVyZSBpcyBubworICAgIC8vIGd1YXJhbnRlZSB0aGF0IHRoZSBzZWxlY3Rpb24gaXMg
c3RpbGwgdmFsaWQuCisgICAgaWYgKHNlbGVjdGlvblBvc2l0aW9uLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm47CisgICAgCiAgICAgVmlzaWJsZVBvc2l0aW9uIGVuZFBvc2l0aW9uT2ZXb3JkID0g
ZW5kT2ZXb3JkKHNlbGVjdGlvblBvc2l0aW9uLCBMZWZ0V29yZElmT25Cb3VuZGFyeSk7CiAgICAg
aWYgKHNlbGVjdGlvblBvc2l0aW9uICE9IGVuZFBvc2l0aW9uT2ZXb3JkKQogICAgICAgICByZXR1
cm47CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NTY3NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTAzICBFbnJpY2EgQ2FzdWNj
aSAgPGVucmljYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ3Jhc2ggaW4gU3BlbGxpbmdDb3JyZWN0aW9uQ29udHJvbGxlcjo6cmVz
cG9uZFRvQ2hhbmdlZFNlbGVjdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYwMDcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MzU4MTkwPgor
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vdW5kby1jcmFzaC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3VuZG8tY3Jhc2guaHRtbDogQWRkZWQu
CisKIDIwMTEtMDUtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSdWJiZXItc3RhbXBlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3VuZG8tY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3VuZG8tY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vdW5kby1jcmFzaC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAorVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgdHlwZSBzb21lIHRleHQgaW4gdGhlIGlucHV0IGZpZWxkLCB0aGVuIGNsaWNrIHRoZSAi
Q3Jhc2ggbWUiIGJ1dHRvbi4gIAorU1VDQ0VFREVECkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi91bmRvLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vdW5kby1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vdW5kby1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQ0IEBACis8aHRtbD48aGVhZD4KKzx0aXRsZT5VbmRvIGNyYXNoPC90aXRsZT4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KK1RvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIHR5
cGUgc29tZSB0ZXh0IGluIHRoZSBpbnB1dCBmaWVsZCwgdGhlbiBjbGljayB0aGUgIkNyYXNoIG1l
IiBidXR0b24uCis8aW5wdXQgaWQ9InRlc3RpbnB1dCIgdHlwZT0idGV4dCI+PC9pbnB1dD4KKzxp
bnB1dCBpZD0ndGVzdGJ1dHRvbicgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iQ3Jhc2ggbWUiIG9uY2xp
Y2s9ImNyYXNoKCkiPgorPHVsIGlkPSJjb25zb2xlIj48L3VsPgorPHNjcmlwdD4KKworZnVuY3Rp
b24gbG9hZCgpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RpbnB1dCcpLmZv
Y3VzKCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCdJbnNlcnRUZXh0JywgZmFsc2UsICdiJyk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0lu
c2VydFRleHQnLCBmYWxzZSwgJ2wnKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnSW5zZXJ0
VGV4dCcsIGZhbHNlLCAnYScpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRUZXh0
JywgZmFsc2UsICdoJyk7CisgICAgaWYgKGV2ZW50U2VuZGVyKSB7CisgICAgICAgIHZhciBidXR0
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdGJ1dHRvbicpOworICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhidXR0b24ub2Zmc2V0TGVmdCArIDEwLCBidXR0b24ub2Zmc2V0
VG9wICsgNSkKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNyYXNoKCkKK3sKKyAgICB2
YXIgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0aW5wdXQnKTsKKyAgICBlbGVt
LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3VuZG8n
KTsKKyAgICBsb2coIlNVQ0NFRURFRCIpOworfQorCitmdW5jdGlvbiBsb2coc3RyKSB7CisgICAg
dmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICBsaS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICB2YXIgY29uc29sZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChs
aSk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="85090"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>