<?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>27351</bug_id>
          
          <creation_ts>2009-07-16 12:24:49 -0700</creation_ts>
          <short_desc>[Qt] navigator.platform returns an empty string in Symbian and in Linux platforms</short_desc>
          <delta_ts>2009-07-17 19:09:51 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>Other</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>132317</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-07-16 12:24:49 -0700</bug_when>
    <thetext>WEBCORE_NAVIGATOR_PLATFORM is not defined for Symbian and for Linux platforms. the following javascript would fail

&lt;html&gt;
&lt;body &gt;
The name of the operating system of the current browser should be displayed below:&lt;br&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
document.write(navigator.platform+&quot;&lt;br/&gt;&quot;);
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132318</commentid>
    <comment_count>1</comment_count>
      <attachid>32887</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-07-16 12:27:27 -0700</bug_when>
    <thetext>Created attachment 32887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132322</commentid>
    <comment_count>2</comment_count>
      <attachid>32887</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-16 12:43:11 -0700</bug_when>
    <thetext>Comment on attachment 32887
Patch

No reason to believe that PLATFORM(LINUX) is &quot;Linux i686&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132331</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-07-16 13:20:08 -0700</bug_when>
    <thetext>I think navigator.platform is very similar to what is in PluginViewQt.cpp line 275:


static const char* MozillaUserAgent = &quot;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132445</commentid>
    <comment_count>4</comment_count>
      <attachid>32911</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-07-16 19:43:23 -0700</bug_when>
    <thetext>Created attachment 32911
Patch

Add #define for Symbian platform.
Use uname to determine the OS name and CPU , but limit it to Linux platform only.
(I am not able to test other platforms).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132563</commentid>
    <comment_count>5</comment_count>
      <attachid>32911</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-07-17 06:55:27 -0700</bug_when>
    <thetext>Comment on attachment 32911
Patch

r=me. Seems consistent with firefox and chromium on linux, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132587</commentid>
    <comment_count>6</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-07-17 09:10:14 -0700</bug_when>
    <thetext>From my reading uname is POSIX.1 so we should guard it with something like PLATFORM(UNIX).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132599</commentid>
    <comment_count>7</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-07-17 09:30:10 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; From my reading uname is POSIX.1 so we should guard it with something like
&gt; PLATFORM(UNIX).

I wanted to be on the safe side, so I limited this to Linux based platforms. Some types of Unix might not be 100% POSIX.1 compatible, and I did not want to take the risk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132687</commentid>
    <comment_count>8</comment_count>
      <attachid>32911</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-07-17 14:00:46 -0700</bug_when>
    <thetext>Comment on attachment 32911
Patch

&gt;  String NavigatorBase::platform() const
&gt;  {
&gt; +#if PLATFORM(LINUX)
&gt; +    struct utsname osname;
&gt; +    int result = uname(&amp;osname);
&gt; +    String platformName;
&gt; +    if (result &gt;= 0) {
&gt; +        platformName = osname.sysname;
&gt; +        platformName += &quot; &quot;;
&gt; +        platformName += osname.machine;
&gt; +    }
&gt; +    return platformName;

Can we please make use of DEFINE_STATIC_LOCAL here for platformName?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132801</commentid>
    <comment_count>9</comment_count>
      <attachid>32911</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-07-17 18:00:49 -0700</bug_when>
    <thetext>Comment on attachment 32911
Patch


&gt;  
&gt;  String NavigatorBase::platform() const
&gt;  {
&gt; +#if PLATFORM(LINUX)
&gt; +    struct utsname osname;
&gt; +    int result = uname(&amp;osname);
&gt; +    String platformName;
&gt; +    if (result &gt;= 0) {
&gt; +        platformName = osname.sysname;
&gt; +        platformName += &quot; &quot;;
&gt; +        platformName += osname.machine;
&gt; +    }
&gt; +    return platformName;
&gt; +#else
&gt;      return WEBCORE_NAVIGATOR_PLATFORM;
&gt; +#endif

Jan is right, we should call uname(&amp;osname) exactly once. Yael could you post an updated version of the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132809</commentid>
    <comment_count>10</comment_count>
      <attachid>32996</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-07-17 18:23:32 -0700</bug_when>
    <thetext>Created attachment 32996
Patch

Use DEFINE_STATIC_LOCAL as requested in comment #8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132824</commentid>
    <comment_count>11</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2009-07-17 19:09:51 -0700</bug_when>
    <thetext>landed in 46078</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32887</attachid>
            <date>2009-07-16 12:27:27 -0700</date>
            <delta_ts>2009-07-17 18:23:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>platform.patch</filename>
            <type>text/plain</type>
            <size>1078</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTk4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMDktMDctMTYgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzM1MQorICAgICAgICBB
ZGRlZCBwbGF0Zm9ybXMgIkxpbnV4IGk2ODYiIGFuZCAiU3ltYmlhbiIgdG8gV0VCQ09SRV9OQVZJ
R0FUT1JfUExBVEZPUk0KKworICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHA6CisKIDIw
MDktMDctMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgpJbmRleDogV2ViQ29yZS9wYWdlL05hdmlnYXRvckJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAkocmV2
aXNpb24gNDU5NzIpCisrKyBXZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDYgKzM3LDEwIEBACiAjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRG
T1JNICJNYWNJbnRlbCIKICNlbGlmIFBMQVRGT1JNKFdJTl9PUykKICNkZWZpbmUgV0VCQ09SRV9O
QVZJR0FUT1JfUExBVEZPUk0gIldpbjMyIgorI2VsaWYgUExBVEZPUk0oTElOVVgpCisjZGVmaW5l
IFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJMaW51eCBpNjg2IgorI2VsaWYgUExBVEZPUk0o
U1lNQklBTikKKyNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0gIlN5bWJpYW4iCiAj
ZWxzZQogI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STSAiIgogI2VuZGlmCg==
</data>
<flag name="review"
          id="17237"
          type_id="1"
          status="-"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32911</attachid>
            <date>2009-07-16 19:43:23 -0700</date>
            <delta_ts>2009-07-17 18:23:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>platform.patch</filename>
            <type>text/plain</type>
            <size>1765</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjAwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDctMTYgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzM1MQorICAgICAgICBB
ZGRlZCBwbGF0Zm9ybSAiU3ltYmlhbiIgdG8gV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0KKyAg
ICAgICAgVXNlIHVuYW1lIHRvIGZpbmQgdGhlIGNvcnJlY3QgcGxhdGZvcm0gZm9yIExpbnV4Lgor
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRvckJhc2U6OnBsYXRmb3JtKToKKwogMjAwOS0wNy0xNiAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6
IFdlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9yQmFzZS5jcHAJKHJldmlzaW9uIDQ1OTcyKQorKysgV2ViQ29yZS9wYWdlL05h
dmlnYXRvckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw5IEBACiAKICNpbmNs
dWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaWYgUExBVEZPUk0oTElOVVgpCisjaW5jbHVkZSAic3lzL3V0c25hbWUuaCIKKyNlbmRpZgog
CiAjaWZuZGVmIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNCiAjaWYgUExBVEZPUk0oTUFDKSAm
JiAoUExBVEZPUk0oUFBDKSB8fCBQTEFURk9STShQUEM2NCkpCkBAIC0zNyw2ICs0MCw4IEBACiAj
ZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJNYWNJbnRlbCIKICNlbGlmIFBMQVRG
T1JNKFdJTl9PUykKICNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0gIldpbjMyIgor
I2VsaWYgUExBVEZPUk0oU1lNQklBTikKKyNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZP
Uk0gIlN5bWJpYW4iCiAjZWxzZQogI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STSAi
IgogI2VuZGlmCkBAIC03OSw3ICs4NCwxOSBAQAogCiBTdHJpbmcgTmF2aWdhdG9yQmFzZTo6cGxh
dGZvcm0oKSBjb25zdAogeworI2lmIFBMQVRGT1JNKExJTlVYKQorICAgIHN0cnVjdCB1dHNuYW1l
IG9zbmFtZTsKKyAgICBpbnQgcmVzdWx0ID0gdW5hbWUoJm9zbmFtZSk7CisgICAgU3RyaW5nIHBs
YXRmb3JtTmFtZTsKKyAgICBpZiAocmVzdWx0ID49IDApIHsKKyAgICAgICAgcGxhdGZvcm1OYW1l
ID0gb3NuYW1lLnN5c25hbWU7CisgICAgICAgIHBsYXRmb3JtTmFtZSArPSAiICI7CisgICAgICAg
IHBsYXRmb3JtTmFtZSArPSBvc25hbWUubWFjaGluZTsKKyAgICB9CisgICAgcmV0dXJuIHBsYXRm
b3JtTmFtZTsKKyNlbHNlCiAgICAgcmV0dXJuIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNOwor
I2VuZGlmCiB9CiAKIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjphcHBDb2RlTmFtZSgpIGNvbnN0Cg==
</data>
<flag name="review"
          id="17260"
          type_id="1"
          status="-"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32996</attachid>
            <date>2009-07-17 18:23:32 -0700</date>
            <delta_ts>2009-07-17 18:43:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>platform.patch</filename>
            <type>text/plain</type>
            <size>1832</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjA3MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDctMTcgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzM1MQorICAgICAgICBB
ZGRlZCBwbGF0Zm9ybSAiU3ltYmlhbiIgdG8gV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0KKyAg
ICAgICAgVXNlIHVuYW1lIHRvIGZpbmQgdGhlIGNvcnJlY3QgcGxhdGZvcm0gZm9yIExpbnV4Lgor
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRvckJhc2U6OnBsYXRmb3JtKToKKwogMjAwOS0wNy0xNyAgTWFkcyBBZ2VyICA8YWdlckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRl
eDogV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAkocmV2aXNpb24gNDYwNzIpCisrKyBXZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDEwIEBACiAKICNp
bmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaWYgUExBVEZPUk0oTElOVVgpCisjaW5jbHVkZSAic3lzL3V0c25hbWUuaCIKKyNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjZW5kaWYKIAogI2lmbmRlZiBXRUJDT1JFX05BVklH
QVRPUl9QTEFURk9STQogI2lmIFBMQVRGT1JNKE1BQykgJiYgKFBMQVRGT1JNKFBQQykgfHwgUExB
VEZPUk0oUFBDNjQpKQpAQCAtMzcsNiArNDEsOCBAQAogI2RlZmluZSBXRUJDT1JFX05BVklHQVRP
Ul9QTEFURk9STSAiTWFjSW50ZWwiCiAjZWxpZiBQTEFURk9STShXSU5fT1MpCiAjZGVmaW5lIFdF
QkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJXaW4zMiIKKyNlbGlmIFBMQVRGT1JNKFNZTUJJQU4p
CisjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJTeW1iaWFuIgogI2Vsc2UKICNk
ZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0gIiIKICNlbmRpZgpAQCAtNzksNyArODUs
MTUgQEAKIAogU3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkgY29uc3QKIHsKKyNpZiBQ
TEFURk9STShMSU5VWCkKKyAgICBpZiAoU3RyaW5nKCIiKSAhPSBXRUJDT1JFX05BVklHQVRPUl9Q
TEFURk9STSkKKyAgICAgICAgcmV0dXJuIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNOworICAg
IHN0cnVjdCB1dHNuYW1lIG9zbmFtZTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
cGxhdGZvcm1OYW1lLCAodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhvc25hbWUuc3lzbmFt
ZSkgKyBTdHJpbmcoIiAiKSArIFN0cmluZyhvc25hbWUubWFjaGluZSkgOiAiIikpOworICAgIHJl
dHVybiBwbGF0Zm9ybU5hbWU7CisjZWxzZQogICAgIHJldHVybiBXRUJDT1JFX05BVklHQVRPUl9Q
TEFURk9STTsKKyNlbmRpZgogfQogCiBTdHJpbmcgTmF2aWdhdG9yQmFzZTo6YXBwQ29kZU5hbWUo
KSBjb25zdAo=
</data>
<flag name="review"
          id="17339"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>