// 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_BROWSER_CLIENT_APP_BROWSER_H_ #define CEF_TESTS_SHARED_BROWSER_CLIENT_APP_BROWSER_H_ #pragma once #include #include "tests/shared/common/client_app.h" namespace client { // Client app implementation for the browser process. class ClientAppBrowser : public ClientApp, public CefBrowserProcessHandler { public: // Interface for browser delegates. All Delegates must be returned via // CreateDelegates. Do not perform work in the Delegate // constructor. See CefBrowserProcessHandler for documentation. class Delegate : public virtual CefBase { public: virtual void OnBeforeCommandLineProcessing( CefRefPtr app, CefRefPtr command_line) {} virtual void OnContextInitialized(CefRefPtr app) {} virtual void OnBeforeChildProcessLaunch( CefRefPtr app, CefRefPtr command_line) {} virtual void OnRenderProcessThreadCreated( CefRefPtr app, CefRefPtr extra_info) {} }; typedef std::set > DelegateSet; ClientAppBrowser(); private: // Creates all of the Delegate objects. Implemented by cefclient in // client_app_delegates_browser.cc static void CreateDelegates(DelegateSet& delegates); // Create the Linux print handler. Implemented by cefclient in // client_app_delegates_browser.cc static CefRefPtr CreatePrintHandler(); // CefApp methods. void OnBeforeCommandLineProcessing( const CefString& process_type, CefRefPtr command_line) OVERRIDE; CefRefPtr GetBrowserProcessHandler() OVERRIDE { return this; } // CefBrowserProcessHandler methods. void OnContextInitialized() OVERRIDE; void OnBeforeChildProcessLaunch( CefRefPtr command_line) OVERRIDE; void OnRenderProcessThreadCreated( CefRefPtr extra_info) OVERRIDE; CefRefPtr GetPrintHandler() OVERRIDE { return print_handler_; } void OnScheduleMessagePumpWork(int64 delay) OVERRIDE; // Set of supported Delegates. DelegateSet delegates_; CefRefPtr print_handler_; IMPLEMENT_REFCOUNTING(ClientAppBrowser); DISALLOW_COPY_AND_ASSIGN(ClientAppBrowser); }; } // namespace client #endif // CEF_TESTS_SHARED_BROWSER_CLIENT_APP_BROWSER_H_