<?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>45564</bug_id>
          
          <creation_ts>2010-09-10 14:04:59 -0700</creation_ts>
          <short_desc>Set the visible name for the web process</short_desc>
          <delta_ts>2010-09-10 15:53:14 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277416</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-10 14:04:59 -0700</bug_when>
    <thetext>Set the visible name for the web process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277417</commentid>
    <comment_count>1</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-10 14:07:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/8416970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277418</commentid>
    <comment_count>2</comment_count>
      <attachid>67232</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-10 14:07:58 -0700</bug_when>
    <thetext>Created attachment 67232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277438</commentid>
    <comment_count>3</comment_count>
      <attachid>67232</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2010-09-10 14:29:44 -0700</bug_when>
    <thetext>Comment on attachment 67232
Patch

&gt; @@ -45,6 +47,23 @@ extern &quot;C&quot; kern_return_t bootstrap_register2(mach_port_t, name_t, mach_port_t, u
&gt;  
&gt;  namespace WebKit {
&gt;  
&gt; +// -[NSProcessInfo processName] isn&apos;t thread-safe so we have our own implementation.

We should do this conditionally and use -[NSProcessInfo processName] on platforms where it is thread-safe.

&gt; +static const char* processName() {

Misplaced {.

&gt; +    static CString* processName;
&gt; +    if (!processName) {
&gt; +        uint32_t bufferSize = MAXPATHLEN;
&gt; +        char executablePath[bufferSize];
&gt; +
&gt; +        if (_NSGetExecutablePath(executablePath, &amp;bufferSize))
&gt; +            return “”;

If _NSGetExecutablePath fails we’ll do this work every time the function is called.  Is that expected?  Does _NSGetExecutablePath fail temporarily and then later give us valid results?

&gt; @@ -95,6 +96,14 @@ int WebProcessMain(CommandLine* commandLine)
&gt;      WTF::initializeMainThread();
&gt;      RunLoop::initializeMainRunLoop();
&gt;  
&gt; +    // Set the visible application name.
&gt; +    String parentProcessName = (*commandLine)[&quot;parentprocessname&quot;];
&gt; +    if (!parentProcessName.isNull()) {
&gt; +        // FIXME: Localization!
&gt; +        NSString *applicationName = [NSString stringWithFormat:@&quot;%@ Web Content&quot;, (NSString *)parentProcessName];
&gt; +        WKSetVisibleApplicationName((CFStringRef)applicationName);
&gt; +    }

It would’ve been nicer if WKSetVisibleApplicationName took an NSString*.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277444</commentid>
    <comment_count>4</comment_count>
      <attachid>67232</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-10 14:41:49 -0700</bug_when>
    <thetext>Comment on attachment 67232
Patch

&gt; +static const char* processName() {

Brace should move to the next line.

&gt; +    static CString* processName;
&gt; +    if (!processName) {
&gt; +        uint32_t bufferSize = MAXPATHLEN;
&gt; +        char executablePath[bufferSize];
&gt; +
&gt; +        if (_NSGetExecutablePath(executablePath, &amp;bufferSize))
&gt; +            return &quot;&quot;;
&gt; +
&gt; +        char *name = strrchr(executablePath, &apos;/&apos;) + 1;
&gt; +        processName = new CString(name);
&gt; +    }

It would be better factoring to have this in a separate function called createProcessName.

And if we want to leak this can we just strdup instead of using a CString?

&gt; +        // FIXME: Localization!
&gt; +        NSString *applicationName = [NSString stringWithFormat:@&quot;%@ Web Content&quot;, (NSString *)parentProcessName];
&gt; +        WKSetVisibleApplicationName((CFStringRef)applicationName);

That’s an admirable FIXME, but what’s your plan here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277448</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-10 14:50:50 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 67232 [details])
&gt; &gt; +static const char* processName() {
&gt; 
&gt; Brace should move to the next line.
&gt; 
&gt; &gt; +    static CString* processName;
&gt; &gt; +    if (!processName) {
&gt; &gt; +        uint32_t bufferSize = MAXPATHLEN;
&gt; &gt; +        char executablePath[bufferSize];
&gt; &gt; +
&gt; &gt; +        if (_NSGetExecutablePath(executablePath, &amp;bufferSize))
&gt; &gt; +            return &quot;&quot;;
&gt; &gt; +
&gt; &gt; +        char *name = strrchr(executablePath, &apos;/&apos;) + 1;
&gt; &gt; +        processName = new CString(name);
&gt; &gt; +    }
&gt; 
&gt; It would be better factoring to have this in a separate function called createProcessName.
&gt; 

Sure, I&apos;ll do that. (On platforms where NSProcessInfo is thread-safe I&apos;ll just have processName() return -[NSProcessInfo processName]).

&gt; And if we want to leak this can we just strdup instead of using a CString?

Yes.

&gt; 
&gt; &gt; +        // FIXME: Localization!
&gt; &gt; +        NSString *applicationName = [NSString stringWithFormat:@&quot;%@ Web Content&quot;, (NSString *)parentProcessName];
&gt; &gt; +        WKSetVisibleApplicationName((CFStringRef)applicationName);
&gt; 
&gt; That’s an admirable FIXME, but what’s your plan here?

I don&apos;t know how to set up the localization infrastructure, but we should probably do it sooner rather than later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277492</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-10 15:53:14 -0700</bug_when>
    <thetext>Committed r67247: &lt;http://trac.webkit.org/changeset/67247&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67232</attachid>
            <date>2010-09-10 14:07:58 -0700</date>
            <delta_ts>2010-09-10 14:41:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45564-20100910140756.patch</filename>
            <type>text/plain</type>
            <size>4545</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
Y2ZjYWU0MjdlNWQ2MDBhYjRjZWJlODhhZTMyY2ZlYmM4NzgzMDNiYy4uNGM2ZjNlMTRlYjg4YzVk
Mzg4Mjc1NGY0MTZmYzAxN2ZmNTBiOGQ0MyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wOS0xMCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNldCB0aGUgdmlzaWJsZSBuYW1lIGZvciB0aGUg
d2ViIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ1NTY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDE2OTcwPgorCisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OnByb2Nlc3NOYW1lKToKKyAgICAgICAgQWRkIGEgdGhyZWFkIHNhZmUgaW1wbGVtZW50
YXRpb24gb2YgLVtOU1Byb2Nlc3NJbmZvIHByb2Nlc3NOYW1lXS4KKworICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICBQYXNzIHRoZSBwcm9j
ZXNzIG5hbWUgdG8gdGhlIGNoaWxkIHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL21h
Yy9XZWJQcm9jZXNzTWFpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc01haW4p
OgorICAgICAgICBTZXQgdGhlIHZpc2libGUgbmFtZS4KKwogMjAxMC0wOS0xMCAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVu
Y2hlck1hYy5tbSBiL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KaW5kZXggYjBjOWFmYjgyMmY0OThiMjJiOTVmMTc3ODRiNjBkN2UwNzIxNmY4Yy4u
YWFiNGYxODcxNmZlNDA2YzgxZWExNjU2YTc3NjkyN2UxYmFlMzg3MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0y
OSwxMCArMjksMTIgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViU3lz
dGVtSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSA8Y3J0X2V4dGVybnMuaD4KKyNpbmNsdWRlIDxtYWNo
LW8vZHlsZC5oPgogI2luY2x1ZGUgPG1hY2gvbWFjaGluZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
SW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHNlcnZlcnMvYm9vdHN0cmFwLmg+CiAj
aW5jbHVkZSA8c3Bhd24uaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CkBAIC00NSw2ICs0NywyMyBAQCBleHRlcm4gIkMiIGtlcm5fcmV0dXJu
X3QgYm9vdHN0cmFwX3JlZ2lzdGVyMihtYWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwg
dQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorLy8gLVtOU1Byb2Nlc3NJbmZvIHByb2Nlc3NOYW1l
XSBpc24ndCB0aHJlYWQtc2FmZSBzbyB3ZSBoYXZlIG91ciBvd24gaW1wbGVtZW50YXRpb24uCitz
dGF0aWMgY29uc3QgY2hhciogcHJvY2Vzc05hbWUoKSB7CisgICAgc3RhdGljIENTdHJpbmcqIHBy
b2Nlc3NOYW1lOworICAgIGlmICghcHJvY2Vzc05hbWUpIHsKKyAgICAgICAgdWludDMyX3QgYnVm
ZmVyU2l6ZSA9IE1BWFBBVEhMRU47CisgICAgICAgIGNoYXIgZXhlY3V0YWJsZVBhdGhbYnVmZmVy
U2l6ZV07CisKKyAgICAgICAgaWYgKF9OU0dldEV4ZWN1dGFibGVQYXRoKGV4ZWN1dGFibGVQYXRo
LCAmYnVmZmVyU2l6ZSkpCisgICAgICAgICAgICByZXR1cm4gIiI7CisKKyAgICAgICAgY2hhciAq
bmFtZSA9IHN0cnJjaHIoZXhlY3V0YWJsZVBhdGgsICcvJykgKyAxOworICAgICAgICBwcm9jZXNz
TmFtZSA9IG5ldyBDU3RyaW5nKG5hbWUpOworICAgIH0KKworICAgIHJldHVybiBwcm9jZXNzTmFt
ZS0+ZGF0YSgpOworfQorCiB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiB7
CiAgICAgLy8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KQEAgLTYxLDcgKzgwLDcgQEAgdm9p
ZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgIENTdHJpbmcgc2VydmljZU5h
bWUgPSBTdHJpbmc6OmZvcm1hdCgiY29tLmFwcGxlLldlYktpdC5XZWJQcm9jZXNzLSVkLSVwIiwg
Z2V0cGlkKCksIHRoaXMpLnV0ZjgoKTsKIAogICAgIGNvbnN0IGNoYXIqIHBhdGggPSBbd2ViUHJv
Y2Vzc0FwcEV4ZWN1dGFibGVQYXRoIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl07Ci0gICAgY29u
c3QgY2hhciogYXJnc1tdID0geyBwYXRoLCAiLW1vZGUiLCAibGVnYWN5d2VicHJvY2VzcyIsICIt
c2VydmljZW5hbWUiLCBzZXJ2aWNlTmFtZS5kYXRhKCksIDAgfTsKKyAgICBjb25zdCBjaGFyKiBh
cmdzW10gPSB7IHBhdGgsICItbW9kZSIsICJsZWdhY3l3ZWJwcm9jZXNzIiwgIi1zZXJ2aWNlbmFt
ZSIsIHNlcnZpY2VOYW1lLmRhdGEoKSwgIi1wYXJlbnRwcm9jZXNzbmFtZSIsIHByb2Nlc3NOYW1l
KCksIDAgfTsKIAogICAgIC8vIFJlZ2lzdGVyIG91cnNlbHZlcy4KICAgICBrZXJuX3JldHVybl90
IGtyID0gYm9vdHN0cmFwX3JlZ2lzdGVyMihib290c3RyYXBfcG9ydCwgY29uc3RfY2FzdDxjaGFy
Kj4oc2VydmljZU5hbWUuZGF0YSgpKSwgbGlzdGVuaW5nUG9ydCwgMCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQppbmRleCBkZWNlNDlhYzc1YTYzYWFhYWY3
NTZkOThiNTU1NzQ3MTQ4MGMxZWYzLi40YjQ5OTIxZGJlZGQ2NmI3NGFiODNiZDQxMDU5MTZiMjJk
Y2FhZmIwIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWlu
TWFjLm1tCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0K
QEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKICNpbXBvcnQgIldlYlN5
c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8V2ViS2l0Mi9XS1ZpZXcuaD4KKyNpbXBvcnQgPFdl
YktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8b2JqYy9vYmpjLWF1dG8uaD4KICNpbXBv
cnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8c2VydmVycy9ib290
c3RyYXAuaD4KQEAgLTM3LDYgKzM4LDcgQEAKICNpbXBvcnQgPHN0ZGlvLmg+CiAjaW1wb3J0IDxz
eXNleGl0cy5oPgogI2ltcG9ydCA8dW5pc3RkLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKQEAgLTgwLDcgKzgyLDYgQEAgaW50IFdlYlByb2Nlc3NNYWluKENvbW1hbmRMaW5lKiBjb21t
YW5kTGluZSkKICAgICAgICAgcHJpbnRmKCJib290c3RyYXBfbG9va191cDIgcmVzdWx0OiAleCIs
IGtyKTsKICAgICAgICAgcmV0dXJuIDI7CiAgICAgfQotICAgIAogCiAjaWYgIVNIT1dfQ1JBU0hf
UkVQT1JURVIKICAgICAvLyBJbnN0YWxscyBzaWduYWwgaGFuZGxlcnMgdGhhdCBleGl0IG9uIGEg
Y3Jhc2ggc28gdGhhdCBDcmFzaFJlcG9ydGVyIGRvZXMgbm90IHNob3cgdXAuCkBAIC05NSw2ICs5
NiwxNCBAQCBpbnQgV2ViUHJvY2Vzc01haW4oQ29tbWFuZExpbmUqIGNvbW1hbmRMaW5lKQogICAg
IFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKTsKIAorICAgIC8vIFNldCB0aGUgdmlzaWJsZSBhcHBsaWNhdGlvbiBuYW1lLgor
ICAgIFN0cmluZyBwYXJlbnRQcm9jZXNzTmFtZSA9ICgqY29tbWFuZExpbmUpWyJwYXJlbnRwcm9j
ZXNzbmFtZSJdOworICAgIGlmICghcGFyZW50UHJvY2Vzc05hbWUuaXNOdWxsKCkpIHsKKyAgICAg
ICAgLy8gRklYTUU6IExvY2FsaXphdGlvbiEKKyAgICAgICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9u
TmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAgV2ViIENvbnRlbnQiLCAoTlNT
dHJpbmcgKilwYXJlbnRQcm9jZXNzTmFtZV07CisgICAgICAgIFdLU2V0VmlzaWJsZUFwcGxpY2F0
aW9uTmFtZSgoQ0ZTdHJpbmdSZWYpYXBwbGljYXRpb25OYW1lKTsKKyAgICB9CisgICAgCiAgICAg
Ly8gQ3JlYXRlIHRoZSBjb25uZWN0aW9uLgogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluaXRp
YWxpemUoc2VydmVyUG9ydCwgUnVuTG9vcDo6bWFpbigpKTsKICAgICAK
</data>
<flag name="review"
          id="56486"
          type_id="1"
          status="+"
          setter="mrowe"
    />
          </attachment>
      

    </bug>

</bugzilla>