Commit 4a402eb1 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/2848703004
Cr-Commit-Position: refs/heads/master@{#468128}
parent 69977173
...@@ -492,7 +492,8 @@ static jlong Init(JNIEnv* env, ...@@ -492,7 +492,8 @@ static jlong Init(JNIEnv* env,
adapter = new DownloadUIAdapter( adapter = new DownloadUIAdapter(
offline_page_model, request_coordinator, offline_page_model, request_coordinator,
base::MakeUnique<DownloadUIAdapterDelegate>(offline_page_model)); base::MakeUnique<DownloadUIAdapterDelegate>(offline_page_model));
DownloadUIAdapter::AttachToOfflinePageModel(adapter, offline_page_model); DownloadUIAdapter::AttachToOfflinePageModel(base::WrapUnique(adapter),
offline_page_model);
} }
return reinterpret_cast<jlong>( return reinterpret_cast<jlong>(
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "base/android/jni_string.h" #include "base/android/jni_string.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "chrome/browser/android/offline_pages/offline_page_mhtml_archiver.h" #include "chrome/browser/android/offline_pages/offline_page_mhtml_archiver.h"
#include "chrome/browser/android/offline_pages/offline_page_model_factory.h" #include "chrome/browser/android/offline_pages/offline_page_model_factory.h"
#include "chrome/browser/android/offline_pages/offline_page_utils.h" #include "chrome/browser/android/offline_pages/offline_page_utils.h"
...@@ -242,7 +243,8 @@ static ScopedJavaLocalRef<jobject> GetOfflinePageBridgeForProfile( ...@@ -242,7 +243,8 @@ static ScopedJavaLocalRef<jobject> GetOfflinePageBridgeForProfile(
offline_page_model->GetUserData(kOfflinePageBridgeKey)); offline_page_model->GetUserData(kOfflinePageBridgeKey));
if (!bridge) { if (!bridge) {
bridge = new OfflinePageBridge(env, profile, offline_page_model); bridge = new OfflinePageBridge(env, profile, offline_page_model);
offline_page_model->SetUserData(kOfflinePageBridgeKey, bridge); offline_page_model->SetUserData(kOfflinePageBridgeKey,
base::WrapUnique(bridge));
} }
return ScopedJavaLocalRef<jobject>(bridge->java_ref()); return ScopedJavaLocalRef<jobject>(bridge->java_ref());
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h" #include "base/metrics/histogram_macros.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/threading/sequenced_worker_pool.h" #include "base/threading/sequenced_worker_pool.h"
...@@ -544,7 +545,8 @@ OfflinePageRequestJob* OfflinePageRequestJob::Create( ...@@ -544,7 +545,8 @@ OfflinePageRequestJob* OfflinePageRequestJob::Create(
if (info->use_default()) if (info->use_default())
return nullptr; return nullptr;
} else { } else {
request->SetUserData(&kUserDataKey, new OfflinePageRequestInfo()); request->SetUserData(&kUserDataKey,
base::MakeUnique<OfflinePageRequestInfo>());
} }
return new OfflinePageRequestJob(request, network_delegate, previews_decider); return new OfflinePageRequestJob(request, network_delegate, previews_decider);
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/files/file.h" #include "base/files/file.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/files/file_util.h" #include "base/files/file_util.h"
#include "base/memory/ptr_util.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/strings/string16.h" #include "base/strings/string16.h"
#include "base/test/scoped_feature_list.h" #include "base/test/scoped_feature_list.h"
...@@ -133,8 +134,8 @@ void OfflinePageUtilsTest::SetUp() { ...@@ -133,8 +134,8 @@ void OfflinePageUtilsTest::SetUp() {
&profile_, BuildTestOfflinePageModel); &profile_, BuildTestOfflinePageModel);
RunUntilIdle(); RunUntilIdle();
NetworkQualityProviderStub::SetUserData(&profile_, NetworkQualityProviderStub::SetUserData(
new NetworkQualityProviderStub()); &profile_, base::MakeUnique<NetworkQualityProviderStub>());
RequestCoordinatorFactory::GetInstance()->SetTestingFactoryAndUse( RequestCoordinatorFactory::GetInstance()->SetTestingFactoryAndUse(
&profile_, BuildTestRequestCoordinator); &profile_, BuildTestRequestCoordinator);
RunUntilIdle(); RunUntilIdle();
......
...@@ -76,11 +76,8 @@ void SuggestedArticlesObserver::ObserveContentSuggestionsService( ...@@ -76,11 +76,8 @@ void SuggestedArticlesObserver::ObserveContentSuggestionsService(
auto suggestions_observer = base::MakeUnique<SuggestedArticlesObserver>( auto suggestions_observer = base::MakeUnique<SuggestedArticlesObserver>(
browser_context, base::MakeUnique<DefaultDelegate>(service)); browser_context, base::MakeUnique<DefaultDelegate>(service));
service->AddObserver(suggestions_observer.get()); service->AddObserver(suggestions_observer.get());
service->SetUserData( service->SetUserData(&kOfflinePageSuggestedArticlesObserverUserDataKey,
&kOfflinePageSuggestedArticlesObserverUserDataKey, std::move(suggestions_observer));
// Note that |service| will take ownership of suggestions_observer
// despite accepting a raw pointer.
suggestions_observer.release());
} }
SuggestedArticlesObserver::SuggestedArticlesObserver( SuggestedArticlesObserver::SuggestedArticlesObserver(
......
...@@ -28,7 +28,7 @@ namespace offline_pages { ...@@ -28,7 +28,7 @@ namespace offline_pages {
// specifically. // specifically.
class SuggestedArticlesObserver class SuggestedArticlesObserver
: public ntp_snippets::ContentSuggestionsService::Observer, : public ntp_snippets::ContentSuggestionsService::Observer,
base::SupportsUserData::Data { public base::SupportsUserData::Data {
public: public:
// Delegate exists to allow for dependency injection in unit tests. // Delegate exists to allow for dependency injection in unit tests.
// SuggestedArticlesObserver implements its own delegate, |DefaultDelegate| in // SuggestedArticlesObserver implements its own delegate, |DefaultDelegate| in
......
...@@ -24,10 +24,10 @@ NetworkQualityProviderStub* NetworkQualityProviderStub::GetUserData( ...@@ -24,10 +24,10 @@ NetworkQualityProviderStub* NetworkQualityProviderStub::GetUserData(
// static // static
void NetworkQualityProviderStub::SetUserData( void NetworkQualityProviderStub::SetUserData(
base::SupportsUserData* supports_user_data, base::SupportsUserData* supports_user_data,
NetworkQualityProviderStub* stub) { std::unique_ptr<NetworkQualityProviderStub> stub) {
DCHECK(supports_user_data); DCHECK(supports_user_data);
DCHECK(stub); DCHECK(stub);
supports_user_data->SetUserData(&kOfflineNQPKey, stub); supports_user_data->SetUserData(&kOfflineNQPKey, std::move(stub));
} }
void NetworkQualityProviderStub::AddEffectiveConnectionTypeObserver( void NetworkQualityProviderStub::AddEffectiveConnectionTypeObserver(
......
...@@ -23,7 +23,7 @@ class NetworkQualityProviderStub ...@@ -23,7 +23,7 @@ class NetworkQualityProviderStub
static NetworkQualityProviderStub* GetUserData( static NetworkQualityProviderStub* GetUserData(
base::SupportsUserData* supports_user_data); base::SupportsUserData* supports_user_data);
static void SetUserData(base::SupportsUserData* supports_user_data, static void SetUserData(base::SupportsUserData* supports_user_data,
NetworkQualityProviderStub* stub); std::unique_ptr<NetworkQualityProviderStub> stub);
net::EffectiveConnectionType GetEffectiveConnectionType() const override; net::EffectiveConnectionType GetEffectiveConnectionType() const override;
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "components/offline_pages/core/downloads/download_notifying_observer.h" #include "components/offline_pages/core/downloads/download_notifying_observer.h"
#include "base/memory/ptr_util.h"
#include "components/offline_pages/core/background/request_coordinator.h" #include "components/offline_pages/core/background/request_coordinator.h"
#include "components/offline_pages/core/background/save_page_request.h" #include "components/offline_pages/core/background/save_page_request.h"
#include "components/offline_pages/core/client_policy_controller.h" #include "components/offline_pages/core/client_policy_controller.h"
...@@ -36,11 +37,11 @@ void DownloadNotifyingObserver::CreateAndStartObserving( ...@@ -36,11 +37,11 @@ void DownloadNotifyingObserver::CreateAndStartObserving(
std::unique_ptr<OfflinePageDownloadNotifier> notifier) { std::unique_ptr<OfflinePageDownloadNotifier> notifier) {
DCHECK(request_coordinator); DCHECK(request_coordinator);
DCHECK(notifier.get()); DCHECK(notifier.get());
DownloadNotifyingObserver* observer = new DownloadNotifyingObserver( std::unique_ptr<DownloadNotifyingObserver> observer =
std::move(notifier), request_coordinator->GetPolicyController()); base::WrapUnique(new DownloadNotifyingObserver(
request_coordinator->AddObserver(observer); std::move(notifier), request_coordinator->GetPolicyController()));
// |request_coordinator| takes ownership of observer here. request_coordinator->AddObserver(observer.get());
request_coordinator->SetUserData(&kUserDataKey, observer); request_coordinator->SetUserData(&kUserDataKey, std::move(observer));
} }
void DownloadNotifyingObserver::OnAdded(const SavePageRequest& request) { void DownloadNotifyingObserver::OnAdded(const SavePageRequest& request) {
......
...@@ -32,11 +32,12 @@ DownloadUIAdapter* DownloadUIAdapter::FromOfflinePageModel( ...@@ -32,11 +32,12 @@ DownloadUIAdapter* DownloadUIAdapter::FromOfflinePageModel(
} }
// static // static
void DownloadUIAdapter::AttachToOfflinePageModel(DownloadUIAdapter* adapter, void DownloadUIAdapter::AttachToOfflinePageModel(
OfflinePageModel* model) { std::unique_ptr<DownloadUIAdapter> adapter,
OfflinePageModel* model) {
DCHECK(adapter); DCHECK(adapter);
DCHECK(model); DCHECK(model);
model->SetUserData(kDownloadUIAdapterKey, adapter); model->SetUserData(kDownloadUIAdapterKey, std::move(adapter));
} }
DownloadUIAdapter::ItemInfo::ItemInfo(const OfflinePageItem& page, DownloadUIAdapter::ItemInfo::ItemInfo(const OfflinePageItem& page,
......
...@@ -83,8 +83,9 @@ class DownloadUIAdapter : public OfflinePageModel::Observer, ...@@ -83,8 +83,9 @@ class DownloadUIAdapter : public OfflinePageModel::Observer,
~DownloadUIAdapter() override; ~DownloadUIAdapter() override;
static DownloadUIAdapter* FromOfflinePageModel(OfflinePageModel* model); static DownloadUIAdapter* FromOfflinePageModel(OfflinePageModel* model);
static void AttachToOfflinePageModel(DownloadUIAdapter* adapter, static void AttachToOfflinePageModel(
OfflinePageModel* model); std::unique_ptr<DownloadUIAdapter> adapter,
OfflinePageModel* model);
// This adapter is potentially shared by UI elements, each of which adds // This adapter is potentially shared by UI elements, each of which adds
// itself as an observer. // itself as an observer.
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "components/offline_pages/core/recent_tabs/recent_tabs_ui_adapter_delegate.h" #include "components/offline_pages/core/recent_tabs/recent_tabs_ui_adapter_delegate.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/memory/ptr_util.h"
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "components/offline_pages/core/client_policy_controller.h" #include "components/offline_pages/core/client_policy_controller.h"
#include "components/offline_pages/core/offline_page_model.h" #include "components/offline_pages/core/offline_page_model.h"
...@@ -35,7 +36,7 @@ RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter( ...@@ -35,7 +36,7 @@ RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter(
recent_tabs_ui_adapter = new DownloadUIAdapter( recent_tabs_ui_adapter = new DownloadUIAdapter(
offline_page_model, request_coordinator, std::move(delegate)); offline_page_model, request_coordinator, std::move(delegate));
offline_page_model->SetUserData(kRecentTabsUIAdapterKey, offline_page_model->SetUserData(kRecentTabsUIAdapterKey,
recent_tabs_ui_adapter); base::WrapUnique(recent_tabs_ui_adapter));
} }
return recent_tabs_ui_adapter; return recent_tabs_ui_adapter;
......
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