// Copyright (c) 2013 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. #ifndef CEF_TESTS_SHARED_RENDERER_CLIENT_APP_RENDERER_H_ #define CEF_TESTS_SHARED_RENDERER_CLIENT_APP_RENDERER_H_ #pragma once #include #include "tests/shared/common/client_app.h" namespace client { // Client app implementation for the renderer process. class ClientAppRenderer : public ClientApp, public CefRenderProcessHandler { public: // Interface for renderer delegates. All Delegates must be returned via // CreateDelegates. Do not perform work in the Delegate // constructor. See CefRenderProcessHandler for documentation. class Delegate : public virtual CefBaseRefCounted { public: virtual void OnWebKitInitialized(CefRefPtr app) {} virtual void OnBrowserCreated(CefRefPtr app, CefRefPtr browser, CefRefPtr extra_info) {} virtual void OnBrowserDestroyed(CefRefPtr app, CefRefPtr browser) {} virtual CefRefPtr GetLoadHandler( CefRefPtr app) { return nullptr; } virtual void OnContextCreated(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr context) {} virtual void OnContextReleased(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr context) {} virtual void OnUncaughtException(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr context, CefRefPtr exception, CefRefPtr stackTrace) {} virtual void OnFocusedNodeChanged(CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefRefPtr node) {} // Called when a process message is received. Return true if the message was // handled and should not be passed on to other handlers. Delegates // should check for unique message names to avoid interfering with each // other. virtual bool OnProcessMessageReceived( CefRefPtr app, CefRefPtr browser, CefRefPtr frame, CefProcessId source_process, CefRefPtr message) { return false; } }; typedef std::set> DelegateSet; ClientAppRenderer(); private: // Creates all of the Delegate objects. Implemented by cefclient in // client_app_delegates_renderer.cc static void CreateDelegates(DelegateSet& delegates); // CefApp methods. CefRefPtr GetRenderProcessHandler() override { return this; } // CefRenderProcessHandler methods. void OnWebKitInitialized() override; void OnBrowserCreated(CefRefPtr browser, CefRefPtr extra_info) override; void OnBrowserDestroyed(CefRefPtr browser) override; CefRefPtr GetLoadHandler() override; void OnContextCreated(CefRefPtr browser, CefRefPtr frame, CefRefPtr context) override; void OnContextReleased(CefRefPtr browser, CefRefPtr frame, CefRefPtr context) override; void OnUncaughtException(CefRefPtr browser, CefRefPtr frame, CefRefPtr context, CefRefPtr exception, CefRefPtr stackTrace) override; void OnFocusedNodeChanged(CefRefPtr browser, CefRefPtr frame, CefRefPtr node) override; bool OnProcessMessageReceived(CefRefPtr browser, CefRefPtr frame, CefProcessId source_process, CefRefPtr message) override; private: // Set of supported Delegates. DelegateSet delegates_; IMPLEMENT_REFCOUNTING(ClientAppRenderer); DISALLOW_COPY_AND_ASSIGN(ClientAppRenderer); }; } // namespace client #endif // CEF_TESTS_SHARED_RENDERER_CLIENT_APP_RENDERER_H_