Fix for bug 16787. Added navigator.cookieEnabled. Removed warnings. a=don r=waqar

git-svn-id: svn://10.0.0.236/trunk@56440 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
vidur%netscape.com 1999-12-22 22:42:06 +00:00
parent f63819bccf
commit c5ff7d0ca4
6 changed files with 46 additions and 3 deletions

View File

@ -58,6 +58,8 @@ public:
NS_IMETHOD GetUserAgent(nsString& aUserAgent)=0;
NS_IMETHOD GetCookieEnabled(PRBool* aCookieEnabled)=0;
NS_IMETHOD JavaEnabled(PRBool* aReturn)=0;
NS_IMETHOD TaintEnabled(PRBool* aReturn)=0;
@ -76,6 +78,7 @@ public:
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); \
@ -92,6 +95,7 @@ public:
NS_IMETHOD GetPlugins(nsIDOMPluginArray** aPlugins) { return _to GetPlugins(aPlugins); } \
NS_IMETHOD GetSecurityPolicy(nsString& aSecurityPolicy) { return _to GetSecurityPolicy(aSecurityPolicy); } \
NS_IMETHOD GetUserAgent(nsString& aUserAgent) { return _to GetUserAgent(aUserAgent); } \
NS_IMETHOD GetCookieEnabled(PRBool* aCookieEnabled) { return _to GetCookieEnabled(aCookieEnabled); } \
NS_IMETHOD JavaEnabled(PRBool* aReturn) { return _to JavaEnabled(aReturn); } \
NS_IMETHOD TaintEnabled(PRBool* aReturn) { return _to TaintEnabled(aReturn); } \
NS_IMETHOD Preference(JSContext* cx, jsval* argv, PRUint32 argc, jsval* aReturn) { return _to Preference(cx, argv, argc, aReturn); } \

View File

@ -11,6 +11,7 @@ interface Navigator {
readonly attribute PluginArray plugins;
readonly attribute DOMString securityPolicy;
readonly attribute DOMString userAgent;
readonly attribute boolean cookieEnabled;
boolean javaEnabled();
boolean taintEnabled();

View File

@ -638,6 +638,7 @@ enum nsDOMProp {
NS_DOM_PROP_NAVIGATOR_APPCODENAME,
NS_DOM_PROP_NAVIGATOR_APPNAME,
NS_DOM_PROP_NAVIGATOR_APPVERSION,
NS_DOM_PROP_NAVIGATOR_COOKIEENABLED,
NS_DOM_PROP_NAVIGATOR_JAVAENABLED,
NS_DOM_PROP_NAVIGATOR_LANGUAGE,
NS_DOM_PROP_NAVIGATOR_MIMETYPES,

View File

@ -84,6 +84,7 @@
#include "nsRDFCID.h"
#include "nsDOMPropEnums.h"
#include "nsXPIDLString.h"
#include "nsICookieService.h"
static NS_DEFINE_CID(kIOServiceCID, NS_IOSERVICE_CID);
#include "nsIJVMManager.h"
@ -118,6 +119,7 @@ static NS_DEFINE_IID(kIDOMAbstractViewIID, NS_IDOMABSTRACTVIEW_IID);
static NS_DEFINE_IID(kIPrefIID, NS_IPREF_IID);
static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID);
static NS_DEFINE_IID(kCookieServiceCID, NS_COOKIESERVICE_CID);
static NS_DEFINE_CID(kXULControllersCID, NS_XULCONTROLLERS_CID);
@ -1178,7 +1180,6 @@ GlobalWindowImpl::Dump(const nsString& aStr)
NS_IMETHODIMP
GlobalWindowImpl::Alert(JSContext *cx, jsval *argv, PRUint32 argc)
{
nsresult ret = NS_OK;
nsAutoString str;
NS_ENSURE_STATE(mWebShell);
@ -1211,7 +1212,6 @@ GlobalWindowImpl::Alert(JSContext *cx, jsval *argv, PRUint32 argc)
NS_IMETHODIMP
GlobalWindowImpl::Confirm(JSContext *cx, jsval *argv, PRUint32 argc, PRBool* aReturn)
{
nsresult ret = NS_OK;
nsAutoString str;
*aReturn = PR_FALSE;
@ -3418,6 +3418,21 @@ NavigatorImpl::GetPlugins(nsIDOMPluginArray** aPlugins)
return NS_OK;
}
NS_IMETHODIMP
NavigatorImpl::GetCookieEnabled(PRBool* aCookieEnabled)
{
nsresult rv = NS_OK;
*aCookieEnabled = PR_FALSE;
NS_WITH_SERVICE(nsICookieService, service, kCookieServiceCID, &rv);
if (NS_FAILED(rv) || service == nsnull) {
return rv;
}
return service->CookieEnabled(aCookieEnabled);
}
NS_IMETHODIMP
NavigatorImpl::JavaEnabled(PRBool* aReturn)
{

View File

@ -359,6 +359,8 @@ public:
NS_IMETHOD GetUserAgent(nsString& aUserAgent);
NS_IMETHOD GetCookieEnabled(PRBool* aCookieEnabled);
NS_IMETHOD JavaEnabled(PRBool* aReturn);
NS_IMETHOD TaintEnabled(PRBool* aReturn);

View File

@ -58,7 +58,8 @@ enum Navigator_slots {
NAVIGATOR_PLATFORM = -6,
NAVIGATOR_PLUGINS = -7,
NAVIGATOR_SECURITYPOLICY = -8,
NAVIGATOR_USERAGENT = -9
NAVIGATOR_USERAGENT = -9,
NAVIGATOR_COOKIEENABLED = -10
};
/***********************************************************************/
@ -247,6 +248,24 @@ GetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
}
break;
}
case NAVIGATOR_COOKIEENABLED:
{
PRBool ok = PR_FALSE;
secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_NAVIGATOR_COOKIEENABLED, PR_FALSE, &ok);
if (!ok) {
return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_SECURITY_ERR);
}
PRBool prop;
nsresult result = NS_OK;
result = a->GetCookieEnabled(&prop);
if (NS_SUCCEEDED(result)) {
*vp = BOOLEAN_TO_JSVAL(prop);
}
else {
return nsJSUtils::nsReportError(cx, obj, result);
}
break;
}
default:
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, obj, id, vp);
}
@ -490,6 +509,7 @@ static JSPropertySpec NavigatorProperties[] =
{"plugins", NAVIGATOR_PLUGINS, JSPROP_ENUMERATE | JSPROP_READONLY},
{"securityPolicy", NAVIGATOR_SECURITYPOLICY, JSPROP_ENUMERATE | JSPROP_READONLY},
{"userAgent", NAVIGATOR_USERAGENT, JSPROP_ENUMERATE | JSPROP_READONLY},
{"cookieEnabled", NAVIGATOR_COOKIEENABLED, JSPROP_ENUMERATE | JSPROP_READONLY},
{0}
};