summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/cookie_tree_node.mm
diff options
context:
space:
mode:
authorrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-05 04:42:00 +0000
committerrsesek@chromium.org <rsesek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-05 04:42:00 +0000
commite51c1c51b1e1319d76b6a83d138b7de45641094f (patch)
tree0b9e805b3c9917b6653f22b0826cccbbb7a5637d /chrome/browser/cocoa/cookie_tree_node.mm
parent7706e5e3598efb51d021a64f34f2c2d3e390be6f (diff)
downloadchromium_src-e51c1c51b1e1319d76b6a83d138b7de45641094f.zip
chromium_src-e51c1c51b1e1319d76b6a83d138b7de45641094f.tar.gz
chromium_src-e51c1c51b1e1319d76b6a83d138b7de45641094f.tar.bz2
[Mac] Implement the cookie manager
This CL creates the basic cookie management interface, allowing users to view and delete cookies from Chromium. TODO: (1) Add the filtering by domain capability. (2) Localize the NIB. BUG=15360 TEST=Chromium-->Preferences-->Under the Hood-->Show Cookies. Also covered by unit tests. Review URL: http://codereview.chromium.org/523025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35512 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/cookie_tree_node.mm')
-rw-r--r--chrome/browser/cocoa/cookie_tree_node.mm119
1 files changed, 119 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/cookie_tree_node.mm b/chrome/browser/cocoa/cookie_tree_node.mm
new file mode 100644
index 0000000..1b1aafe
--- /dev/null
+++ b/chrome/browser/cocoa/cookie_tree_node.mm
@@ -0,0 +1,119 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "chrome/browser/cocoa/cookie_tree_node.h"
+
+#include "app/l10n_util_mac.h"
+#import "base/i18n/time_formatting.h"
+#include "base/sys_string_conversions.h"
+#include "grit/generated_resources.h"
+
+@implementation CocoaCookieTreeNode
+
+- (id)initWithNode:(CookieTreeNode*)node {
+ if ((self = [super init])) {
+ DCHECK(node);
+ treeNode_ = node;
+
+ const int childCount = node->GetChildCount();
+ children_.reset([[NSMutableArray alloc] initWithCapacity:childCount]);
+ for (int i = 0; i < childCount; ++i) {
+ CookieTreeNode* child = node->GetChild(i);
+ scoped_nsobject<CocoaCookieTreeNode> childNode(
+ [[CocoaCookieTreeNode alloc] initWithNode:child]);
+ [children_ addObject:childNode.get()];
+ }
+
+ [self rebuild];
+ }
+ return self;
+}
+
+- (void)rebuild {
+ title_.reset([base::SysWideToNSString(treeNode_->GetTitle()) retain]);
+ isCookie_ = NO;
+
+ CookieTreeNode::DetailedInfo info = treeNode_->GetDetailedInfo();
+ if (info.node_type == CookieTreeNode::DetailedInfo::TYPE_COOKIE) {
+ isCookie_ = YES;
+ net::CookieMonster::CanonicalCookie cookie = info.cookie->second;
+
+ name_.reset([base::SysUTF8ToNSString(cookie.Name()) retain]);
+ title_.reset([base::SysUTF8ToNSString(cookie.Name()) retain]);
+ content_.reset([base::SysUTF8ToNSString(cookie.Value()) retain]);
+ path_.reset([base::SysUTF8ToNSString(cookie.Path()) retain]);
+ domain_.reset([base::SysWideToNSString(info.origin) retain]);
+
+ if (cookie.DoesExpire()) {
+ expires_.reset([base::SysWideToNSString(
+ base::TimeFormatFriendlyDateAndTime(cookie.ExpiryDate())) retain]);
+ } else {
+ expires_.reset([l10n_util::GetNSStringWithFixup(
+ IDS_COOKIES_COOKIE_EXPIRES_SESSION) retain]);
+ }
+
+ created_.reset([base::SysWideToNSString(
+ base::TimeFormatFriendlyDateAndTime(cookie.CreationDate())) retain]);
+
+ if (cookie.IsSecure()) {
+ sendFor_.reset([l10n_util::GetNSStringWithFixup(
+ IDS_COOKIES_COOKIE_SENDFOR_SECURE) retain]);
+ } else {
+ sendFor_.reset([l10n_util::GetNSStringWithFixup(
+ IDS_COOKIES_COOKIE_SENDFOR_ANY) retain]);
+ }
+ }
+}
+
+- (BOOL)isLeaf {
+ return (treeNode_->GetChildCount() == 0);
+}
+
+- (NSString*)title {
+ return title_.get();
+}
+
+- (NSMutableArray*)children {
+ return children_.get();
+}
+
+- (TreeModelNode*)treeNode {
+ return treeNode_;
+}
+
+#pragma mark Cookie Accessors
+
+- (BOOL)isCookie {
+ return isCookie_;
+}
+
+- (NSString*)name {
+ return name_.get();
+}
+
+- (NSString*)content {
+ return content_.get();
+}
+
+- (NSString*)domain {
+ return domain_.get();
+}
+
+- (NSString*)path {
+ return path_.get();
+}
+
+- (NSString*)sendFor {
+ return sendFor_.get();
+}
+
+- (NSString*)created {
+ return created_.get();
+}
+
+- (NSString*)expires {
+ return expires_.get();
+}
+
+@end