From 5a18337b03c700f0a7c3b1efb92d0616b66e6c78 Mon Sep 17 00:00:00 2001 From: "leandrogracia@chromium.org" Date: Wed, 6 Mar 2013 23:15:21 +0000 Subject: Fix page scaling in Android Webview SW rendering. BUG= Review URL: https://chromiumcodereview.appspot.com/12310136 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186532 0039d316-1c4b-4281-b951-d872f2087c98 --- android_webview/browser/browser_view_renderer_impl.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'android_webview/browser/browser_view_renderer_impl.h') diff --git a/android_webview/browser/browser_view_renderer_impl.h b/android_webview/browser/browser_view_renderer_impl.h index 323ddcb..050645d 100644 --- a/android_webview/browser/browser_view_renderer_impl.h +++ b/android_webview/browser/browser_view_renderer_impl.h @@ -8,10 +8,12 @@ #include "android_webview/browser/browser_view_renderer.h" #include "android_webview/browser/renderer_host/view_renderer_host.h" #include "content/public/browser/android/compositor.h" +#include "content/public/browser/android/content_view_core.h" #include "content/public/browser/web_contents_observer.h" #include "skia/ext/refptr.h" #include "ui/gfx/point.h" #include "ui/gfx/size.h" +#include "ui/gfx/size_f.h" typedef void* EGLContext; struct AwDrawSWFunctionTable; @@ -23,6 +25,10 @@ namespace content { class WebContents; } +namespace gfx { +class Vector2dF; +} + namespace android_webview { class BrowserViewRendererImpl @@ -38,6 +44,7 @@ class BrowserViewRendererImpl static void SetAwDrawSWFunctionTable(AwDrawSWFunctionTable* table); // BrowserViewRenderer implementation. + // |content_view_core| must not outlive |this| BrowserViewRenderer instance. virtual void SetContents( content::ContentViewCore* content_view_core) OVERRIDE; virtual void DrawGL(AwDrawGLInfo* draw_info) OVERRIDE; @@ -74,6 +81,10 @@ class BrowserViewRendererImpl bool RenderSW(SkCanvas* canvas); bool RenderPicture(SkCanvas* canvas); + void OnFrameInfoUpdated(const gfx::SizeF& content_size, + const gfx::Vector2dF& scroll_offset, + float page_scale_factor); + BrowserViewRenderer::Client* client_; BrowserViewRenderer::JavaHelper* java_helper_; @@ -97,7 +108,9 @@ class BrowserViewRendererImpl bool compositor_visible_; bool is_composite_pending_; float dpi_scale_; + float page_scale_; gfx::Size view_size_; + gfx::SizeF content_size_css_; OnNewPictureMode on_new_picture_mode_; // Used only for detecting Android View System context changes. @@ -107,6 +120,9 @@ class BrowserViewRendererImpl // Set via SetContents. Used to recognize updates to the local WebView. content::WebContents* web_contents_; + // Used to observe frame metadata updates. + content::ContentViewCore::UpdateFrameInfoCallback update_frame_info_callback_; + DISALLOW_COPY_AND_ASSIGN(BrowserViewRendererImpl); }; -- cgit v1.1