Chromium Code Reviews| Index: webkit/plugins/webview_plugin.cc |
| diff --git a/webkit/plugins/webview_plugin.cc b/webkit/plugins/webview_plugin.cc |
| index 4e5c8c40157c849f341e6cdbd931a02ca8d61ea4..987b74a02e82e4b8d5ae865e06d005fffcda41c7 100644 |
| --- a/webkit/plugins/webview_plugin.cc |
| +++ b/webkit/plugins/webview_plugin.cc |
| @@ -9,6 +9,7 @@ |
| #include "skia/ext/platform_canvas.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebCursorInfo.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebElement.h" |
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h" |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebPluginContainer.h" |
| @@ -126,6 +127,18 @@ void WebViewPlugin::paint(WebCanvas* canvas, const WebRect& rect) { |
| paintRect.Offset(-rect_.x(), -rect_.y()); |
| + float pageScaleFactor = 1.0f; |
|
jam
2012/11/14 20:59:55
nit: google style is page_scale_factor. if you can
qinmin
2012/11/14 22:16:59
Done.
|
| + if (container_) { |
| + pageScaleFactor = container_->element().document().frame()->top()->view() |
| + ->pageScaleFactor(); |
|
Bernhard Bauer
2012/11/14 21:12:00
Urgh. Could you extract something in here to a loc
qinmin
2012/11/14 22:16:59
Done.
|
| + } |
| + float content_scale = 1.0f / pageScaleFactor; |
| + paintRect.SetRect( |
| + ceil(static_cast<float>(content_scale * paintRect.x())), |
|
Bernhard Bauer
2012/11/14 21:12:00
Why do we need the static_cast here? Shouldn't flo
qinmin
2012/11/14 22:16:59
removed.
|
| + ceil(static_cast<float>(content_scale * paintRect.y())), |
| + ceil(static_cast<float>(content_scale * paintRect.width())), |
| + ceil(static_cast<float>(content_scale * paintRect.height()))); |
| + |
| canvas->translate(SkIntToScalar(rect_.x()), SkIntToScalar(rect_.y())); |
| canvas->save(); |
| @@ -141,7 +154,16 @@ void WebViewPlugin::updateGeometry( |
| const WebVector<WebRect>& cut_out_rects, bool is_visible) { |
| if (static_cast<gfx::Rect>(frame_rect) != rect_) { |
| rect_ = frame_rect; |
| - web_view_->resize(WebSize(frame_rect.width, frame_rect.height)); |
| + |
| + float pageScaleFactor = 1.0f; |
| + if (container_) { |
| + pageScaleFactor = container_->element().document().frame()->top()-> |
| + view()->pageScaleFactor(); |
|
Bernhard Bauer
2012/11/14 21:12:00
Same "urgh" here. Maybe you could (also) pull it o
qinmin
2012/11/14 22:16:59
Done. added a GetPageScaleFactor() method
|
| + } |
| + float content_scale = 1.0f / pageScaleFactor; |
| + |
| + web_view_->resize(WebSize(content_scale * frame_rect.width, |
| + content_scale * frame_rect.height)); |
| } |
| } |