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

Unified Diff: android_webview/browser/browser_view_renderer.cc

Issue 1377593003: Refactor BrowserViewRenderer to support page visibility (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
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 {
« no previous file with comments | « android_webview/browser/browser_view_renderer.h ('k') | android_webview/java/src/org/chromium/android_webview/AwContents.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698