HTML5 Desktop/Investigation: Difference between revisions
Appearance
imported>Evilissimo |
imported>Evilissimo |
||
| Line 2: | Line 2: | ||
= Javascript Bindings = | = Javascript Bindings = | ||
<pre>class MyV8Handler : public CefV8Handler { | |||
public: | |||
MyV8Handler(){} | |||
~MyV8Handler(){} | |||
virtual bool Execute(const CefString& name, | |||
CefRefPtr<CefV8Value> object, | |||
const CefV8ValueList& arguments, | |||
CefRefPtr<CefV8Value>& retval, | |||
CefString& exception) OVERRIDE { | |||
if( name == "getOSInfo" ) { | |||
retval = CefV8Value::CreateString(getOSInfo()); | |||
return true; | |||
} | |||
return false; | |||
} | |||
IMPLEMENT_REFCOUNTING(MyV8Handler); | |||
}; | |||
void InitMyJavascriptAPI(CefRefPtr<CefBrowser> browser, | |||
CefRefPtr<CefFrame> frame, | |||
CefRefPtr<CefV8Value> object) { | |||
// Create a new javascript object | |||
CefRefPtr<CefV8Value> myAPI = CefV8Value::CreateObject(NULL,NULL); | |||
// Make my new object accessible via window.myAPI | |||
object->SetValue("myAPI", myAPI, V8_PROPERTY_ATTRIBUTE_NONE); | |||
// Add stuff to myAPI | |||
// Readonly string property | |||
myAPI->SetValue("version", CefV8Value::CreateString("base48.cefclient 0.1"), V8_PROPERTY_ATTRIBUTE_READONLY ); | |||
// Binding a function | |||
CefRefPtr<CefV8Handler> handler = new MyV8Handler(); | |||
myAPI->SetValue("getOSInfo", CefV8Value::CreateFunction("getOSInfo", handler), V8_PROPERTY_ATTRIBUTE_NONE); | |||
}</pre> | |||
Revision as of 05:57, 27 March 2012
Javascript Bindings
class MyV8Handler : public CefV8Handler {
public:
MyV8Handler(){}
~MyV8Handler(){}
virtual bool Execute(const CefString& name,
CefRefPtr<CefV8Value> object,
const CefV8ValueList& arguments,
CefRefPtr<CefV8Value>& retval,
CefString& exception) OVERRIDE {
if( name == "getOSInfo" ) {
retval = CefV8Value::CreateString(getOSInfo());
return true;
}
return false;
}
IMPLEMENT_REFCOUNTING(MyV8Handler);
};
void InitMyJavascriptAPI(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefV8Value> object) {
// Create a new javascript object
CefRefPtr<CefV8Value> myAPI = CefV8Value::CreateObject(NULL,NULL);
// Make my new object accessible via window.myAPI
object->SetValue("myAPI", myAPI, V8_PROPERTY_ATTRIBUTE_NONE);
// Add stuff to myAPI
// Readonly string property
myAPI->SetValue("version", CefV8Value::CreateString("base48.cefclient 0.1"), V8_PROPERTY_ATTRIBUTE_READONLY );
// Binding a function
CefRefPtr<CefV8Handler> handler = new MyV8Handler();
myAPI->SetValue("getOSInfo", CefV8Value::CreateFunction("getOSInfo", handler), V8_PROPERTY_ATTRIBUTE_NONE);
}