diff --git a/gdcef/src/browser.cpp b/gdcef/src/browser.cpp index 58b76c6..bf3d0b8 100644 --- a/gdcef/src/browser.cpp +++ b/gdcef/src/browser.cpp @@ -96,6 +96,13 @@ int BrowserView::init(godot::String const& url, CefBrowserSettings const& settin << get_name().utf8().get_data() << " succeeded"); m_browser->GetHost()->WasResized(); + + // Load extension + //ClientRequestContextHandler* toto = new ClientRequestContextHandler(); + m_browser->GetHost()->GetRequestContext()->LoadExtension( +"/home/qq/workspace_stigmee/packages/stigmark/ext/chrome-edge-brave/", nullptr, +new ClientRequestContextHandler() +); } return m_id; diff --git a/gdcef/src/browser.hpp b/gdcef/src/browser.hpp index 71968e7..c41a60b 100644 --- a/gdcef/src/browser.hpp +++ b/gdcef/src/browser.hpp @@ -51,6 +51,8 @@ # include "GlobalConstants.hpp" // Chromium Embedded Framework +# include "cef_request_context_handler.h" +# include "cef_extension_handler.h" # include "cef_render_handler.h" # include "cef_client.h" # include "cef_app.h" @@ -59,6 +61,45 @@ # include # include +// **************************************************************************** +//! \brief +// **************************************************************************** +class ClientRequestContextHandler : //public CefRequestContextHandler, + public CefExtensionHandler +{ +public: + + ClientRequestContextHandler() {} + +/*private: // CefRequestContextHandler interfaces + + virtual void OnRequestContextInitialized(CefRefPtr request_context) override + { + CEF_REQUIRE_UI_THREAD(); + request_context->LoadExtension("/home/qq/workspace_stigmee/packages/stigmark/ext/chrome-edge-brave/", nullptr, this); + } +*/ +private: // CefExtensionHandler interfaces + + virtual void OnExtensionLoaded(CefRefPtr extension) override + { + CEF_REQUIRE_UI_THREAD(); + std::cout << "OnExtensionLoadeddddd :)" << std::endl; + //MainContext::Get()->GetRootWindowManager()->AddExtension(extension); + } + + virtual void OnExtensionLoadFailed(cef_errorcode_t result) override + { + CEF_REQUIRE_UI_THREAD(); + std::cout << "OnExtensionLoadFailed" << std::endl; + } + +private: + + IMPLEMENT_REFCOUNTING(ClientRequestContextHandler); + DISALLOW_COPY_AND_ASSIGN(ClientRequestContextHandler); +}; + // **************************************************************************** //! \brief Class wrapping the CefBrowser class and export methods for Godot //! script. This class is instanciate by GDCef.