0

Retire ScopedObserver in /headless.

ScopedObserver is being deprecated in favor of two new classes:
- base::ScopedObservation for observers that only ever observe
  a single source.
- base::ScopedMultiSourceObservation for observers that do or may
  observe more than a single source.

Bug: 1145565
Change-Id: Icbc05ba48d1768afe3157505279d2d133383b3d7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2927660
Reviewed-by: Peter Kvitek <kvitekp@chromium.org>
Commit-Queue: Sigurður Ásgeirsson <siggi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#888073}
This commit is contained in:
Sigurdur Asgeirsson
2021-06-01 19:05:28 +00:00
committed by Chromium LUCI CQ
parent 13525f3ff3
commit efd3e2e16e
2 changed files with 9 additions and 7 deletions

@ -9,8 +9,7 @@
namespace headless {
HeadlessFocusClient::HeadlessFocusClient()
: focused_window_(nullptr), observer_manager_(this) {}
HeadlessFocusClient::HeadlessFocusClient() : focused_window_(nullptr) {}
HeadlessFocusClient::~HeadlessFocusClient() = default;
@ -28,12 +27,14 @@ void HeadlessFocusClient::FocusWindow(aura::Window* window) {
if (window && !window->CanFocus())
return;
if (focused_window_)
observer_manager_.Remove(focused_window_);
if (focused_window_) {
DCHECK(observation_manager_.IsObservingSource(focused_window_));
observation_manager_.Reset();
}
aura::Window* old_focused_window = focused_window_;
focused_window_ = window;
if (focused_window_)
observer_manager_.Add(focused_window_);
observation_manager_.Observe(focused_window_);
for (aura::client::FocusChangeObserver& observer : focus_observers_)
observer.OnWindowFocused(focused_window_, old_focused_window);

@ -7,7 +7,7 @@
#include "base/macros.h"
#include "base/observer_list.h"
#include "base/scoped_observer.h"
#include "base/scoped_observation.h"
#include "ui/aura/client/focus_client.h"
#include "ui/aura/window_observer.h"
@ -31,7 +31,8 @@ class HeadlessFocusClient : public aura::client::FocusClient,
void OnWindowDestroying(aura::Window* window) override;
aura::Window* focused_window_;
ScopedObserver<aura::Window, aura::WindowObserver> observer_manager_;
base::ScopedObservation<aura::Window, aura::WindowObserver>
observation_manager_{this};
base::ObserverList<aura::client::FocusChangeObserver>::Unchecked
focus_observers_;