Index: ios/web/navigation/serializable_user_data_manager_impl.mm |
diff --git a/ios/web/navigation/serializable_user_data_manager_impl.mm b/ios/web/navigation/serializable_user_data_manager_impl.mm |
index 7d1f310e6ac68f9454e08aa2dd128bbed7b177af..09657b847abe2a73addc91e46bd3f4772103f11c 100644 |
--- a/ios/web/navigation/serializable_user_data_manager_impl.mm |
+++ b/ios/web/navigation/serializable_user_data_manager_impl.mm |
@@ -5,6 +5,7 @@ |
#import "ios/web/navigation/serializable_user_data_manager_impl.h" |
#import "base/mac/foundation_util.h" |
+#include "base/memory/ptr_util.h" |
#import "ios/web/public/web_state/web_state.h" |
#if !defined(__has_feature) || !__has_feature(objc_arc) |
@@ -13,7 +14,7 @@ |
namespace web { |
namespace { |
-// The key under which SerializableUserDataMangerWrapper are stored in the |
+// The key under which SerializableUserDataManagerWrapper are stored in the |
// WebState's user data. |
const void* const kSerializableUserDataManagerKey = |
&kSerializableUserDataManagerKey; |
@@ -22,9 +23,9 @@ NSString* const kSerializedUserDataKey = @"serializedUserData"; |
// Wrapper class used to associate SerializableUserDataManagerImpls with its |
// associated WebState. |
-class SerializableUserDataManagerWrapper : base::SupportsUserData::Data { |
+class SerializableUserDataManagerWrapper : public base::SupportsUserData::Data { |
public: |
- // Returns the SerializableUserDataMangerWrapper associated with |web_state|, |
+ // Returns the SerializableUserDataManagerWrapper associated with |web_state|, |
// creating one if necessary. |
static SerializableUserDataManagerWrapper* FromWebState( |
web::WebState* web_state) { |
@@ -32,30 +33,28 @@ class SerializableUserDataManagerWrapper : base::SupportsUserData::Data { |
SerializableUserDataManagerWrapper* wrapper = |
static_cast<SerializableUserDataManagerWrapper*>( |
web_state->GetUserData(kSerializableUserDataManagerKey)); |
- if (!wrapper) |
- wrapper = new SerializableUserDataManagerWrapper(web_state); |
- return wrapper; |
+ if (wrapper) |
+ return wrapper; |
+ |
+ web_state->SetUserData( |
+ kSerializableUserDataManagerKey, |
+ base::MakeUnique<SerializableUserDataManagerWrapper>()); |
+ return static_cast<SerializableUserDataManagerWrapper*>( |
+ web_state->GetUserData(kSerializableUserDataManagerKey)); |
} |
// Returns the manager owned by this wrapper. |
SerializableUserDataManagerImpl* manager() { return &manager_; } |
private: |
- // The SerializableUserDataMangerWrapper owned by this object. |
+ // The SerializableUserDataManagerWrapper owned by this object. |
SerializableUserDataManagerImpl manager_; |
- |
- // Private constructor. The created object will be added to |web_state|'s |
- // user data. |
- SerializableUserDataManagerWrapper(web::WebState* web_state) { |
- DCHECK(web_state); |
- web_state->SetUserData(kSerializableUserDataManagerKey, this); |
- } |
}; |
} // namespace |
// static |
std::unique_ptr<SerializableUserData> SerializableUserData::Create() { |
- return std::unique_ptr<SerializableUserData>(new SerializableUserDataImpl()); |
+ return base::MakeUnique<SerializableUserDataImpl>(); |
} |
SerializableUserDataImpl::SerializableUserDataImpl() |
@@ -118,16 +117,16 @@ id<NSCoding> SerializableUserDataManagerImpl::GetValueForSerializationKey( |
std::unique_ptr<SerializableUserData> |
SerializableUserDataManagerImpl::CreateSerializableUserData() const { |
- return std::unique_ptr<SerializableUserData>( |
- new SerializableUserDataImpl(data_)); |
+ return base::MakeUnique<SerializableUserDataImpl>(data_); |
} |
void SerializableUserDataManagerImpl::AddSerializableUserData( |
SerializableUserData* data) { |
- DCHECK(data); |
- SerializableUserDataImpl* data_impl = |
- static_cast<SerializableUserDataImpl*>(data); |
- data_.reset([data_impl->data() mutableCopy]); |
+ if (data) { |
+ SerializableUserDataImpl* data_impl = |
+ static_cast<SerializableUserDataImpl*>(data); |
+ data_.reset([data_impl->data() mutableCopy]); |
+ } |
} |
} // namespace web |