[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/2php/cefpython/cefpython57/src/client_handler/client_handler.cpp [Back]  [Original]

// Copyright (c) 2012 CEF Python, see the Authors file.
// All rights reserved. Licensed under BSD 3-clause license.
// Project website: https://github.com/cztomczak/cefpython

// NOTE: clienthandler code is running only in the BROWSER PROCESS.
//       cefpythonapp code is running in both BROWSER PROCESS and subprocess
//       (see the subprocess/ directory).

#include "client_handler.h"
#include "common/cefpython_public_api.h"
#include "include/base/cef_logging.h"

#if defined(OS_WIN)
#include 
#pragma comment(lib, "Shell32.lib")
#include "dpi_aware.h"
#elif defined(OS_LINUX)
#include 
#include 
#endif // OS_WIN


// ----------------------------------------------------------------------------
// CefClient
// ----------------------------------------------------------------------------


bool ClientHandler::OnProcessMessageReceived(
                                        CefRefPtr browser,
                                        CefProcessId source_process,
                                        CefRefPtr message)
{
    if (source_process != PID_RENDERER) {
        return false;
    }
    std::string messageName = message->GetName().ToString();
    std::string logMessage = "[Browser process] OnProcessMessageReceived(): ";
    logMessage.append(messageName.c_str());
    LOG(INFO) GetArgumentList();
        if (arguments->GetSize() == 1 && arguments->GetType(0) == VTYPE_INT) {
            int64 frameId = arguments->GetInt(0);
            CefRefPtr frame = browser->GetFrame(frameId);
            V8ContextHandler_OnContextCreated(browser, frame);
            return true;
        } else {
            LOG(ERROR) GetArgumentList();
        if (arguments->GetSize() == 2 \
                && arguments->GetType(0) == VTYPE_INT \
                && arguments->GetType(1) == VTYPE_INT) {
            int browserId = arguments->GetInt(0);
            int64 frameId = arguments->GetInt(1);
            V8ContextHandler_OnContextReleased(browserId, frameId);
            return true;
        } else {
            LOG(ERROR) GetArgumentList();
        if (arguments->GetSize() == 3
                    // frameId
                    && arguments->GetType(0) == VTYPE_INT
                    // functionName
                    && arguments->GetType(1) == VTYPE_STRING
                    // functionArguments
                    && arguments->GetType(2) == VTYPE_LIST) {
            int64 frameId = arguments->GetInt(0);
            CefString functionName = arguments->GetString(1);
            CefRefPtr functionArguments = arguments->GetList(2);
            CefRefPtr frame = browser->GetFrame(frameId);
            V8FunctionHandler_Execute(browser, frame, functionName,
                                      functionArguments);
            return true;
        } else {
            LOG(ERROR) GetArgumentList();
        if (arguments->GetSize() == 2
                && arguments->GetType(0) == VTYPE_INT // callbackId
                && arguments->GetType(1) == VTYPE_LIST) { // functionArguments
            int callbackId = arguments->GetInt(0);
            CefRefPtr functionArguments = arguments->GetList(1);
            ExecutePythonCallback(browser, callbackId, functionArguments);
            return true;
        } else {
            LOG(ERROR) GetArgumentList();
        if (arguments->GetSize() == 1 && arguments->GetType(0) == VTYPE_INT) {
            int frameId = arguments->GetInt(0);
            RemovePythonCallbacksForFrame(frameId);
            return true;
        } else {
            LOG(ERROR) 

Web Proxy Viewer  |  New URL  |  Original Page