<?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>96355</bug_id>
          
          <creation_ts>2012-09-10 23:51:23 -0700</creation_ts>
          <short_desc>Create Localizer factory method for LocaleMac</short_desc>
          <delta_ts>2012-09-11 21:34:17 -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>Forms</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>96351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>ap</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yosin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>716879</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-10 23:51:23 -0700</bug_when>
    <thetext>Create Localizer factory method for LocaleMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716886</commentid>
    <comment_count>1</comment_count>
      <attachid>163288</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-11 00:12:08 -0700</bug_when>
    <thetext>Created attachment 163288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716891</commentid>
    <comment_count>2</comment_count>
      <attachid>163288</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-11 00:17:28 -0700</bug_when>
    <thetext>Comment on attachment 163288
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716931</commentid>
    <comment_count>3</comment_count>
      <attachid>163288</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 01:14:57 -0700</bug_when>
    <thetext>Comment on attachment 163288
Patch

Clearing flags on attachment: 163288

Committed r128156: &lt;http://trac.webkit.org/changeset/128156&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716932</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 01:15:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717400</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-11 11:12:32 -0700</bug_when>
    <thetext>There is something wrong with the design here. How can a &quot;Locale&quot; class inherit from a &quot;Localizer&quot; class? How can LocaleMac::create return a pointer of a different type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717820</commentid>
    <comment_count>6</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-11 19:07:33 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; There is something wrong with the design here. How can a &quot;Locale&quot; class inherit from a &quot;Localizer&quot; class? How can LocaleMac::create return a pointer of a different type?

I will rename LocaleMac, LocaleWin, and LocaleICU to LocalizerMac, LocalizerWin, LocalizerICU in the future.

LocaleMac, LocaleWin, and LocaleICU all inherited NumberLocalizer before I started working on this. And I renamed NumberLocalizer to Localizer. The grand plan is to collect all the localizer functions, not just number, into Localizer.

Localizer::create will be used instead of LocaleMac::create to get the right instance for each platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717888</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-11 21:13:11 -0700</bug_when>
    <thetext>I&apos;m not sure if I&apos;m in support of this direction.

Class names should be nouns, and disguising a verb for a noun is rarely a sign of a good design. A class is a collection of data and methods, and it should be easy to tell from class name what the data is. On the other hand, a class with a name like &quot;manager&quot; or &quot;localizer&quot; doesn&apos;t really tell what its object oriented essence is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717897</commentid>
    <comment_count>8</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-11 21:34:17 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I&apos;m not sure if I&apos;m in support of this direction.
&gt; 
&gt; Class names should be nouns, and disguising a verb for a noun is rarely a sign of a good design. A class is a collection of data and methods, and it should be easy to tell from class name what the data is. On the other hand, a class with a name like &quot;manager&quot; or &quot;localizer&quot; doesn&apos;t really tell what its object oriented essence is.

How about LocalizedFormat, LocalizedFormatMac, LocalizedFormatWin, LocalizedFormatICU?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163288</attachid>
            <date>2012-09-11 00:12:08 -0700</date>
            <delta_ts>2012-09-11 01:14:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96355-20120911161143.patch</filename>
            <type>text/plain</type>
            <size>4228</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY4YmE1NWNiMzQ0NzE4
OThkNmY2YWQ0Y2UwZDM3M2IzNGM4ZDRiYS4uOTgxNjk4MzBlM2Y3ZWZiZWI2ODdlMDM4YTM1ODEx
OTQ5ODE3MWM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA5LTExICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIENyZWF0ZSBMb2NhbGl6
ZXIgZmFjdG9yeSBtZXRob2QgZm9yIExvY2FsZU1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYzNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQcmVwYXJpbmcgdG8gdXNlIExvY2FsaXplciBpbnN0ZWFk
IG9mIExvY2FsZU1hYy9XaW4vSUNVCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGlu
IHVuaXQgdGVzdCB0ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZXIuaDoKKyAgICAgICAgKExvY2FsaXplcik6CisgICAgICAgICogcGxhdGZv
cm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxpemVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDktMTAgIEtlaXNoaSBIYXR0b3Jp
ICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1lIE51bWJlckxvY2FsaXplciB0
byBMb2NhbGl6ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDI2ZGQ4MDExYTVkZDEz
MTZlYTY4MGRkY2RlNjYwYmQ2OWZmYjY0ZS4uZGM5MjdjOTA4ZTI4ZDQwNjFmODYxZjU2ZjIwZDk2
OGMwMmI0ZWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wOS0xMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAg
ICBDcmVhdGUgTG9jYWxpemVyIGZhY3RvcnkgbWV0aG9kIGZvciBMb2NhbGVNYWMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzU1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9Mb2NhbGVNYWNU
ZXN0LmNwcDoKKyAgICAgICAgKHRlc3ROdW1iZXJJc1JldmVyc2libGUpOiBVc2UgTG9jYWxpemVy
OjpjcmVhdGUuCisgICAgICAgICh0ZXN0TnVtYmVycyk6CisKIDIwMTItMDktMTAgIEpvYW5tYXJp
ZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFByb3Blcmx5IGV4cG9zZSA8
bGVnZW5kPiBlbGVtZW50cyB0byBBVHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
aXplci5oCmluZGV4IDU1ODE0ZGZhNTJmMTE4MmNjNzYyNjRmYzY1MTUzZTE3ZDA4YWJiZDAuLjE3
ZjRmZDUyNDVjNmQ4MTVlYTBkMGE1ZmE5ZTlhYzQ3MjZjNTMwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaApAQCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIExvY2FsaXplciB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8TG9jYWxpemVyPiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgU3RyaW5nIGNv
bnZlcnRUb0xvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKTsKICAgICBTdHJpbmcgY29udmVy
dEZyb21Mb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJik7CiAjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L21hYy9Mb2NhbGVNYWMubW0KaW5kZXggZjk3N2QzMWU4YzkxYzg1ZTk4MGE4NzgwODgxMmE2Y2Zk
ZjM1ZWNlYy4uZWI5MDkxOTU4YzAzNjI3MjhmM2UxMmM0ZDdmYzMyMGQ1MDkzMjg3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQpAQCAtNDUsNiAr
NDUsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQ
YXNzT3duUHRyPExvY2FsaXplcj4gTG9jYWxpemVyOjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5n
JiBsb2NhbGUpCit7CisgICAgcmV0dXJuIExvY2FsZU1hYzo6Y3JlYXRlKGxvY2FsZS5zdHJpbmco
KSk7Cit9CisKIHN0YXRpYyBOU0RhdGVGb3JtYXR0ZXIqIGNyZWF0ZURhdGVUaW1lRm9ybWF0dGVy
KE5TTG9jYWxlKiBsb2NhbGUsIE5TRGF0ZUZvcm1hdHRlclN0eWxlIGRhdGVTdHlsZSwgTlNEYXRl
Rm9ybWF0dGVyU3R5bGUgdGltZVN0eWxlKQogewogICAgIE5TRGF0ZUZvcm1hdHRlciAqZm9ybWF0
dGVyID0gW1tOU0RhdGVGb3JtYXR0ZXIgYWxsb2NdIGluaXRdOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAKaW5kZXggZjZiMGY2MjkyNGU4NGJmMzcw
NjFmMTgyOTA3NTQzZWVlYzk3Y2ExZi4uZWI4NmEyZjY4ODljY2M0MDEwOGNkOTVmY2E5YzU5YjJj
MTlkNWY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVN
YWNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rl
c3QuY3BwCkBAIC0yMjEsOSArMjIxLDkgQEAgVEVTVF9GKExvY2FsZU1hY1Rlc3QsIGRlY2ltYWxT
ZXBhcmF0b3IpCiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgdGVzdE51bWJlcklzUmV2ZXJzaWJs
ZShjb25zdCBTdHJpbmcmIGxvY2FsZVN0cmluZywgY29uc3QgY2hhciogb3JpZ2luYWwsIGNvbnN0
IGNoYXIqIHNob3VsZEhhdmUgPSAwKQorc3RhdGljIHZvaWQgdGVzdE51bWJlcklzUmV2ZXJzaWJs
ZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZVN0cmluZywgY29uc3QgY2hhciogb3JpZ2luYWws
IGNvbnN0IGNoYXIqIHNob3VsZEhhdmUgPSAwKQogewotICAgIE93blB0cjxMb2NhbGVNYWM+IGxv
Y2FsZSA9IExvY2FsZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7CisgICAgT3duUHRyPExvY2Fs
aXplcj4gbG9jYWxlID0gTG9jYWxpemVyOjpjcmVhdGUobG9jYWxlU3RyaW5nKTsKICAgICBTdHJp
bmcgbG9jYWxpemVkID0gbG9jYWxlLT5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIob3JpZ2luYWwp
OwogICAgIGlmIChzaG91bGRIYXZlKQogICAgICAgICBFWFBFQ1RfVFJVRShsb2NhbGl6ZWQuY29u
dGFpbnMoc2hvdWxkSGF2ZSkpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RO
dW1iZXJJc1JldmVyc2libGUoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGNvbnN0IGNoYXIq
IG9yaWdpCiAgICAgRVhQRUNUX1NUUkVRKG9yaWdpbmFsLCBjb252ZXJ0ZWQudXRmOCgpLmRhdGEo
KSk7CiB9CiAKLXZvaWQgdGVzdE51bWJlcnMoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGNv
bnN0IGNoYXIqIGRlY2ltYWxTZXBhcmF0b3JTaG91bGRCZSA9IDApCit2b2lkIHRlc3ROdW1iZXJz
KGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlU3RyaW5nLCBjb25zdCBjaGFyKiBkZWNpbWFsU2Vw
YXJhdG9yU2hvdWxkQmUgPSAwKQogewogICAgIHRlc3ROdW1iZXJJc1JldmVyc2libGUobG9jYWxl
U3RyaW5nLCAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIik7CiAgICAgdGVzdE51bWJl
cklzUmV2ZXJzaWJsZShsb2NhbGVTdHJpbmcsICItMTIzLjQ1NiIsIGRlY2ltYWxTZXBhcmF0b3JT
aG91bGRCZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>