Add JavaScript binding example to cefclient.
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@591 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
647c74cf96
commit
c7d9fb4abe
13
cef.gyp
13
cef.gyp
|
@ -862,6 +862,11 @@
|
||||||
# creation of binary releases easier.
|
# creation of binary releases easier.
|
||||||
'tests'
|
'tests'
|
||||||
],
|
],
|
||||||
|
'link_settings': {
|
||||||
|
'libraries': [
|
||||||
|
'$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
|
||||||
|
],
|
||||||
|
},
|
||||||
'sources': [
|
'sources': [
|
||||||
'<@(cefclient_sources_mac_helper)',
|
'<@(cefclient_sources_mac_helper)',
|
||||||
],
|
],
|
||||||
|
@ -907,14 +912,6 @@
|
||||||
'--keystone=0',
|
'--keystone=0',
|
||||||
'--svn=0'],
|
'--svn=0'],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
# Make sure there isn't any Objective-C in the helper app's
|
|
||||||
# executable.
|
|
||||||
'postbuild_name': 'Verify No Objective-C',
|
|
||||||
'action': [
|
|
||||||
'../build/mac/verify_no_objc.sh',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
}, # target cefclient_helper_app
|
}, # target cefclient_helper_app
|
||||||
{
|
{
|
||||||
|
|
|
@ -80,6 +80,8 @@
|
||||||
'cefclient_sources_common': [
|
'cefclient_sources_common': [
|
||||||
'tests/cefclient/cefclient.cpp',
|
'tests/cefclient/cefclient.cpp',
|
||||||
'tests/cefclient/cefclient.h',
|
'tests/cefclient/cefclient.h',
|
||||||
|
'tests/cefclient/binding_test.cpp',
|
||||||
|
'tests/cefclient/binding_test.h',
|
||||||
'tests/cefclient/client_app.cpp',
|
'tests/cefclient/client_app.cpp',
|
||||||
'tests/cefclient/client_app.h',
|
'tests/cefclient/client_app.h',
|
||||||
'tests/cefclient/client_app_delegates.cpp',
|
'tests/cefclient/client_app_delegates.cpp',
|
||||||
|
@ -114,7 +116,22 @@
|
||||||
'tests/cefclient/resource_util_mac.mm',
|
'tests/cefclient/resource_util_mac.mm',
|
||||||
],
|
],
|
||||||
'cefclient_sources_mac_helper': [
|
'cefclient_sources_mac_helper': [
|
||||||
|
'tests/cefclient/binding_test.cpp',
|
||||||
|
'tests/cefclient/binding_test.h',
|
||||||
|
'tests/cefclient/client_app.cpp',
|
||||||
|
'tests/cefclient/client_app.h',
|
||||||
|
'tests/cefclient/client_app_delegates.cpp',
|
||||||
|
'tests/cefclient/client_handler.cpp',
|
||||||
|
'tests/cefclient/client_handler.h',
|
||||||
|
'tests/cefclient/client_handler_mac.mm',
|
||||||
|
'tests/cefclient/client_switches.cpp',
|
||||||
|
'tests/cefclient/client_switches.h',
|
||||||
'tests/cefclient/process_helper_mac.cpp',
|
'tests/cefclient/process_helper_mac.cpp',
|
||||||
|
'tests/cefclient/resource_util.h',
|
||||||
|
'tests/cefclient/resource_util_mac.mm',
|
||||||
|
'tests/cefclient/string_util.cpp',
|
||||||
|
'tests/cefclient/string_util.h',
|
||||||
|
'tests/cefclient/util.h',
|
||||||
],
|
],
|
||||||
'cefclient_bundle_resources_mac': [
|
'cefclient_bundle_resources_mac': [
|
||||||
'tests/cefclient/mac/cefclient.icns',
|
'tests/cefclient/mac/cefclient.icns',
|
||||||
|
|
|
@ -35,7 +35,7 @@ class ProcessMessageDelegate : public ClientHandler::ProcessMessageDelegate {
|
||||||
std::string result;
|
std::string result;
|
||||||
|
|
||||||
CefRefPtr<CefListValue> args = message->GetArgumentList();
|
CefRefPtr<CefListValue> args = message->GetArgumentList();
|
||||||
if (args->GetSize() >= 0 && args->GetType(0) == VTYPE_STRING) {
|
if (args->GetSize() > 0 && args->GetType(0) == VTYPE_STRING) {
|
||||||
// Our result is a reverse of the original message.
|
// Our result is a reverse of the original message.
|
||||||
result = args->GetString(0);
|
result = args->GetString(0);
|
||||||
std::reverse(result.begin(), result.end());
|
std::reverse(result.begin(), result.end());
|
||||||
|
|
|
@ -11,8 +11,7 @@
|
||||||
#include "include/cef_process_message.h"
|
#include "include/cef_process_message.h"
|
||||||
#include "include/cef_task.h"
|
#include "include/cef_task.h"
|
||||||
#include "include/cef_v8.h"
|
#include "include/cef_v8.h"
|
||||||
|
#include "util.h" // NOLINT(build/include)
|
||||||
#include "base/logging.h"
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
|
@ -40,7 +39,7 @@ void SetListValue(CefRefPtr<CefListValue> list, int index,
|
||||||
|
|
||||||
// Transfer a V8 array to a List.
|
// Transfer a V8 array to a List.
|
||||||
void SetList(CefRefPtr<CefV8Value> source, CefRefPtr<CefListValue> target) {
|
void SetList(CefRefPtr<CefV8Value> source, CefRefPtr<CefListValue> target) {
|
||||||
DCHECK(source->IsArray());
|
ASSERT(source->IsArray());
|
||||||
|
|
||||||
int arg_length = source->GetArrayLength();
|
int arg_length = source->GetArrayLength();
|
||||||
if (arg_length == 0)
|
if (arg_length == 0)
|
||||||
|
@ -90,7 +89,7 @@ void SetListValue(CefRefPtr<CefV8Value> list, int index,
|
||||||
|
|
||||||
// Transfer a List to a V8 array.
|
// Transfer a List to a V8 array.
|
||||||
void SetList(CefRefPtr<CefListValue> source, CefRefPtr<CefV8Value> target) {
|
void SetList(CefRefPtr<CefListValue> source, CefRefPtr<CefV8Value> target) {
|
||||||
DCHECK(target->IsArray());
|
ASSERT(target->IsArray());
|
||||||
|
|
||||||
int arg_length = source->GetSize();
|
int arg_length = source->GetSize();
|
||||||
if (arg_length == 0)
|
if (arg_length == 0)
|
||||||
|
@ -121,7 +120,7 @@ class ClientAppExtensionHandler : public CefV8Handler {
|
||||||
arguments[0]->IsString()) {
|
arguments[0]->IsString()) {
|
||||||
CefRefPtr<CefBrowser> browser =
|
CefRefPtr<CefBrowser> browser =
|
||||||
CefV8Context::GetCurrentContext()->GetBrowser();
|
CefV8Context::GetCurrentContext()->GetBrowser();
|
||||||
DCHECK(browser.get());
|
ASSERT(browser.get());
|
||||||
|
|
||||||
CefString name = arguments[0]->GetStringValue();
|
CefString name = arguments[0]->GetStringValue();
|
||||||
if (!name.empty()) {
|
if (!name.empty()) {
|
||||||
|
@ -183,7 +182,7 @@ void ClientApp::SetMessageCallback(const std::string& message_name,
|
||||||
int browser_id,
|
int browser_id,
|
||||||
CefRefPtr<CefV8Context> context,
|
CefRefPtr<CefV8Context> context,
|
||||||
CefRefPtr<CefV8Value> function) {
|
CefRefPtr<CefV8Value> function) {
|
||||||
DCHECK(CefCurrentlyOn(TID_RENDERER));
|
ASSERT(CefCurrentlyOn(TID_RENDERER));
|
||||||
|
|
||||||
callback_map_.insert(
|
callback_map_.insert(
|
||||||
std::make_pair(std::make_pair(message_name, browser_id),
|
std::make_pair(std::make_pair(message_name, browser_id),
|
||||||
|
@ -192,7 +191,7 @@ void ClientApp::SetMessageCallback(const std::string& message_name,
|
||||||
|
|
||||||
bool ClientApp::RemoveMessageCallback(const std::string& message_name,
|
bool ClientApp::RemoveMessageCallback(const std::string& message_name,
|
||||||
int browser_id) {
|
int browser_id) {
|
||||||
DCHECK(CefCurrentlyOn(TID_RENDERER));
|
ASSERT(CefCurrentlyOn(TID_RENDERER));
|
||||||
|
|
||||||
CallbackMap::iterator it =
|
CallbackMap::iterator it =
|
||||||
callback_map_.find(std::make_pair(message_name, browser_id));
|
callback_map_.find(std::make_pair(message_name, browser_id));
|
||||||
|
@ -274,7 +273,7 @@ bool ClientApp::OnProcessMessageRecieved(
|
||||||
CefRefPtr<CefBrowser> browser,
|
CefRefPtr<CefBrowser> browser,
|
||||||
CefProcessId source_process,
|
CefProcessId source_process,
|
||||||
CefRefPtr<CefProcessMessage> message) {
|
CefRefPtr<CefProcessMessage> message) {
|
||||||
DCHECK(source_process == PID_BROWSER);
|
ASSERT(source_process == PID_BROWSER);
|
||||||
|
|
||||||
bool handled = false;
|
bool handled = false;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
// Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
|
||||||
|
// reserved. Use of this source code is governed by a BSD-style license that
|
||||||
|
// can be found in the LICENSE file.
|
||||||
|
|
||||||
|
#include "cefclient/client_app.h"
|
||||||
|
|
||||||
|
// static
|
||||||
|
void ClientApp::CreateRenderDelegates(RenderDelegateSet& delegates) {
|
||||||
|
}
|
|
@ -8,6 +8,15 @@
|
||||||
// a qualified path.
|
// a qualified path.
|
||||||
#include "client_app.h" // NOLINT(build/include)
|
#include "client_app.h" // NOLINT(build/include)
|
||||||
|
|
||||||
|
// Stub implementations.
|
||||||
|
std::string AppGetWorkingDirectory() {
|
||||||
|
return std::string();
|
||||||
|
}
|
||||||
|
CefWindowHandle AppGetMainHwnd() {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process entry point.
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
CefMainArgs main_args(argc, argv);
|
CefMainArgs main_args(argc, argv);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue