Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1020)

Unified Diff: chrome/browser/chromeos/ui/accessibility_focus_ring_controller.cc

Issue 2038093003: Refactor accessible focus ring code so the layers are animation observers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@improve_highlights
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/ui/accessibility_focus_ring_controller.cc
diff --git a/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.cc b/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.cc
index b41a0ea1e083227209dba142be1a6ce96b8dfbfa..32f54ba2b550a5c078613b78c3fb42ad75968bd6 100644
--- a/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.cc
+++ b/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.cc
@@ -8,11 +8,9 @@
#include <algorithm>
-#include "ash/display/window_tree_host_manager.h"
#include "ash/shell.h"
#include "base/logging.h"
#include "chrome/browser/chromeos/ui/focus_ring_layer.h"
-#include "ui/display/screen.h"
namespace chromeos {
@@ -60,7 +58,7 @@ AccessibilityFocusRingController*
}
AccessibilityFocusRingController::AccessibilityFocusRingController()
- : compositor_(nullptr), cursor_opacity_(0), cursor_compositor_(nullptr) {}
+ : cursor_opacity_(0) {}
AccessibilityFocusRingController::~AccessibilityFocusRingController() {
}
@@ -89,14 +87,7 @@ void AccessibilityFocusRingController::Update() {
}
}
- ui::Compositor* compositor = CompositorForBounds(rings_[0].GetBounds());
- if (compositor != compositor_) {
- RemoveAnimationObservers();
- compositor_ = compositor;
- AddAnimationObservers();
- }
-
- if (compositor_ && compositor_->HasAnimationObserver(this)) {
+ if (layers_[0]->CanAnimate()) {
focus_change_time_ = base::TimeTicks::Now();
} else {
// If we can't animate, set the location of the first ring.
@@ -104,30 +95,6 @@ void AccessibilityFocusRingController::Update() {
}
}
-ui::Compositor* AccessibilityFocusRingController::CompositorForBounds(
- const gfx::Rect& bounds) {
- display::Display display =
- display::Screen::GetScreen()->GetDisplayMatching(bounds);
- aura::Window* root_window = ash::Shell::GetInstance()
- ->window_tree_host_manager()
- ->GetRootWindowForDisplayId(display.id());
- return root_window->layer()->GetCompositor();
-}
-
-void AccessibilityFocusRingController::RemoveAnimationObservers() {
- if (compositor_ && compositor_->HasAnimationObserver(this))
- compositor_->RemoveAnimationObserver(this);
- if (cursor_compositor_ && cursor_compositor_->HasAnimationObserver(this))
- cursor_compositor_->RemoveAnimationObserver(this);
-}
-
-void AccessibilityFocusRingController::AddAnimationObservers() {
- if (compositor_ && !compositor_->HasAnimationObserver(this))
- compositor_->AddAnimationObserver(this);
- if (cursor_compositor_ && !cursor_compositor_->HasAnimationObserver(this))
- cursor_compositor_->AddAnimationObserver(this);
-}
-
void AccessibilityFocusRingController::SetCursorRing(
const gfx::Point& location) {
cursor_location_ = location;
@@ -141,14 +108,6 @@ void AccessibilityFocusRingController::SetCursorRing(
kCursorRingColorBlue));
}
cursor_layer_->Set(location);
-
- ui::Compositor* compositor =
- CompositorForBounds(gfx::Rect(location.x(), location.y(), 0, 0));
- if (compositor != cursor_compositor_) {
- RemoveAnimationObservers();
- cursor_compositor_ = compositor;
- AddAnimationObservers();
- }
}
void AccessibilityFocusRingController::SetCaretRing(
@@ -359,10 +318,10 @@ void AccessibilityFocusRingController::OnDeviceScaleFactorChanged() {
void AccessibilityFocusRingController::OnAnimationStep(
base::TimeTicks timestamp) {
- if (!rings_.empty() && compositor_)
+ if (!rings_.empty() && layers_[0]->CanAnimate())
AnimateFocusRings(timestamp);
- if (cursor_layer_ && cursor_compositor_)
+ if (cursor_layer_ && cursor_layer_->CanAnimate())
AnimateCursorRing(timestamp);
}
@@ -383,10 +342,6 @@ void AccessibilityFocusRingController::AnimateFocusRings(
base::TimeDelta::FromMilliseconds(kTransitionTimeMilliseconds);
if (delta >= transition_time) {
layers_[0]->Set(rings_[0]);
-
- RemoveAnimationObservers();
- compositor_ = nullptr;
- AddAnimationObservers();
return;
}
@@ -440,15 +395,4 @@ void AccessibilityFocusRingController::AnimateCursorRing(
cursor_layer_->SetOpacity(cursor_opacity_);
}
-void AccessibilityFocusRingController::OnCompositingShuttingDown(
- ui::Compositor* compositor) {
- if (compositor == compositor_ || compositor == cursor_compositor_)
- compositor->RemoveAnimationObserver(this);
-
- if (compositor == compositor_)
- compositor_ = nullptr;
- if (compositor == cursor_compositor_)
- cursor_compositor_ = nullptr;
-}
-
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698