Commit 4990bf6e authored by avi's avatar avi Committed by Commit bot

Switch SupportsUserData uses to use unique_ptr.

The interface taking a raw pointer is deprecated and being removed.

BUG=690937

Review-Url: https://codereview.chromium.org/2847013003
Cr-Commit-Position: refs/heads/master@{#468006}
parent d9ba67a8
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "chrome/browser/history/chrome_history_backend_client.h" #include "chrome/browser/history/chrome_history_backend_client.h"
#include "base/memory/ptr_util.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/common/channel_info.h" #include "chrome/common/channel_info.h"
#include "components/bookmarks/browser/bookmark_model.h" #include "components/bookmarks/browser/bookmark_model.h"
...@@ -87,7 +88,7 @@ void ChromeHistoryBackendClient::OnHistoryBackendInitialized( ...@@ -87,7 +88,7 @@ void ChromeHistoryBackendClient::OnHistoryBackendInitialized(
if (thumbnail_database) { if (thumbnail_database) {
history_backend->SetUserData( history_backend->SetUserData(
history::AndroidProviderBackend::GetUserDataKey(), history::AndroidProviderBackend::GetUserDataKey(),
new history::AndroidProviderBackend( base::MakeUnique<history::AndroidProviderBackend>(
history_dir.Append(kAndroidCacheFilename), history_database, history_dir.Append(kAndroidCacheFilename), history_database,
thumbnail_database, this, history_backend)); thumbnail_database, this, history_backend));
} }
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "components/history/content/browser/web_contents_top_sites_observer.h" #include "components/history/content/browser/web_contents_top_sites_observer.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "components/history/core/browser/top_sites.h" #include "components/history/core/browser/top_sites.h"
#include "content/public/browser/navigation_details.h" #include "content/public/browser/navigation_details.h"
#include "content/public/browser/navigation_entry.h" #include "content/public/browser/navigation_entry.h"
...@@ -19,8 +20,9 @@ void WebContentsTopSitesObserver::CreateForWebContents( ...@@ -19,8 +20,9 @@ void WebContentsTopSitesObserver::CreateForWebContents(
TopSites* top_sites) { TopSites* top_sites) {
DCHECK(web_contents); DCHECK(web_contents);
if (!FromWebContents(web_contents)) { if (!FromWebContents(web_contents)) {
web_contents->SetUserData(UserDataKey(), new WebContentsTopSitesObserver( web_contents->SetUserData(UserDataKey(),
web_contents, top_sites)); base::WrapUnique(new WebContentsTopSitesObserver(
web_contents, top_sites)));
} }
} }
......
...@@ -19,6 +19,8 @@ class WebContentsTopSitesObserver ...@@ -19,6 +19,8 @@ class WebContentsTopSitesObserver
: public content::WebContentsObserver, : public content::WebContentsObserver,
public content::WebContentsUserData<WebContentsTopSitesObserver> { public content::WebContentsUserData<WebContentsTopSitesObserver> {
public: public:
~WebContentsTopSitesObserver() override;
static void CreateForWebContents(content::WebContents* web_contents, static void CreateForWebContents(content::WebContents* web_contents,
TopSites* top_sites); TopSites* top_sites);
...@@ -27,7 +29,6 @@ class WebContentsTopSitesObserver ...@@ -27,7 +29,6 @@ class WebContentsTopSitesObserver
WebContentsTopSitesObserver(content::WebContents* web_contents, WebContentsTopSitesObserver(content::WebContents* web_contents,
TopSites* top_sites); TopSites* top_sites);
~WebContentsTopSitesObserver() override;
// content::WebContentsObserver implementation. // content::WebContentsObserver implementation.
void NavigationEntryCommitted( void NavigationEntryCommitted(
......
...@@ -2484,10 +2484,11 @@ base::SupportsUserData::Data* HistoryBackend::GetUserData( ...@@ -2484,10 +2484,11 @@ base::SupportsUserData::Data* HistoryBackend::GetUserData(
return supports_user_data_helper_->GetUserData(key); return supports_user_data_helper_->GetUserData(key);
} }
void HistoryBackend::SetUserData(const void* key, void HistoryBackend::SetUserData(
base::SupportsUserData::Data* data) { const void* key,
std::unique_ptr<base::SupportsUserData::Data> data) {
DCHECK(supports_user_data_helper_); DCHECK(supports_user_data_helper_);
supports_user_data_helper_->SetUserData(key, data); supports_user_data_helper_->SetUserData(key, std::move(data));
} }
void HistoryBackend::ProcessDBTask( void HistoryBackend::ProcessDBTask(
......
...@@ -453,10 +453,9 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, ...@@ -453,10 +453,9 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>,
// The user data allows the clients to associate data with this object. // The user data allows the clients to associate data with this object.
// Multiple user data values can be stored under different keys. // Multiple user data values can be stored under different keys.
// This object will TAKE OWNERSHIP of the given data pointer, and will
// delete the object if it is changed or the object is destroyed.
base::SupportsUserData::Data* GetUserData(const void* key) const; base::SupportsUserData::Data* GetUserData(const void* key) const;
void SetUserData(const void* key, base::SupportsUserData::Data* data); void SetUserData(const void* key,
std::unique_ptr<base::SupportsUserData::Data> data);
// Testing ------------------------------------------------------------------- // Testing -------------------------------------------------------------------
......
...@@ -19,13 +19,14 @@ class WebStateTopSitesObserver ...@@ -19,13 +19,14 @@ class WebStateTopSitesObserver
: public web::WebStateObserver, : public web::WebStateObserver,
public web::WebStateUserData<WebStateTopSitesObserver> { public web::WebStateUserData<WebStateTopSitesObserver> {
public: public:
~WebStateTopSitesObserver() override;
static void CreateForWebState(web::WebState* web_state, TopSites* top_sites); static void CreateForWebState(web::WebState* web_state, TopSites* top_sites);
private: private:
friend class web::WebStateUserData<WebStateTopSitesObserver>; friend class web::WebStateUserData<WebStateTopSitesObserver>;
WebStateTopSitesObserver(web::WebState* web_state, TopSites* top_sites); WebStateTopSitesObserver(web::WebState* web_state, TopSites* top_sites);
~WebStateTopSitesObserver() override;
// web::WebStateObserver implementation. // web::WebStateObserver implementation.
void NavigationItemCommitted( void NavigationItemCommitted(
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "components/history/ios/browser/web_state_top_sites_observer.h" #include "components/history/ios/browser/web_state_top_sites_observer.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "components/history/core/browser/top_sites.h" #include "components/history/core/browser/top_sites.h"
#include "ios/web/public/load_committed_details.h" #include "ios/web/public/load_committed_details.h"
#include "ios/web/public/navigation_item.h" #include "ios/web/public/navigation_item.h"
...@@ -22,8 +23,9 @@ void WebStateTopSitesObserver::CreateForWebState(web::WebState* web_state, ...@@ -22,8 +23,9 @@ void WebStateTopSitesObserver::CreateForWebState(web::WebState* web_state,
TopSites* top_sites) { TopSites* top_sites) {
DCHECK(web_state); DCHECK(web_state);
if (!FromWebState(web_state)) { if (!FromWebState(web_state)) {
web_state->SetUserData(UserDataKey(), web_state->SetUserData(
new WebStateTopSitesObserver(web_state, top_sites)); UserDataKey(),
base::WrapUnique(new WebStateTopSitesObserver(web_state, top_sites)));
} }
} }
......
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