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