Reloading page resets JS env

This commit is contained in:
Corey Johnson 2012-02-28 11:36:45 -08:00
parent b0c5cd6bb3
commit 5ac7088423
3 changed files with 13 additions and 5 deletions

View File

@ -17,6 +17,7 @@ class ClientHandler;
- (void)createBrowser;
- (void)afterCreated:(CefRefPtr<CefBrowser>) browser;
- (void)loadStart:(CefRefPtr<CefBrowser>) browser;
@property (nonatomic, retain) IBOutlet NSView *webView;

View File

@ -48,23 +48,25 @@
}
- (void)afterCreated:(CefRefPtr<CefBrowser>) browser {
browser->ShowDevTools();
browser->ShowDevTools();
}
- (void)loadStart:(CefRefPtr<CefBrowser>) browser {
CefRefPtr<CefFrame> frame = browser->GetMainFrame();
CefRefPtr<CefV8Context> context = frame->GetV8Context();
CefRefPtr<CefV8Value> global = context->GetGlobal();
context->Enter();
global->SetValue("$app", _appContext->GetGlobal(), V8_PROPERTY_ATTRIBUTE_NONE);
CefRefPtr<CefV8Value> bootstrapScript = CefV8Value::CreateString([_bootstrapScript UTF8String]);
global->SetValue("$bootstrapScript", bootstrapScript, V8_PROPERTY_ATTRIBUTE_NONE);
CefRefPtr<CefV8Value> pathToOpen = CefV8Value::CreateString("~/");
global->SetValue("$pathToOpen", pathToOpen, V8_PROPERTY_ATTRIBUTE_NONE);
// $atom
global->SetValue("$app", _appContext->GetGlobal(), V8_PROPERTY_ATTRIBUTE_NONE);
CefRefPtr<CefV8Value> atom = CefV8Value::CreateObject(NULL);
CefRefPtr<CefV8Value> loadPath = CefV8Value::CreateString(PROJECT_DIR);
atom->SetValue("loadPath", loadPath, V8_PROPERTY_ATTRIBUTE_NONE);

View File

@ -70,6 +70,11 @@ void ClientHandler::OnLoadStart(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame)
{
REQUIRE_UI_THREAD();
if ([m_delegate respondsToSelector:@selector(loadStart:)]) {
[m_delegate loadStart:browser];
}
}
void ClientHandler::OnLoadEnd(CefRefPtr<CefBrowser> browser,