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

Side by Side Diff: chrome/browser/cocoa/clear_browsing_data_controller.mm

Issue 3836003: Revert 62189 - [Mac] Update Clear Browsing dialog for proper functioning from... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 2 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
« no previous file with comments | « chrome/browser/cocoa/clear_browsing_data_controller.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/clear_browsing_data_controller.h" 5 #import "chrome/browser/cocoa/clear_browsing_data_controller.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/mac_util.h" 9 #include "base/mac_util.h"
10 #include "base/scoped_nsobject.h" 10 #include "base/scoped_nsobject.h"
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 } 114 }
115 115
116 - (id)initWithProfile:(Profile*)profile { 116 - (id)initWithProfile:(Profile*)profile {
117 DCHECK(profile); 117 DCHECK(profile);
118 // Use initWithWindowNibPath:: instead of initWithWindowNibName: so we 118 // Use initWithWindowNibPath:: instead of initWithWindowNibName: so we
119 // can override it in a unit test. 119 // can override it in a unit test.
120 NSString *nibpath = [mac_util::MainAppBundle() 120 NSString *nibpath = [mac_util::MainAppBundle()
121 pathForResource:@"ClearBrowsingData" 121 pathForResource:@"ClearBrowsingData"
122 ofType:@"nib"]; 122 ofType:@"nib"];
123 if ((self = [super initWithWindowNibPath:nibpath owner:self])) { 123 if ((self = [super initWithWindowNibPath:nibpath owner:self])) {
124 profile_ = profile;
124 observer_.reset(new ClearBrowsingObserver(self)); 125 observer_.reset(new ClearBrowsingObserver(self));
125 126 profile_->GetProfileSyncService()->ResetClearServerDataState();
126 // Always show preferences for the original profile. Most state when off 127 profile_->GetProfileSyncService()->AddObserver(observer_.get());
127 // the record comes from the original profile, but we explicitly use
128 // the original profile to avoid potential problems.
129 profile_ = profile->GetOriginalProfile();
130 sync_service_ = profile_->GetProfileSyncService();
131
132 if (sync_service_) {
133 sync_service_->ResetClearServerDataState();
134 sync_service_->AddObserver(observer_.get());
135 }
136
137 [self initFromPrefs]; 128 [self initFromPrefs];
138 } 129 }
139 return self; 130 return self;
140 } 131 }
141 132
142 - (void)dealloc { 133 - (void)dealloc {
143 if (remover_) { 134 if (remover_) {
144 // We were destroyed while clearing history was in progress. This can only 135 // We were destroyed while clearing history was in progress. This can only
145 // occur during automated tests (normally the user can't close the dialog 136 // occur during automated tests (normally the user can't close the dialog
146 // while clearing is in progress as the dialog is modal and not closeable). 137 // while clearing is in progress as the dialog is modal and not closeable).
147 remover_->RemoveObserver(observer_.get()); 138 remover_->RemoveObserver(observer_.get());
148 } 139 }
149 if (sync_service_) 140 profile_->GetProfileSyncService()->RemoveObserver(observer_.get());
150 sync_service_->RemoveObserver(observer_.get());
151 [self setClearingStatus:nil]; 141 [self setClearingStatus:nil];
152 142
153 [super dealloc]; 143 [super dealloc];
154 } 144 }
155 145
156 // Run application modal. 146 // Run application modal.
157 - (void)runModalDialog { 147 - (void)runModalDialog {
158 // Check again to make sure there is only one window. Since we use 148 // Check again to make sure there is only one window. Since we use
159 // |performSelector:afterDelay:| it is possible for this to somehow be 149 // |performSelector:afterDelay:| it is possible for this to somehow be
160 // triggered twice. 150 // triggered twice.
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 [self setClearingStatus:nil]; 334 [self setClearingStatus:nil];
345 [self setIsClearing:NO]; 335 [self setIsClearing:NO];
346 remover_ = NULL; 336 remover_ = NULL;
347 } 337 }
348 338
349 - (IBAction)stopSyncAndDeleteData:(id)sender { 339 - (IBAction)stopSyncAndDeleteData:(id)sender {
350 // Protect against the unlikely case where the server received a message, and 340 // Protect against the unlikely case where the server received a message, and
351 // the syncer syncs and resets itself before the user tries pressing the Clear 341 // the syncer syncs and resets itself before the user tries pressing the Clear
352 // button in this dialog again. TODO(raz) Confirm whether we have an issue 342 // button in this dialog again. TODO(raz) Confirm whether we have an issue
353 // here 343 // here
354 if (sync_service_->HasSyncSetupCompleted()) { 344 if (profile_->GetProfileSyncService()->HasSyncSetupCompleted()) {
355 bool clear = platform_util::SimpleYesNoBox( 345 bool clear = platform_util::SimpleYesNoBox(
356 nil, 346 nil,
357 l10n_util::GetStringUTF16(IDS_CONFIRM_CLEAR_TITLE), 347 l10n_util::GetStringUTF16(IDS_CONFIRM_CLEAR_TITLE),
358 l10n_util::GetStringUTF16(IDS_CONFIRM_CLEAR_DESCRIPTION)); 348 l10n_util::GetStringUTF16(IDS_CONFIRM_CLEAR_DESCRIPTION));
359 if (clear) { 349 if (clear) {
360 sync_service_->ClearServerData(); 350 profile_->GetProfileSyncService()->ClearServerData();
361 [self syncStateChanged]; 351 [self syncStateChanged];
362 } 352 }
363 } 353 }
364 } 354 }
365 355
366 - (void)syncStateChanged { 356 - (void)syncStateChanged {
367 bool deleteInProgress = false; 357 bool deleteInProgress = false;
368 358
369 ProfileSyncService::ClearServerDataState clearState = 359 ProfileSyncService::ClearServerDataState clearState =
370 sync_service_->GetClearServerDataState(); 360 profile_->GetProfileSyncService()->GetClearServerDataState();
371 sync_service_->ResetClearServerDataState(); 361 profile_->GetProfileSyncService()->ResetClearServerDataState();
372 362
373 switch (clearState) { 363 switch (clearState) {
374 case ProfileSyncService::CLEAR_NOT_STARTED: 364 case ProfileSyncService::CLEAR_NOT_STARTED:
375 // This can occur on a first start and after a failed clear (which does 365 // This can occur on a first start and after a failed clear (which does
376 // not close the tab). Do nothing. 366 // not close the tab). Do nothing.
377 break; 367 break;
378 case ProfileSyncService::CLEAR_CLEARING: 368 case ProfileSyncService::CLEAR_CLEARING:
379 // Clearing buttons on all tabs are disabled at this point, throbber is 369 // Clearing buttons on all tabs are disabled at this point, throbber is
380 // going. 370 // going.
381 [self setClearingStatus:l10n_util::GetNSString(IDS_CLEAR_DATA_SENDING)]; 371 [self setClearingStatus:l10n_util::GetNSString(IDS_CLEAR_DATA_SENDING)];
382 deleteInProgress = true; 372 deleteInProgress = true;
383 break; 373 break;
384 case ProfileSyncService::CLEAR_FAILED: 374 case ProfileSyncService::CLEAR_FAILED:
385 // Show an error and reallow clearing. 375 // Show an error and reallow clearing.
386 [self setClearingStatus:l10n_util::GetNSString(IDS_CLEAR_DATA_ERROR)]; 376 [self setClearingStatus:l10n_util::GetNSString(IDS_CLEAR_DATA_ERROR)];
387 deleteInProgress = false; 377 deleteInProgress = false;
388 break; 378 break;
389 case ProfileSyncService::CLEAR_SUCCEEDED: 379 case ProfileSyncService::CLEAR_SUCCEEDED:
390 // Close the dialog box, success! 380 // Close the dialog box, success!
391 [self setClearingStatus:nil]; 381 [self setClearingStatus:nil];
392 deleteInProgress = false; 382 deleteInProgress = false;
393 [self closeDialog]; 383 [self closeDialog];
394 break; 384 break;
395 } 385 }
396 386
397 [self setIsClearing:deleteInProgress]; 387 [self setIsClearing:deleteInProgress];
398 } 388 }
399 389
400 - (BOOL)isSyncVisible { 390 - (BOOL)isSyncEnabled {
401 return CommandLine::ForCurrentProcess()->HasSwitch( 391 BOOL allowClearServerDataUI =
402 switches::kEnableClearServerData); 392 CommandLine::ForCurrentProcess()->HasSwitch(
403 } 393 switches::kEnableClearServerData);
404 394
405 - (BOOL)isSyncEnabled { 395 return allowClearServerDataUI &&
406 return sync_service_ && sync_service_->HasSyncSetupCompleted(); 396 profile_->GetProfileSyncService()->HasSyncSetupCompleted();
407 } 397 }
408 398
409 - (NSFont*)labelFont { 399 - (NSFont*)labelFont {
410 return [NSFont boldSystemFontOfSize:13]; 400 return [NSFont boldSystemFontOfSize:13];
411 } 401 }
412 402
413 @end 403 @end
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/clear_browsing_data_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698