Commit f064dd88 authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Clean up ui::ClipboardMonitor.

- Use a ThreadChecker member instead of inheriting from ThreadChecker.
- Switch from a leaky Singleton to base::NoDestructor.

Change-Id: I86f8f50f7776ceefa62ab3586314c5af3bacf7e7
Reviewed-on: https://chromium-review.googlesource.com/1178468Reviewed-by: default avatarJenny Zhang <jennyz@chromium.org>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583866}
parent 0b92e4a4
...@@ -12,28 +12,28 @@ namespace ui { ...@@ -12,28 +12,28 @@ namespace ui {
ClipboardMonitor::ClipboardMonitor() {} ClipboardMonitor::ClipboardMonitor() {}
ClipboardMonitor::~ClipboardMonitor() { ClipboardMonitor::~ClipboardMonitor() {
DCHECK(CalledOnValidThread()); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
} }
// static // static
ClipboardMonitor* ClipboardMonitor::GetInstance() { ClipboardMonitor* ClipboardMonitor::GetInstance() {
return base::Singleton<ClipboardMonitor, static base::NoDestructor<ClipboardMonitor> monitor;
base::LeakySingletonTraits<ClipboardMonitor>>::get(); return monitor.get();
} }
void ClipboardMonitor::NotifyClipboardDataChanged() { void ClipboardMonitor::NotifyClipboardDataChanged() {
DCHECK(CalledOnValidThread()); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
for (ClipboardObserver& observer : observers_) for (ClipboardObserver& observer : observers_)
observer.OnClipboardDataChanged(); observer.OnClipboardDataChanged();
} }
void ClipboardMonitor::AddObserver(ClipboardObserver* observer) { void ClipboardMonitor::AddObserver(ClipboardObserver* observer) {
DCHECK(CalledOnValidThread()); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
observers_.AddObserver(observer); observers_.AddObserver(observer);
} }
void ClipboardMonitor::RemoveObserver(ClipboardObserver* observer) { void ClipboardMonitor::RemoveObserver(ClipboardObserver* observer) {
DCHECK(CalledOnValidThread()); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
observers_.RemoveObserver(observer); observers_.RemoveObserver(observer);
} }
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#define UI_BASE_CLIPBOARD_CLIPBOARD_MONITOR_H_ #define UI_BASE_CLIPBOARD_CLIPBOARD_MONITOR_H_
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/singleton.h" #include "base/no_destructor.h"
#include "base/observer_list.h" #include "base/observer_list.h"
#include "base/threading/thread_checker.h" #include "base/threading/thread_checker.h"
#include "ui/base/ui_base_export.h" #include "ui/base/ui_base_export.h"
...@@ -17,7 +17,7 @@ class ClipboardObserver; ...@@ -17,7 +17,7 @@ class ClipboardObserver;
// A singleton instance to monitor and notify ClipboardObservers for clipboard // A singleton instance to monitor and notify ClipboardObservers for clipboard
// changes. // changes.
class UI_BASE_EXPORT ClipboardMonitor : public base::ThreadChecker { class UI_BASE_EXPORT ClipboardMonitor {
public: public:
static ClipboardMonitor* GetInstance(); static ClipboardMonitor* GetInstance();
...@@ -31,15 +31,18 @@ class UI_BASE_EXPORT ClipboardMonitor : public base::ThreadChecker { ...@@ -31,15 +31,18 @@ class UI_BASE_EXPORT ClipboardMonitor : public base::ThreadChecker {
virtual void NotifyClipboardDataChanged(); virtual void NotifyClipboardDataChanged();
private: private:
friend struct base::DefaultSingletonTraits<ClipboardMonitor>; friend class base::NoDestructor<ClipboardMonitor>;
ClipboardMonitor(); ClipboardMonitor();
virtual ~ClipboardMonitor(); virtual ~ClipboardMonitor();
base::ObserverList<ClipboardObserver> observers_; base::ObserverList<ClipboardObserver> observers_;
THREAD_CHECKER(thread_checker_);
DISALLOW_COPY_AND_ASSIGN(ClipboardMonitor); DISALLOW_COPY_AND_ASSIGN(ClipboardMonitor);
}; };
} // namespace ui } // namespace ui
#endif /* UI_BASE_CLIPBOARD_CLIPBOARD_MONITOR_H_ */ #endif // UI_BASE_CLIPBOARD_CLIPBOARD_MONITOR_H_
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