| Index: ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm
|
| diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm
|
| index 55f9d3430bc5f6da2078395a6ee8019bfe035975..d3ecf12fff8ecff9ab0d519732a25e6f98724581 100644
|
| --- a/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm
|
| +++ b/ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.mm
|
| @@ -12,8 +12,6 @@
|
| #include "base/hash.h"
|
| #include "base/i18n/string_compare.h"
|
| #include "base/mac/bind_objc_block.h"
|
| -#include "base/mac/scoped_nsautorelease_pool.h"
|
| -#include "base/mac/scoped_nsobject.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/metrics/user_metrics_action.h"
|
| #include "base/strings/sys_string_conversions.h"
|
| @@ -36,6 +34,10 @@
|
| #include "ui/base/l10n/l10n_util_mac.h"
|
| #include "ui/base/models/tree_node_iterator.h"
|
|
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
| +
|
| using bookmarks::BookmarkNode;
|
|
|
| namespace bookmark_utils_ios {
|
| @@ -187,8 +189,7 @@ BOOL bookmarkMenuIsInSlideInPanel() {
|
|
|
| UIView* dropShadowWithWidth(CGFloat width) {
|
| UIImage* shadowImage = [UIImage imageNamed:@"bookmark_bar_shadow"];
|
| - UIImageView* shadow =
|
| - [[[UIImageView alloc] initWithImage:shadowImage] autorelease];
|
| + UIImageView* shadow = [[UIImageView alloc] initWithImage:shadowImage];
|
| CGRect shadowFrame = CGRectMake(0, 0, width, 4);
|
| shadow.frame = shadowFrame;
|
| shadow.autoresizingMask =
|
| @@ -225,8 +226,8 @@ void CreateOrUpdateBookmarkWithUndoToast(
|
| }
|
|
|
| // Secondly, create an Undo group for all undoable actions.
|
| - base::scoped_nsobject<UndoManagerWrapper> wrapper(
|
| - [[UndoManagerWrapper alloc] initWithBrowserState:browser_state]);
|
| + UndoManagerWrapper* wrapper =
|
| + [[UndoManagerWrapper alloc] initWithBrowserState:browser_state];
|
|
|
| // Create or update the bookmark.
|
| [wrapper startGroupingActions];
|
| @@ -260,8 +261,7 @@ void CreateOrUpdateBookmarkWithUndoToast(
|
|
|
| void PresentUndoToastWithWrapper(UndoManagerWrapper* wrapper, NSString* text) {
|
| // Create the block that will be executed if the user taps the undo button.
|
| - MDCSnackbarMessageAction* action =
|
| - [[[MDCSnackbarMessageAction alloc] init] autorelease];
|
| + MDCSnackbarMessageAction* action = [[MDCSnackbarMessageAction alloc] init];
|
| action.handler = ^{
|
| if (![wrapper hasUndoManagerChanged])
|
| [wrapper undo];
|
| @@ -302,8 +302,8 @@ void DeleteBookmarksWithUndoToast(const std::set<const BookmarkNode*>& nodes,
|
| size_t nodeCount = nodes.size();
|
| DCHECK_GT(nodeCount, 0u);
|
|
|
| - base::scoped_nsobject<UndoManagerWrapper> wrapper(
|
| - [[UndoManagerWrapper alloc] initWithBrowserState:browser_state]);
|
| + UndoManagerWrapper* wrapper =
|
| + [[UndoManagerWrapper alloc] initWithBrowserState:browser_state];
|
|
|
| // Delete the selected bookmarks.
|
| [wrapper startGroupingActions];
|
| @@ -354,8 +354,8 @@ void MoveBookmarksWithUndoToast(const std::set<const BookmarkNode*>& nodes,
|
| size_t nodeCount = nodes.size();
|
| DCHECK_GT(nodeCount, 0u);
|
|
|
| - base::scoped_nsobject<UndoManagerWrapper> wrapper(
|
| - [[UndoManagerWrapper alloc] initWithBrowserState:browser_state]);
|
| + UndoManagerWrapper* wrapper =
|
| + [[UndoManagerWrapper alloc] initWithBrowserState:browser_state];
|
|
|
| // Move the selected bookmarks.
|
| [wrapper startGroupingActions];
|
| @@ -404,38 +404,39 @@ void segregateNodes(
|
| nodesSectionVector.clear();
|
|
|
| // Make a localized date formatter.
|
| - base::scoped_nsobject<NSDateFormatter> formatter(
|
| - [[NSDateFormatter alloc] init]);
|
| + NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
|
| [formatter setDateFormat:@"MMMM yyyy"];
|
| // Segregate nodes by creation date.
|
| // Nodes that were created in the same month are grouped together.
|
| for (auto* node : vector) {
|
| - base::mac::ScopedNSAutoreleasePool pool;
|
| - base::Time dateAdded = node->date_added();
|
| - base::TimeDelta delta = dateAdded - base::Time::UnixEpoch();
|
| - base::scoped_nsobject<NSDate> date(
|
| - [[NSDate alloc] initWithTimeIntervalSince1970:delta.InSeconds()]);
|
| - NSString* dateString = [formatter stringFromDate:date];
|
| - const std::string timeRepresentation = base::SysNSStringToUTF8(dateString);
|
| -
|
| - BOOL found = NO;
|
| - for (const auto& nodesSection : nodesSectionVector) {
|
| - if (nodesSection->timeRepresentation == timeRepresentation) {
|
| - nodesSection->vector.push_back(node);
|
| - found = YES;
|
| - break;
|
| + @autoreleasepool {
|
| + base::Time dateAdded = node->date_added();
|
| + base::TimeDelta delta = dateAdded - base::Time::UnixEpoch();
|
| + NSDate* date =
|
| + [[NSDate alloc] initWithTimeIntervalSince1970:delta.InSeconds()];
|
| + NSString* dateString = [formatter stringFromDate:date];
|
| + const std::string timeRepresentation =
|
| + base::SysNSStringToUTF8(dateString);
|
| +
|
| + BOOL found = NO;
|
| + for (const auto& nodesSection : nodesSectionVector) {
|
| + if (nodesSection->timeRepresentation == timeRepresentation) {
|
| + nodesSection->vector.push_back(node);
|
| + found = YES;
|
| + break;
|
| + }
|
| }
|
| - }
|
|
|
| - if (found)
|
| - continue;
|
| + if (found)
|
| + continue;
|
|
|
| - // No NodesSection found.
|
| - auto nodesSection = base::MakeUnique<NodesSection>();
|
| - nodesSection->time = dateAdded;
|
| - nodesSection->timeRepresentation = timeRepresentation;
|
| - nodesSection->vector.push_back(node);
|
| - nodesSectionVector.push_back(std::move(nodesSection));
|
| + // No NodesSection found.
|
| + auto nodesSection = base::MakeUnique<NodesSection>();
|
| + nodesSection->time = dateAdded;
|
| + nodesSection->timeRepresentation = timeRepresentation;
|
| + nodesSection->vector.push_back(node);
|
| + nodesSectionVector.push_back(std::move(nodesSection));
|
| + }
|
| }
|
|
|
| // Sort the NodesSections.
|
|
|