#include "atom_cef_render_process_handler.h" #import "native/v8_extensions/atom.h" #import "native/v8_extensions/native.h" #import "native/v8_extensions/onig_reg_exp.h" #include void AtomCefRenderProcessHandler::OnWebKitInitialized() { new v8_extensions::Atom(); new v8_extensions::Native(); new v8_extensions::OnigRegExp(); } void AtomCefRenderProcessHandler::OnContextCreated(CefRefPtr browser, CefRefPtr frame, CefRefPtr context) { #ifdef RESOURCE_PATH CefRefPtr resourcePath = CefV8Value::CreateString(RESOURCE_PATH); #else CefRefPtr resourcePath = CefV8Value::CreateString([[[NSBundle mainBundle] resourcePath] UTF8String]); #endif CefRefPtr global = context->GetGlobal(); CefRefPtr atom = global->GetValue("atom"); atom->SetValue("resourcePath", resourcePath, V8_PROPERTY_ATTRIBUTE_NONE); } bool AtomCefRenderProcessHandler::OnProcessMessageReceived(CefRefPtr browser, CefProcessId source_process, CefRefPtr message) { if (message->GetName().ToString() == "reload") { Reload(browser); } return true; } void AtomCefRenderProcessHandler::Reload(CefRefPtr browser) { CefRefPtr context = browser->GetMainFrame()->GetV8Context(); CefRefPtr global = context->GetGlobal(); context->Enter(); CefV8ValueList arguments; CefRefPtr reloadFunction = global->GetValue("reload"); // reloadFunction->ExecuteFunction(global, arguments); // if (reloadFunction->HasException()) { browser->ReloadIgnoreCache(); // } context->Exit(); }