<?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>60979</bug_id>
          
          <creation_ts>2011-05-17 12:35:37 -0700</creation_ts>
          <short_desc>SVGRootInlineBox triggers calculateBoundaries twice in layout</short_desc>
          <delta_ts>2011-05-20 00:57:21 -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>SVG</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>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>leo.yang</cc>
    
    <cc>leviw</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>405239</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2011-05-17 12:35:37 -0700</bug_when>
    <thetext>Within computerPerCharacterLayoutInformation, first layoutChildBoxes is called. This function calls calculateBoundaries on all child boxes. Directly afterwards, layoutRootBox determines the rect for itself based on its children, but instead of using the values just calculated in the previous step, they&apos;re re-calculated. There is no early return in calculateBoundaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406915</commentid>
    <comment_count>1</comment_count>
      <attachid>94181</attachid>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-05-20 00:23:24 -0700</bug_when>
    <thetext>Created attachment 94181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406921</commentid>
    <comment_count>2</comment_count>
      <attachid>94181</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-05-20 00:45:21 -0700</bug_when>
    <thetext>Comment on attachment 94181
Patch

Good catch, r=me, assuming no regressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406923</commentid>
    <comment_count>3</comment_count>
    <who name="Leo Yang">leo.yang</who>
    <bug_when>2011-05-20 00:57:21 -0700</bug_when>
    <thetext>Committed r86927: &lt;http://trac.webkit.org/changeset/86927&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94181</attachid>
            <date>2011-05-20 00:23:24 -0700</date>
            <delta_ts>2011-05-20 00:45:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-2011-05-19-Leo-Yang-leo.yang-torchmobile.com.cn.patch</filename>
            <type>text/plain</type>
            <size>6718</size>
            <attacher name="Leo Yang">leo.yang</attacher>
            
              <data encoding="base64">RnJvbSA4ZTQzMDVlMzlmY2I0NjI3ZGU4YzFmM2E2MGQyZWI5Y2JkNGViZmU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gWWFuZyA8bGVvLnlhbmdAdG9yY2htb2JpbGUuY29tLmNu
PgpEYXRlOiBGcmksIDIwIE1heSAyMDExIDE1OjEyOjI3ICswODAwClN1YmplY3Q6IFtQQVRDSF0g
MjAxMS0wNS0xOSAgTGVvIFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CgogICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBTVkdSb290SW5saW5lQm94
IHRyaWdnZXJzIGNhbGN1bGF0ZUJvdW5kYXJpZXMgdHdpY2UgaW4gbGF5b3V0CiAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTc5CgogICAgICAgIFNWR1Jv
b3RJbmxpbmVCb3ggd2FzIGNhbGN1bGF0aW5nIGJvdW5kYXJpZXMgZm9yIGNoaWxkcmVuIHR3aWNl
CiAgICAgICAgaW4gY29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkuIFRoZSBm
aXJzdCB0aW1lIG9mCiAgICAgICAgY2FsY3VsYXRpb24gd2FzIGluIGxheW91dENoaWxkQm94ZXMo
KSB3aGljaCBpcyBjYWxsZWQgYnkKICAgICAgICBjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5m
b3JtYXRpb24oKSwgYW5kIHRoZSBzZWNvbmQgdGltZSBvZgogICAgICAgIGNhbGN1bGF0aW9uIHdh
cyBpbiBsYXlvdXRSb290Qm94KCkgZm9sbG93aW5nIGxheW91dENoaWxkQm94ZXMoKS4KCiAgICAg
ICAgVGhpcyBwYXRjaCBjYWxjdWxhdGVzIHJlY3RhbmdsZSBvZiBjaGlsZHJlbiBpbiBsYXlvdXRD
aGlsZEJveGVzKCkKICAgICAgICBhbmQgdGhlbiB1c2VzIHRoZSByZWN0YW5nZSBpbiBsYXlvdXRS
b290Qm94KCkgdG8gcmVkdWNlIGEgcGFzcwogICAgICAgIG9mIGNhbGN1bGF0aW5nIGNoaWxkIGJv
dW5kYXJpZXMuCgogICAgICAgIE5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlLCBubyBuZXcgdGVzdHMu
CgogICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmNwcDoKICAgICAgICAo
V2ViQ29yZTo6U1ZHUm9vdElubGluZUJveDo6Y29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9y
bWF0aW9uKToKICAgICAgICAoV2ViQ29yZTo6U1ZHUm9vdElubGluZUJveDo6bGF5b3V0Q2hpbGRC
b3hlcyk6CiAgICAgICAgKFdlYkNvcmU6OlNWR1Jvb3RJbmxpbmVCb3g6OmxheW91dFJvb3RCb3gp
OgogICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94Lmg6Ci0tLQogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjUgKysrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxp
bmVCb3guY3BwIHwgICAyNSArKysrKysrKystLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmggICB8ICAgIDQgKy0KIDMgZmlsZXMgY2hhbmdl
ZCwgMzggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJkYjMx
NDcuLjk4OWYxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wNS0xOSAgTGVv
IFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU1ZHUm9vdElubGluZUJveCB0cmlnZ2VycyBj
YWxjdWxhdGVCb3VuZGFyaWVzIHR3aWNlIGluIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA5NzkKKworICAgICAgICBTVkdSb290SW5saW5l
Qm94IHdhcyBjYWxjdWxhdGluZyBib3VuZGFyaWVzIGZvciBjaGlsZHJlbiB0d2ljZQorICAgICAg
ICBpbiBjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0SW5mb3JtYXRpb24oKS4gVGhlIGZpcnN0IHRp
bWUgb2YKKyAgICAgICAgY2FsY3VsYXRpb24gd2FzIGluIGxheW91dENoaWxkQm94ZXMoKSB3aGlj
aCBpcyBjYWxsZWQgYnkKKyAgICAgICAgY29tcHV0ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0
aW9uKCksIGFuZCB0aGUgc2Vjb25kIHRpbWUgb2YKKyAgICAgICAgY2FsY3VsYXRpb24gd2FzIGlu
IGxheW91dFJvb3RCb3goKSBmb2xsb3dpbmcgbGF5b3V0Q2hpbGRCb3hlcygpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2FsY3VsYXRlcyByZWN0YW5nbGUgb2YgY2hpbGRyZW4gaW4gbGF5b3V0Q2hp
bGRCb3hlcygpCisgICAgICAgIGFuZCB0aGVuIHVzZXMgdGhlIHJlY3RhbmdlIGluIGxheW91dFJv
b3RCb3goKSB0byByZWR1Y2UgYSBwYXNzCisgICAgICAgIG9mIGNhbGN1bGF0aW5nIGNoaWxkIGJv
dW5kYXJpZXMuCisKKyAgICAgICAgTm8gZnVuY3Rpb25hbGl0eSBjaGFuZ2UsIG5vIG5ldyB0ZXN0
cy4KKworICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSb290SW5saW5lQm94Ojpjb21wdXRlUGVyQ2hhcmFjdGVyTGF5b3V0
SW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUm9vdElubGluZUJveDo6bGF5b3V0
Q2hpbGRCb3hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSb290SW5saW5lQm94OjpsYXlvdXRS
b290Qm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guaDoKKwog
MjAxMS0wNS0xOSAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1Jvb3RJbmxpbmVCb3guY3BwCmluZGV4IGI4Y2FhNTQuLjJjYmVjMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94
LmNwcApAQCAtMyw2ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
IDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVG9yY2gg
TW9iaWxlIChCZWlqaW5nKSBDTy4gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC04OCw4ICs4OSw5IEBAIHZvaWQgU1ZHUm9vdElubGluZUJveDo6Y29tcHV0
ZVBlckNoYXJhY3RlckxheW91dEluZm9ybWF0aW9uKCkKIAogICAgIC8vIFBlcmZvcm0gU1ZHIHRl
eHQgbGF5b3V0IHBoYXNlIGZvdXIKICAgICAvLyBQb3NpdGlvbiAmIHJlc2l6ZSBhbGwgU1ZHSW5s
aW5lVGV4dC9GbG93Qm94ZXMgaW4gdGhlIGlubGluZSBib3ggdHJlZSwgcmVzaXplIHRoZSByb290
IGJveCBhcyB3ZWxsIGFzIHRoZSBSZW5kZXJTVkdUZXh0IHBhcmVudCBibG9jay4KLSAgICBsYXlv
dXRDaGlsZEJveGVzKHRoaXMpOwotICAgIGxheW91dFJvb3RCb3goKTsKKyAgICBJbnRSZWN0IGNo
aWxkUmVjdDsKKyAgICBsYXlvdXRDaGlsZEJveGVzKHRoaXMsICZjaGlsZFJlY3QpOworICAgIGxh
eW91dFJvb3RCb3goY2hpbGRSZWN0KTsKIH0KIAogdm9pZCBTVkdSb290SW5saW5lQm94OjpsYXlv
dXRDaGFyYWN0ZXJzSW5UZXh0Qm94ZXMoSW5saW5lRmxvd0JveCogc3RhcnQsIFNWR1RleHRMYXlv
dXRFbmdpbmUmIGNoYXJhY3RlckxheW91dCkKQEAgLTEzMSwxNSArMTMzLDE2IEBAIHZvaWQgU1ZH
Um9vdElubGluZUJveDo6bGF5b3V0Q2hhcmFjdGVyc0luVGV4dEJveGVzKElubGluZUZsb3dCb3gq
IHN0YXJ0LCBTVkdUZXh0CiAgICAgfQogfQogCi12b2lkIFNWR1Jvb3RJbmxpbmVCb3g6OmxheW91
dENoaWxkQm94ZXMoSW5saW5lRmxvd0JveCogc3RhcnQpCit2b2lkIFNWR1Jvb3RJbmxpbmVCb3g6
OmxheW91dENoaWxkQm94ZXMoSW5saW5lRmxvd0JveCogc3RhcnQsIEludFJlY3QqIGNoaWxkUmVj
dCkKIHsKICAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBzdGFydC0+Zmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dE9uTGluZSgpKSB7CisgICAgICAgIEludFJlY3QgYm94
UmVjdDsKICAgICAgICAgaWYgKGNoaWxkLT5pc1NWR0lubGluZVRleHRCb3goKSkgewogICAgICAg
ICAgICAgQVNTRVJUKGNoaWxkLT5yZW5kZXJlcigpKTsKICAgICAgICAgICAgIEFTU0VSVChjaGls
ZC0+cmVuZGVyZXIoKS0+aXNTVkdJbmxpbmVUZXh0KCkpOwogCiAgICAgICAgICAgICBTVkdJbmxp
bmVUZXh0Qm94KiB0ZXh0Qm94ID0gc3RhdGljX2Nhc3Q8U1ZHSW5saW5lVGV4dEJveCo+KGNoaWxk
KTsKLSAgICAgICAgICAgIEludFJlY3QgYm94UmVjdCA9IHRleHRCb3gtPmNhbGN1bGF0ZUJvdW5k
YXJpZXMoKTsKKyAgICAgICAgICAgIGJveFJlY3QgPSB0ZXh0Qm94LT5jYWxjdWxhdGVCb3VuZGFy
aWVzKCk7CiAgICAgICAgICAgICB0ZXh0Qm94LT5zZXRYKGJveFJlY3QueCgpKTsKICAgICAgICAg
ICAgIHRleHRCb3gtPnNldFkoYm94UmVjdC55KCkpOwogICAgICAgICAgICAgdGV4dEJveC0+c2V0
TG9naWNhbFdpZHRoKGJveFJlY3Qud2lkdGgoKSk7CkBAIC0xNTQsMjggKzE1NywyMiBAQCB2b2lk
IFNWR1Jvb3RJbmxpbmVCb3g6OmxheW91dENoaWxkQm94ZXMoSW5saW5lRmxvd0JveCogc3RhcnQp
CiAgICAgICAgICAgICBTVkdJbmxpbmVGbG93Qm94KiBmbG93Qm94ID0gc3RhdGljX2Nhc3Q8U1ZH
SW5saW5lRmxvd0JveCo+KGNoaWxkKTsKICAgICAgICAgICAgIGxheW91dENoaWxkQm94ZXMoZmxv
d0JveCk7CiAKLSAgICAgICAgICAgIEludFJlY3QgYm94UmVjdCA9IGZsb3dCb3gtPmNhbGN1bGF0
ZUJvdW5kYXJpZXMoKTsKKyAgICAgICAgICAgIGJveFJlY3QgPSBmbG93Qm94LT5jYWxjdWxhdGVC
b3VuZGFyaWVzKCk7CiAgICAgICAgICAgICBmbG93Qm94LT5zZXRYKGJveFJlY3QueCgpKTsKICAg
ICAgICAgICAgIGZsb3dCb3gtPnNldFkoYm94UmVjdC55KCkpOwogICAgICAgICAgICAgZmxvd0Jv
eC0+c2V0TG9naWNhbFdpZHRoKGJveFJlY3Qud2lkdGgoKSk7CiAgICAgICAgICAgICBmbG93Qm94
LT5zZXRMb2dpY2FsSGVpZ2h0KGJveFJlY3QuaGVpZ2h0KCkpOwogICAgICAgICB9CisgICAgICAg
IGlmIChjaGlsZFJlY3QpCisgICAgICAgICAgICBjaGlsZFJlY3QtPnVuaXRlKGJveFJlY3QpOwog
ICAgIH0KIH0KIAotdm9pZCBTVkdSb290SW5saW5lQm94OjpsYXlvdXRSb290Qm94KCkKK3ZvaWQg
U1ZHUm9vdElubGluZUJveDo6bGF5b3V0Um9vdEJveChjb25zdCBJbnRSZWN0JiBjaGlsZFJlY3Qp
CiB7CiAgICAgUmVuZGVyQmxvY2sqIHBhcmVudEJsb2NrID0gYmxvY2soKTsKICAgICBBU1NFUlQo
cGFyZW50QmxvY2spOwogCi0gICAgSW50UmVjdCBjaGlsZFJlY3Q7Ci0gICAgZm9yIChJbmxpbmVC
b3gqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dE9uTGlu
ZSgpKSB7Ci0gICAgICAgIC8vIFNraXAgZ2VuZXJhdGVkIGNvbnRlbnQuCi0gICAgICAgIGlmICgh
Y2hpbGQtPnJlbmRlcmVyKCktPm5vZGUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBjaGlsZFJlY3QudW5pdGUoY2hpbGQtPmNhbGN1bGF0ZUJvdW5kYXJpZXMoKSk7Ci0gICAgfQot
CiAgICAgaW50IHdpZHRoQmxvY2sgPSBjaGlsZFJlY3Qud2lkdGgoKTsKICAgICBpbnQgaGVpZ2h0
QmxvY2sgPSBjaGlsZFJlY3QuaGVpZ2h0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUm9vdElubGluZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmgKaW5kZXggYTgzYWY2NC4uNDgyMThlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSb290SW5saW5lQm94LmgKQEAgLTU3
LDggKzU3LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHJlb3JkZXJWYWx1ZUxpc3Rz
KFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcz4mKTsKICAgICB2b2lkIGxheW91dENoYXJh
Y3RlcnNJblRleHRCb3hlcyhJbmxpbmVGbG93Qm94KiwgU1ZHVGV4dExheW91dEVuZ2luZSYpOwot
ICAgIHZvaWQgbGF5b3V0Q2hpbGRCb3hlcyhJbmxpbmVGbG93Qm94Kik7Ci0gICAgdm9pZCBsYXlv
dXRSb290Qm94KCk7CisgICAgdm9pZCBsYXlvdXRDaGlsZEJveGVzKElubGluZUZsb3dCb3gqLCBJ
bnRSZWN0KiA9IDApOworICAgIHZvaWQgbGF5b3V0Um9vdEJveChjb25zdCBJbnRSZWN0Jik7CiAK
IHByaXZhdGU6CiAgICAgaW50IG1fbG9naWNhbEhlaWdodDsKLS0gCjEuNy4wLjQKCg==
</data>
<flag name="review"
          id="87452"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>