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

Side by Side Diff: chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.mm

Issue 7831051: content: Move collected cookies constrained window to TabContentsWrapper. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Compile failures for everyone\! Created 9 years, 3 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
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/cocoa/content_settings/collected_cookies_mac.h" 5 #import "chrome/browser/ui/cocoa/content_settings/collected_cookies_mac.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #import "base/mac/mac_util.h" 9 #import "base/mac/mac_util.h"
10 #include "base/sys_string_conversions.h" 10 #include "base/sys_string_conversions.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 - (void)sheetDidEnd:(NSWindow*)sheet 71 - (void)sheetDidEnd:(NSWindow*)sheet
72 returnCode:(int)returnCode 72 returnCode:(int)returnCode
73 contextInfo:(void*)contextInfo { 73 contextInfo:(void*)contextInfo {
74 collectedCookies_->OnSheetDidEnd(sheet); 74 collectedCookies_->OnSheetDidEnd(sheet);
75 } 75 }
76 @end 76 @end
77 77
78 #pragma mark Constrained window delegate 78 #pragma mark Constrained window delegate
79 79
80 CollectedCookiesMac::CollectedCookiesMac(NSWindow* parent, 80 CollectedCookiesMac::CollectedCookiesMac(NSWindow* parent,
81 TabContents* tab_contents) 81 TabContentsWrapper* wrapper)
82 : ConstrainedWindowMacDelegateCustomSheet( 82 : ConstrainedWindowMacDelegateCustomSheet(
83 [[[CollectedCookiesSheetBridge alloc] 83 [[[CollectedCookiesSheetBridge alloc]
84 initWithCollectedCookiesMac:this] autorelease], 84 initWithCollectedCookiesMac:this] autorelease],
85 @selector(sheetDidEnd:returnCode:contextInfo:)), 85 @selector(sheetDidEnd:returnCode:contextInfo:)) {
86 tab_contents_(tab_contents) { 86 TabSpecificContentSettings* content_settings = wrapper->content_settings();
87 TabSpecificContentSettings* content_settings =
88 TabContentsWrapper::GetCurrentWrapperForContents(tab_contents)->
89 content_settings();
90 registrar_.Add(this, chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN, 87 registrar_.Add(this, chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN,
91 Source<TabSpecificContentSettings>(content_settings)); 88 Source<TabSpecificContentSettings>(content_settings));
92 89
93 sheet_controller_ = [[CollectedCookiesWindowController alloc] 90 sheet_controller_ = [[CollectedCookiesWindowController alloc]
94 initWithTabContents:tab_contents]; 91 initWithTabContentsWrapper:wrapper];
95 92
96 set_sheet([sheet_controller_ window]); 93 set_sheet([sheet_controller_ window]);
97 94
98 window_ = new ConstrainedWindowMac(tab_contents, this); 95 window_ = new ConstrainedWindowMac(wrapper->tab_contents(), this);
99 } 96 }
100 97
101 CollectedCookiesMac::~CollectedCookiesMac() { 98 CollectedCookiesMac::~CollectedCookiesMac() {
102 NSWindow* window = [sheet_controller_ window]; 99 NSWindow* window = [sheet_controller_ window];
103 if (window_ && window && is_sheet_open()) { 100 if (window_ && window && is_sheet_open()) {
104 window_ = NULL; 101 window_ = NULL;
105 [NSApp endSheet:window]; 102 [NSApp endSheet:window];
106 } 103 }
107 } 104 }
108 105
(...skipping 26 matching lines...) Expand all
135 @implementation CollectedCookiesWindowController 132 @implementation CollectedCookiesWindowController
136 133
137 @synthesize allowedCookiesButtonsEnabled = 134 @synthesize allowedCookiesButtonsEnabled =
138 allowedCookiesButtonsEnabled_; 135 allowedCookiesButtonsEnabled_;
139 @synthesize blockedCookiesButtonsEnabled = 136 @synthesize blockedCookiesButtonsEnabled =
140 blockedCookiesButtonsEnabled_; 137 blockedCookiesButtonsEnabled_;
141 138
142 @synthesize allowedTreeController = allowedTreeController_; 139 @synthesize allowedTreeController = allowedTreeController_;
143 @synthesize blockedTreeController = blockedTreeController_; 140 @synthesize blockedTreeController = blockedTreeController_;
144 141
145 - (id)initWithTabContents:(TabContents*)tabContents { 142 - (id)initWithTabContentsWrapper:(TabContentsWrapper*)wrapper {
146 DCHECK(tabContents); 143 DCHECK(wrapper);
147 144
148 NSString* nibpath = 145 NSString* nibpath =
149 [base::mac::MainAppBundle() pathForResource:@"CollectedCookies" 146 [base::mac::MainAppBundle() pathForResource:@"CollectedCookies"
150 ofType:@"nib"]; 147 ofType:@"nib"];
151 if ((self = [super initWithWindowNibPath:nibpath owner:self])) { 148 if ((self = [super initWithWindowNibPath:nibpath owner:self])) {
152 tabContents_ = tabContents; 149 wrapper_ = wrapper;
153 [self loadTreeModelFromTabContents]; 150 [self loadTreeModelFromTabContentsWrapper];
154 151
155 animation_.reset([[NSViewAnimation alloc] init]); 152 animation_.reset([[NSViewAnimation alloc] init]);
156 [animation_ setAnimationBlockingMode:NSAnimationNonblocking]; 153 [animation_ setAnimationBlockingMode:NSAnimationNonblocking];
157 } 154 }
158 return self; 155 return self;
159 } 156 }
160 157
161 - (void)awakeFromNib { 158 - (void)awakeFromNib {
162 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 159 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
163 NSImage* infoIcon = rb.GetNativeImageNamed(IDR_INFO); 160 NSImage* infoIcon = rb.GetNativeImageNamed(IDR_INFO);
(...skipping 15 matching lines...) Expand all
179 [[NSGradient alloc] initWithStartingColor:bannerStartingColor 176 [[NSGradient alloc] initWithStartingColor:bannerStartingColor
180 endingColor:bannerEndingColor]); 177 endingColor:bannerEndingColor]);
181 [infoBar_ setGradient:bannerGradient]; 178 [infoBar_ setGradient:bannerGradient];
182 179
183 NSColor* bannerStrokeColor = 180 NSColor* bannerStrokeColor =
184 [NSColor colorWithCalibratedWhite:kBannerStrokeColor 181 [NSColor colorWithCalibratedWhite:kBannerStrokeColor
185 alpha:1.0]; 182 alpha:1.0];
186 [infoBar_ setStrokeColor:bannerStrokeColor]; 183 [infoBar_ setStrokeColor:bannerStrokeColor];
187 184
188 // Change the label of the blocked cookies part if necessary. 185 // Change the label of the blocked cookies part if necessary.
189 Profile* profile = 186 Profile* profile = wrapper_->profile();
190 Profile::FromBrowserContext(tabContents_->browser_context());
191 if (profile->GetHostContentSettingsMap()->BlockThirdPartyCookies()) { 187 if (profile->GetHostContentSettingsMap()->BlockThirdPartyCookies()) {
192 [blockedCookiesText_ setStringValue:l10n_util::GetNSString( 188 [blockedCookiesText_ setStringValue:l10n_util::GetNSString(
193 IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED)]; 189 IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED)];
194 CGFloat textDeltaY = [GTMUILocalizerAndLayoutTweaker 190 CGFloat textDeltaY = [GTMUILocalizerAndLayoutTweaker
195 sizeToFitFixedWidthTextField:blockedCookiesText_]; 191 sizeToFitFixedWidthTextField:blockedCookiesText_];
196 192
197 // Shrink the blocked cookies outline view. 193 // Shrink the blocked cookies outline view.
198 NSRect frame = [blockedScrollView_ frame]; 194 NSRect frame = [blockedScrollView_ frame];
199 frame.size.height -= textDeltaY; 195 frame.size.height -= textDeltaY;
200 [blockedScrollView_ setFrame:frame]; 196 [blockedScrollView_ setFrame:frame];
(...skipping 11 matching lines...) Expand all
212 [[detailsViewController_.get() view] setFrame:viewFrameRect]; 208 [[detailsViewController_.get() view] setFrame:viewFrameRect];
213 [[cookieDetailsViewPlaceholder_ superview] 209 [[cookieDetailsViewPlaceholder_ superview]
214 replaceSubview:cookieDetailsViewPlaceholder_ 210 replaceSubview:cookieDetailsViewPlaceholder_
215 with:detailView]; 211 with:detailView];
216 212
217 [self tabView:tabView_ didSelectTabViewItem:[tabView_ selectedTabViewItem]]; 213 [self tabView:tabView_ didSelectTabViewItem:[tabView_ selectedTabViewItem]];
218 } 214 }
219 215
220 - (void)windowWillClose:(NSNotification*)notif { 216 - (void)windowWillClose:(NSNotification*)notif {
221 if (contentSettingsChanged_) { 217 if (contentSettingsChanged_) {
222 TabContentsWrapper::GetCurrentWrapperForContents(tabContents_)-> 218 wrapper_->infobar_tab_helper()->AddInfoBar(
223 infobar_tab_helper()->AddInfoBar( 219 new CollectedCookiesInfoBarDelegate(wrapper_->tab_contents()));
224 new CollectedCookiesInfoBarDelegate(tabContents_));
225 } 220 }
226 [allowedOutlineView_ setDelegate:nil]; 221 [allowedOutlineView_ setDelegate:nil];
227 [blockedOutlineView_ setDelegate:nil]; 222 [blockedOutlineView_ setDelegate:nil];
228 [animation_ stopAnimation]; 223 [animation_ stopAnimation];
229 [self autorelease]; 224 [self autorelease];
230 } 225 }
231 226
232 - (IBAction)closeSheet:(id)sender { 227 - (IBAction)closeSheet:(id)sender {
233 [NSApp endSheet:[self window]]; 228 [NSApp endSheet:[self window]];
234 } 229 }
235 230
236 - (void)addException:(ContentSetting)setting 231 - (void)addException:(ContentSetting)setting
237 forTreeController:(NSTreeController*)controller { 232 forTreeController:(NSTreeController*)controller {
238 NSArray* nodes = [controller selectedNodes]; 233 NSArray* nodes = [controller selectedNodes];
239 BOOL multipleDomainsChanged = NO; 234 BOOL multipleDomainsChanged = NO;
240 string16 lastDomain; 235 string16 lastDomain;
241 for (NSTreeNode* treeNode in nodes) { 236 for (NSTreeNode* treeNode in nodes) {
242 CocoaCookieTreeNode* node = [treeNode representedObject]; 237 CocoaCookieTreeNode* node = [treeNode representedObject];
243 CookieTreeNode* cookie = static_cast<CookieTreeNode*>([node treeNode]); 238 CookieTreeNode* cookie = static_cast<CookieTreeNode*>([node treeNode]);
244 if (cookie->GetDetailedInfo().node_type != 239 if (cookie->GetDetailedInfo().node_type !=
245 CookieTreeNode::DetailedInfo::TYPE_ORIGIN) { 240 CookieTreeNode::DetailedInfo::TYPE_ORIGIN) {
246 continue; 241 continue;
247 } 242 }
248 Profile* profile = 243 Profile* profile = wrapper_->profile();
249 Profile::FromBrowserContext(tabContents_->browser_context());
250 CookieTreeOriginNode* origin_node = 244 CookieTreeOriginNode* origin_node =
251 static_cast<CookieTreeOriginNode*>(cookie); 245 static_cast<CookieTreeOriginNode*>(cookie);
252 origin_node->CreateContentException(profile->GetHostContentSettingsMap(), 246 origin_node->CreateContentException(profile->GetHostContentSettingsMap(),
253 setting); 247 setting);
254 if (!lastDomain.empty()) 248 if (!lastDomain.empty())
255 multipleDomainsChanged = YES; 249 multipleDomainsChanged = YES;
256 lastDomain = origin_node->GetTitle(); 250 lastDomain = origin_node->GetTitle();
257 } 251 }
258 if (multipleDomainsChanged) 252 if (multipleDomainsChanged)
259 [self showInfoBarForMultipleDomainsAndSetting:setting]; 253 [self showInfoBarForMultipleDomainsAndSetting:setting];
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 } 346 }
353 if (isAllowedOutlineView) { 347 if (isAllowedOutlineView) {
354 [self setAllowedCookiesButtonsEnabled:NO]; 348 [self setAllowedCookiesButtonsEnabled:NO];
355 } else { 349 } else {
356 [self setBlockedCookiesButtonsEnabled:NO]; 350 [self setBlockedCookiesButtonsEnabled:NO];
357 } 351 }
358 } 352 }
359 353
360 // Initializes the |allowedTreeModel_| and |blockedTreeModel_|, and builds 354 // Initializes the |allowedTreeModel_| and |blockedTreeModel_|, and builds
361 // the |cocoaAllowedTreeModel_| and |cocoaBlockedTreeModel_|. 355 // the |cocoaAllowedTreeModel_| and |cocoaBlockedTreeModel_|.
362 - (void)loadTreeModelFromTabContents { 356 - (void)loadTreeModelFromTabContentsWrapper {
363 TabSpecificContentSettings* content_settings = 357 TabSpecificContentSettings* content_settings = wrapper_->content_settings();
364 TabContentsWrapper::GetCurrentWrapperForContents(tabContents_)->
365 content_settings();
366 allowedTreeModel_.reset(content_settings->GetAllowedCookiesTreeModel()); 358 allowedTreeModel_.reset(content_settings->GetAllowedCookiesTreeModel());
367 blockedTreeModel_.reset(content_settings->GetBlockedCookiesTreeModel()); 359 blockedTreeModel_.reset(content_settings->GetBlockedCookiesTreeModel());
368 360
369 // Convert the model's icons from Skia to Cocoa. 361 // Convert the model's icons from Skia to Cocoa.
370 std::vector<SkBitmap> skiaIcons; 362 std::vector<SkBitmap> skiaIcons;
371 allowedTreeModel_->GetIcons(&skiaIcons); 363 allowedTreeModel_->GetIcons(&skiaIcons);
372 icons_.reset([[NSMutableArray alloc] init]); 364 icons_.reset([[NSMutableArray alloc] init]);
373 for (std::vector<SkBitmap>::iterator it = skiaIcons.begin(); 365 for (std::vector<SkBitmap>::iterator it = skiaIcons.begin();
374 it != skiaIcons.end(); ++it) { 366 it != skiaIcons.end(); ++it) {
375 [icons_ addObject:gfx::SkBitmapToNSImage(*it)]; 367 [icons_ addObject:gfx::SkBitmapToNSImage(*it)];
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 treeController = blockedTreeController_; 505 treeController = blockedTreeController_;
514 break; 506 break;
515 default: 507 default:
516 NOTREACHED(); 508 NOTREACHED();
517 return; 509 return;
518 } 510 }
519 [detailsViewController_ configureBindingsForTreeController:treeController]; 511 [detailsViewController_ configureBindingsForTreeController:treeController];
520 } 512 }
521 513
522 @end 514 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698