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:

committed by
Chromium LUCI CQ

parent
13525f3ff3
commit
efd3e2e16e
headless/lib/browser
@ -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_;
|
||||
|
||||
|
Reference in New Issue
Block a user