Index: android_webview/renderer/aw_render_view_ext.cc |
diff --git a/android_webview/renderer/aw_render_view_ext.cc b/android_webview/renderer/aw_render_view_ext.cc |
index ee8f14e50136f4d7eb5fece5ad7b113958bace66..6a6164ea9e983ba9792e6843134a51e44369ce7b 100644 |
--- a/android_webview/renderer/aw_render_view_ext.cc |
+++ b/android_webview/renderer/aw_render_view_ext.cc |
@@ -188,40 +188,43 @@ void AwRenderViewExt::OnDocumentHasImagesRequest(int id) { |
} |
void AwRenderViewExt::DidCommitCompositorFrame() { |
- UpdatePageScaleFactor(); |
+ PostCheckContentsSizeAndScale(); |
} |
void AwRenderViewExt::DidUpdateLayout() { |
+ PostCheckContentsSizeAndScale(); |
+} |
+ |
+void AwRenderViewExt::PostCheckContentsSizeAndScale() { |
if (check_contents_size_timer_.IsRunning()) |
return; |
check_contents_size_timer_.Start(FROM_HERE, |
base::TimeDelta::FromMilliseconds(0), this, |
- &AwRenderViewExt::CheckContentsSize); |
+ &AwRenderViewExt::CheckContentsSizeAndScale); |
} |
-void AwRenderViewExt::UpdatePageScaleFactor() { |
- if (page_scale_factor_ != render_view()->GetWebView()->pageScaleFactor()) { |
- page_scale_factor_ = render_view()->GetWebView()->pageScaleFactor(); |
+void AwRenderViewExt::CheckContentsSizeAndScale() { |
+ blink::WebView* webview = render_view()->GetWebView(); |
+ if (!webview) |
+ return; |
+ |
+ if (page_scale_factor_ != webview->pageScaleFactor()) { |
+ page_scale_factor_ = webview->pageScaleFactor(); |
Send(new AwViewHostMsg_PageScaleFactorChanged(routing_id(), |
page_scale_factor_)); |
} |
-} |
- |
-void AwRenderViewExt::CheckContentsSize() { |
- if (!render_view()->GetWebView()) |
- return; |
gfx::Size contents_size; |
- blink::WebFrame* main_frame = render_view()->GetWebView()->mainFrame(); |
+ blink::WebFrame* main_frame = webview->mainFrame(); |
if (main_frame) |
contents_size = main_frame->contentsSize(); |
// Fall back to contentsPreferredMinimumSize if the mainFrame is reporting a |
// 0x0 size (this happens during initial load). |
if (contents_size.IsEmpty()) { |
- contents_size = render_view()->GetWebView()->contentsPreferredMinimumSize(); |
+ contents_size = webview->contentsPreferredMinimumSize(); |
} |
if (contents_size == last_sent_contents_size_) |