Commit 37c9356d 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/2853443002
Cr-Commit-Position: refs/heads/master@{#468008}
parent e04941a0
......@@ -23,6 +23,8 @@ typedef void (^FindInPageCompletionBlock)(FindInPageModel*);
class FindTabHelper : public web::WebStateObserver,
public web::WebStateUserData<FindTabHelper> {
public:
~FindTabHelper() override;
enum FindDirection {
FORWARD,
REVERSE,
......@@ -75,7 +77,6 @@ class FindTabHelper : public web::WebStateObserver,
FindTabHelper(web::WebState* web_state,
id<FindInPageControllerDelegate> controller_delegate);
~FindTabHelper() override;
// web::WebStateObserver.
void NavigationItemCommitted(
......
......@@ -4,6 +4,7 @@
#import "ios/chrome/browser/find_in_page/find_tab_helper.h"
#include "base/memory/ptr_util.h"
#import "ios/chrome/browser/find_in_page/find_in_page_controller.h"
#import "ios/chrome/browser/find_in_page/find_in_page_model.h"
......@@ -19,8 +20,8 @@ void FindTabHelper::CreateForWebState(
id<FindInPageControllerDelegate> controller_delegate) {
DCHECK(web_state);
if (!FromWebState(web_state)) {
web_state->SetUserData(UserDataKey(),
new FindTabHelper(web_state, controller_delegate));
web_state->SetUserData(UserDataKey(), base::WrapUnique(new FindTabHelper(
web_state, controller_delegate)));
}
}
......
......@@ -27,6 +27,8 @@ class InfoBarManagerImpl : public infobars::InfoBarManager,
public web::WebStateObserver,
public web::WebStateUserData<InfoBarManagerImpl> {
public:
~InfoBarManagerImpl() override;
// This function must only be called on infobars that are owned by an
// InfoBarManagerImpl instance (or not owned at all, in which case this
// returns null).
......@@ -36,7 +38,6 @@ class InfoBarManagerImpl : public infobars::InfoBarManager,
friend class web::WebStateUserData<InfoBarManagerImpl>;
explicit InfoBarManagerImpl(web::WebState* web_state);
~InfoBarManagerImpl() override;
// InfoBarManager implementation.
int GetActiveEntryID() override;
......
......@@ -47,7 +47,7 @@ class ReadingListWebStateObserverUserDataWrapper
base::MakeUnique<ReadingListWebStateObserverUserDataWrapper>(
web_state, reading_list_model);
wrapper = newDataWrapper.get();
web_state->SetUserData(kObserverKey, newDataWrapper.release());
web_state->SetUserData(kObserverKey, std::move(newDataWrapper));
}
return wrapper;
}
......
......@@ -19,13 +19,13 @@ class WebState;
class CaptivePortalDetectorTabHelper
: public web::WebStateUserData<CaptivePortalDetectorTabHelper> {
public:
~CaptivePortalDetectorTabHelper() override;
explicit CaptivePortalDetectorTabHelper(web::WebState* web_state);
captive_portal::CaptivePortalDetector* detector();
private:
~CaptivePortalDetectorTabHelper() override;
// The underlying CaptivePortalDetector.
std::unique_ptr<captive_portal::CaptivePortalDetector> detector_;
......
......@@ -6,6 +6,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/supports_user_data.h"
#include "ios/chrome/browser/application_context.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
......@@ -54,10 +55,9 @@ TabModelList* TabModelList::GetForBrowserState(
TabModelList* tab_model_list =
static_cast<TabModelList*>(browser_state->GetUserData(&kTabModelListKey));
if (!tab_model_list && create) {
// The ownership of TabModelList is transfered to base::SupportsUserData
// via the SetUserData call (should take a std::unique_ptr<>).
tab_model_list = new TabModelList;
browser_state->SetUserData(&kTabModelListKey, tab_model_list);
browser_state->SetUserData(&kTabModelListKey,
base::WrapUnique(tab_model_list));
}
return tab_model_list;
}
......
......@@ -7,6 +7,7 @@
#import <objc/runtime.h>
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "ios/web/public/web_state/web_state.h"
#include "ios/web/public/web_state/web_state_observer.h"
......@@ -53,7 +54,7 @@ class JavaScriptDialogBlockingStateWrapper
explicit JavaScriptDialogBlockingStateWrapper(web::WebState* web_state)
: state_(nullptr) {
DCHECK(web_state);
web_state->SetUserData(kBlockingStateKey, this);
web_state->SetUserData(kBlockingStateKey, base::WrapUnique(this));
}
};
......
......@@ -41,6 +41,7 @@ typedef void (^ProceduralBlockWithBool)(BOOL);
class DOMAlteringLock : public web::WebStateUserData<DOMAlteringLock> {
public:
DOMAlteringLock(web::WebState* web_state);
~DOMAlteringLock() override;
// This method must be called before altering the DOM of the page. This will
// ensure that only one class tries to alter the page at a time.
......@@ -57,8 +58,6 @@ class DOMAlteringLock : public web::WebStateUserData<DOMAlteringLock> {
private:
// DOMAltering object currently having the lock.
base::WeakNSProtocol<id<DOMAltering>> current_dom_altering_feature_;
~DOMAlteringLock() override;
};
#endif // IOS_CHROME_BROWSER_WEB_DOM_ALTERING_LOCK_H_
......@@ -20,11 +20,12 @@ class NetworkActivityIndicatorTabHelper
: public web::WebStateObserver,
public web::WebStateUserData<NetworkActivityIndicatorTabHelper> {
public:
~NetworkActivityIndicatorTabHelper() override;
static void CreateForWebState(web::WebState* web_state, NSString* tab_id);
private:
NetworkActivityIndicatorTabHelper(web::WebState* web_state, NSString* tab_id);
~NetworkActivityIndicatorTabHelper() override;
// web::WebStateObserver overrides:
void DidStartLoading() override;
......
......@@ -4,6 +4,7 @@
#import "ios/chrome/browser/web/network_activity_indicator_tab_helper.h"
#include "base/memory/ptr_util.h"
#import "ios/chrome/browser/ui/network_activity_indicator_manager.h"
#import "ios/web/public/web_state/web_state.h"
......@@ -15,8 +16,9 @@ void NetworkActivityIndicatorTabHelper::CreateForWebState(
NSString* tab_id) {
DCHECK(web_state);
if (!FromWebState(web_state)) {
web_state->SetUserData(UserDataKey(), new NetworkActivityIndicatorTabHelper(
web_state, tab_id));
web_state->SetUserData(
UserDataKey(), base::WrapUnique(new NetworkActivityIndicatorTabHelper(
web_state, tab_id)));
}
}
......
......@@ -16,6 +16,8 @@
class SadTabTabHelper : public web::WebStateUserData<SadTabTabHelper>,
public web::WebStateObserver {
public:
~SadTabTabHelper() override;
// Creates a SadTabTabHelper and attaches it to a specific web_state object,
// a delegate object controls presentation.
static void CreateForWebState(web::WebState* web_state,
......@@ -27,8 +29,6 @@ class SadTabTabHelper : public web::WebStateUserData<SadTabTabHelper>,
SadTabTabHelper(web::WebState* web_state,
id<SadTabTabHelperDelegate> delegate);
~SadTabTabHelper() override;
// Presents a new SadTabView via the web_state object.
void PresentSadTab();
......
......@@ -6,6 +6,7 @@
#import <Foundation/Foundation.h>
#include "base/memory/ptr_util.h"
#include "base/strings/sys_string_conversions.h"
#import "ios/chrome/browser/ui/sad_tab/sad_tab_view.h"
#import "ios/chrome/browser/web/sad_tab_tab_helper_delegate.h"
......@@ -30,8 +31,8 @@ void SadTabTabHelper::CreateForWebState(web::WebState* web_state,
id<SadTabTabHelperDelegate> delegate) {
DCHECK(web_state);
if (!FromWebState(web_state)) {
web_state->SetUserData(UserDataKey(),
new SadTabTabHelper(web_state, delegate));
web_state->SetUserData(UserDataKey(), base::WrapUnique(new SadTabTabHelper(
web_state, delegate)));
}
}
......
......@@ -78,7 +78,7 @@ const char kChromeMainKey[] = "chrome_main";
// Create and persist an IOSChromeMain instance.
state.persistentState->SetUserData(
kChromeMainKey,
new ChromeMainContainer(base::MakeUnique<IOSChromeMain>()));
base::MakeUnique<ChromeMainContainer>(base::MakeUnique<IOSChromeMain>()));
// Add a step to the termination steps of |state| that will stop and remove
// the IOSChromeMain instance.
......
......@@ -4,6 +4,7 @@
#import "ios/clean/chrome/app/steps/root_coordinator+application_step.h"
#include "base/memory/ptr_util.h"
#import "base/supports_user_data.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#import "ios/chrome/browser/web_state_list/web_state_list.h"
......@@ -73,8 +74,9 @@ const char kRootCoordinatorContainerKey[] = "root_coordinator";
state.window.hidden = NO;
// Make sure this object stays alive.
state.persistentState->SetUserData(kRootCoordinatorContainerKey,
new RootCoordinatorContainer(self));
state.persistentState->SetUserData(
kRootCoordinatorContainerKey,
base::MakeUnique<RootCoordinatorContainer>(self));
// Add a termination step to remove this object.
[[state terminationSteps] addObject:[[StopRootCoordinator alloc] init]];
......
......@@ -5,6 +5,7 @@
#include "ios/web/public/browser_state.h"
#include "base/location.h"
#include "base/memory/ptr_util.h"
#include "base/memory/ref_counted.h"
#include "ios/web/active_state_manager_impl.h"
#include "ios/web/public/certificate_policy_cache.h"
......@@ -40,11 +41,9 @@ scoped_refptr<CertificatePolicyCache> BrowserState::GetCertificatePolicyCache(
BrowserState* browser_state) {
DCHECK_CURRENTLY_ON(WebThread::UI);
if (!browser_state->GetUserData(kCertificatePolicyCacheKeyName)) {
CertificatePolicyCacheHandle* cert_cache_service_handle =
new CertificatePolicyCacheHandle(new CertificatePolicyCache());
browser_state->SetUserData(kCertificatePolicyCacheKeyName,
cert_cache_service_handle);
base::MakeUnique<CertificatePolicyCacheHandle>(
new CertificatePolicyCache()));
}
CertificatePolicyCacheHandle* handle =
......@@ -71,7 +70,7 @@ ActiveStateManager* BrowserState::GetActiveStateManager(
if (!active_state_manager) {
active_state_manager = new ActiveStateManagerImpl(browser_state);
browser_state->SetUserData(kActiveStateManagerKeyName,
active_state_manager);
base::WrapUnique(active_state_manager));
}
return active_state_manager;
}
......@@ -81,7 +80,8 @@ BrowserState::BrowserState() : url_data_manager_ios_backend_(nullptr) {
// a base::SupportsUserData to a BrowserState. Moreover, since the factories
// may be passed a content::BrowserContext instead of a BrowserState, attach
// an empty object to this via a private key.
SetUserData(kBrowserStateIdentifierKey, new SupportsUserData::Data);
SetUserData(kBrowserStateIdentifierKey,
base::MakeUnique<SupportsUserData::Data>());
}
BrowserState::~BrowserState() {
......
......@@ -4,6 +4,7 @@
#include "ios/web/public/test/test_redirect_observer.h"
#include "base/memory/ptr_util.h"
#include "base/supports_user_data.h"
#import "ios/web/public/navigation_item.h"
#import "ios/web/public/navigation_manager.h"
......@@ -37,7 +38,7 @@ class TestRedirectObserverUserDataWrapper
explicit TestRedirectObserverUserDataWrapper(web::WebState* web_state)
: redirect_observer_(web_state) {
DCHECK(web_state);
web_state->SetUserData(kTestRedirectObserverKey, this);
web_state->SetUserData(kTestRedirectObserverKey, base::WrapUnique(this));
}
web::TestRedirectObserver* redirect_observer() { return &redirect_observer_; }
......
......@@ -6,6 +6,7 @@
#define IOS_WEB_PUBLIC_WEB_STATE_WEB_STATE_USER_DATA_H_
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/supports_user_data.h"
#import "ios/web/public/web_state/web_state.h"
......@@ -35,7 +36,7 @@ class WebStateUserData : public base::SupportsUserData::Data {
static void CreateForWebState(WebState* web_state) {
DCHECK(web_state);
if (!FromWebState(web_state))
web_state->SetUserData(UserDataKey(), new T(web_state));
web_state->SetUserData(UserDataKey(), base::WrapUnique(new T(web_state)));
}
// Retrieves the instance of type T that was attached to the specified
......
......@@ -23,6 +23,8 @@ class NavigationItem;
// thus needs to be preserved (e.g., WKNavigationType, MIME type).
class WKBackForwardListItemHolder : public base::SupportsUserData::Data {
public:
~WKBackForwardListItemHolder() override;
// Returns the WKBackForwardListItemHolder for the NavigationItem |item|.
// Lazily attaches one if it does not exist. |item| cannot be null.
static web::WKBackForwardListItemHolder* FromNavigationItem(
......@@ -56,7 +58,6 @@ class WKBackForwardListItemHolder : public base::SupportsUserData::Data {
private:
WKBackForwardListItemHolder();
~WKBackForwardListItemHolder() override;
// Weak pointer to a WKBackForwardListItem. Becomes nil if the parent
// WKBackForwardList is deallocated.
......
......@@ -4,6 +4,7 @@
#import "ios/web/web_state/ui/wk_back_forward_list_item_holder.h"
#include "base/memory/ptr_util.h"
#import "ios/web/public/navigation_item.h"
namespace web {
......@@ -29,7 +30,8 @@ WKBackForwardListItemHolder* WKBackForwardListItemHolder::FromNavigationItem(
item->GetUserData(kBackForwardListItemIdentifierKey);
if (!user_data) {
user_data = new WKBackForwardListItemHolder();
item->SetUserData(kBackForwardListItemIdentifierKey, user_data);
item->SetUserData(kBackForwardListItemIdentifierKey,
base::WrapUnique(user_data));
}
return static_cast<WKBackForwardListItemHolder*>(user_data);
}
......
......@@ -22,6 +22,8 @@ class BrowserState;
// main thread.
class WKWebViewConfigurationProvider : public base::SupportsUserData::Data {
public:
~WKWebViewConfigurationProvider() override;
// Returns a provider for the given |browser_state|. Lazily attaches one if it
// does not exist. |browser_state| can not be null.
static web::WKWebViewConfigurationProvider& FromBrowserState(
......@@ -47,7 +49,6 @@ class WKWebViewConfigurationProvider : public base::SupportsUserData::Data {
private:
explicit WKWebViewConfigurationProvider(BrowserState* browser_state);
WKWebViewConfigurationProvider() = delete;
~WKWebViewConfigurationProvider() override;
base::scoped_nsobject<WKWebViewConfiguration> configuration_;
base::scoped_nsobject<CRWWKScriptMessageRouter> router_;
......
......@@ -9,6 +9,7 @@
#import "base/ios/weak_nsobject.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "ios/web/public/browser_state.h"
#import "ios/web/web_state/js/page_script_util.h"
#import "ios/web/web_state/ui/crw_wk_script_message_router.h"
......@@ -38,7 +39,7 @@ WKWebViewConfigurationProvider::FromBrowserState(BrowserState* browser_state) {
if (!browser_state->GetUserData(kWKWebViewConfigProviderKeyName)) {
browser_state->SetUserData(
kWKWebViewConfigProviderKeyName,
new WKWebViewConfigurationProvider(browser_state));
base::WrapUnique(new WKWebViewConfigurationProvider(browser_state)));
}
return *(static_cast<WKWebViewConfigurationProvider*>(
browser_state->GetUserData(kWKWebViewConfigProviderKeyName)));
......
......@@ -10,6 +10,7 @@
#include "base/bind.h"
#include "base/lazy_instance.h"
#include "base/memory/ptr_util.h"
#include "base/memory/ref_counted_memory.h"
#include "base/message_loop/message_loop.h"
#include "base/strings/string_util.h"
......@@ -30,8 +31,9 @@ base::LazyInstance<base::Lock>::Leaky g_delete_lock = LAZY_INSTANCE_INITIALIZER;
URLDataManagerIOS* GetFromBrowserState(BrowserState* browser_state) {
if (!browser_state->GetUserData(kURLDataManagerIOSKeyName)) {
browser_state->SetUserData(kURLDataManagerIOSKeyName,
new URLDataManagerIOS(browser_state));
browser_state->SetUserData(
kURLDataManagerIOSKeyName,
base::MakeUnique<URLDataManagerIOS>(browser_state));
}
return static_cast<URLDataManagerIOS*>(
browser_state->GetUserData(kURLDataManagerIOSKeyName));
......
......@@ -36,6 +36,8 @@ class WebViewTranslateClient
public web::WebStateObserver,
public web::WebStateUserData<WebViewTranslateClient> {
public:
~WebViewTranslateClient() override;
// Sets the delegate passed by the embedder.
// |delegate| is assumed to outlive this WebViewTranslateClient.
void set_translate_delegate(id<CWVTranslateDelegate> delegate) {
......@@ -47,7 +49,6 @@ class WebViewTranslateClient
// The lifetime of WebViewTranslateClient is managed by WebStateUserData.
explicit WebViewTranslateClient(web::WebState* web_state);
~WebViewTranslateClient() override;
// TranslateClient implementation.
translate::TranslateDriver* GetTranslateDriver() override;
......
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