mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Fix crash when hovering buttons in OSR PDF viewer (issue #2488)
This commit is contained in:
		| @@ -27,6 +27,7 @@ | |||||||
| #include "content/browser/bad_message.h" | #include "content/browser/bad_message.h" | ||||||
| #include "content/browser/compositor/image_transport_factory.h" | #include "content/browser/compositor/image_transport_factory.h" | ||||||
| #include "content/browser/frame_host/render_widget_host_view_guest.h" | #include "content/browser/frame_host/render_widget_host_view_guest.h" | ||||||
|  | #include "content/browser/renderer_host/cursor_manager.h" | ||||||
| #include "content/browser/renderer_host/dip_util.h" | #include "content/browser/renderer_host/dip_util.h" | ||||||
| #include "content/browser/renderer_host/render_widget_host_delegate.h" | #include "content/browser/renderer_host/render_widget_host_delegate.h" | ||||||
| #include "content/browser/renderer_host/render_widget_host_impl.h" | #include "content/browser/renderer_host/render_widget_host_impl.h" | ||||||
| @@ -277,6 +278,8 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR( | |||||||
|   if (browser_impl_.get()) |   if (browser_impl_.get()) | ||||||
|     ResizeRootLayer(false); |     ResizeRootLayer(false); | ||||||
|  |  | ||||||
|  |   cursor_manager_.reset(new content::CursorManager(this)); | ||||||
|  |  | ||||||
|   // Do this last because it may result in a call to SetNeedsBeginFrames. |   // Do this last because it may result in a call to SetNeedsBeginFrames. | ||||||
|   render_widget_host_->SetView(this); |   render_widget_host_->SetView(this); | ||||||
| } | } | ||||||
| @@ -636,6 +639,10 @@ void CefRenderWidgetHostViewOSR::UpdateCursor( | |||||||
| #endif | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  | content::CursorManager* CefRenderWidgetHostViewOSR::GetCursorManager() { | ||||||
|  |   return cursor_manager_.get(); | ||||||
|  | } | ||||||
|  |  | ||||||
| void CefRenderWidgetHostViewOSR::SetIsLoading(bool is_loading) {} | void CefRenderWidgetHostViewOSR::SetIsLoading(bool is_loading) {} | ||||||
|  |  | ||||||
| void CefRenderWidgetHostViewOSR::RenderProcessGone( | void CefRenderWidgetHostViewOSR::RenderProcessGone( | ||||||
|   | |||||||
| @@ -44,6 +44,7 @@ class RenderWidgetHost; | |||||||
| class RenderWidgetHostImpl; | class RenderWidgetHostImpl; | ||||||
| class RenderWidgetHostViewGuest; | class RenderWidgetHostViewGuest; | ||||||
| class BackingStore; | class BackingStore; | ||||||
|  | class CursorManager; | ||||||
| }  // namespace content | }  // namespace content | ||||||
|  |  | ||||||
| class CefBeginFrameTimer; | class CefBeginFrameTimer; | ||||||
| @@ -153,6 +154,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, | |||||||
|                          int error_code) override; |                          int error_code) override; | ||||||
|   void Destroy() override; |   void Destroy() override; | ||||||
|   void SetTooltipText(const base::string16& tooltip_text) override; |   void SetTooltipText(const base::string16& tooltip_text) override; | ||||||
|  |   content::CursorManager* GetCursorManager() override; | ||||||
|  |  | ||||||
|   gfx::Size GetCompositorViewportPixelSize() const override; |   gfx::Size GetCompositorViewportPixelSize() const override; | ||||||
|   void CopyFromSurface( |   void CopyFromSurface( | ||||||
| @@ -346,6 +348,8 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase, | |||||||
|   std::unique_ptr<ui::XScopedCursor> invisible_cursor_; |   std::unique_ptr<ui::XScopedCursor> invisible_cursor_; | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  |   std::unique_ptr<content::CursorManager> cursor_manager_; | ||||||
|  |  | ||||||
|   // Used to control the VSync rate in subprocesses when BeginFrame scheduling |   // Used to control the VSync rate in subprocesses when BeginFrame scheduling | ||||||
|   // is enabled. |   // is enabled. | ||||||
|   std::unique_ptr<CefBeginFrameTimer> begin_frame_timer_; |   std::unique_ptr<CefBeginFrameTimer> begin_frame_timer_; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user