diff --git a/patches/issue251.patch b/patches/issue251.patch deleted file mode 100644 index dabe3474..00000000 --- a/patches/issue251.patch +++ /dev/null @@ -1,366 +0,0 @@ -diff --git include/capi/cef_drag_data_capi.h include/capi/cef_drag_data_capi.h -index e1fcfd8c..084fea20 100644 ---- include/capi/cef_drag_data_capi.h -+++ include/capi/cef_drag_data_capi.h -@@ -39,6 +39,7 @@ - #pragma once - - #include "include/capi/cef_base_capi.h" -+#include "include/capi/cef_image_capi.h" - #include "include/capi/cef_stream_capi.h" - - #ifdef __cplusplus -@@ -195,6 +196,21 @@ typedef struct _cef_drag_data_t { - /// - void (CEF_CALLBACK *add_file)(struct _cef_drag_data_t* self, - const cef_string_t* path, const cef_string_t* display_name); -+ -+ /// -+ // Get image representation of drag data (may be NULL). -+ /// -+ struct _cef_image_t* (CEF_CALLBACK *get_image)(struct _cef_drag_data_t* self); -+ -+ /// -+ // Get image hotspot (drag start location relative to image dimensions). -+ /// -+ cef_point_t (CEF_CALLBACK *get_image_hotspot)(struct _cef_drag_data_t* self); -+ -+ /// -+ // Whether image representation of drag data is available. -+ /// -+ int (CEF_CALLBACK *has_image)(struct _cef_drag_data_t* self); - } cef_drag_data_t; - - -diff --git include/cef_drag_data.h include/cef_drag_data.h -index 29b85e84..de37ecc4 100644 ---- include/cef_drag_data.h -+++ include/cef_drag_data.h -@@ -39,6 +39,7 @@ - #pragma once - - #include "include/cef_base.h" -+#include "include/cef_image.h" - #include "include/cef_stream.h" - #include - -@@ -193,6 +194,24 @@ class CefDragData : public virtual CefBaseRefCounted { - /// - /*--cef(optional_param=display_name)--*/ - virtual void AddFile(const CefString& path, const CefString& display_name) =0; -+ -+ /// -+ // Get image representation of drag data (may be NULL). -+ /// -+ /*--cef()--*/ -+ virtual CefRefPtr GetImage() =0; -+ -+ /// -+ // Get image hotspot (drag start location relative to image dimensions). -+ /// -+ /*--cef()--*/ -+ virtual CefPoint GetImageHotspot() =0; -+ -+ /// -+ // Whether image representation of drag data is available. -+ /// -+ /*--cef()--*/ -+ virtual bool HasImage() =0; - }; - - #endif // CEF_INCLUDE_CEF_DRAG_DATA_H_ -diff --git libcef/browser/osr/browser_platform_delegate_osr.cc libcef/browser/osr/browser_platform_delegate_osr.cc -index 148ef49c..bfec55b7 100644 ---- libcef/browser/osr/browser_platform_delegate_osr.cc -+++ libcef/browser/osr/browser_platform_delegate_osr.cc -@@ -7,6 +7,7 @@ - #include - - #include "libcef/browser/browser_host_impl.h" -+#include "libcef/browser/image_impl.h" - #include "libcef/browser/osr/render_widget_host_view_osr.h" - #include "libcef/browser/osr/web_contents_view_osr.h" - #include "libcef/common/drag_data_impl.h" -@@ -432,7 +433,11 @@ void CefBrowserPlatformDelegateOsr::StartDragging( - CefRefPtr handler = - browser_->GetClient()->GetRenderHandler(); - if (handler.get()) { -- CefRefPtr drag_data(new CefDragDataImpl(drop_data)); -+ CefRefPtr cef_image(new CefImageImpl(image)); -+ CefPoint cef_image_pos(CefPoint(image_offset.x(), image_offset.y())); -+ CefRefPtr drag_data(new CefDragDataImpl(drop_data, -+ cef_image, -+ cef_image_pos)); - drag_data->SetReadOnly(true); - base::MessageLoop::ScopedNestableTaskAllower allow( - base::MessageLoop::current()); -diff --git libcef/common/drag_data_impl.cc libcef/common/drag_data_impl.cc -index a8e2c8e1..6db3da39 100644 ---- libcef/common/drag_data_impl.cc -+++ libcef/common/drag_data_impl.cc -@@ -19,6 +19,15 @@ CefDragDataImpl::CefDragDataImpl(const content::DropData& data) - read_only_(false) { - } - -+CefDragDataImpl::CefDragDataImpl(const content::DropData& data, -+ CefRefPtr image, -+ const CefPoint& image_hotspot) -+ : data_(data), -+ image_(image), -+ image_hotspot_(image_hotspot), -+ read_only_(false) { -+} -+ - CefDragDataImpl::CefDragDataImpl() - : read_only_(false) { - } -@@ -31,7 +40,7 @@ CefRefPtr CefDragDataImpl::Clone() { - CefDragDataImpl* drag_data = NULL; - { - base::AutoLock lock_scope(lock_); -- drag_data = new CefDragDataImpl(data_); -+ drag_data = new CefDragDataImpl(data_, image_, image_hotspot_); - } - return drag_data; - } -@@ -187,3 +196,18 @@ void CefDragDataImpl::SetReadOnly(bool read_only) { - - read_only_ = read_only; - } -+ -+CefRefPtr CefDragDataImpl::GetImage() { -+ base::AutoLock lock_scope(lock_); -+ return image_; -+} -+ -+CefPoint CefDragDataImpl::GetImageHotspot() { -+ base::AutoLock lock_scope(lock_); -+ return image_hotspot_; -+} -+ -+bool CefDragDataImpl::HasImage() { -+ base::AutoLock lock_scope(lock_); -+ return image_ ? true : false; -+} -diff --git libcef/common/drag_data_impl.h libcef/common/drag_data_impl.h -index 64f29ed3..37c398d2 100644 ---- libcef/common/drag_data_impl.h -+++ libcef/common/drag_data_impl.h -@@ -7,6 +7,7 @@ - #pragma once - - #include "include/cef_drag_data.h" -+#include "include/cef_image.h" - - #include - -@@ -18,6 +19,9 @@ class CefDragDataImpl : public CefDragData { - public: - CefDragDataImpl(); - explicit CefDragDataImpl(const content::DropData& data); -+ CefDragDataImpl(const content::DropData& data, -+ CefRefPtr image, -+ const CefPoint& image_hotspot); - - CefRefPtr Clone() override; - bool IsReadOnly() override; -@@ -41,6 +45,9 @@ class CefDragDataImpl : public CefDragData { - void SetFragmentBaseURL(const CefString& fragment) override; - void ResetFileContents() override; - void AddFile(const CefString& path, const CefString& display_name) override; -+ CefRefPtr GetImage() override; -+ CefPoint GetImageHotspot() override; -+ bool HasImage() override; - - // This method is not safe. Use Lock/Unlock to get mutually exclusive access. - content::DropData* drop_data() { -@@ -53,6 +60,8 @@ class CefDragDataImpl : public CefDragData { - - private: - content::DropData data_; -+ CefRefPtr image_; -+ CefPoint image_hotspot_; - - // True if this object is read-only. - bool read_only_; -diff --git libcef_dll/cpptoc/drag_data_cpptoc.cc libcef_dll/cpptoc/drag_data_cpptoc.cc -index 381b88b9..01a39793 100644 ---- libcef_dll/cpptoc/drag_data_cpptoc.cc -+++ libcef_dll/cpptoc/drag_data_cpptoc.cc -@@ -11,6 +11,7 @@ - // - - #include "libcef_dll/cpptoc/drag_data_cpptoc.h" -+#include "libcef_dll/cpptoc/image_cpptoc.h" - #include "libcef_dll/cpptoc/stream_writer_cpptoc.h" - #include "libcef_dll/transfer_util.h" - -@@ -367,6 +368,50 @@ void CEF_CALLBACK drag_data_add_file(struct _cef_drag_data_t* self, - CefString(display_name)); - } - -+struct _cef_image_t* CEF_CALLBACK drag_data_get_image( -+ struct _cef_drag_data_t* self) { -+ // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING -+ -+ DCHECK(self); -+ if (!self) -+ return NULL; -+ -+ // Execute -+ CefRefPtr _retval = CefDragDataCppToC::Get(self)->GetImage(); -+ -+ // Return type: refptr_same -+ return CefImageCppToC::Wrap(_retval); -+} -+ -+cef_point_t CEF_CALLBACK drag_data_get_image_hotspot( -+ struct _cef_drag_data_t* self) { -+ // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING -+ -+ DCHECK(self); -+ if (!self) -+ return CefPoint(); -+ -+ // Execute -+ cef_point_t _retval = CefDragDataCppToC::Get(self)->GetImageHotspot(); -+ -+ // Return type: simple -+ return _retval; -+} -+ -+int CEF_CALLBACK drag_data_has_image(struct _cef_drag_data_t* self) { -+ // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING -+ -+ DCHECK(self); -+ if (!self) -+ return 0; -+ -+ // Execute -+ bool _retval = CefDragDataCppToC::Get(self)->HasImage(); -+ -+ // Return type: bool -+ return _retval; -+} -+ - } // namespace - - -@@ -395,6 +440,9 @@ CefDragDataCppToC::CefDragDataCppToC() { - GetStruct()->set_fragment_base_url = drag_data_set_fragment_base_url; - GetStruct()->reset_file_contents = drag_data_reset_file_contents; - GetStruct()->add_file = drag_data_add_file; -+ GetStruct()->get_image = drag_data_get_image; -+ GetStruct()->get_image_hotspot = drag_data_get_image_hotspot; -+ GetStruct()->has_image = drag_data_has_image; - } - - template<> CefRefPtr CefCppToCRefCounted CefDragDataCToCpp::GetImage() { -+ cef_drag_data_t* _struct = GetStruct(); -+ if (CEF_MEMBER_MISSING(_struct, get_image)) -+ return NULL; -+ -+ // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING -+ -+ // Execute -+ cef_image_t* _retval = _struct->get_image(_struct); -+ -+ // Return type: refptr_same -+ return CefImageCToCpp::Wrap(_retval); -+} -+ -+CefPoint CefDragDataCToCpp::GetImageHotspot() { -+ cef_drag_data_t* _struct = GetStruct(); -+ if (CEF_MEMBER_MISSING(_struct, get_image_hotspot)) -+ return CefPoint(); -+ -+ // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING -+ -+ // Execute -+ cef_point_t _retval = _struct->get_image_hotspot(_struct); -+ -+ // Return type: simple -+ return _retval; -+} -+ -+bool CefDragDataCToCpp::HasImage() { -+ cef_drag_data_t* _struct = GetStruct(); -+ if (CEF_MEMBER_MISSING(_struct, has_image)) -+ return false; -+ -+ // AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING -+ -+ // Execute -+ int _retval = _struct->has_image(_struct); -+ -+ // Return type: bool -+ return _retval?true:false; -+} -+ - - // CONSTRUCTOR - Do not edit by hand. - -diff --git libcef_dll/ctocpp/drag_data_ctocpp.h libcef_dll/ctocpp/drag_data_ctocpp.h -index 5b202710..20262388 100644 ---- libcef_dll/ctocpp/drag_data_ctocpp.h -+++ libcef_dll/ctocpp/drag_data_ctocpp.h -@@ -54,6 +54,9 @@ class CefDragDataCToCpp - void SetFragmentBaseURL(const CefString& base_url) OVERRIDE; - void ResetFileContents() OVERRIDE; - void AddFile(const CefString& path, const CefString& display_name) OVERRIDE; -+ CefRefPtr GetImage() OVERRIDE; -+ CefPoint GetImageHotspot() OVERRIDE; -+ bool HasImage() OVERRIDE; - }; - - #endif // CEF_LIBCEF_DLL_CTOCPP_DRAG_DATA_CTOCPP_H_ -diff --git tests/ceftests/os_rendering_unittest.cc tests/ceftests/os_rendering_unittest.cc -index 8fa110fa..c8f49d9c 100644 ---- tests/ceftests/os_rendering_unittest.cc -+++ tests/ceftests/os_rendering_unittest.cc -@@ -1007,6 +1007,28 @@ class OSRTestHandler : public RoutingTestHandler, - CefRenderHandler::DragOperationsMask allowed_ops, - int x, int y) override { - if (test_type_ == OSR_TEST_DRAG_DROP_START_DRAGGING && started()) { -+ // Drag image representation -+ EXPECT_TRUE(drag_data->HasImage()); -+ CefRefPtr image = drag_data->GetImage(); -+ EXPECT_TRUE(image.get() != NULL); -+ if (image.get()) { -+ // Drag image height seem to be always + 1px greater than -+ // the drag rect on Linux. But whether this is true on all -+ // platforms not sure, so to be safe lets allow it to be -+ // +/- 1px. -+ EXPECT_GE(image->GetWidth(), GetScaledInt(kDragDivRect.width)); -+ EXPECT_LE(image->GetWidth(), GetScaledInt(kDragDivRect.width) + 1); -+ EXPECT_GE(image->GetHeight(), GetScaledInt(kDragDivRect.height)); -+ EXPECT_LE(image->GetHeight(), GetScaledInt(kDragDivRect.height) + 1); -+ } -+ // During testing hotspot was (15, 23) and with scale_factor 2x -+ // it was (15, 18). I don't know how the algorithm works, so -+ // testing only rect boundaries. -+ CefPoint hotspot = drag_data->GetImageHotspot(); -+ EXPECT_GT(hotspot.x, 0); -+ EXPECT_LT(hotspot.x, GetScaledInt(kDragDivRect.width)); -+ EXPECT_GT(hotspot.y, 0); -+ EXPECT_LT(hotspot.y, GetScaledInt(kDragDivRect.height)); - DestroySucceededTestSoon(); - return false; - } else if ((test_type_ == OSR_TEST_DRAG_DROP_UPDATE_CURSOR || diff --git a/patches/patch.py b/patches/patch.py index 80a33921..5fe98998 100644 --- a/patches/patch.py +++ b/patches/patch.py @@ -13,9 +13,9 @@ # noinspection PyUnresolvedReferences patches.extend([ { - # Fixes HTTPS cache problems with private certificates - 'name': 'issue125', - 'path': '../net/http/' + # (Disabled) Fixes HTTPS cache problems with private certificates + # 'name': 'issue125', + # 'path': '../net/http/' }, ]) @@ -28,9 +28,4 @@ 'name': 'issue231', 'path': './' }, - { - # Adds drag-image representation during drag & drop in OSR mode. - 'name': 'issue251', - 'path': './' - }, ])