<?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>128879</bug_id>
          
          <creation_ts>2014-02-15 19:11:31 -0800</creation_ts>
          <short_desc>DOMSelection shouldn&apos;t instantiate VisibleSelection everywhere</short_desc>
          <delta_ts>2014-02-15 19:29:52 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>127832</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>benjamin</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>981238</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-15 19:11:31 -0800</bug_when>
    <thetext>Right now, various member functions of DOMSelection instantiates VisibleSelection.
This would mean that all those functions are triggering synchronous layout at that point.

Defer those synchronous layout until FrameSelection&apos;s member functions are called
so that we may optimize them later in the bug 127832.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981239</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-15 19:12:12 -0800</bug_when>
    <thetext>This change is needed to increase the test coverage of asynchronous selection because we don&apos;t have that many tests for selection inside text fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981240</commentid>
    <comment_count>2</comment_count>
      <attachid>224307</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-15 19:13:11 -0800</bug_when>
    <thetext>Created attachment 224307
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981247</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-15 19:29:52 -0800</bug_when>
    <thetext>Committed r164188: &lt;http://trac.webkit.org/changeset/164188&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224307</attachid>
            <date>2014-02-15 19:13:11 -0800</date>
            <delta_ts>2014-02-15 19:14:57 -0800</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-128879-20140215191317.patch</filename>
            <type>text/plain</type>
            <size>6358</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NDE4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE0LTAyLTE1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERPTVNlbGVjdGlvbiBzaG91bGRu
J3QgaW5zdGFudGlhdGUgVmlzaWJsZVNlbGVjdGlvbiBldmVyeXdoZXJlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg4NzkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGV4cGxpY2l0IGluc3Rh
bnRpYXRpb24gb2YgVmlzaWJsZVNlbGVjdGlvbiBmcm9tIHZhcmlvdXMgbWVtYmVyIGZ1bmN0aW9u
cyBvZiBWaXNpYmxlU2VsZWN0aW9uLgorCisgICAgICAgICogcGFnZS9ET01TZWxlY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpjb2xsYXBzZSk6CisgICAgICAgIChX
ZWJDb3JlOjpET01TZWxlY3Rpb246OmNvbGxhcHNlVG9FbmQpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NU2VsZWN0aW9uOjpjb2xsYXBzZVRvU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2Vs
ZWN0aW9uOjpzZXRCYXNlQW5kRXh0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNlbGVjdGlv
bjo6c2V0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpleHRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NU2VsZWN0aW9uOjpnZXRSYW5nZUF0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTVNlbGVjdGlvbjo6YWRkUmFuZ2UpOgorCiAyMDE0LTAyLTE1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgYXJndW1l
bnRzIGZyb20gbW92ZVRvKFJhbmdlKikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2Vs
ZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlbGVjdGlv
bi5jcHAJKHJldmlzaW9uIDE2NDE1MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NU2VsZWN0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgRE9NU2VsZWN0
aW9uOjpjb2xsYXBzZShOb2RlKiBub2RlLCAKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklY
TUU6IEVsaW1pbmF0ZSBsZWdhY3kgZWRpdGluZyBwb3NpdGlvbnMKLSAgICBtX2ZyYW1lLT5zZWxl
Y3Rpb24oKS5tb3ZlVG8oVmlzaWJsZVBvc2l0aW9uKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlv
bihub2RlLCBvZmZzZXQpLCBET1dOU1RSRUFNKSk7CisgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCku
bW92ZVRvKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihub2RlLCBvZmZzZXQpLCBET1dOU1RS
RUFNKTsKIH0KIAogdm9pZCBET01TZWxlY3Rpb246OmNvbGxhcHNlVG9FbmQoRXhjZXB0aW9uQ29k
ZSYgZWMpCkBAIC0yMTksNyArMjE5LDcgQEAgdm9pZCBET01TZWxlY3Rpb246OmNvbGxhcHNlVG9F
bmQoRXhjZXB0aQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9mcmFtZS0+c2VsZWN0
aW9uKCkubW92ZVRvKFZpc2libGVQb3NpdGlvbihzZWxlY3Rpb24uZW5kKCksIERPV05TVFJFQU0p
KTsKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS5tb3ZlVG8oc2VsZWN0aW9uLmVuZCgpLCBET1dO
U1RSRUFNKTsKIH0KIAogdm9pZCBET01TZWxlY3Rpb246OmNvbGxhcHNlVG9TdGFydChFeGNlcHRp
b25Db2RlJiBlYykKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIERPTVNlbGVjdGlvbjo6Y29sbGFw
c2VUb1N0YXJ0KEV4Y2VwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2ZyYW1lLT5z
ZWxlY3Rpb24oKS5tb3ZlVG8oVmlzaWJsZVBvc2l0aW9uKHNlbGVjdGlvbi5zdGFydCgpLCBET1dO
U1RSRUFNKSk7CisgICAgbV9mcmFtZS0+c2VsZWN0aW9uKCkubW92ZVRvKHNlbGVjdGlvbi5zdGFy
dCgpLCBET1dOU1RSRUFNKTsKIH0KIAogdm9pZCBET01TZWxlY3Rpb246OmVtcHR5KCkKQEAgLTI1
OCwxMCArMjU4LDcgQEAgdm9pZCBET01TZWxlY3Rpb246OnNldEJhc2VBbmRFeHRlbnQoTm9kZQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogRWxpbWluYXRlIGxlZ2FjeSBlZGl0aW5n
IHBvc2l0aW9ucwotICAgIFZpc2libGVQb3NpdGlvbiB2aXNpYmxlQmFzZSA9IFZpc2libGVQb3Np
dGlvbihjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oYmFzZU5vZGUsIGJhc2VPZmZzZXQpLCBE
T1dOU1RSRUFNKTsKLSAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZUV4dGVudCA9IFZpc2libGVQ
b3NpdGlvbihjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oZXh0ZW50Tm9kZSwgZXh0ZW50T2Zm
c2V0KSwgRE9XTlNUUkVBTSk7Ci0KLSAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS5tb3ZlVG8odmlz
aWJsZUJhc2UsIHZpc2libGVFeHRlbnQpOworICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLm1vdmVU
byhjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oYmFzZU5vZGUsIGJhc2VPZmZzZXQpLCBjcmVh
dGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oZXh0ZW50Tm9kZSwgZXh0ZW50T2Zmc2V0KSwgRE9XTlNU
UkVBTSk7CiB9CiAKIHZvaWQgRE9NU2VsZWN0aW9uOjpzZXRQb3NpdGlvbihOb2RlKiBub2RlLCBp
bnQgb2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTI3Nyw3ICsyNzQsNyBAQCB2b2lkIERP
TVNlbGVjdGlvbjo6c2V0UG9zaXRpb24oTm9kZSogbm9kCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIEZJWE1FOiBFbGltaW5hdGUgbGVnYWN5IGVkaXRpbmcgcG9zaXRpb25zCi0gICAgbV9mcmFt
ZS0+c2VsZWN0aW9uKCkubW92ZVRvKFZpc2libGVQb3NpdGlvbihjcmVhdGVMZWdhY3lFZGl0aW5n
UG9zaXRpb24obm9kZSwgb2Zmc2V0KSwgRE9XTlNUUkVBTSkpOworICAgIG1fZnJhbWUtPnNlbGVj
dGlvbigpLm1vdmVUbyhjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24obm9kZSwgb2Zmc2V0KSwg
RE9XTlNUUkVBTSk7CiB9CiAKIHZvaWQgRE9NU2VsZWN0aW9uOjptb2RpZnkoY29uc3QgU3RyaW5n
JiBhbHRlclN0cmluZywgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZ3JhbnVsYXJpdHlTdHJpbmcpCkBAIC0zNDksNyArMzQ2LDcgQEAgdm9pZCBET01TZWxlY3Rp
b246OmV4dGVuZChOb2RlKiBub2RlLCBpbgogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhN
RTogRWxpbWluYXRlIGxlZ2FjeSBlZGl0aW5nIHBvc2l0aW9ucwotICAgIG1fZnJhbWUtPnNlbGVj
dGlvbigpLnNldEV4dGVudChWaXNpYmxlUG9zaXRpb24oY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0
aW9uKG5vZGUsIG9mZnNldCksIERPV05TVFJFQU0pKTsKKyAgICBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS5zZXRFeHRlbnQoY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKG5vZGUsIG9mZnNldCksIERP
V05TVFJFQU0pOwogfQogCiBQYXNzUmVmUHRyPFJhbmdlPiBET01TZWxlY3Rpb246OmdldFJhbmdl
QXQoaW50IGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM3MSw4ICszNjgsNyBAQCBQYXNz
UmVmUHRyPFJhbmdlPiBET01TZWxlY3Rpb246OmdldFJhbmdlCiAgICAgICAgIHJldHVybiBSYW5n
ZTo6Y3JlYXRlKHNoYWRvd0FuY2VzdG9yLT5kb2N1bWVudCgpLCBjb250YWluZXIsIG9mZnNldCwg
Y29udGFpbmVyLCBvZmZzZXQpOwogICAgIH0KIAotICAgIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
IHNlbGVjdGlvbiA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwotICAgIHJldHVy
biBzZWxlY3Rpb24uZmlyc3RSYW5nZSgpOworICAgIHJldHVybiBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS5zZWxlY3Rpb24oKS5maXJzdFJhbmdlKCk7CiB9CiAKIHZvaWQgRE9NU2VsZWN0aW9uOjpyZW1v
dmVBbGxSYW5nZXMoKQpAQCAtMzkyLDcgKzM4OCw3IEBAIHZvaWQgRE9NU2VsZWN0aW9uOjphZGRS
YW5nZShSYW5nZSogcikKICAgICBGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uID0gbV9mcmFtZS0+
c2VsZWN0aW9uKCk7CiAKICAgICBpZiAoc2VsZWN0aW9uLmlzTm9uZSgpKSB7Ci0gICAgICAgIHNl
bGVjdGlvbi5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihyKSk7CisgICAgICAgIHNlbGVj
dGlvbi5tb3ZlVG8ocik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQwMCwyMyArMzk2
LDI1IEBAIHZvaWQgRE9NU2VsZWN0aW9uOjphZGRSYW5nZShSYW5nZSogcikKICAgICBpZiAoci0+
Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlOjpTVEFSVF9UT19TVEFSVCwgcmFuZ2UuZ2V0KCks
IElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7CiAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQg
ZGlzY29udGlndW91cyBzZWxlY3Rpb24uIFdlIGRvbid0IGRvIGFueXRoaW5nIGlmIHIgYW5kIHJh
bmdlIGRvbid0IGludGVyc2VjdC4KICAgICAgICAgaWYgKHItPmNvbXBhcmVCb3VuZGFyeVBvaW50
cyhSYW5nZTo6U1RBUlRfVE9fRU5ELCByYW5nZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTikgPiAt
MSkgewotICAgICAgICAgICAgaWYgKHItPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5E
X1RPX0VORCwgcmFuZ2UuZ2V0KCksIElHTk9SRV9FWENFUFRJT04pID09IC0xKQorICAgICAgICAg
ICAgaWYgKHItPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6RU5EX1RPX0VORCwgcmFuZ2Uu
Z2V0KCksIElHTk9SRV9FWENFUFRJT04pID09IC0xKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhl
IG9yaWdpbmFsIHJhbmdlIGFuZCByIGludGVyc2VjdC4KLSAgICAgICAgICAgICAgICBzZWxlY3Rp
b24uc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oci0+c3RhcnRQb3NpdGlvbigpLCByYW5n
ZS0+ZW5kUG9zaXRpb24oKSwgRE9XTlNUUkVBTSkpOwotICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHNlbGVjdGlvbi5tb3ZlVG8oci0+c3RhcnRQb3NpdGlvbigpLCByYW5nZS0+ZW5k
UG9zaXRpb24oKSwgRE9XTlNUUkVBTSk7CisgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIC8vIHIgY29udGFpbnMgdGhlIG9yaWdpbmFsIHJhbmdlLgotICAgICAgICAgICAgICAg
IHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihyKSk7CisgICAgICAgICAg
ICAgICAgc2VsZWN0aW9uLm1vdmVUbyhyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgZGlzY29udGlndW91cyBzZWxl
Y3Rpb24uIFdlIGRvbid0IGRvIGFueXRoaW5nIGlmIHIgYW5kIHJhbmdlIGRvbid0IGludGVyc2Vj
dC4KICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgIGlmIChyLT5jb21wYXJl
Qm91bmRhcnlQb2ludHMoUmFuZ2U6OkVORF9UT19TVEFSVCwgcmFuZ2UuZ2V0KCksIGVjKSA8IDEg
JiYgIWVjKSB7Ci0gICAgICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdl
OjpFTkRfVE9fRU5ELCByYW5nZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTikgPT0gLTEpCisgICAg
ICAgICAgICBpZiAoci0+Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFJhbmdlOjpFTkRfVE9fRU5ELCBy
YW5nZS5nZXQoKSwgSUdOT1JFX0VYQ0VQVElPTikgPT0gLTEpIHsKICAgICAgICAgICAgICAgICAv
LyBUaGUgb3JpZ2luYWwgcmFuZ2UgY29udGFpbnMgci4KLSAgICAgICAgICAgICAgICBzZWxlY3Rp
b24uc2V0U2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24ocmFuZ2UuZ2V0KCkpKTsKLSAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzZWxlY3Rpb24ubW92ZVRvKHJhbmdlLmdldCgpKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIHJh
bmdlIGFuZCByIGludGVyc2VjdC4KLSAgICAgICAgICAgICAgICBzZWxlY3Rpb24uc2V0U2VsZWN0
aW9uKFZpc2libGVTZWxlY3Rpb24ocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgci0+ZW5kUG9zaXRp
b24oKSwgRE9XTlNUUkVBTSkpOworICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5tb3ZlVG8ocmFu
Z2UtPnN0YXJ0UG9zaXRpb24oKSwgci0+ZW5kUG9zaXRpb24oKSwgRE9XTlNUUkVBTSk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="248397"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>