mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Break out AtomCefRenderProcessHandler so it's only included in the helper app
This means that none of the extension code has to be compiled into the browser app, which just seems cleaner.
This commit is contained in:
10
atom.gyp
10
atom.gyp
@@ -59,7 +59,6 @@
|
||||
'native/atom_application.h',
|
||||
'native/atom_application.mm',
|
||||
'native/atom_cef_app.h',
|
||||
'native/atom_cef_app.mm',
|
||||
'native/atom_window_controller.h',
|
||||
'native/atom_window_controller.mm',
|
||||
'native/atom_cef_client_mac.mm',
|
||||
@@ -68,12 +67,6 @@
|
||||
'native/util.h',
|
||||
'native/path_watcher.mm',
|
||||
'native/path_watcher.h',
|
||||
'native/v8_extensions/native.mm',
|
||||
'native/v8_extensions/native.h',
|
||||
'native/v8_extensions/onig_reg_exp.mm',
|
||||
'native/v8_extensions/onig_reg_exp.h',
|
||||
'native/v8_extensions/atom.mm',
|
||||
'native/v8_extensions/atom.h',
|
||||
],
|
||||
'mac_bundle_resources': [
|
||||
'native/mac/atom.icns',
|
||||
@@ -284,7 +277,8 @@
|
||||
'libraries': [ 'native/frameworks/CocoaOniguruma.framework' ],
|
||||
'sources': [
|
||||
'native/atom_cef_app.h',
|
||||
'native/atom_cef_app.mm',
|
||||
'native/atom_cef_render_process_handler.h',
|
||||
'native/atom_cef_render_process_handler.mm',
|
||||
'native/process_helper_mac.cpp',
|
||||
'native/util.h',
|
||||
'native/path_watcher.mm',
|
||||
|
||||
@@ -4,22 +4,21 @@
|
||||
|
||||
#include "include/cef_app.h"
|
||||
|
||||
class AtomCefApp : public CefApp,
|
||||
public CefRenderProcessHandler {
|
||||
#ifdef PROCESS_HELPER_APP
|
||||
#include "atom_cef_render_process_handler.h"
|
||||
#endif
|
||||
|
||||
class AtomCefApp : public CefApp {
|
||||
|
||||
// CefApp methods
|
||||
virtual CefRefPtr<CefRenderProcessHandler> GetRenderProcessHandler() OVERRIDE { return this; }
|
||||
// CefRenderProcessHandler methods
|
||||
virtual void OnWebKitInitialized() OVERRIDE;
|
||||
virtual void OnContextCreated(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefV8Context> context) OVERRIDE;
|
||||
virtual bool OnProcessMessageReceived(CefRefPtr<CefBrowser> browser,
|
||||
CefProcessId source_process,
|
||||
CefRefPtr<CefProcessMessage> message) OVERRIDE;
|
||||
|
||||
void Reload(CefRefPtr<CefBrowser> browser);
|
||||
|
||||
virtual CefRefPtr<CefRenderProcessHandler> GetRenderProcessHandler() OVERRIDE {
|
||||
#ifdef PROCESS_HELPER_APP
|
||||
return CefRefPtr<CefRenderProcessHandler>(new AtomCefRenderProcessHandler);
|
||||
#else
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
IMPLEMENT_REFCOUNTING(AtomCefApp);
|
||||
};
|
||||
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
#include "atom_cef_app.h"
|
||||
#import "native/v8_extensions/atom.h"
|
||||
#import "native/v8_extensions/native.h"
|
||||
#import "native/v8_extensions/onig_reg_exp.h"
|
||||
#include <iostream>
|
||||
|
||||
void AtomCefApp::OnWebKitInitialized() {
|
||||
new v8_extensions::Atom();
|
||||
new v8_extensions::Native();
|
||||
new v8_extensions::OnigRegExp();
|
||||
}
|
||||
|
||||
void AtomCefApp::OnContextCreated(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefV8Context> context) {
|
||||
#ifdef RESOURCE_PATH
|
||||
CefRefPtr<CefV8Value> resourcePath = CefV8Value::CreateString(RESOURCE_PATH);
|
||||
#else
|
||||
CefRefPtr<CefV8Value> resourcePath = CefV8Value::CreateString([[[NSBundle mainBundle] resourcePath] UTF8String]);
|
||||
#endif
|
||||
|
||||
CefRefPtr<CefV8Value> global = context->GetGlobal();
|
||||
CefRefPtr<CefV8Value> atom = global->GetValue("atom");
|
||||
atom->SetValue("resourcePath", resourcePath, V8_PROPERTY_ATTRIBUTE_NONE);
|
||||
}
|
||||
|
||||
bool AtomCefApp::OnProcessMessageReceived(CefRefPtr<CefBrowser> browser,
|
||||
CefProcessId source_process,
|
||||
CefRefPtr<CefProcessMessage> message) {
|
||||
if (message->GetName().ToString() == "reload") {
|
||||
Reload(browser);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void AtomCefApp::Reload(CefRefPtr<CefBrowser> browser) {
|
||||
CefRefPtr<CefV8Context> context = browser->GetMainFrame()->GetV8Context();
|
||||
CefRefPtr<CefV8Value> global = context->GetGlobal();
|
||||
|
||||
context->Enter();
|
||||
CefV8ValueList arguments;
|
||||
|
||||
CefRefPtr<CefV8Value> reloadFunction = global->GetValue("reload");
|
||||
// reloadFunction->ExecuteFunction(global, arguments);
|
||||
// if (reloadFunction->HasException()) {
|
||||
browser->ReloadIgnoreCache();
|
||||
// }
|
||||
context->Exit();
|
||||
}
|
||||
23
native/atom_cef_render_process_handler.h
Normal file
23
native/atom_cef_render_process_handler.h
Normal file
@@ -0,0 +1,23 @@
|
||||
#ifndef ATOM_CEF_RENDER_PROCESS_HANDLER_H_
|
||||
#define ATOM_CEF_RENDER_PROCESS_HANDLER_H_
|
||||
#pragma once
|
||||
|
||||
#include "include/cef_app.h"
|
||||
|
||||
class AtomCefRenderProcessHandler : public CefRenderProcessHandler {
|
||||
|
||||
virtual void OnWebKitInitialized() OVERRIDE;
|
||||
virtual void OnContextCreated(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefV8Context> context) OVERRIDE;
|
||||
virtual bool OnProcessMessageReceived(CefRefPtr<CefBrowser> browser,
|
||||
CefProcessId source_process,
|
||||
CefRefPtr<CefProcessMessage> message) OVERRIDE;
|
||||
|
||||
void Reload(CefRefPtr<CefBrowser> browser);
|
||||
|
||||
IMPLEMENT_REFCOUNTING(AtomCefRenderProcessHandler);
|
||||
};
|
||||
|
||||
#endif // ATOM_CEF_RENDER_PROCESS_HANDLER_H_
|
||||
|
||||
50
native/atom_cef_render_process_handler.mm
Normal file
50
native/atom_cef_render_process_handler.mm
Normal file
@@ -0,0 +1,50 @@
|
||||
#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 <iostream>
|
||||
|
||||
void AtomCefRenderProcessHandler::OnWebKitInitialized() {
|
||||
new v8_extensions::Atom();
|
||||
new v8_extensions::Native();
|
||||
new v8_extensions::OnigRegExp();
|
||||
}
|
||||
|
||||
void AtomCefRenderProcessHandler::OnContextCreated(CefRefPtr<CefBrowser> browser,
|
||||
CefRefPtr<CefFrame> frame,
|
||||
CefRefPtr<CefV8Context> context) {
|
||||
#ifdef RESOURCE_PATH
|
||||
CefRefPtr<CefV8Value> resourcePath = CefV8Value::CreateString(RESOURCE_PATH);
|
||||
#else
|
||||
CefRefPtr<CefV8Value> resourcePath = CefV8Value::CreateString([[[NSBundle mainBundle] resourcePath] UTF8String]);
|
||||
#endif
|
||||
|
||||
CefRefPtr<CefV8Value> global = context->GetGlobal();
|
||||
CefRefPtr<CefV8Value> atom = global->GetValue("atom");
|
||||
atom->SetValue("resourcePath", resourcePath, V8_PROPERTY_ATTRIBUTE_NONE);
|
||||
}
|
||||
|
||||
bool AtomCefRenderProcessHandler::OnProcessMessageReceived(CefRefPtr<CefBrowser> browser,
|
||||
CefProcessId source_process,
|
||||
CefRefPtr<CefProcessMessage> message) {
|
||||
if (message->GetName().ToString() == "reload") {
|
||||
Reload(browser);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void AtomCefRenderProcessHandler::Reload(CefRefPtr<CefBrowser> browser) {
|
||||
CefRefPtr<CefV8Context> context = browser->GetMainFrame()->GetV8Context();
|
||||
CefRefPtr<CefV8Value> global = context->GetGlobal();
|
||||
|
||||
context->Enter();
|
||||
CefV8ValueList arguments;
|
||||
|
||||
CefRefPtr<CefV8Value> reloadFunction = global->GetValue("reload");
|
||||
// reloadFunction->ExecuteFunction(global, arguments);
|
||||
// if (reloadFunction->HasException()) {
|
||||
browser->ReloadIgnoreCache();
|
||||
// }
|
||||
context->Exit();
|
||||
}
|
||||
Reference in New Issue
Block a user