From bf559c560503ce6f9bbc10a6c253b998815dee8a Mon Sep 17 00:00:00 2001 From: Micah Date: Mon, 21 Mar 2022 13:08:26 -0400 Subject: [PATCH] update cef and a few calls for it --- modules/webbrowser/CMakeLists.txt | 11 ++++++----- .../cmake/patch/cmake/cef_variables.cmake | 10 +++------- .../webbrowser/include/defaultbrowserlauncher.h | 16 +++++++++++----- modules/webbrowser/src/browserinstance.cpp | 3 ++- .../webbrowser/src/defaultbrowserlauncher.cpp | 1 + modules/webbrowser/src/screenspacebrowser.cpp | 8 +++++--- 6 files changed, 28 insertions(+), 21 deletions(-) diff --git a/modules/webbrowser/CMakeLists.txt b/modules/webbrowser/CMakeLists.txt index 79592629a2..f311990365 100644 --- a/modules/webbrowser/CMakeLists.txt +++ b/modules/webbrowser/CMakeLists.txt @@ -55,14 +55,15 @@ cmake_policy(SET CMP0074 NEW) # Specify the CEF distribution version. -# Release from 04/24/2019 verified to work on Windows. -set(CEF_VERSION "73.1.13+g6e3c989+chromium-73.0.3683.75") +# Release from 03/21/2022 verified to work on Windows. +set(CEF_VERSION "99.2.12+g2977b3a+chromium-99.0.4844.74") +# Removing - micahnyc 03/21/2022 # 73.1.13 has an issue on MacOS: The GUI freezing upon interaction. # Therefore, we fall back to 3.3578.1867 from 01/29/2019 -if (APPLE) - set(CEF_VERSION "3.3578.1867.g0f6d65a") -endif () +#if (APPLE) +# set(CEF_VERSION "3.3578.1867.g0f6d65a") +#endif () # CEF Sandbox is not working with the latest Visual Studio, so we disable it for now. if (WIN32) diff --git a/modules/webbrowser/cmake/patch/cmake/cef_variables.cmake b/modules/webbrowser/cmake/patch/cmake/cef_variables.cmake index a1089c036e..82de3fb69c 100644 --- a/modules/webbrowser/cmake/patch/cmake/cef_variables.cmake +++ b/modules/webbrowser/cmake/patch/cmake/cef_variables.cmake @@ -456,12 +456,10 @@ if(OS_WINDOWS) # List of CEF binary files. set(CEF_BINARY_FILES chrome_elf.dll - d3dcompiler_43.dll d3dcompiler_47.dll libcef.dll libEGL.dll libGLESv2.dll - natives_blob.bin snapshot_blob.bin v8_context_snapshot.bin #swiftshader @@ -469,11 +467,9 @@ if(OS_WINDOWS) # List of CEF resource files. set(CEF_RESOURCE_FILES - cef.pak - cef_100_percent.pak - cef_200_percent.pak - cef_extensions.pak - devtools_resources.pak + chrome_100_percent.pak + chrome_200_percent.pak + resources.pak icudtl.dat locales ) diff --git a/modules/webbrowser/include/defaultbrowserlauncher.h b/modules/webbrowser/include/defaultbrowserlauncher.h index 1d5abc176d..86704ab033 100644 --- a/modules/webbrowser/include/defaultbrowserlauncher.h +++ b/modules/webbrowser/include/defaultbrowserlauncher.h @@ -41,11 +41,17 @@ namespace openspace { class DefaultBrowserLauncher : public CefLifeSpanHandler, public CefRequestHandler { public: - bool OnBeforePopup(CefRefPtr browser, CefRefPtr frame, - const CefString& targetUrl, const CefString& targetFrameName, - CefLifeSpanHandler::WindowOpenDisposition targetDisposition, bool userGesture, - const CefPopupFeatures& popupFeatures, CefWindowInfo& windowInfo, - CefRefPtr& client, CefBrowserSettings& settings, + bool OnBeforePopup(CefRefPtr browser, + CefRefPtr frame, + const CefString& targetUrl, + const CefString& targetFrameName, + CefLifeSpanHandler::WindowOpenDisposition targetDisposition, + bool userGesture, + const CefPopupFeatures& popupFeatures, + CefWindowInfo& windowInfo, + CefRefPtr& client, + CefBrowserSettings& settings, + CefRefPtr& extra_info, bool* noJavascriptAccess) override; //bool OnOpenURLFromTab(CefRefPtr browser, CefRefPtr frame, diff --git a/modules/webbrowser/src/browserinstance.cpp b/modules/webbrowser/src/browserinstance.cpp index f56997d391..2ecd5995e8 100644 --- a/modules/webbrowser/src/browserinstance.cpp +++ b/modules/webbrowser/src/browserinstance.cpp @@ -48,7 +48,7 @@ BrowserInstance::BrowserInstance(WebRenderHandler* renderer, : _renderHandler(renderer) , _keyboardHandler(keyboardHandler) { - _client = new BrowserClient(_renderHandler, _keyboardHandler); + _client = new BrowserClient(renderer, keyboardHandler); CefWindowInfo windowInfo; windowInfo.SetAsWindowless(nullptr); @@ -62,6 +62,7 @@ BrowserInstance::BrowserInstance(WebRenderHandler* renderer, _client.get(), url, browserSettings, + nullptr, nullptr ); diff --git a/modules/webbrowser/src/defaultbrowserlauncher.cpp b/modules/webbrowser/src/defaultbrowserlauncher.cpp index 6b3558d687..30c290f818 100644 --- a/modules/webbrowser/src/defaultbrowserlauncher.cpp +++ b/modules/webbrowser/src/defaultbrowserlauncher.cpp @@ -38,6 +38,7 @@ bool DefaultBrowserLauncher::OnBeforePopup(CefRefPtr, CefRefPtr&, CefBrowserSettings&, + CefRefPtr&, bool*) { // never permit CEF popups, always launch in default browser diff --git a/modules/webbrowser/src/screenspacebrowser.cpp b/modules/webbrowser/src/screenspacebrowser.cpp index d03292ed5f..9721690043 100644 --- a/modules/webbrowser/src/screenspacebrowser.cpp +++ b/modules/webbrowser/src/screenspacebrowser.cpp @@ -92,10 +92,12 @@ ScreenSpaceBrowser::ScreenSpaceBrowser(const ghoul::Dictionary& dictionary) _dimensions = windowDimensions; _renderHandler = new ScreenSpaceRenderHandler; - _keyboardHandler = new WebKeyboardHandler(); + WebRenderHandler* renderer = (WebRenderHandler*)(&_renderHandler); + WebKeyboardHandler* keyboardHandler = new WebKeyboardHandler(); + _keyboardHandler = keyboardHandler; _browserInstance = std::make_unique( - _renderHandler, - _keyboardHandler + renderer, + keyboardHandler ); _url.onChange([this]() { _isUrlDirty = true; });