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

Unified Diff: components/open_from_clipboard/clipboard_recent_content.cc

Issue 2801813003: Omnibox - ClipboardRecentContent - Make Proper Singleton (Closed)
Patch Set: jif@'s suggestion Created 3 years, 8 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
Index: components/open_from_clipboard/clipboard_recent_content.cc
diff --git a/components/open_from_clipboard/clipboard_recent_content.cc b/components/open_from_clipboard/clipboard_recent_content.cc
index a31a9d6f76aca9e1c9d9246573a3d54aecedde26..739a8c7ed7e33ab246862032f6bc2dfd03529e32 100644
--- a/components/open_from_clipboard/clipboard_recent_content.cc
+++ b/components/open_from_clipboard/clipboard_recent_content.cc
@@ -7,8 +7,6 @@
#include "url/url_constants.h"
namespace {
-ClipboardRecentContent* g_clipboard_recent_content = nullptr;
-
// Schemes appropriate for suggestion by ClipboardRecentContent.
const char* kAuthorizedSchemes[] = {
url::kAboutScheme, url::kDataScheme, url::kHttpScheme, url::kHttpsScheme,
@@ -24,17 +22,17 @@ const char* kAuthorizedSchemes[] = {
ClipboardRecentContent::ClipboardRecentContent() {}
ClipboardRecentContent::~ClipboardRecentContent() {
- g_clipboard_recent_content = nullptr;
}
// static
ClipboardRecentContent* ClipboardRecentContent::GetInstance() {
- return g_clipboard_recent_content;
+ return UniquePtrToInstance()->get();
}
// static
-void ClipboardRecentContent::SetInstance(ClipboardRecentContent* instance) {
- g_clipboard_recent_content = instance;
+void ClipboardRecentContent::SetInstance(
+ std::unique_ptr<ClipboardRecentContent> new_instance) {
+ (*UniquePtrToInstance()) = std::move(new_instance);
}
// static
@@ -48,3 +46,10 @@ bool ClipboardRecentContent::IsAppropriateSuggestion(const GURL& url) {
// Not a scheme we're allowed to return.
return false;
}
+
+// static
+std::unique_ptr<ClipboardRecentContent>*
+ClipboardRecentContent::UniquePtrToInstance() {
Peter Kasting 2017/04/10 21:59:22 Why do this as a static member function instead of
Mark P 2017/04/10 22:05:22 jif@ wrote: "I don't think we are allowed to have
Peter Kasting 2017/04/10 22:18:34 On thinking about it more I think both methods are
Mark P 2017/04/10 23:10:14 Okay. This is also fine with me. Done.
+ static std::unique_ptr<ClipboardRecentContent> instance;
+ return &instance;
+}

Powered by Google App Engine
This is Rietveld 408576698