| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/browser/cocoa/cookie_tree_node.h" | 5 #import "chrome/browser/cocoa/cookie_tree_node.h" |
| 6 | 6 |
| 7 #include "app/l10n_util_mac.h" | 7 #include "app/l10n_util_mac.h" |
| 8 #import "base/i18n/time_formatting.h" | 8 #import "base/i18n/time_formatting.h" |
| 9 #include "base/sys_string_conversions.h" | 9 #include "base/sys_string_conversions.h" |
| 10 #include "chrome/browser/browsing_data_local_storage_helper.h" |
| 10 #include "grit/generated_resources.h" | 11 #include "grit/generated_resources.h" |
| 11 | 12 |
| 12 @implementation CocoaCookieTreeNode | 13 @implementation CocoaCookieTreeNode |
| 13 | 14 |
| 14 - (id)initWithNode:(CookieTreeNode*)node { | 15 - (id)initWithNode:(CookieTreeNode*)node { |
| 15 if ((self = [super init])) { | 16 if ((self = [super init])) { |
| 16 DCHECK(node); | 17 DCHECK(node); |
| 17 treeNode_ = node; | 18 treeNode_ = node; |
| 18 isLeaf_ = (node->GetChildCount() == 0); | |
| 19 | |
| 20 [self rebuild]; | 19 [self rebuild]; |
| 21 } | 20 } |
| 22 return self; | 21 return self; |
| 23 } | 22 } |
| 24 | 23 |
| 25 - (void)rebuild { | 24 - (void)rebuild { |
| 26 title_.reset([base::SysWideToNSString(treeNode_->GetTitle()) retain]); | 25 title_.reset([base::SysWideToNSString(treeNode_->GetTitle()) retain]); |
| 27 isCookie_ = NO; | 26 children_.reset(); |
| 27 nodeType_ = kCocoaCookieTreeNodeTypeFolder; |
| 28 | 28 |
| 29 CookieTreeNode::DetailedInfo info = treeNode_->GetDetailedInfo(); | 29 CookieTreeNode::DetailedInfo info = treeNode_->GetDetailedInfo(); |
| 30 if (info.node_type == CookieTreeNode::DetailedInfo::TYPE_COOKIE) { | 30 CookieTreeNode::DetailedInfo::NodeType nodeType = info.node_type; |
| 31 isCookie_ = YES; | 31 if (nodeType == CookieTreeNode::DetailedInfo::TYPE_COOKIE) { |
| 32 nodeType_ = kCocoaCookieTreeNodeTypeCookie; |
| 32 net::CookieMonster::CanonicalCookie cookie = info.cookie->second; | 33 net::CookieMonster::CanonicalCookie cookie = info.cookie->second; |
| 33 | 34 |
| 34 name_.reset([base::SysUTF8ToNSString(cookie.Name()) retain]); | 35 name_.reset([base::SysUTF8ToNSString(cookie.Name()) retain]); |
| 35 title_.reset([base::SysUTF8ToNSString(cookie.Name()) retain]); | 36 title_.reset([base::SysUTF8ToNSString(cookie.Name()) retain]); |
| 36 content_.reset([base::SysUTF8ToNSString(cookie.Value()) retain]); | 37 content_.reset([base::SysUTF8ToNSString(cookie.Value()) retain]); |
| 37 path_.reset([base::SysUTF8ToNSString(cookie.Path()) retain]); | 38 path_.reset([base::SysUTF8ToNSString(cookie.Path()) retain]); |
| 38 domain_.reset([base::SysWideToNSString(info.origin) retain]); | 39 domain_.reset([base::SysWideToNSString(info.origin) retain]); |
| 39 | 40 |
| 40 if (cookie.DoesExpire()) { | 41 if (cookie.DoesExpire()) { |
| 41 expires_.reset([base::SysWideToNSString( | 42 expires_.reset([base::SysWideToNSString( |
| 42 base::TimeFormatFriendlyDateAndTime(cookie.ExpiryDate())) retain]); | 43 base::TimeFormatFriendlyDateAndTime(cookie.ExpiryDate())) retain]); |
| 43 } else { | 44 } else { |
| 44 expires_.reset([l10n_util::GetNSStringWithFixup( | 45 expires_.reset([l10n_util::GetNSStringWithFixup( |
| 45 IDS_COOKIES_COOKIE_EXPIRES_SESSION) retain]); | 46 IDS_COOKIES_COOKIE_EXPIRES_SESSION) retain]); |
| 46 } | 47 } |
| 47 | 48 |
| 48 created_.reset([base::SysWideToNSString( | 49 created_.reset([base::SysWideToNSString( |
| 49 base::TimeFormatFriendlyDateAndTime(cookie.CreationDate())) retain]); | 50 base::TimeFormatFriendlyDateAndTime(cookie.CreationDate())) retain]); |
| 50 | 51 |
| 51 if (cookie.IsSecure()) { | 52 if (cookie.IsSecure()) { |
| 52 sendFor_.reset([l10n_util::GetNSStringWithFixup( | 53 sendFor_.reset([l10n_util::GetNSStringWithFixup( |
| 53 IDS_COOKIES_COOKIE_SENDFOR_SECURE) retain]); | 54 IDS_COOKIES_COOKIE_SENDFOR_SECURE) retain]); |
| 54 } else { | 55 } else { |
| 55 sendFor_.reset([l10n_util::GetNSStringWithFixup( | 56 sendFor_.reset([l10n_util::GetNSStringWithFixup( |
| 56 IDS_COOKIES_COOKIE_SENDFOR_ANY) retain]); | 57 IDS_COOKIES_COOKIE_SENDFOR_ANY) retain]); |
| 57 } | 58 } |
| 59 } else if (nodeType == CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE) { |
| 60 const BrowsingDataLocalStorageHelper::LocalStorageInfo* storageInfo = |
| 61 info.local_storage_info; |
| 62 nodeType_ = kCocoaCookieTreeNodeTypeLocalStorage; |
| 63 domain_.reset([base::SysUTF8ToNSString(storageInfo->origin) retain]); |
| 64 fileSize_.reset([base::SysWideToNSString(FormatBytes(storageInfo->size, |
| 65 GetByteDisplayUnits(storageInfo->size), true)) retain]); |
| 66 lastModified_.reset([base::SysWideToNSString( |
| 67 base::TimeFormatFriendlyDateAndTime( |
| 68 storageInfo->last_modified)) retain]); |
| 58 } | 69 } |
| 59 } | 70 } |
| 60 | 71 |
| 61 - (BOOL)isLeaf { | |
| 62 return isLeaf_; | |
| 63 } | |
| 64 | |
| 65 - (NSString*)title { | 72 - (NSString*)title { |
| 66 return title_.get(); | 73 return title_.get(); |
| 67 } | 74 } |
| 68 | 75 |
| 76 - (CocoaCookieTreeNodeType)nodeType { |
| 77 return nodeType_; |
| 78 } |
| 79 |
| 80 - (TreeModelNode*)treeNode { |
| 81 return treeNode_; |
| 82 } |
| 83 |
| 69 - (NSMutableArray*)mutableChildren { | 84 - (NSMutableArray*)mutableChildren { |
| 70 if (!children_.get()) { | 85 if (!children_.get()) { |
| 71 const int childCount = treeNode_->GetChildCount(); | 86 const int childCount = treeNode_->GetChildCount(); |
| 72 children_.reset([[NSMutableArray alloc] initWithCapacity:childCount]); | 87 children_.reset([[NSMutableArray alloc] initWithCapacity:childCount]); |
| 73 for (int i = 0; i < childCount; ++i) { | 88 for (int i = 0; i < childCount; ++i) { |
| 74 CookieTreeNode* child = treeNode_->GetChild(i); | 89 CookieTreeNode* child = treeNode_->GetChild(i); |
| 75 scoped_nsobject<CocoaCookieTreeNode> childNode( | 90 scoped_nsobject<CocoaCookieTreeNode> childNode( |
| 76 [[CocoaCookieTreeNode alloc] initWithNode:child]); | 91 [[CocoaCookieTreeNode alloc] initWithNode:child]); |
| 77 [children_ addObject:childNode.get()]; | 92 [children_ addObject:childNode.get()]; |
| 78 } | 93 } |
| 79 } | 94 } |
| 80 return children_.get(); | 95 return children_.get(); |
| 81 } | 96 } |
| 82 | 97 |
| 83 - (NSArray*)children { | 98 - (NSArray*)children { |
| 84 return [self mutableChildren]; | 99 return [self mutableChildren]; |
| 85 } | 100 } |
| 86 | 101 |
| 87 - (TreeModelNode*)treeNode { | 102 - (BOOL)isLeaf { |
| 88 return treeNode_; | 103 return nodeType_ != kCocoaCookieTreeNodeTypeFolder; |
| 104 } |
| 105 |
| 106 - (NSString*)description { |
| 107 NSString* format = |
| 108 @"<CocoaCookieTreeNode @ %p (title=%@, nodeType=%d, childCount=%u)"; |
| 109 return [NSString stringWithFormat:format, self, [self title], |
| 110 [self nodeType], [[self children] count]]; |
| 89 } | 111 } |
| 90 | 112 |
| 91 #pragma mark Cookie Accessors | 113 #pragma mark Cookie Accessors |
| 92 | 114 |
| 93 - (BOOL)isCookie { | |
| 94 return isCookie_; | |
| 95 } | |
| 96 | |
| 97 - (NSString*)name { | 115 - (NSString*)name { |
| 98 return name_.get(); | 116 return name_.get(); |
| 99 } | 117 } |
| 100 | 118 |
| 101 - (NSString*)content { | 119 - (NSString*)content { |
| 102 return content_.get(); | 120 return content_.get(); |
| 103 } | 121 } |
| 104 | 122 |
| 105 - (NSString*)domain { | 123 - (NSString*)domain { |
| 106 return domain_.get(); | 124 return domain_.get(); |
| 107 } | 125 } |
| 108 | 126 |
| 109 - (NSString*)path { | 127 - (NSString*)path { |
| 110 return path_.get(); | 128 return path_.get(); |
| 111 } | 129 } |
| 112 | 130 |
| 113 - (NSString*)sendFor { | 131 - (NSString*)sendFor { |
| 114 return sendFor_.get(); | 132 return sendFor_.get(); |
| 115 } | 133 } |
| 116 | 134 |
| 117 - (NSString*)created { | 135 - (NSString*)created { |
| 118 return created_.get(); | 136 return created_.get(); |
| 119 } | 137 } |
| 120 | 138 |
| 121 - (NSString*)expires { | 139 - (NSString*)expires { |
| 122 return expires_.get(); | 140 return expires_.get(); |
| 123 } | 141 } |
| 124 | 142 |
| 143 #pragma mark Local Storage Accessors |
| 144 |
| 145 - (NSString*)fileSize { |
| 146 return fileSize_.get(); |
| 147 } |
| 148 |
| 149 - (NSString*)lastModified { |
| 150 return lastModified_.get(); |
| 151 } |
| 152 |
| 125 @end | 153 @end |
| OLD | NEW |