Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1392)

Unified Diff: android_webview/renderer/aw_render_view_ext.cc

Issue 1368193002: Update page scale factor when layout updates (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: de-dup Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/renderer/aw_render_view_ext.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_)
« no previous file with comments | « android_webview/renderer/aw_render_view_ext.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698