| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "android_webview/browser/browser_view_renderer.h" | 5 #include "android_webview/browser/browser_view_renderer.h" |
| 6 | 6 |
| 7 #include "android_webview/browser/browser_view_renderer_client.h" | 7 #include "android_webview/browser/browser_view_renderer_client.h" |
| 8 #include "android_webview/browser/shared_renderer_state.h" | 8 #include "android_webview/browser/shared_renderer_state.h" |
| 9 #include "android_webview/common/aw_switches.h" | 9 #include "android_webview/common/aw_switches.h" |
| 10 #include "android_webview/public/browser/draw_gl.h" | 10 #include "android_webview/public/browser/draw_gl.h" |
| (...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 710 | 710 |
| 711 void BrowserViewRenderer::PostFallbackTick() { | 711 void BrowserViewRenderer::PostFallbackTick() { |
| 712 DCHECK(fallback_tick_fired_.IsCancelled()); | 712 DCHECK(fallback_tick_fired_.IsCancelled()); |
| 713 fallback_tick_fired_.Reset(base::Bind(&BrowserViewRenderer::FallbackTickFired, | 713 fallback_tick_fired_.Reset(base::Bind(&BrowserViewRenderer::FallbackTickFired, |
| 714 base::Unretained(this))); | 714 base::Unretained(this))); |
| 715 if (compositor_needs_continuous_invalidate_) { | 715 if (compositor_needs_continuous_invalidate_) { |
| 716 ui_task_runner_->PostDelayedTask( | 716 ui_task_runner_->PostDelayedTask( |
| 717 FROM_HERE, | 717 FROM_HERE, |
| 718 fallback_tick_fired_.callback(), | 718 fallback_tick_fired_.callback(), |
| 719 base::TimeDelta::FromMilliseconds(kFallbackTickTimeoutInMilliseconds)); | 719 base::TimeDelta::FromMilliseconds(kFallbackTickTimeoutInMilliseconds)); |
| 720 } else { |
| 721 // Pretend we just composited to unblock further invalidates. |
| 722 DidComposite(); |
| 720 } | 723 } |
| 721 } | 724 } |
| 722 | 725 |
| 723 void BrowserViewRenderer::FallbackTickFired() { | 726 void BrowserViewRenderer::FallbackTickFired() { |
| 724 TRACE_EVENT1("android_webview", | 727 TRACE_EVENT1("android_webview", |
| 725 "BrowserViewRenderer::FallbackTickFired", | 728 "BrowserViewRenderer::FallbackTickFired", |
| 726 "compositor_needs_continuous_invalidate_", | 729 "compositor_needs_continuous_invalidate_", |
| 727 compositor_needs_continuous_invalidate_); | 730 compositor_needs_continuous_invalidate_); |
| 728 | 731 |
| 729 // This should only be called if OnDraw or DrawGL did not come in time, which | 732 // This should only be called if OnDraw or DrawGL did not come in time, which |
| 730 // means block_invalidates_ must still be true. | 733 // means block_invalidates_ must still be true. |
| 731 DCHECK(block_invalidates_); | 734 DCHECK(block_invalidates_); |
| 732 if (compositor_needs_continuous_invalidate_ && compositor_) | 735 if (compositor_needs_continuous_invalidate_ && compositor_) { |
| 733 ForceFakeCompositeSW(); | 736 ForceFakeCompositeSW(); |
| 737 } else { |
| 738 // Pretend we just composited to unblock further invalidates. |
| 739 DidComposite(); |
| 740 } |
| 734 } | 741 } |
| 735 | 742 |
| 736 void BrowserViewRenderer::ForceFakeCompositeSW() { | 743 void BrowserViewRenderer::ForceFakeCompositeSW() { |
| 737 DCHECK(compositor_); | 744 DCHECK(compositor_); |
| 738 SkBitmap bitmap; | 745 SkBitmap bitmap; |
| 739 bitmap.allocN32Pixels(1, 1); | 746 bitmap.allocN32Pixels(1, 1); |
| 740 bitmap.eraseColor(0); | 747 bitmap.eraseColor(0); |
| 741 SkCanvas canvas(bitmap); | 748 SkCanvas canvas(bitmap); |
| 742 CompositeSW(&canvas); | 749 CompositeSW(&canvas); |
| 743 } | 750 } |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 791 base::StringAppendF(&str, | 798 base::StringAppendF(&str, |
| 792 "surface width height: [%d %d] ", | 799 "surface width height: [%d %d] ", |
| 793 draw_info->width, | 800 draw_info->width, |
| 794 draw_info->height); | 801 draw_info->height); |
| 795 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer); | 802 base::StringAppendF(&str, "is_layer: %d ", draw_info->is_layer); |
| 796 } | 803 } |
| 797 return str; | 804 return str; |
| 798 } | 805 } |
| 799 | 806 |
| 800 } // namespace android_webview | 807 } // namespace android_webview |
| OLD | NEW |