Index: android_webview/browser/browser_view_renderer.cc |
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc |
index 4bf5e4bd1c06dd6214f0e020d4474ee9f39f2b8f..b6c3c7ca02654a0b0515d77372bfdb43cac025bd 100644 |
--- a/android_webview/browser/browser_view_renderer.cc |
+++ b/android_webview/browser/browser_view_renderer.cc |
@@ -6,6 +6,7 @@ |
#include "android_webview/browser/browser_view_renderer_client.h" |
#include "android_webview/browser/child_frame.h" |
+#include "android_webview/common/aw_switches.h" |
#include "base/auto_reset.h" |
#include "base/command_line.h" |
#include "base/logging.h" |
@@ -101,7 +102,10 @@ BrowserViewRenderer::BrowserViewRenderer( |
on_new_picture_enable_(false), |
clear_view_(false), |
offscreen_pre_raster_(false), |
- fallback_tick_pending_(false) {} |
+ fallback_tick_pending_(false), |
+ disable_page_visibility_( |
+ base::CommandLine::ForCurrentProcess() |
boliu
2015/09/28 21:31:31
nit: Do the CommandLine check in AwContents, and p
|
+ ->HasSwitch(switches::kDisablePageVisibility)) {} |
BrowserViewRenderer::~BrowserViewRenderer() { |
} |
@@ -440,6 +444,9 @@ void BrowserViewRenderer::ReleaseHardware() { |
bool BrowserViewRenderer::IsVisible() const { |
// Ignore |window_visible_| if |attached_to_window_| is false. |
+ if (disable_page_visibility_) |
+ return !attached_to_window_ || window_visible_; |
boliu
2015/09/28 21:31:31
This... makes zero sense. This is IsWindowVisible.
|
+ |
return view_visible_ && (!attached_to_window_ || window_visible_); |
} |
@@ -650,8 +657,7 @@ void BrowserViewRenderer::PostInvalidateWithFallback() { |
// 2) If we are attached to window and the window is not visible (eg when |
// app is in the background). We are sure in this case the webview is used |
// "on-screen" but that updates are not needed when in the background. |
- bool throttle_fallback_tick = |
- (is_paused_ && !clear_view_) || (attached_to_window_ && !window_visible_); |
+ bool throttle_fallback_tick = (is_paused_ && !clear_view_) || !IsVisible(); |
boliu
2015/09/28 21:39:39
Not everything need to be refactor. This was check
|
if (throttle_fallback_tick || fallback_tick_pending_) |
return; |
@@ -716,8 +722,7 @@ bool BrowserViewRenderer::CompositeSW(SkCanvas* canvas) { |
void BrowserViewRenderer::UpdateCompositorIsActive() { |
if (compositor_) |
- compositor_->SetIsActive(!is_paused_ && |
- (!attached_to_window_ || window_visible_)); |
+ compositor_->SetIsActive(!is_paused_ && IsVisible()); |
} |
std::string BrowserViewRenderer::ToString() const { |