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

Unified Diff: ui/views/focus/focus_manager_factory.cc

Issue 2953243002: FocusManagerFactory::Create() should return a unique_ptr. (Closed)
Patch Set: build Created 3 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
« no previous file with comments | « ui/views/focus/focus_manager_factory.h ('k') | ui/views/focus/focus_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/focus/focus_manager_factory.cc
diff --git a/ui/views/focus/focus_manager_factory.cc b/ui/views/focus/focus_manager_factory.cc
index a5393cfb9087a17245c5f3a6afd8322848aaa6df..99ca7c562634b03aca72706f04c2502c3aca6c11 100644
--- a/ui/views/focus/focus_manager_factory.cc
+++ b/ui/views/focus/focus_manager_factory.cc
@@ -4,6 +4,7 @@
#include "ui/views/focus/focus_manager_factory.h"
+#include "base/memory/ptr_util.h"
#include "ui/views/focus/focus_manager.h"
#include "ui/views/focus/focus_manager_delegate.h"
@@ -17,16 +18,17 @@ class DefaultFocusManagerFactory : public FocusManagerFactory {
~DefaultFocusManagerFactory() override {}
protected:
- FocusManager* CreateFocusManager(Widget* widget,
- bool desktop_widget) override {
- return new FocusManager(widget, nullptr /* delegate */);
+ std::unique_ptr<FocusManager> CreateFocusManager(
+ Widget* widget,
+ bool desktop_widget) override {
+ return base::MakeUnique<FocusManager>(widget, nullptr /* delegate */);
}
private:
DISALLOW_COPY_AND_ASSIGN(DefaultFocusManagerFactory);
};
-FocusManagerFactory* focus_manager_factory = nullptr;
+FocusManagerFactory* g_focus_manager_factory = nullptr;
} // namespace
@@ -37,19 +39,19 @@ FocusManagerFactory::~FocusManagerFactory() {
}
// static
-FocusManager* FocusManagerFactory::Create(Widget* widget,
- bool desktop_widget) {
- if (!focus_manager_factory)
- focus_manager_factory = new DefaultFocusManagerFactory();
- return focus_manager_factory->CreateFocusManager(widget, desktop_widget);
+std::unique_ptr<FocusManager> FocusManagerFactory::Create(Widget* widget,
+ bool desktop_widget) {
+ if (!g_focus_manager_factory)
+ g_focus_manager_factory = new DefaultFocusManagerFactory();
+ return g_focus_manager_factory->CreateFocusManager(widget, desktop_widget);
}
// static
void FocusManagerFactory::Install(FocusManagerFactory* f) {
- if (f == focus_manager_factory)
+ if (f == g_focus_manager_factory)
return;
- delete focus_manager_factory;
- focus_manager_factory = f ? f : new DefaultFocusManagerFactory();
+ delete g_focus_manager_factory;
+ g_focus_manager_factory = f ? f : new DefaultFocusManagerFactory();
}
} // namespace views
« no previous file with comments | « ui/views/focus/focus_manager_factory.h ('k') | ui/views/focus/focus_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698