0

Remove support for custom overscroll background

Mac was the only platform to do this, and more recent versions
of the OS do not support it anymore. Callers to these functions
have been removed from the Blink side.

BUG=248742

Review URL: https://codereview.chromium.org/838603002

Cr-Commit-Position: refs/heads/master@{#312529}
This commit is contained in:
ccameron
2015-01-21 18:20:20 -08:00
committed by Commit bot
parent 17363ead10
commit cbcd8ee263
13 changed files with 1 additions and 149 deletions

@ -184,8 +184,6 @@ void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) {
LayerTreeHost::~LayerTreeHost() {
TRACE_EVENT0("cc", "LayerTreeHost::~LayerTreeHost");
overhang_ui_resource_ = nullptr;
if (root_layer_.get())
root_layer_->SetLayerTreeHost(NULL);
@ -361,11 +359,6 @@ void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) {
sync_tree->set_ui_resource_request_queue(ui_resource_request_queue_);
ui_resource_request_queue_.clear();
}
if (overhang_ui_resource_) {
host_impl->SetOverhangUIResource(
overhang_ui_resource_->id(),
GetUIResourceSize(overhang_ui_resource_->id()));
}
DCHECK(!sync_tree->ViewportSizeInvalid());
@ -720,23 +713,6 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
SetNeedsCommit();
}
void LayerTreeHost::SetOverhangBitmap(const SkBitmap& bitmap) {
DCHECK(bitmap.width() && bitmap.height());
DCHECK_EQ(bitmap.bytesPerPixel(), 4);
SkBitmap bitmap_copy;
if (bitmap.isImmutable()) {
bitmap_copy = bitmap;
} else {
bitmap.copyTo(&bitmap_copy);
bitmap_copy.setImmutable();
}
UIResourceBitmap overhang_bitmap(bitmap_copy);
overhang_bitmap.SetWrapMode(UIResourceBitmap::REPEAT);
overhang_ui_resource_ = ScopedUIResource::Create(this, overhang_bitmap);
}
void LayerTreeHost::SetVisible(bool visible) {
if (visible_ == visible)
return;

@ -235,8 +235,6 @@ class CC_EXPORT LayerTreeHost {
has_transparent_background_ = transparent;
}
void SetOverhangBitmap(const SkBitmap& bitmap);
PrioritizedResourceManager* contents_texture_manager() const {
return contents_texture_manager_.get();
}
@ -441,10 +439,6 @@ class CC_EXPORT LayerTreeHost {
SkColor background_color_;
bool has_transparent_background_;
// If set, this texture is used to fill in the parts of the screen not
// covered by layers.
scoped_ptr<ScopedUIResource> overhang_ui_resource_;
typedef ScopedPtrVector<PrioritizedResource> TextureList;
size_t partial_texture_update_requests_;

@ -220,7 +220,6 @@ LayerTreeHostImpl::LayerTreeHostImpl(
max_memory_needed_bytes_(0),
zero_budget_(false),
device_scale_factor_(1.f),
overhang_ui_resource_id_(0),
resourceless_software_draw_(false),
begin_impl_frame_interval_(BeginFrameArgs::DefaultInterval()),
animation_registrar_(AnimationRegistrar::Create()),
@ -595,8 +594,6 @@ static void AppendQuadsForRenderSurfaceLayer(
}
static void AppendQuadsToFillScreen(
ResourceProvider::ResourceId overhang_resource_id,
const gfx::SizeF& overhang_resource_scaled_size,
const gfx::Rect& root_scroll_layer_rect,
RenderPass* target_render_pass,
LayerImpl* root_layer,
@ -609,16 +606,6 @@ static void AppendQuadsToFillScreen(
if (fill_region.IsEmpty())
return;
// Divide the fill region into the part to be filled with the overhang
// resource and the part to be filled with the background color.
Region screen_background_color_region = fill_region;
Region overhang_region;
if (overhang_resource_id) {
overhang_region = fill_region;
overhang_region.Subtract(root_scroll_layer_rect);
screen_background_color_region.Intersect(root_scroll_layer_rect);
}
// Manually create the quad state for the gutter quads, as the root layer
// doesn't have any bounds and so can't generate this itself.
// TODO(danakj): Make the gutter quads generated by the solid color layer
@ -638,8 +625,7 @@ static void AppendQuadsToFillScreen(
SkXfermode::kSrcOver_Mode,
sorting_context_id);
for (Region::Iterator fill_rects(screen_background_color_region);
fill_rects.has_rect();
for (Region::Iterator fill_rects(fill_region); fill_rects.has_rect();
fill_rects.next()) {
gfx::Rect screen_space_rect = fill_rects.rect();
gfx::Rect visible_screen_space_rect = screen_space_rect;
@ -653,35 +639,6 @@ static void AppendQuadsToFillScreen(
screen_background_color,
false);
}
for (Region::Iterator fill_rects(overhang_region);
fill_rects.has_rect();
fill_rects.next()) {
DCHECK(overhang_resource_id);
gfx::Rect screen_space_rect = fill_rects.rect();
gfx::Rect opaque_screen_space_rect = screen_space_rect;
gfx::Rect visible_screen_space_rect = screen_space_rect;
TextureDrawQuad* tex_quad =
target_render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
const float vertex_opacity[4] = {1.f, 1.f, 1.f, 1.f};
tex_quad->SetNew(
shared_quad_state,
screen_space_rect,
opaque_screen_space_rect,
visible_screen_space_rect,
overhang_resource_id,
false,
gfx::PointF(
screen_space_rect.x() / overhang_resource_scaled_size.width(),
screen_space_rect.y() / overhang_resource_scaled_size.height()),
gfx::PointF(
screen_space_rect.right() / overhang_resource_scaled_size.width(),
screen_space_rect.bottom() /
overhang_resource_scaled_size.height()),
screen_background_color,
vertex_opacity,
false,
false);
}
}
DrawResult LayerTreeHostImpl::CalculateRenderPasses(
@ -894,8 +851,6 @@ DrawResult LayerTreeHostImpl::CalculateRenderPasses(
if (!active_tree_->has_transparent_background()) {
frame->render_passes.back()->has_transparent_background = false;
AppendQuadsToFillScreen(
ResourceIdForUIResource(overhang_ui_resource_id_),
gfx::ScaleSize(overhang_ui_resource_size_, device_scale_factor_),
active_tree_->RootScrollLayerDeviceViewportBounds(),
frame->render_passes.back(),
active_tree_->root_layer(),
@ -2234,13 +2189,6 @@ void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) {
active_tree_->set_needs_update_draw_properties();
}
void LayerTreeHostImpl::SetOverhangUIResource(
UIResourceId overhang_ui_resource_id,
const gfx::Size& overhang_ui_resource_size) {
overhang_ui_resource_id_ = overhang_ui_resource_id;
overhang_ui_resource_size_ = overhang_ui_resource_size;
}
void LayerTreeHostImpl::SetDeviceScaleFactor(float device_scale_factor) {
if (device_scale_factor == device_scale_factor_)
return;

@ -359,9 +359,6 @@ class CC_EXPORT LayerTreeHostImpl
void SetViewportSize(const gfx::Size& device_viewport_size);
gfx::Size device_viewport_size() const { return device_viewport_size_; }
void SetOverhangUIResource(UIResourceId overhang_ui_resource_id,
const gfx::Size& overhang_ui_resource_size);
void SetDeviceScaleFactor(float device_scale_factor);
float device_scale_factor() const { return device_scale_factor_; }
@ -689,10 +686,6 @@ class CC_EXPORT LayerTreeHostImpl
// pageScaleFactor=1.
float device_scale_factor_;
// UI resource to use for drawing overhang gutters.
UIResourceId overhang_ui_resource_id_;
gfx::Size overhang_ui_resource_size_;
// Optional top-level constraints that can be set by the OutputSurface.
// - external_transform_ applies a transform above the root layer
// - external_viewport_ is used DrawProperties, tile management and

@ -4759,49 +4759,6 @@ TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCoveredScaled) {
TestLayerIsLargerThanViewport();
}
TEST_F(LayerTreeHostImplViewportCoveredTest, ViewportCoveredOverhangBitmap) {
viewport_size_ = gfx::Size(1000, 1000);
bool always_draw = false;
CreateHostImpl(DefaultSettings(), CreateFakeOutputSurface(always_draw));
host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_));
SetupActiveTreeLayers();
// Specify an overhang bitmap to use.
bool is_opaque = false;
UIResourceBitmap ui_resource_bitmap(gfx::Size(2, 2), is_opaque);
ui_resource_bitmap.SetWrapMode(UIResourceBitmap::REPEAT);
UIResourceId ui_resource_id = 12345;
host_impl_->CreateUIResource(ui_resource_id, ui_resource_bitmap);
host_impl_->SetOverhangUIResource(ui_resource_id, gfx::Size(32, 32));
set_gutter_quad_material(DrawQuad::TEXTURE_CONTENT);
set_gutter_texture_size(gfx::Size(32, 32));
TestLayerCoversFullViewport();
TestEmptyLayer();
TestLayerInMiddleOfViewport();
TestLayerIsLargerThanViewport();
// Change the resource size.
host_impl_->SetOverhangUIResource(ui_resource_id, gfx::Size(128, 16));
set_gutter_texture_size(gfx::Size(128, 16));
TestLayerCoversFullViewport();
TestEmptyLayer();
TestLayerInMiddleOfViewport();
TestLayerIsLargerThanViewport();
// Change the device scale factor
host_impl_->SetDeviceScaleFactor(2.f);
host_impl_->SetViewportSize(DipSizeToPixelSize(viewport_size_));
TestLayerCoversFullViewport();
TestEmptyLayer();
TestLayerInMiddleOfViewport();
TestLayerIsLargerThanViewport();
}
TEST_F(LayerTreeHostImplViewportCoveredTest, ActiveTreeGrowViewportInvalid) {
viewport_size_ = gfx::Size(1000, 1000);

@ -50,8 +50,6 @@
<structure type="chrome_scaled_image" name="IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_OFF" file="mediaplayer_overlay_cast_off.png" />
<structure type="chrome_scaled_image" name="IDR_MEDIAPLAYER_OVERLAY_PLAY_BUTTON" file="mediaplayer_overlay_play.png" />
<if expr="is_macosx">
<structure type="chrome_scaled_image" name="IDR_OVERHANG_PATTERN" file="overhang_pattern.png" />
<structure type="chrome_scaled_image" name="IDR_OVERHANG_SHADOW" file="overhang_shadow.png" />
<structure type="chrome_scaled_image" name="IDR_ALIAS_CURSOR" file="alias_cursor.png" />
<structure type="chrome_scaled_image" name="IDR_CELL_CURSOR" file="cell_cursor.png" />
<structure type="chrome_scaled_image" name="IDR_EAST_RESIZE_CURSOR" file="east_resize_cursor.png" />

Binary file not shown.

Before

(image error) Size: 20 KiB

Binary file not shown.

Before

(image error) Size: 151 B

@ -808,10 +808,6 @@ const DataResource kDataResources[] = {
IDR_MEDIAPLAYER_OVERLAY_CAST_BUTTON_OFF, ui::SCALE_FACTOR_100P },
{ "mediaplayerOverlayPlay",
IDR_MEDIAPLAYER_OVERLAY_PLAY_BUTTON, ui::SCALE_FACTOR_100P },
#if defined(OS_MACOSX)
{ "overhangPattern", IDR_OVERHANG_PATTERN, ui::SCALE_FACTOR_100P },
{ "overhangShadow", IDR_OVERHANG_SHADOW, ui::SCALE_FACTOR_100P },
#endif
{ "panIcon", IDR_PAN_SCROLL_ICON, ui::SCALE_FACTOR_100P },
{ "searchCancel", IDR_SEARCH_CANCEL, ui::SCALE_FACTOR_100P },
{ "searchCancelPressed", IDR_SEARCH_CANCEL_PRESSED, ui::SCALE_FACTOR_100P },

@ -583,10 +583,6 @@ void RenderWidgetCompositor::setHasTransparentBackground(bool transparent) {
layer_tree_host_->set_has_transparent_background(transparent);
}
void RenderWidgetCompositor::setOverhangBitmap(const SkBitmap& bitmap) {
layer_tree_host_->SetOverhangBitmap(bitmap);
}
void RenderWidgetCompositor::setVisible(bool visible) {
layer_tree_host_->SetVisible(visible);
}

@ -98,7 +98,6 @@ class CONTENT_EXPORT RenderWidgetCompositor
virtual float deviceScaleFactor() const;
virtual void setBackgroundColor(blink::WebColor color);
virtual void setHasTransparentBackground(bool transparent);
virtual void setOverhangBitmap(const SkBitmap& bitmap);
virtual void setVisible(bool visible);
virtual void setPageScaleFactorAndLimits(float page_scale_factor,
float minimum,

@ -155,10 +155,6 @@ void WebLayerTreeViewImpl::setHasTransparentBackground(
layer_tree_host_->set_has_transparent_background(has_transparent_background);
}
void WebLayerTreeViewImpl::setOverhangBitmap(const SkBitmap& bitmap) {
layer_tree_host_->SetOverhangBitmap(bitmap);
}
void WebLayerTreeViewImpl::setVisible(bool visible) {
layer_tree_host_->SetVisible(visible);
}

@ -79,7 +79,6 @@ class WebLayerTreeViewImpl : public blink::WebLayerTreeView,
virtual float deviceScaleFactor() const;
virtual void setBackgroundColor(blink::WebColor color);
virtual void setHasTransparentBackground(bool has_transparent_background);
virtual void setOverhangBitmap(const SkBitmap& bitmap);
virtual void setVisible(bool visible);
virtual void setPageScaleFactorAndLimits(float page_scale_factor,
float minimum,