| 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 "content/browser/android/overscroll_controller_android.h" | 5 #include "content/browser/android/overscroll_controller_android.h" |
| 6 | 6 |
| 7 #include "base/android/build_info.h" | 7 #include "base/android/build_info.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/memory/ptr_util.h" |
| 9 #include "cc/layers/layer.h" | 10 #include "cc/layers/layer.h" |
| 10 #include "cc/output/compositor_frame_metadata.h" | 11 #include "cc/output/compositor_frame_metadata.h" |
| 11 #include "content/browser/android/content_view_core_impl.h" | 12 #include "content/browser/android/content_view_core_impl.h" |
| 12 #include "content/common/input/did_overscroll_params.h" | 13 #include "content/common/input/did_overscroll_params.h" |
| 13 #include "content/public/browser/navigation_controller.h" | 14 #include "content/public/browser/navigation_controller.h" |
| 14 #include "content/public/browser/user_metrics.h" | 15 #include "content/public/browser/user_metrics.h" |
| 15 #include "content/public/common/content_switches.h" | 16 #include "content/public/common/content_switches.h" |
| 16 #include "third_party/WebKit/public/web/WebInputEvent.h" | 17 #include "third_party/WebKit/public/web/WebInputEvent.h" |
| 17 #include "ui/android/edge_effect.h" | 18 #include "ui/android/edge_effect.h" |
| 18 #include "ui/android/edge_effect_l.h" | 19 #include "ui/android/edge_effect_l.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 // Android releases can be quite faint, depending on the OEM-supplied | 56 // Android releases can be quite faint, depending on the OEM-supplied |
| 56 // overscroll resources, and lasts nearly twice as long. | 57 // overscroll resources, and lasts nearly twice as long. |
| 57 if (IsAndroidLOrNewer()) | 58 if (IsAndroidLOrNewer()) |
| 58 return kMinGlowAlphaToDisableRefreshOnL; | 59 return kMinGlowAlphaToDisableRefreshOnL; |
| 59 | 60 |
| 60 // Any value greater than 1 effectively prevents the glow effect from ever | 61 // Any value greater than 1 effectively prevents the glow effect from ever |
| 61 // suppressing the refresh effect. | 62 // suppressing the refresh effect. |
| 62 return 1.01f; | 63 return 1.01f; |
| 63 } | 64 } |
| 64 | 65 |
| 65 scoped_ptr<EdgeEffectBase> CreateGlowEdgeEffect( | 66 std::unique_ptr<EdgeEffectBase> CreateGlowEdgeEffect( |
| 66 ui::ResourceManager* resource_manager, | 67 ui::ResourceManager* resource_manager, |
| 67 float dpi_scale) { | 68 float dpi_scale) { |
| 68 DCHECK(resource_manager); | 69 DCHECK(resource_manager); |
| 69 if (IsAndroidLOrNewer()) | 70 if (IsAndroidLOrNewer()) |
| 70 return scoped_ptr<EdgeEffectBase>(new EdgeEffectL(resource_manager)); | 71 return std::unique_ptr<EdgeEffectBase>(new EdgeEffectL(resource_manager)); |
| 71 | 72 |
| 72 return scoped_ptr<EdgeEffectBase>( | 73 return std::unique_ptr<EdgeEffectBase>( |
| 73 new EdgeEffect(resource_manager, dpi_scale)); | 74 new EdgeEffect(resource_manager, dpi_scale)); |
| 74 } | 75 } |
| 75 | 76 |
| 76 scoped_ptr<OverscrollGlow> CreateGlowEffect(OverscrollGlowClient* client, | 77 std::unique_ptr<OverscrollGlow> CreateGlowEffect(OverscrollGlowClient* client, |
| 77 float dpi_scale) { | 78 float dpi_scale) { |
| 78 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 79 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 79 switches::kDisableOverscrollEdgeEffect)) { | 80 switches::kDisableOverscrollEdgeEffect)) { |
| 80 return nullptr; | 81 return nullptr; |
| 81 } | 82 } |
| 82 | 83 |
| 83 return make_scoped_ptr(new OverscrollGlow(client)); | 84 return base::WrapUnique(new OverscrollGlow(client)); |
| 84 } | 85 } |
| 85 | 86 |
| 86 scoped_ptr<OverscrollRefresh> CreateRefreshEffect( | 87 std::unique_ptr<OverscrollRefresh> CreateRefreshEffect( |
| 87 OverscrollRefreshHandler* handler) { | 88 OverscrollRefreshHandler* handler) { |
| 88 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 89 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 89 switches::kDisablePullToRefreshEffect)) { | 90 switches::kDisablePullToRefreshEffect)) { |
| 90 return nullptr; | 91 return nullptr; |
| 91 } | 92 } |
| 92 | 93 |
| 93 return make_scoped_ptr(new OverscrollRefresh(handler)); | 94 return base::WrapUnique(new OverscrollRefresh(handler)); |
| 94 } | 95 } |
| 95 | 96 |
| 96 } // namespace | 97 } // namespace |
| 97 | 98 |
| 98 OverscrollControllerAndroid::OverscrollControllerAndroid( | 99 OverscrollControllerAndroid::OverscrollControllerAndroid( |
| 99 ContentViewCoreImpl* content_view_core) | 100 ContentViewCoreImpl* content_view_core) |
| 100 : compositor_(content_view_core->GetWindowAndroid()->GetCompositor()), | 101 : compositor_(content_view_core->GetWindowAndroid()->GetCompositor()), |
| 101 dpi_scale_(content_view_core->GetDpiScale()), | 102 dpi_scale_(content_view_core->GetDpiScale()), |
| 102 enabled_(true), | 103 enabled_(true), |
| 103 glow_effect_(CreateGlowEffect(this, dpi_scale_)), | 104 glow_effect_(CreateGlowEffect(this, dpi_scale_)), |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 return; | 262 return; |
| 262 enabled_ = false; | 263 enabled_ = false; |
| 263 if (!enabled_) { | 264 if (!enabled_) { |
| 264 if (refresh_effect_) | 265 if (refresh_effect_) |
| 265 refresh_effect_->Reset(); | 266 refresh_effect_->Reset(); |
| 266 if (glow_effect_) | 267 if (glow_effect_) |
| 267 glow_effect_->Reset(); | 268 glow_effect_->Reset(); |
| 268 } | 269 } |
| 269 } | 270 } |
| 270 | 271 |
| 271 scoped_ptr<EdgeEffectBase> OverscrollControllerAndroid::CreateEdgeEffect() { | 272 std::unique_ptr<EdgeEffectBase> |
| 273 OverscrollControllerAndroid::CreateEdgeEffect() { |
| 272 return CreateGlowEdgeEffect(&compositor_->GetResourceManager(), dpi_scale_); | 274 return CreateGlowEdgeEffect(&compositor_->GetResourceManager(), dpi_scale_); |
| 273 } | 275 } |
| 274 | 276 |
| 275 void OverscrollControllerAndroid::SetNeedsAnimate() { | 277 void OverscrollControllerAndroid::SetNeedsAnimate() { |
| 276 compositor_->SetNeedsAnimate(); | 278 compositor_->SetNeedsAnimate(); |
| 277 } | 279 } |
| 278 | 280 |
| 279 } // namespace content | 281 } // namespace content |
| OLD | NEW |