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

Side by Side Diff: chrome/browser/ui/cocoa/cookie_details.h

Issue 6294008: [Mac] Organize some files into chrome/browser/ui/cocoa/content_settings/.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #import <Cocoa/Cocoa.h>
6
7 #include "chrome/browser/browsing_data_database_helper.h"
8 #include "chrome/browser/browsing_data_indexed_db_helper.h"
9 #include "chrome/browser/browsing_data_local_storage_helper.h"
10 #include "base/scoped_nsobject.h"
11 #include "net/base/cookie_monster.h"
12 #include "webkit/appcache/appcache_service.h"
13
14 class CookieTreeNode;
15 class CookiePromptModalDialog;
16
17 // This enum specifies the type of information contained in the
18 // cookie details.
19 enum CocoaCookieDetailsType {
20 // Represents grouping of cookie data, used in the cookie tree.
21 kCocoaCookieDetailsTypeFolder = 0,
22
23 // Detailed information about a cookie, used both in the cookie
24 // tree and the cookie prompt.
25 kCocoaCookieDetailsTypeCookie,
26
27 // Detailed information about a web database used for
28 // display in the cookie tree.
29 kCocoaCookieDetailsTypeTreeDatabase,
30
31 // Detailed information about local storage used for
32 // display in the cookie tree.
33 kCocoaCookieDetailsTypeTreeLocalStorage,
34
35 // Detailed information about an appcache used for display in the
36 // cookie tree.
37 kCocoaCookieDetailsTypeTreeAppCache,
38
39 // Detailed information about an IndexedDB used for display in the
40 // cookie tree.
41 kCocoaCookieDetailsTypeTreeIndexedDB,
42
43 // Detailed information about a web database used for display
44 // in the cookie prompt dialog.
45 kCocoaCookieDetailsTypePromptDatabase,
46
47 // Detailed information about local storage used for display
48 // in the cookie prompt dialog.
49 kCocoaCookieDetailsTypePromptLocalStorage,
50
51 // Detailed information about app caches used for display
52 // in the cookie prompt dialog.
53 kCocoaCookieDetailsTypePromptAppCache
54 };
55
56 // This class contains all of the information that can be displayed in
57 // a cookie details view. Because the view uses bindings to display
58 // the cookie information, the methods that provide that information
59 // for display must be implemented directly on this class and not on any
60 // of its subclasses.
61 // If this system is rewritten to not use bindings, this class should be
62 // subclassed and specialized, rather than using an enum to determine type.
63 @interface CocoaCookieDetails : NSObject {
64 @private
65 CocoaCookieDetailsType type_;
66
67 // Used for type kCocoaCookieDetailsTypeCookie to indicate whether
68 // it should be possible to edit the expiration.
69 BOOL canEditExpiration_;
70
71 // Indicates whether a cookie has an explcit expiration. If not
72 // it will expire with the session.
73 BOOL hasExpiration_;
74
75 // Only set for type kCocoaCookieDetailsTypeCookie.
76 scoped_nsobject<NSString> content_;
77 scoped_nsobject<NSString> path_;
78 scoped_nsobject<NSString> sendFor_;
79 // Stringifed dates.
80 scoped_nsobject<NSString> expires_;
81
82 // Only set for type kCocoaCookieDetailsTypeCookie and
83 // kCocoaCookieDetailsTypeTreeAppCache nodes.
84 scoped_nsobject<NSString> created_;
85
86 // Only set for types kCocoaCookieDetailsTypeCookie, and
87 // kCocoaCookieDetailsTypePromptDatabase nodes.
88 scoped_nsobject<NSString> name_;
89
90 // Only set for type kCocoaCookieDetailsTypeTreeLocalStorage,
91 // kCocoaCookieDetailsTypeTreeDatabase,
92 // kCocoaCookieDetailsTypePromptDatabase,
93 // kCocoaCookieDetailsTypeTreeIndexedDB, and
94 // kCocoaCookieDetailsTypeTreeAppCache nodes.
95 scoped_nsobject<NSString> fileSize_;
96
97 // Only set for types kCocoaCookieDetailsTypeTreeLocalStorage,
98 // kCocoaCookieDetailsTypeTreeDatabase, and
99 // kCocoaCookieDetailsTypeTreeIndexedDB nodes.
100 scoped_nsobject<NSString> lastModified_;
101
102 // Only set for type kCocoaCookieDetailsTypeTreeAppCache nodes.
103 scoped_nsobject<NSString> lastAccessed_;
104
105 // Only set for type kCocoaCookieDetailsTypeCookie,
106 // kCocoaCookieDetailsTypePromptDatabase,
107 // kCocoaCookieDetailsTypePromptLocalStorage, and
108 // kCocoaCookieDetailsTypeTreeIndexedDB nodes.
109 scoped_nsobject<NSString> domain_;
110
111 // Only set for type kCocoaCookieTreeNodeTypeDatabaseStorage and
112 // kCocoaCookieDetailsTypePromptDatabase nodes.
113 scoped_nsobject<NSString> databaseDescription_;
114
115 // Only set for type kCocoaCookieDetailsTypePromptLocalStorage.
116 scoped_nsobject<NSString> localStorageKey_;
117 scoped_nsobject<NSString> localStorageValue_;
118
119 // Only set for type kCocoaCookieDetailsTypeTreeAppCache and
120 // kCocoaCookieDetailsTypePromptAppCache.
121 scoped_nsobject<NSString> manifestURL_;
122 }
123
124 @property (nonatomic, readonly) BOOL canEditExpiration;
125 @property (nonatomic) BOOL hasExpiration;
126 @property (nonatomic, readonly) CocoaCookieDetailsType type;
127
128 // The following methods are used in the bindings of subviews inside
129 // the cookie detail view. Note that the method that tests the
130 // visibility of the subview for cookie-specific information has a different
131 // polarity than the other visibility testing methods. This ensures that
132 // this subview is shown when there is no selection in the cookie tree,
133 // because a hidden value of |false| is generated when the key value binding
134 // is evaluated through a nil object. The other methods are bound using a
135 // |NSNegateBoolean| transformer, so that when there is a empty selection the
136 // hidden value is |true|.
137 - (BOOL)shouldHideCookieDetailsView;
138 - (BOOL)shouldShowLocalStorageTreeDetailsView;
139 - (BOOL)shouldShowLocalStoragePromptDetailsView;
140 - (BOOL)shouldShowDatabaseTreeDetailsView;
141 - (BOOL)shouldShowDatabasePromptDetailsView;
142 - (BOOL)shouldShowAppCachePromptDetailsView;
143 - (BOOL)shouldShowAppCacheTreeDetailsView;
144 - (BOOL)shouldShowIndexedDBTreeDetailsView;
145
146 - (NSString*)name;
147 - (NSString*)content;
148 - (NSString*)domain;
149 - (NSString*)path;
150 - (NSString*)sendFor;
151 - (NSString*)created;
152 - (NSString*)expires;
153 - (NSString*)fileSize;
154 - (NSString*)lastModified;
155 - (NSString*)lastAccessed;
156 - (NSString*)databaseDescription;
157 - (NSString*)localStorageKey;
158 - (NSString*)localStorageValue;
159 - (NSString*)manifestURL;
160
161 // Used for folders in the cookie tree.
162 - (id)initAsFolder;
163
164 // Used for cookie details in both the cookie tree and the cookie prompt dialog.
165 - (id)initWithCookie:(const net::CookieMonster::CanonicalCookie*)treeNode
166 origin:(NSString*)origin
167 canEditExpiration:(BOOL)canEditExpiration;
168
169 // Used for database details in the cookie tree.
170 - (id)initWithDatabase:
171 (const BrowsingDataDatabaseHelper::DatabaseInfo*)databaseInfo;
172
173 // Used for local storage details in the cookie tree.
174 - (id)initWithLocalStorage:
175 (const BrowsingDataLocalStorageHelper::LocalStorageInfo*)localStorageInfo;
176
177 // Used for database details in the cookie prompt dialog.
178 - (id)initWithDatabase:(const std::string&)domain
179 databaseName:(const string16&)databaseName
180 databaseDescription:(const string16&)databaseDescription
181 fileSize:(unsigned long)fileSize;
182
183 // -initWithAppCacheInfo: creates a cookie details with the manifest URL plus
184 // all of this additional information that is available after an appcache is
185 // actually created, including it's creation date, size and last accessed time.
186 - (id)initWithAppCacheInfo:(const appcache::AppCacheInfo*)appcacheInfo;
187
188 // Used for local storage details in the cookie prompt dialog.
189 - (id)initWithLocalStorage:(const std::string&)domain
190 key:(const string16&)key
191 value:(const string16&)value;
192
193 // -initWithAppCacheManifestURL: is called when the cookie prompt is displayed
194 // for an appcache, at that time only the manifest URL of the appcache is known.
195 - (id)initWithAppCacheManifestURL:(const std::string&)manifestURL;
196
197 // Used for IndexedDB details in the cookie tree.
198 - (id)initWithIndexedDBInfo:
199 (const BrowsingDataIndexedDBHelper::IndexedDBInfo*)indexedDB;
200
201 // A factory method to create a configured instance given a node from
202 // the cookie tree in |treeNode|.
203 + (CocoaCookieDetails*)createFromCookieTreeNode:(CookieTreeNode*)treeNode;
204
205 @end
206
207 // The subpanes of the cookie details view expect to be able to bind to methods
208 // through a key path in the form |content.details.xxxx|. This class serves as
209 // an adapter that simply wraps a |CocoaCookieDetails| object. An instance of
210 // this class is set as the content object for cookie details view's object
211 // controller so that key paths are properly resolved through to the
212 // |CocoaCookieDetails| object for the cookie prompt.
213 @interface CookiePromptContentDetailsAdapter : NSObject {
214 @private
215 scoped_nsobject<CocoaCookieDetails> details_;
216 }
217
218 - (CocoaCookieDetails*)details;
219
220 // The adapter assumes ownership of the details object
221 // in its initializer.
222 - (id)initWithDetails:(CocoaCookieDetails*)details;
223 @end
224
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698