Put the other v8 extensions in the v8_extensions namespace

This commit is contained in:
Nathan Sobo 2012-08-28 11:16:27 -05:00
parent 76b8f42bb7
commit a4a87917ba
5 changed files with 38 additions and 24 deletions

View File

@ -6,8 +6,8 @@
void AtomCefApp::OnWebKitInitialized() {
new v8_extensions::Atom();
new NativeHandler();
new OnigRegexpExtension();
new v8_extensions::Native();
new v8_extensions::OnigRegExp();
}
void AtomCefApp::OnContextCreated(CefRefPtr<CefBrowser> browser,

View File

@ -2,12 +2,13 @@
#import "include/cef_base.h"
#import "include/cef_v8.h"
class NativeHandler : public CefV8Handler {
namespace v8_extensions {
class Native : public CefV8Handler {
public:
NativeHandler();
CefRefPtr<CefV8Value> m_object;
Native();
virtual bool Execute(const CefString& name,
CefRefPtr<CefV8Value> object,
const CefV8ValueList& arguments,
@ -15,5 +16,7 @@ public:
CefString& exception) OVERRIDE;
// Provide the reference counting implementation for this class.
IMPLEMENT_REFCOUNTING(NativeHandler);
IMPLEMENT_REFCOUNTING(Native);
};
}

View File

@ -9,6 +9,8 @@
#import <iostream>
namespace v8_extensions {
NSString *stringFromCefV8Value(const CefRefPtr<CefV8Value>& value) {
std::string cc_value = value->GetStringValue().ToString();
return [NSString stringWithUTF8String:cc_value.c_str()];
@ -24,13 +26,13 @@ void throwException(const CefRefPtr<CefV8Value>& global, CefRefPtr<CefV8Exceptio
console->GetValue("error")->ExecuteFunction(console, arguments);
}
NativeHandler::NativeHandler() : CefV8Handler() {
Native::Native() : CefV8Handler() {
NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"v8_extensions/native.js"];
NSString *extensionCode = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
CefRegisterExtension("v8/native", [extensionCode UTF8String], this);
}
bool NativeHandler::Execute(const CefString& name,
bool Native::Execute(const CefString& name,
CefRefPtr<CefV8Value> object,
const CefV8ValueList& arguments,
CefRefPtr<CefV8Value>& retval,
@ -474,4 +476,6 @@ bool NativeHandler::Execute(const CefString& name,
return true;
}
return false;
};
};
} // namespace v8_extensions

View File

@ -2,9 +2,11 @@
#import "include/cef_base.h"
#import "include/cef_v8.h"
class OnigRegexpExtension : public CefV8Handler {
namespace v8_extensions {
class OnigRegExp : public CefV8Handler {
public:
OnigRegexpExtension();
OnigRegExp();
virtual bool Execute(const CefString& name,
CefRefPtr<CefV8Value> object,
@ -13,5 +15,7 @@ public:
CefString& exception) OVERRIDE;
// Provide the reference counting implementation for this class.
IMPLEMENT_REFCOUNTING(OnigRegexpExtension);
IMPLEMENT_REFCOUNTING(OnigRegExp);
};
}

View File

@ -5,16 +5,18 @@
#import "include/cef_v8.h"
#import "onig_reg_exp.h"
namespace v8_extensions {
extern NSString *stringFromCefV8Value(const CefRefPtr<CefV8Value>& value);
class OnigRegexpUserData : public CefBase {
class OnigRegExpUserData : public CefBase {
public:
OnigRegexpUserData(CefRefPtr<CefV8Value> source) {
OnigRegExpUserData(CefRefPtr<CefV8Value> source) {
NSString *sourceString = [NSString stringWithUTF8String:source->GetStringValue().ToString().c_str()];
m_regex = [[OnigRegexp compile:sourceString] retain];
}
~OnigRegexpUserData() {
~OnigRegExpUserData() {
[m_regex release];
}
@ -74,13 +76,13 @@ public:
IMPLEMENT_REFCOUNTING(OnigRegexpUserData);
};
OnigRegexpExtension::OnigRegexpExtension() : CefV8Handler() {
OnigRegExp::OnigRegExp() : CefV8Handler() {
NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"v8_extensions/onig_reg_exp.js"];
NSString *extensionCode = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
CefRegisterExtension("v8/onig-reg-exp", [extensionCode UTF8String], this);
}
bool OnigRegexpExtension::Execute(const CefString& name,
bool OnigRegExp::Execute(const CefString& name,
CefRefPtr<CefV8Value> object,
const CefV8ValueList& arguments,
CefRefPtr<CefV8Value>& retval,
@ -89,32 +91,32 @@ bool OnigRegexpExtension::Execute(const CefString& name,
if (name == "getCaptureIndices") {
CefRefPtr<CefV8Value> string = arguments[0];
CefRefPtr<CefV8Value> index = arguments.size() > 1 ? arguments[1] : CefV8Value::CreateInt(0);
OnigRegexpUserData *userData = (OnigRegexpUserData *)object->GetUserData().get();
OnigRegExpUserData *userData = (OnigRegExpUserData *)object->GetUserData().get();
retval = userData->GetCaptureIndices(string, index);
return true;
}
else if (name == "search") {
CefRefPtr<CefV8Value> string = arguments[0];
CefRefPtr<CefV8Value> index = arguments.size() > 1 ? arguments[1] : CefV8Value::CreateInt(0);
OnigRegexpUserData *userData = (OnigRegexpUserData *)object->GetUserData().get();
OnigRegExpUserData *userData = (OnigRegExpUserData *)object->GetUserData().get();
retval = userData->Search(string, index);
return true;
}
else if (name == "test") {
CefRefPtr<CefV8Value> string = arguments[0];
CefRefPtr<CefV8Value> index = arguments.size() > 1 ? arguments[1] : CefV8Value::CreateInt(0);
OnigRegexpUserData *userData = (OnigRegexpUserData *)object->GetUserData().get();
OnigRegExpUserData *userData = (OnigRegExpUserData *)object->GetUserData().get();
retval = userData->Test(string, index);
return true;
}
else if (name == "buildOnigRegExp") {
CefRefPtr<CefBase> userData = new OnigRegexpUserData(arguments[0]);
CefRefPtr<CefBase> userData = new OnigRegExpUserData(arguments[0]);
retval = CefV8Value::CreateObject(NULL);
retval->SetUserData(userData);
return true;
}
else if (name == "getCaptureCount") {
OnigRegexpUserData *userData = (OnigRegexpUserData *)object->GetUserData().get();
OnigRegExpUserData *userData = (OnigRegExpUserData *)object->GetUserData().get();
retval = userData->CaptureCount();
return true;
}
@ -122,3 +124,4 @@ bool OnigRegexpExtension::Execute(const CefString& name,
return false;
}
} // namespace v8_extensions