📄 mgjs_navigator.cpp
字号:
#include "mgjs_main.h"static JSBool GetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp);static JSBool SetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp);static JSBool NavigatorJavaEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);static JSBool NavigatorTaintEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);static JSBool NavigatorPreference (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);enum Navigator_slots { NAVIGATOR_APPCODENAME , NAVIGATOR_APPNAME , NAVIGATOR_APPVERSION , NAVIGATOR_LANGUAGE , NAVIGATOR_MIMETYPES , NAVIGATOR_PLATFORM , NAVIGATOR_OSCPU , NAVIGATOR_VENDOR , NAVIGATOR_VENDORSUB , NAVIGATOR_PRODUCT , NAVIGATOR_PRODUCTSUB , NAVIGATOR_PLUGINS , NAVIGATOR_SECURITYPOLICY , NAVIGATOR_USERAGENT , NAVIGATOR_COOKIEENABLED };static JSBool GetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp){ if (JSVAL_IS_INT(id)) { switch (JSVAL_TO_INT(id)) { case NAVIGATOR_APPCODENAME : break; case NAVIGATOR_APPNAME : break; case NAVIGATOR_APPVERSION : break; case NAVIGATOR_LANGUAGE : break; case NAVIGATOR_MIMETYPES : break; case NAVIGATOR_PLATFORM : break; case NAVIGATOR_OSCPU : break; case NAVIGATOR_VENDOR : break; case NAVIGATOR_VENDORSUB : break; case NAVIGATOR_PRODUCT : break; case NAVIGATOR_PRODUCTSUB : break; case NAVIGATOR_PLUGINS : break; case NAVIGATOR_SECURITYPOLICY : break; case NAVIGATOR_USERAGENT : break; case NAVIGATOR_COOKIEENABLED: break; } } return JS_TRUE;}static JSBool SetNavigatorProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp){ //NB:all properties are readonly#if 0 if (JSVAL_IS_INT(id)) { switch (JSVAL_TO_INT(id)) {#if 0 //NB:readonly property case NAVIGATOR_APPCODENAME : break; case NAVIGATOR_APPNAME : break; case NAVIGATOR_APPVERSION : break; case NAVIGATOR_LANGUAGE : break; case NAVIGATOR_MIMETYPES : break; case NAVIGATOR_PLATFORM : break; case NAVIGATOR_OSCPU : break; case NAVIGATOR_VENDOR : break; case NAVIGATOR_VENDORSUB : break; case NAVIGATOR_PRODUCT : break; case NAVIGATOR_PRODUCTSUB : break; case NAVIGATOR_PLUGINS : break; case NAVIGATOR_SECURITYPOLICY : break; case NAVIGATOR_USERAGENT : break; case NAVIGATOR_COOKIEENABLED: break;#endif } }#endif return JS_TRUE;} static JSBool NavigatorJavaEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){ //TODO: return JS_TRUE;}static JSBool NavigatorTaintEnabled (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){ //TODO: return JS_TRUE;}static JSBool NavigatorPreference (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){ //TODO: return JS_TRUE;}static JSPropertySpec NavigatorProperties[] ={ {"appCodeName", NAVIGATOR_APPCODENAME, JSPROP_ENUMERATE | JSPROP_READONLY}, {"appName", NAVIGATOR_APPNAME, JSPROP_ENUMERATE | JSPROP_READONLY}, {"appVersion", NAVIGATOR_APPVERSION, JSPROP_ENUMERATE | JSPROP_READONLY}, {"language", NAVIGATOR_LANGUAGE, JSPROP_ENUMERATE | JSPROP_READONLY}, {"mimeTypes", NAVIGATOR_MIMETYPES, JSPROP_ENUMERATE | JSPROP_READONLY}, {"platform", NAVIGATOR_PLATFORM, JSPROP_ENUMERATE | JSPROP_READONLY}, {"oscpu", NAVIGATOR_OSCPU, JSPROP_ENUMERATE | JSPROP_READONLY}, {"vendor", NAVIGATOR_VENDOR, JSPROP_ENUMERATE | JSPROP_READONLY}, {"vendorSub", NAVIGATOR_VENDORSUB, JSPROP_ENUMERATE | JSPROP_READONLY}, {"product", NAVIGATOR_PRODUCT, JSPROP_ENUMERATE | JSPROP_READONLY}, {"productSub", NAVIGATOR_PRODUCTSUB, JSPROP_ENUMERATE | JSPROP_READONLY}, {"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}};JSClass NavigatorClass = { "Navigator", JSCLASS_HAS_PRIVATE , JS_PropertyStub, JS_PropertyStub, GetNavigatorProperty, SetNavigatorProperty, JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub };//// Navigator class methods//static JSFunctionSpec NavigatorMethods[] = { {"javaEnabled", NavigatorJavaEnabled, 0}, {"taintEnabled", NavigatorTaintEnabled, 0}, {"preference", NavigatorPreference, 0}, {0}};JSObject* InitNavigatorClass(JSContext *cx,JSObject *globalObj,JSObject *proto){ JSObject *Obj; Obj = JS_DefineObject (cx,globalObj, "navigator", &NavigatorClass,proto,JSPROP_ENUMERATE); JS_DefineProperties (cx,Obj,NavigatorProperties); JS_DefineFunctions (cx,Obj,NavigatorMethods); return Obj;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -