| 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 07dae10e018eb970f87989bbd75927e1e4388d51..556feefecd3ece42d531770e5807d280f99e0e5b 100644
|
| --- a/android_webview/browser/browser_view_renderer.cc
|
| +++ b/android_webview/browser/browser_view_renderer.cc
|
| @@ -85,10 +85,12 @@ BrowserViewRenderer* BrowserViewRenderer::FromWebContents(
|
|
|
| BrowserViewRenderer::BrowserViewRenderer(
|
| BrowserViewRendererClient* client,
|
| - const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner)
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner,
|
| + bool disable_page_visibility)
|
| : client_(client),
|
| shared_renderer_state_(ui_task_runner, this),
|
| ui_task_runner_(ui_task_runner),
|
| + disable_page_visibility_(disable_page_visibility),
|
| compositor_(NULL),
|
| is_paused_(false),
|
| view_visible_(false),
|
| @@ -444,6 +446,13 @@ bool BrowserViewRenderer::IsVisible() const {
|
| return view_visible_ && (!attached_to_window_ || window_visible_);
|
| }
|
|
|
| +bool BrowserViewRenderer::IsClientVisible() const {
|
| + if (disable_page_visibility_)
|
| + return !is_paused_;
|
| +
|
| + return !is_paused_ && IsVisible();
|
| +}
|
| +
|
| gfx::Rect BrowserViewRenderer::GetScreenRect() const {
|
| return gfx::Rect(client_->GetLocationOnScreen(), size_);
|
| }
|
| @@ -716,9 +725,13 @@ bool BrowserViewRenderer::CompositeSW(SkCanvas* canvas) {
|
| }
|
|
|
| void BrowserViewRenderer::UpdateCompositorIsActive() {
|
| - if (compositor_)
|
| - compositor_->SetIsActive(!is_paused_ &&
|
| - (!attached_to_window_ || window_visible_));
|
| + if (compositor_) {
|
| + if (disable_page_visibility_)
|
| + compositor_->SetIsActive(!is_paused_ &&
|
| + (!attached_to_window_ || window_visible_));
|
| + else
|
| + compositor_->SetIsActive(IsClientVisible());
|
| + }
|
| }
|
|
|
| std::string BrowserViewRenderer::ToString() const {
|
|
|