diff --git a/dom/src/base/nsGlobalWindow.cpp b/dom/src/base/nsGlobalWindow.cpp index 0beac8b45e6f..8490a35efbf4 100644 --- a/dom/src/base/nsGlobalWindow.cpp +++ b/dom/src/base/nsGlobalWindow.cpp @@ -1878,13 +1878,7 @@ NavigatorImpl::GetUserAgent(nsString& aUserAgent) (nsISupports **)&service); if ((NS_OK == res) && (nsnull != service)) { - if (NS_OK == (res = service->GetAppCodeName(aUserAgent)) ) { - nsAutoString appVersion; - if (NS_OK == (res = service->GetAppVersion(appVersion)) ) { - aUserAgent.Append('/'); - aUserAgent.Append(appVersion); - } - } + res = service->GetUserAgent(aUserAgent); NS_RELEASE(service); } return res; diff --git a/modules/plugin/base/src/nsPluginHostImpl.cpp b/modules/plugin/base/src/nsPluginHostImpl.cpp index 24120f41bc3e..fe1614b3c390 100644 --- a/modules/plugin/base/src/nsPluginHostImpl.cpp +++ b/modules/plugin/base/src/nsPluginHostImpl.cpp @@ -27,6 +27,8 @@ #include "nsIStreamListener.h" #include "nsIURL.h" #include "nsIInputStream.h" +#include "nsINetService.h" +#include "nsIServiceManager.h" #include "prprf.h" #include "gui.h" @@ -47,6 +49,8 @@ static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIStreamListenerIID, NS_ISTREAMLISTENER_IID); static NS_DEFINE_IID(kIStreamObserverIID, NS_ISTREAMOBSERVER_IID); +static NS_DEFINE_IID(kINetServiceIID, NS_INETSERVICE_IID); +static NS_DEFINE_IID(kNetServiceCID, NS_NETSERVICE_CID); nsPluginTag :: nsPluginTag() { @@ -690,11 +694,23 @@ nsresult nsPluginHostImpl :: ReloadPlugins(PRBool reloadPages) return LoadPlugins(); } -//XXX need to find out score on this one... MMP nsresult nsPluginHostImpl :: UserAgent(const char **retstring) { - *retstring = (const char *)"Mozilla/5.0 [en] (Windows;I)"; - return NS_OK; + nsString ua; + nsINetService *service = nsnull; + + nsresult res = nsServiceManager::GetService(kNetServiceCID, + kINetServiceIID, + (nsISupports **)&service); + if ((NS_OK == res) && (nsnull != service)) { + res = service->GetUserAgent(ua); + if (NS_OK == res) + *retstring = ua.ToNewCString(); + else + *retstring = nsnull; + NS_RELEASE(service); + } + return res; } NS_IMETHODIMP nsPluginHostImpl :: GetURL(nsISupports* inst, const char* url, diff --git a/modules/plugin/nglsrc/nsPluginHostImpl.cpp b/modules/plugin/nglsrc/nsPluginHostImpl.cpp index 24120f41bc3e..fe1614b3c390 100644 --- a/modules/plugin/nglsrc/nsPluginHostImpl.cpp +++ b/modules/plugin/nglsrc/nsPluginHostImpl.cpp @@ -27,6 +27,8 @@ #include "nsIStreamListener.h" #include "nsIURL.h" #include "nsIInputStream.h" +#include "nsINetService.h" +#include "nsIServiceManager.h" #include "prprf.h" #include "gui.h" @@ -47,6 +49,8 @@ static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); static NS_DEFINE_IID(kIStreamListenerIID, NS_ISTREAMLISTENER_IID); static NS_DEFINE_IID(kIStreamObserverIID, NS_ISTREAMOBSERVER_IID); +static NS_DEFINE_IID(kINetServiceIID, NS_INETSERVICE_IID); +static NS_DEFINE_IID(kNetServiceCID, NS_NETSERVICE_CID); nsPluginTag :: nsPluginTag() { @@ -690,11 +694,23 @@ nsresult nsPluginHostImpl :: ReloadPlugins(PRBool reloadPages) return LoadPlugins(); } -//XXX need to find out score on this one... MMP nsresult nsPluginHostImpl :: UserAgent(const char **retstring) { - *retstring = (const char *)"Mozilla/5.0 [en] (Windows;I)"; - return NS_OK; + nsString ua; + nsINetService *service = nsnull; + + nsresult res = nsServiceManager::GetService(kNetServiceCID, + kINetServiceIID, + (nsISupports **)&service); + if ((NS_OK == res) && (nsnull != service)) { + res = service->GetUserAgent(ua); + if (NS_OK == res) + *retstring = ua.ToNewCString(); + else + *retstring = nsnull; + NS_RELEASE(service); + } + return res; } NS_IMETHODIMP nsPluginHostImpl :: GetURL(nsISupports* inst, const char* url,