Chromium Code Reviews| 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; |
| +} |