// Copyright (c) 2023 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_CEFCLIENT_BROWSER_DEFAULT_CLIENT_HANDLER_H_ #define CEF_TESTS_CEFCLIENT_BROWSER_DEFAULT_CLIENT_HANDLER_H_ #pragma once #include "include/cef_client.h" #include "include/wrapper/cef_resource_manager.h" namespace client { // Default client handler for unmanaged browser windows. Used with the Chrome // runtime only. class DefaultClientHandler : public CefClient, public CefRequestHandler, public CefResourceRequestHandler { public: DefaultClientHandler(); // CefClient methods CefRefPtr GetRequestHandler() override { return this; } // CefRequestHandler methods CefRefPtr GetResourceRequestHandler( CefRefPtr browser, CefRefPtr frame, CefRefPtr request, bool is_navigation, bool is_download, const CefString& request_initiator, bool& disable_default_handling) override; // CefResourceRequestHandler methods cef_return_value_t OnBeforeResourceLoad( CefRefPtr browser, CefRefPtr frame, CefRefPtr request, CefRefPtr callback) override; CefRefPtr GetResourceHandler( CefRefPtr browser, CefRefPtr frame, CefRefPtr request) override; CefRefPtr GetResourceResponseFilter( CefRefPtr browser, CefRefPtr frame, CefRefPtr request, CefRefPtr response) override; private: // Manages the registration and delivery of resources. CefRefPtr resource_manager_; IMPLEMENT_REFCOUNTING(DefaultClientHandler); DISALLOW_COPY_AND_ASSIGN(DefaultClientHandler); }; } // namespace client #endif // CEF_TESTS_CEFCLIENT_BROWSER_DEFAULT_CLIENT_HANDLER_H_