Commit fdc7c7a5 authored by James Cook's avatar James Cook Committed by Commit Bot

Convert DisplayManager to use CheckedObserver

Display observers have historically caused problems on Chrome OS.
They are not performance critical, so converted from UncheckedObserver
to checked observer.

Bug: 842987
Change-Id: I803afb4c6b5a2ef8e2bf1652183a8835243d07ec
Reviewed-on: https://chromium-review.googlesource.com/c/1263338Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Reviewed-by: default avatarMichael Spang <spang@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597374}
parent d7d5990b
......@@ -32,7 +32,7 @@ class DISPLAY_EXPORT DisplayChangeNotifier {
private:
// The observers that need to be notified when a display is modified, added
// or removed.
base::ObserverList<DisplayObserver>::Unchecked observer_list_;
base::ObserverList<DisplayObserver> observer_list_;
DISALLOW_COPY_AND_ASSIGN(DisplayChangeNotifier);
};
......
......@@ -82,9 +82,7 @@ class DISPLAY_EXPORT DisplayList {
// Removes the Display with the specified id.
void RemoveDisplay(int64_t id);
base::ObserverList<DisplayObserver>::Unchecked* observers() {
return &observers_;
}
base::ObserverList<DisplayObserver>* observers() { return &observers_; }
private:
friend class DisplayListObserverLock;
......@@ -101,7 +99,7 @@ class DISPLAY_EXPORT DisplayList {
std::vector<Display> displays_;
int primary_display_index_ = -1;
base::ObserverList<DisplayObserver>::Unchecked observers_;
base::ObserverList<DisplayObserver> observers_;
int observer_suspend_lock_count_ = 0;
......
......@@ -7,6 +7,7 @@
#include <stdint.h>
#include "base/observer_list_types.h"
#include "ui/display/display_export.h"
namespace display {
......@@ -15,7 +16,7 @@ class Display;
// Observers for display configuration changes.
// TODO(oshima): consolidate |WorkAreaWatcherObserver| and
// |DisplaySettingsProvier|. crbug.com/122863.
class DISPLAY_EXPORT DisplayObserver {
class DISPLAY_EXPORT DisplayObserver : public base::CheckedObserver {
public:
enum DisplayMetric {
DISPLAY_METRIC_NONE = 0,
......@@ -48,7 +49,7 @@ class DISPLAY_EXPORT DisplayObserver {
uint32_t changed_metrics);
protected:
virtual ~DisplayObserver();
~DisplayObserver() override;
};
} // namespace display
......
......@@ -655,7 +655,7 @@ class DISPLAY_MANAGER_EXPORT DisplayManager
base::Closure created_mirror_window_;
base::ObserverList<DisplayObserver>::Unchecked observers_;
base::ObserverList<DisplayObserver> observers_;
// Not empty if mixed mirror mode should be turned on (the specified source
// display is mirrored to the specified destination displays). Empty if mixed
......
......@@ -49,7 +49,7 @@ class ScenicScreen : public PlatformScreen {
DisplayVector displays_;
base::ObserverList<display::DisplayObserver>::Unchecked observers_;
base::ObserverList<display::DisplayObserver> observers_;
base::WeakPtrFactory<ScenicScreen> weak_factory_;
......
......@@ -50,7 +50,7 @@ class WaylandScreen : public PlatformScreen {
private:
display::DisplayList display_list_;
base::ObserverList<display::DisplayObserver>::Unchecked observers_;
base::ObserverList<display::DisplayObserver> observers_;
base::WeakPtrFactory<WaylandScreen> weak_factory_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment