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:
parent
f63819bccf
commit
c5ff7d0ca4
@ -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); } \
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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}
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user