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
3 // found in the LICENSE file.
5 #include "android_webview/browser/parent_compositor_draw_constraints.h"
7 #include "android_webview/browser/child_frame.h"
9 namespace android_webview
{
11 ParentCompositorDrawConstraints::ParentCompositorDrawConstraints()
15 ParentCompositorDrawConstraints::ParentCompositorDrawConstraints(
17 const gfx::Transform
& transform
,
18 const gfx::Rect
& surface_rect
)
19 : is_layer(is_layer
), transform(transform
), surface_rect(surface_rect
) {
22 bool ParentCompositorDrawConstraints::NeedUpdate(
23 const ChildFrame
& frame
) const {
24 if (is_layer
!= frame
.is_layer
||
25 transform
!= frame
.transform_for_tile_priority
) {
29 // Viewport for tile priority does not depend on surface rect in this case.
30 if (frame
.offscreen_pre_raster
)
34 return surface_rect
!= frame
.viewport_rect_for_tile_priority
;
36 // Workaround for corner case. See crbug.com/417479.
37 return frame
.viewport_rect_for_tile_priority
.IsEmpty() &&
38 !surface_rect
.IsEmpty();
42 } // namespace webview