From ee08f8fed8dcee978012c6c6d8528fe281c521fe Mon Sep 17 00:00:00 2001 From: "valeski%netscape.com" Date: Tue, 8 Feb 2000 06:22:21 +0000 Subject: [PATCH] 10465, r=vidur. navigator js now uses the new HTTP service of user agent components. git-svn-id: svn://10.0.0.236/trunk@60093 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/dom/src/base/nsGlobalWindow.cpp | 57 +++++++++++++++---------- mozilla/dom/src/base/nsGlobalWindow.h | 28 +----------- 2 files changed, 36 insertions(+), 49 deletions(-) diff --git a/mozilla/dom/src/base/nsGlobalWindow.cpp b/mozilla/dom/src/base/nsGlobalWindow.cpp index 408b9057173..929cefd5091 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.cpp +++ b/mozilla/dom/src/base/nsGlobalWindow.cpp @@ -79,7 +79,7 @@ #include "nsBarProps.h" #include "nsIScriptSecurityManager.h" #include "nsIJSContextStack.h" -#include "nsIIOService.h" +#include "nsIHTTPProtocolHandler.h" #include "nsIURL.h" #include "nsNetUtil.h" #include "nsRDFCID.h" @@ -89,7 +89,7 @@ #include "nsICharsetConverterManager.h" #include "nsEscape.h" -static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID); +static NS_DEFINE_CID(kHTTPHandlerCID, NS_IHTTPHANDLER_CID); #include "nsIJVMManager.h" @@ -3550,7 +3550,7 @@ NS_IMETHODIMP NavigatorImpl::GetUserAgent(nsString& aUserAgent) { nsresult res; - NS_WITH_SERVICE(nsIIOService, service, kIOServiceCID, &res); + NS_WITH_SERVICE(nsIHTTPProtocolHandler, service, kHTTPHandlerCID, &res); if (NS_SUCCEEDED(res) && (nsnull != service)) { PRUnichar *ua = nsnull; res = service->GetUserAgent(&ua); @@ -3565,10 +3565,10 @@ NS_IMETHODIMP NavigatorImpl::GetAppCodeName(nsString& aAppCodeName) { nsresult res; - NS_WITH_SERVICE(nsIIOService, service, kIOServiceCID, &res); + NS_WITH_SERVICE(nsIHTTPProtocolHandler, service, kHTTPHandlerCID, &res); if (NS_SUCCEEDED(res) && (nsnull != service)) { PRUnichar *appName = nsnull; - res = service->GetAppCodeName(&appName); + res = service->GetAppName(&appName); aAppCodeName = appName; Recycle(appName); } @@ -3580,12 +3580,29 @@ NS_IMETHODIMP NavigatorImpl::GetAppVersion(nsString& aAppVersion) { nsresult res; - NS_WITH_SERVICE(nsIIOService, service, kIOServiceCID, &res); + NS_WITH_SERVICE(nsIHTTPProtocolHandler, service, kHTTPHandlerCID, &res); if (NS_SUCCEEDED(res) && (nsnull != service)) { - PRUnichar *appVer = nsnull; - res = service->GetAppVersion(&appVer); - aAppVersion = appVer; - Recycle(appVer); + PRUnichar *str = nsnull; + res = service->GetAppVersion(&str); + aAppVersion = str; + Recycle(str); + + aAppVersion += " ("; + res = service->GetPlatform(&str); + if (NS_FAILED(res)) return res; + + aAppVersion += str; + Recycle(str); + + aAppVersion += "; "; + + res = service->GetLanguage(&str); + if (NS_FAILED(res)) return res; + + aAppVersion += str; + Recycle(str); + + aAppVersion += ')'; } return res; @@ -3594,23 +3611,19 @@ NavigatorImpl::GetAppVersion(nsString& aAppVersion) NS_IMETHODIMP NavigatorImpl::GetAppName(nsString& aAppName) { - nsresult res; - NS_WITH_SERVICE(nsIIOService, service, kIOServiceCID, &res); - if (NS_SUCCEEDED(res) && (nsnull != service)) { - PRUnichar *appName = nsnull; - res = service->GetAppName(&appName); - aAppName = appName; - Recycle(appName); - } - - return res; + // This is hardcoded for backwards compatibility reasons. + // Existing JS sniffers use this method to get "Netscape" out + // of our products. The internal semantics of our User Agent + // component implemetation do not include a "Netscape" string. + aAppName = "Netscape"; + return NS_OK; } NS_IMETHODIMP NavigatorImpl::GetLanguage(nsString& aLanguage) { nsresult res; - NS_WITH_SERVICE(nsIIOService, service, kIOServiceCID, &res); + NS_WITH_SERVICE(nsIHTTPProtocolHandler, service, kHTTPHandlerCID, &res); if (NS_SUCCEEDED(res) && (nsnull != service)) { PRUnichar *lang = nsnull; res = service->GetLanguage(&lang); @@ -3625,7 +3638,7 @@ NS_IMETHODIMP NavigatorImpl::GetPlatform(nsString& aPlatform) { nsresult res; - NS_WITH_SERVICE(nsIIOService, service, kIOServiceCID, &res); + NS_WITH_SERVICE(nsIHTTPProtocolHandler, service, kHTTPHandlerCID, &res); if (NS_SUCCEEDED(res) && (nsnull != service)) { PRUnichar *plat = nsnull; res = service->GetPlatform(&plat); diff --git a/mozilla/dom/src/base/nsGlobalWindow.h b/mozilla/dom/src/base/nsGlobalWindow.h index 9a291132902..45009c13bf7 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.h +++ b/mozilla/dom/src/base/nsGlobalWindow.h @@ -337,36 +337,10 @@ public: virtual ~NavigatorImpl(); NS_DECL_ISUPPORTS + NS_DECL_IDOMNAVIGATOR NS_IMETHOD GetScriptObject(nsIScriptContext *aContext, void** aScriptObject); NS_IMETHOD SetScriptObject(void *aScriptObject); - - NS_IMETHOD GetAppCodeName(nsString& aAppCodeName); - - NS_IMETHOD GetAppName(nsString& aAppName); - - NS_IMETHOD GetAppVersion(nsString& aAppVersion); - - NS_IMETHOD GetLanguage(nsString& aLanguage); - - NS_IMETHOD GetMimeTypes(nsIDOMMimeTypeArray** aMimeTypes); - - NS_IMETHOD GetPlatform(nsString& aPlatform); - - NS_IMETHOD GetPlugins(nsIDOMPluginArray** aPlugins); - - NS_IMETHOD GetSecurityPolicy(nsString& aSecurityPolicy); - - NS_IMETHOD GetUserAgent(nsString& aUserAgent); - - NS_IMETHOD GetCookieEnabled(PRBool* aCookieEnabled); - - NS_IMETHOD JavaEnabled(PRBool* aReturn); - - NS_IMETHOD TaintEnabled(PRBool* aReturn); - - NS_IMETHOD Preference(JSContext* cx, jsval* argv, PRUint32 argc, jsval* aReturn); - protected: void *mScriptObject; nsIDOMMimeTypeArray* mMimeTypes;