diff --git a/include/CefVersion.h b/include/CefVersion.h new file mode 100644 index 0000000..d032cfb --- /dev/null +++ b/include/CefVersion.h @@ -0,0 +1,24 @@ +// +// CefVersion.h +// CefViewCore +// +// Created by Sheen Tian on 2025/1/19. +// This file was generated during CMake configuring. +// Do not edit this file directly by manual. +// Edit the CefVersion.h.in and then re-config project with CMake. +// + +#ifndef CefViewCoreProtocol_h +#define CefViewCoreProtocol_h +#pragma once + +// clang-format off +#define CEF_VERSION "127.3.5+g114ea2a+chromium-127.0.6533.120" +#define CEF_VERSION_MAJOR 127 +#define CEF_VERSION_MINOR 3 +#define CEF_VERSION_PATCH 5 +#define CEF_COMMIT_NUMBER 3037 +#define CEF_COMMIT_HASH "114ea2af1ba9da18c4ac5e599ccdbb17d01ba75a" +// clang-format on + +#endif // CefViewCoreProtocol_h diff --git a/include/QCefView_global.h b/include/QCefView_global.h index d8f559b..ca97a04 100644 --- a/include/QCefView_global.h +++ b/include/QCefView_global.h @@ -35,8 +35,6 @@ // clang-format on // CEF version numbers -#define CEF_VERSION_MAJOR 127 -#define CEF_VERSION_MINOR 3 -#define CEF_VERSION_PATCH 5 +#include #endif // QCEFEVIEW_GLOBAL_H diff --git a/include/QCefView_global.h.in b/include/QCefView_global.h.in deleted file mode 100644 index adf1eb0..0000000 --- a/include/QCefView_global.h.in +++ /dev/null @@ -1,42 +0,0 @@ -/* - * File: QCefView_global.h - * Project: QCefView - * Created: 29th March 2016 - * Author: Sheen - * Source: https://github.com/cefview/qcefview - * Docs: https://cefview.github.io/QCefView/ - */ -#ifndef QCEFEVIEW_GLOBAL_H -#define QCEFEVIEW_GLOBAL_H -#pragma once - -// clang-format off -#pragma region qt_headers -#include -#include -#pragma endregion - -#ifdef QCEFVIEW_STATIC - // Static library, no need export - #define QCEFVIEW_EXPORT -#else - // Dynamic library - #ifdef QCEFVIEW_LIB - // Build QCefView project, export API - #define QCEFVIEW_EXPORT Q_DECL_EXPORT - #else - // Referenced by other project, import API - #define QCEFVIEW_EXPORT Q_DECL_IMPORT - #if _WIN32 - #pragma comment(lib, "QCefView.lib") - #endif - #endif -#endif -// clang-format on - -// CEF version numbers -#define CEF_VERSION_MAJOR @CEF_VERSION_MAJOR@ -#define CEF_VERSION_MINOR @CEF_VERSION_MINOR@ -#define CEF_VERSION_PATCH @CEF_VERSION_PATCH@ - -#endif // QCEFEVIEW_GLOBAL_H diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bae2c4a..bf61517 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -119,7 +119,7 @@ if(OS_LINUX) # copy binary files of CefViewCore COMMAND ${CMAKE_COMMAND} -E copy_directory - "$" + "$" "$" ) endif() # OS_LINUX diff --git a/src/details/CCefClientDelegate.cpp b/src/details/CCefClientDelegate.cpp index cfa91a9..a67caf7 100644 --- a/src/details/CCefClientDelegate.cpp +++ b/src/details/CCefClientDelegate.cpp @@ -18,7 +18,7 @@ CCefClientDelegate::~CCefClientDelegate() } void -CCefClientDelegate::processUrlRequest(CefRefPtr& browser, const CefFrameId& frameId, const CefString& url) +CCefClientDelegate::processUrlRequest(CefRefPtr& browser, CefRefPtr& frame, const CefString& url) { if (!IsValidBrowser(browser)) return; @@ -27,12 +27,12 @@ CCefClientDelegate::processUrlRequest(CefRefPtr& browser, const CefF auto u = QString::fromStdString(url); auto source = pCefViewPrivate_->q_ptr; - emit source->cefUrlRequest(browserId, ValueConvertor::FrameIdC2Q(frameId), u); + emit source->cefUrlRequest(browserId, ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), u); } void CCefClientDelegate::processQueryRequest(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& request, const int64_t query_id) { @@ -44,12 +44,12 @@ CCefClientDelegate::processQueryRequest(CefRefPtr& browser, auto source = pCefViewPrivate_->q_ptr; auto query = pCefViewPrivate_->createQuery(req, query_id); - emit source->cefQueryRequest(browserId, ValueConvertor::FrameIdC2Q(frameId), query); + emit source->cefQueryRequest(browserId, ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), query); } void CCefClientDelegate::focusedEditableNodeChanged(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, bool focusOnEditableNode) { if (!IsValidBrowser(browser)) @@ -63,7 +63,7 @@ CCefClientDelegate::focusedEditableNodeChanged(CefRefPtr& browser, void CCefClientDelegate::invokeMethodNotify(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& method, const CefRefPtr& arguments) { @@ -80,12 +80,12 @@ CCefClientDelegate::invokeMethodNotify(CefRefPtr& browser, } auto browserId = browser->GetIdentifier(); - emit pCefViewPrivate_->q_ptr->invokeMethod(browserId, ValueConvertor::FrameIdC2Q(frameId), m, args); + emit pCefViewPrivate_->q_ptr->invokeMethod(browserId, ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), m, args); } void CCefClientDelegate::reportJSResult(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& context, const CefRefPtr& result) { @@ -96,5 +96,6 @@ CCefClientDelegate::reportJSResult(CefRefPtr& browser, QVariant qV; ValueConvertor::CefValueToQVariant(&qV, result.get()); auto c = QString::fromStdString(context); - emit pCefViewPrivate_->q_ptr->reportJavascriptResult(browserId, ValueConvertor::FrameIdC2Q(frameId), c, qV); + emit pCefViewPrivate_->q_ptr->reportJavascriptResult( + browserId, ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), c, qV); } diff --git a/src/details/CCefClientDelegate.h b/src/details/CCefClientDelegate.h index 524f9db..dcc3b83 100644 --- a/src/details/CCefClientDelegate.h +++ b/src/details/CCefClientDelegate.h @@ -50,24 +50,24 @@ class CCefClientDelegate ~CCefClientDelegate(); virtual void processUrlRequest(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& url) override; virtual void processQueryRequest(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& query, const int64_t query_id) override; virtual void focusedEditableNodeChanged(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, bool focusOnEditableNode) override; virtual void invokeMethodNotify(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& method, const CefRefPtr& arguments) override; virtual void reportJSResult(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& context, const CefRefPtr& result) override; @@ -108,7 +108,9 @@ class CCefClientDelegate // DisplayHandler #pragma region DisplayHandler - virtual void addressChanged(CefRefPtr& browser, const CefFrameId& frameId, const CefString& url) override; + virtual void addressChanged(CefRefPtr& browser, + CefRefPtr& frame, + const CefString& url) override; virtual void titleChanged(CefRefPtr& browser, const CefString& title) override; virtual void faviconURLChanged(CefRefPtr browser, const std::vector& icon_urls) override; virtual void fullscreenModeChanged(CefRefPtr& browser, bool fullscreen) override; @@ -140,6 +142,7 @@ class CCefClientDelegate CefRefPtr dragData, CefDragHandler::DragOperationsMask mask) override; virtual void draggableRegionChanged(CefRefPtr& browser, + CefRefPtr& frame, const std::vector& regions) override; #pragma endregion @@ -179,7 +182,7 @@ class CCefClientDelegate // LifeSpanHandler #pragma region LifeSpanHandler virtual bool onBeforePopup(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& targetUrl, const CefString& targetFrameName, CefLifeSpanHandler::WindowOpenDisposition targetDisposition, diff --git a/src/details/handler/CCefClientDelegate_DisplayHandler.cpp b/src/details/handler/CCefClientDelegate_DisplayHandler.cpp index b1e5ace..df29561 100644 --- a/src/details/handler/CCefClientDelegate_DisplayHandler.cpp +++ b/src/details/handler/CCefClientDelegate_DisplayHandler.cpp @@ -66,13 +66,13 @@ mapCursorShape(cef_cursor_type_t& type) } void -CCefClientDelegate::addressChanged(CefRefPtr& browser, const CefFrameId& frameId, const CefString& url) +CCefClientDelegate::addressChanged(CefRefPtr& browser, CefRefPtr& frame, const CefString& url) { if (!IsValidBrowser(browser)) return; auto u = QString::fromStdString(url); - emit pCefViewPrivate_->q_ptr->addressChanged(ValueConvertor::FrameIdC2Q(frameId), u); + emit pCefViewPrivate_->q_ptr->addressChanged(ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), u); } void diff --git a/src/details/handler/CCefClientDelegate_DragHandler.cpp b/src/details/handler/CCefClientDelegate_DragHandler.cpp index 33c06c6..b68f1ef 100644 --- a/src/details/handler/CCefClientDelegate_DragHandler.cpp +++ b/src/details/handler/CCefClientDelegate_DragHandler.cpp @@ -17,6 +17,7 @@ CCefClientDelegate::onDragEnter(CefRefPtr browser, void CCefClientDelegate::draggableRegionChanged(CefRefPtr& browser, + CefRefPtr& frame, const std::vector& regions) { if (!IsValidBrowser(browser)) diff --git a/src/details/handler/CCefClientDelegate_LifeSpanHandler.cpp b/src/details/handler/CCefClientDelegate_LifeSpanHandler.cpp index a7b3d91..1442e14 100644 --- a/src/details/handler/CCefClientDelegate_LifeSpanHandler.cpp +++ b/src/details/handler/CCefClientDelegate_LifeSpanHandler.cpp @@ -16,7 +16,7 @@ bool CCefClientDelegate::onBeforePopup(CefRefPtr& browser, - const CefFrameId& frameId, + CefRefPtr& frame, const CefString& targetUrl, const CefString& targetFrameName, CefLifeSpanHandler::WindowOpenDisposition targetDisposition, @@ -64,12 +64,12 @@ CCefClientDelegate::onBeforePopup(CefRefPtr& browser, QMetaObject::invokeMethod( pCefViewPrivate_, [&]() { - cancel = pCefViewPrivate_->onBeforeNewPopupCreate(ValueConvertor::FrameIdC2Q(frameId), // - url, // - name, // - d, // - rc, // - s, // + cancel = pCefViewPrivate_->onBeforeNewPopupCreate(ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), // + url, // + name, // + d, // + rc, // + s, // disableJavascriptAccess); if (!cancel) { QCefSettingPrivate::CopyToCefBrowserSettings(&s, &settings); @@ -92,11 +92,11 @@ CCefClientDelegate::onBeforePopup(CefRefPtr& browser, QMetaObject::invokeMethod( pCefViewPrivate_, [=]() { - pCefViewPrivate_->onBeforeNewBrowserCreate(ValueConvertor::FrameIdC2Q(frameId), // - url, // - name, // - d, // - rc, // + pCefViewPrivate_->onBeforeNewBrowserCreate(ValueConvertor::FrameIdC2Q(frame->GetIdentifier()), // + url, // + name, // + d, // + rc, // s); }, Qt::QueuedConnection); @@ -173,12 +173,10 @@ CCefClientDelegate::onAfterCreate(CefRefPtr& browser) if (browser->IsPopup()) { // pop-up window - QMetaObject::invokeMethod( - pCefViewPrivate_, [=]() { pCefViewPrivate_->onAfterCefPopupCreated(browser); }, c); + QMetaObject::invokeMethod(pCefViewPrivate_, [=]() { pCefViewPrivate_->onAfterCefPopupCreated(browser); }, c); } else { // new normal browser - QMetaObject::invokeMethod( - pCefViewPrivate_, [=]() { pCefViewPrivate_->onCefBrowserCreated(browser, w); }, c); + QMetaObject::invokeMethod(pCefViewPrivate_, [=]() { pCefViewPrivate_->onCefBrowserCreated(browser, w); }, c); } } diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 6dff90a..a337673 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -4,7 +4,7 @@ include(FetchContent) FetchContent_Declare( CefViewCore GIT_REPOSITORY https://github.com/CefView/CefViewCore.git - GIT_TAG 00e3899e8099e0491860319583274c3ea5ada806 + GIT_TAG 6348811581a111ca5c0c4aefa4f9261e4cbbf68e ) # set CEF version to be used @@ -52,56 +52,8 @@ set(CMAKE_FOLDER "QCefView/Core") # populate CefViewCore project FetchContent_MakeAvailable(CefViewCore) -# read CEF version from cef_version.h -# set need configure QCefView_global to false -set(NEED_CONFIGURE_QCefView_global FALSE) - -message(STATUS "${CefViewCore_CEF_INCLUDE_DIR}/cef_version.h") -file(READ "${CefViewCore_CEF_INCLUDE_DIR}/cef_version.h" cef_version_content) -string(REGEX MATCH "#define CEF_VERSION_MAJOR ([0-9]+)" _ ${cef_version_content}) - -# check CEF_VERSION_MAJOR -if(NOT "${CMAKE_MATCH_1}" STREQUAL "${CEF_VERSION_MAJOR}") - set(CEF_VERSION_MAJOR ${CMAKE_MATCH_1} CACHE STRING "CEF Major Version" FORCE) - set(NEED_CONFIGURE_QCefView_global TRUE) - message(STATUS "CEF_VERSION_MAJOR: ${CEF_VERSION_MAJOR} - Updated!") -else() - message(STATUS "CEF_VERSION_MAJOR: ${CEF_VERSION_MAJOR} - No Change!") -endif() - -# check CEF_VERSION_MAJOR -string(REGEX MATCH "#define CEF_VERSION_MINOR ([0-9]+)" _ ${cef_version_content}) - -if(NOT "${CMAKE_MATCH_1}" STREQUAL "${CEF_VERSION_MINOR}") - set(CEF_VERSION_MINOR ${CMAKE_MATCH_1} CACHE STRING "CEF Minor Version" FORCE) - set(NEED_CONFIGURE_QCefView_global TRUE) - message(STATUS "CEF_VERSION_MINOR: ${CEF_VERSION_MINOR} - Updated!") -else() - message(STATUS "CEF_VERSION_MINOR: ${CEF_VERSION_MINOR} - No Change!") -endif() - -string(REGEX MATCH "#define CEF_VERSION_PATCH ([0-9]+)" _ ${cef_version_content}) - -if(NOT "${CMAKE_MATCH_1}" STREQUAL "${CEF_VERSION_PATCH}") - set(CEF_VERSION_PATCH ${CMAKE_MATCH_1} CACHE STRING "CEF Patch Version" FORCE) - set(NEED_CONFIGURE_QCefView_global TRUE) - message(STATUS "CEF_VERSION_PATCH: ${CEF_VERSION_PATCH} - Updated!") -else() - message(STATUS "CEF_VERSION_PATCH: ${CEF_VERSION_PATCH} - No Change!") -endif() - -if(NOT EXISTS "${CMAKE_SOURCE_DIR}/include/QCefView_global.h") - set(NEED_CONFIGURE_QCefView_global TRUE) -endif() - -if(${NEED_CONFIGURE_QCefView_global}) - message(STATUS "Need to configure QCefView_global.h file") - configure_file( - "${CMAKE_SOURCE_DIR}/include/QCefView_global.h.in" - "${CMAKE_SOURCE_DIR}/include/QCefView_global.h" - @ONLY - NEWLINE_STYLE UNIX - ) -else() - message(STATUS "No need to configure QCefView_global.h file") -endif() \ No newline at end of file +configure_file( + "${CefViewCore_SOURCE_DIR}/include/CefVersion.h" + "${CMAKE_SOURCE_DIR}/include/CefVersion.h" + COPYONLY +) \ No newline at end of file