Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(461)

Side by Side Diff: ios/web/navigation/crw_session_entry.mm

Issue 2690913003: Revert "Updated ownership of NavigationItems within CRWSessionController." (Closed)
Patch Set: Revert olivier's CLs Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/web/navigation/crw_session_entry.h" 5 #import "ios/web/navigation/crw_session_entry.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
11 #import "base/mac/scoped_nsobject.h" 11 #import "base/mac/scoped_nsobject.h"
12 #include "base/strings/sys_string_conversions.h" 12 #include "base/strings/sys_string_conversions.h"
13 #import "ios/web/navigation/navigation_item_impl.h" 13 #import "ios/web/navigation/navigation_item_impl.h"
14 #import "ios/web/navigation/nscoder_util.h" 14 #import "ios/web/navigation/nscoder_util.h"
15 #import "ios/web/public/navigation_item.h" 15 #import "ios/web/public/navigation_item.h"
16 #import "ios/web/public/web_state/page_display_state.h" 16 #import "ios/web/public/web_state/page_display_state.h"
17 #import "net/base/mac/url_conversions.h" 17 #import "net/base/mac/url_conversions.h"
18 18
19 #if !defined(__has_feature) || !__has_feature(objc_arc) 19 #if !defined(__has_feature) || !__has_feature(objc_arc)
20 #error "This file requires ARC support." 20 #error "This file requires ARC support."
21 #endif 21 #endif
22 22
23 @interface CRWSessionEntry () { 23 @interface CRWSessionEntry () {
24 // The NavigationItem passed on initialization. 24 // The NavigationItemImpl corresponding to this CRWSessionEntry.
25 web::NavigationItemImpl* _item; 25 // TODO(stuartmorgan): Move ownership to NavigationManagerImpl.
26 std::unique_ptr<web::NavigationItemImpl> _navigationItem;
26 } 27 }
27 28
28 @end 29 @end
29 30
30 @implementation CRWSessionEntry 31 @implementation CRWSessionEntry
31 32
32 - (instancetype)initWithNavigationItem:(web::NavigationItem*)item { 33 - (instancetype)initWithNavigationItem:
34 (std::unique_ptr<web::NavigationItem>)item {
33 self = [super init]; 35 self = [super init];
34 if (self) { 36 if (self) {
35 DCHECK(item); 37 _navigationItem.reset(
36 _item = static_cast<web::NavigationItemImpl*>(item); 38 static_cast<web::NavigationItemImpl*>(item.release()));
37 } 39 }
38 return self; 40 return self;
39 } 41 }
40 42
43 // TODO(ios): Shall we overwrite EqualTo:?
44
45 - (instancetype)copyWithZone:(NSZone*)zone {
46 CRWSessionEntry* copy = [[[self class] alloc] init];
47 copy->_navigationItem.reset(
48 new web::NavigationItemImpl(*_navigationItem.get()));
49 return copy;
50 }
51
41 - (NSString*)description { 52 - (NSString*)description {
42 return [NSString 53 return [NSString
43 stringWithFormat: 54 stringWithFormat:
44 @"url:%@ originalurl:%@ title:%@ transition:%d displayState:%@ " 55 @"url:%@ originalurl:%@ title:%@ transition:%d displayState:%@ "
45 @"desktopUA:%d", 56 @"desktopUA:%d",
46 base::SysUTF8ToNSString(_item->GetURL().spec()), 57 base::SysUTF8ToNSString(_navigationItem->GetURL().spec()),
47 base::SysUTF8ToNSString(_item->GetOriginalRequestURL().spec()), 58 base::SysUTF8ToNSString(
48 base::SysUTF16ToNSString(_item->GetTitle()), 59 _navigationItem->GetOriginalRequestURL().spec()),
49 _item->GetTransitionType(), 60 base::SysUTF16ToNSString(_navigationItem->GetTitle()),
50 _item->GetPageDisplayState().GetDescription(), 61 _navigationItem->GetTransitionType(),
51 _item->IsOverridingUserAgent()]; 62 _navigationItem->GetPageDisplayState().GetDescription(),
63 _navigationItem->IsOverridingUserAgent()];
52 } 64 }
53 65
54 - (web::NavigationItem*)navigationItem { 66 - (web::NavigationItem*)navigationItem {
55 return _item; 67 return _navigationItem.get();
56 } 68 }
57 69
58 - (web::NavigationItemImpl*)navigationItemImpl { 70 - (web::NavigationItemImpl*)navigationItemImpl {
59 return _item; 71 return _navigationItem.get();
60 }
61
62 - (BOOL)isEqual:(CRWSessionEntry*)object {
63 return _item == [object navigationItem];
64 } 72 }
65 73
66 @end 74 @end
OLDNEW
« no previous file with comments | « ios/web/navigation/crw_session_entry.h ('k') | ios/web/navigation/crw_session_entry_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698