diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-11 21:42:41 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-11 21:42:41 +0000 |
commit | 32d32d1cc300de3ee417544ac99bb9a9c0b64e33 (patch) | |
tree | d8b44616d049f8c05da1075b246754bec865992b | |
parent | 9fee3a46e1408b3bde77c28c49d40260fb0d55b5 (diff) | |
download | chromium_src-32d32d1cc300de3ee417544ac99bb9a9c0b64e33.zip chromium_src-32d32d1cc300de3ee417544ac99bb9a9c0b64e33.tar.gz chromium_src-32d32d1cc300de3ee417544ac99bb9a9c0b64e33.tar.bz2 |
[Mac] Update Clear Browsing dialog for proper functioning from incognito windows, only hide server data delete if switch is not set. Mirror to r62147.
nib changes:
- for the five "clear server data" items, hidden bound to !owner.isSyncVisible
- for the "clear server data" button, enabled bound to owner.isSyncEnabled, enabled2 bound to !isClearing
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/3674005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62189 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/app/nibs/ClearBrowsingData.xib | 110 | ||||
-rw-r--r-- | chrome/browser/cocoa/clear_browsing_data_controller.h | 3 | ||||
-rw-r--r-- | chrome/browser/cocoa/clear_browsing_data_controller.mm | 38 |
3 files changed, 108 insertions, 43 deletions
diff --git a/chrome/app/nibs/ClearBrowsingData.xib b/chrome/app/nibs/ClearBrowsingData.xib index 1111d4b..eb99359 100644 --- a/chrome/app/nibs/ClearBrowsingData.xib +++ b/chrome/app/nibs/ClearBrowsingData.xib @@ -12,7 +12,7 @@ </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="2"/> + <integer value="158"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1216,15 +1216,31 @@ </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">hidden: isSyncEnabled</string> + <string key="label">value: clearingStatus</string> + <reference key="source" ref="682642417"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector"> + <reference key="NSSource" ref="682642417"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">value: clearingStatus</string> + <string key="NSBinding">value</string> + <string key="NSKeyPath">clearingStatus</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">206</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">hidden: isSyncVisible</string> <reference key="source" ref="111752323"/> <reference key="destination" ref="1001"/> <object class="NSNibBindingConnector" key="connector"> <reference key="NSSource" ref="111752323"/> <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">hidden: isSyncEnabled</string> + <string key="NSLabel">hidden: isSyncVisible</string> <string key="NSBinding">hidden</string> - <string key="NSKeyPath">isSyncEnabled</string> + <string key="NSKeyPath">isSyncVisible</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSValueTransformerName</string> <string key="NS.object.0">NSNegateBoolean</string> @@ -1232,19 +1248,19 @@ <int key="NSNibBindingConnectorVersion">2</int> </object> </object> - <int key="connectionID">182</int> + <int key="connectionID">210</int> </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">hidden: isSyncEnabled</string> + <string key="label">hidden: isSyncVisible</string> <reference key="source" ref="26218580"/> <reference key="destination" ref="1001"/> <object class="NSNibBindingConnector" key="connector"> <reference key="NSSource" ref="26218580"/> <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">hidden: isSyncEnabled</string> + <string key="NSLabel">hidden: isSyncVisible</string> <string key="NSBinding">hidden</string> - <string key="NSKeyPath">isSyncEnabled</string> + <string key="NSKeyPath">isSyncVisible</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSValueTransformerName</string> <string key="NS.object.0">NSNegateBoolean</string> @@ -1252,19 +1268,19 @@ <int key="NSNibBindingConnectorVersion">2</int> </object> </object> - <int key="connectionID">186</int> + <int key="connectionID">214</int> </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">hidden: isSyncEnabled</string> + <string key="label">hidden: isSyncVisible</string> <reference key="source" ref="160073487"/> <reference key="destination" ref="1001"/> <object class="NSNibBindingConnector" key="connector"> <reference key="NSSource" ref="160073487"/> <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">hidden: isSyncEnabled</string> + <string key="NSLabel">hidden: isSyncVisible</string> <string key="NSBinding">hidden</string> - <string key="NSKeyPath">isSyncEnabled</string> + <string key="NSKeyPath">isSyncVisible</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSValueTransformerName</string> <string key="NS.object.0">NSNegateBoolean</string> @@ -1272,19 +1288,19 @@ <int key="NSNibBindingConnectorVersion">2</int> </object> </object> - <int key="connectionID">190</int> + <int key="connectionID">218</int> </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">hidden: isSyncEnabled</string> + <string key="label">hidden: isSyncVisible</string> <reference key="source" ref="177347071"/> <reference key="destination" ref="1001"/> <object class="NSNibBindingConnector" key="connector"> <reference key="NSSource" ref="177347071"/> <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">hidden: isSyncEnabled</string> + <string key="NSLabel">hidden: isSyncVisible</string> <string key="NSBinding">hidden</string> - <string key="NSKeyPath">isSyncEnabled</string> + <string key="NSKeyPath">isSyncVisible</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSValueTransformerName</string> <string key="NS.object.0">NSNegateBoolean</string> @@ -1292,19 +1308,19 @@ <int key="NSNibBindingConnectorVersion">2</int> </object> </object> - <int key="connectionID">194</int> + <int key="connectionID">222</int> </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">hidden: isSyncEnabled</string> + <string key="label">hidden: isSyncVisible</string> <reference key="source" ref="461151812"/> <reference key="destination" ref="1001"/> <object class="NSNibBindingConnector" key="connector"> <reference key="NSSource" ref="461151812"/> <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">hidden: isSyncEnabled</string> + <string key="NSLabel">hidden: isSyncVisible</string> <string key="NSBinding">hidden</string> - <string key="NSKeyPath">isSyncEnabled</string> + <string key="NSKeyPath">isSyncVisible</string> <object class="NSDictionary" key="NSOptions"> <string key="NS.key.0">NSValueTransformerName</string> <string key="NS.object.0">NSNegateBoolean</string> @@ -1312,23 +1328,59 @@ <int key="NSNibBindingConnectorVersion">2</int> </object> </object> - <int key="connectionID">198</int> + <int key="connectionID">226</int> </object> <object class="IBConnectionRecord"> <object class="IBBindingConnection" key="connection"> - <string key="label">value: clearingStatus</string> - <reference key="source" ref="682642417"/> + <string key="label">enabled: isSyncEnabled</string> + <reference key="source" ref="909108966"/> + <reference key="destination" ref="1001"/> + <object class="NSNibBindingConnector" key="connector" id="453378992"> + <reference key="NSSource" ref="909108966"/> + <reference key="NSDestination" ref="1001"/> + <string key="NSLabel">enabled: isSyncEnabled</string> + <string key="NSBinding">enabled</string> + <string key="NSKeyPath">isSyncEnabled</string> + <int key="NSNibBindingConnectorVersion">2</int> + </object> + </object> + <int key="connectionID">229</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBBindingConnection" key="connection"> + <string key="label">enabled2: isClearing</string> + <reference key="source" ref="909108966"/> <reference key="destination" ref="1001"/> <object class="NSNibBindingConnector" key="connector"> - <reference key="NSSource" ref="682642417"/> + <reference key="NSSource" ref="909108966"/> <reference key="NSDestination" ref="1001"/> - <string key="NSLabel">value: clearingStatus</string> - <string key="NSBinding">value</string> - <string key="NSKeyPath">clearingStatus</string> + <string key="NSLabel">enabled2: isClearing</string> + <string key="NSBinding">enabled2</string> + <string key="NSKeyPath">isClearing</string> + <object class="NSDictionary" key="NSOptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSMultipleValuesPlaceholder</string> + <string>NSNoSelectionPlaceholder</string> + <string>NSNotApplicablePlaceholder</string> + <string>NSNullPlaceholder</string> + <string>NSValueTransformerName</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="-1"/> + <integer value="-1"/> + <integer value="-1"/> + <integer value="-1"/> + <string>NSNegateBoolean</string> + </object> + </object> + <reference key="NSPreviousConnector" ref="453378992"/> <int key="NSNibBindingConnectorVersion">2</int> </object> </object> - <int key="connectionID">206</int> + <int key="connectionID">232</int> </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> @@ -2074,7 +2126,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">206</int> + <int key="maxID">232</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> diff --git a/chrome/browser/cocoa/clear_browsing_data_controller.h b/chrome/browser/cocoa/clear_browsing_data_controller.h index 405a414..6698cae 100644 --- a/chrome/browser/cocoa/clear_browsing_data_controller.h +++ b/chrome/browser/cocoa/clear_browsing_data_controller.h @@ -13,6 +13,7 @@ class BrowsingDataRemover; class ClearBrowsingObserver; class Profile; +class ProfileSyncService; @class ThrobberView; // Name of notification that is called when data is cleared. @@ -32,6 +33,7 @@ extern NSString* const kClearBrowsingDataControllerRemoveMask; // automated tests. The remove deletes itself when it's done, so this is a // weak reference. BrowsingDataRemover* remover_; + ProfileSyncService* sync_service_; scoped_ptr<ClearBrowsingObserver> observer_; BOOL isClearing_; // YES while clearing data is ongoing. NSString* clearingStatus_; @@ -80,6 +82,7 @@ extern NSString* const kClearBrowsingDataControllerRemoveMask; @property (nonatomic) NSInteger timePeriod; @property (nonatomic) BOOL isClearing; @property (nonatomic, copy) NSString* clearingStatus; +@property (readonly, nonatomic) BOOL isSyncVisible; @property (readonly, nonatomic) BOOL isSyncEnabled; @property (readonly) NSFont* labelFont; diff --git a/chrome/browser/cocoa/clear_browsing_data_controller.mm b/chrome/browser/cocoa/clear_browsing_data_controller.mm index ae2eb58..392d52e 100644 --- a/chrome/browser/cocoa/clear_browsing_data_controller.mm +++ b/chrome/browser/cocoa/clear_browsing_data_controller.mm @@ -121,10 +121,19 @@ class ClearBrowsingObserver : public BrowsingDataRemover::Observer, pathForResource:@"ClearBrowsingData" ofType:@"nib"]; if ((self = [super initWithWindowNibPath:nibpath owner:self])) { - profile_ = profile; observer_.reset(new ClearBrowsingObserver(self)); - profile_->GetProfileSyncService()->ResetClearServerDataState(); - profile_->GetProfileSyncService()->AddObserver(observer_.get()); + + // Always show preferences for the original profile. Most state when off + // the record comes from the original profile, but we explicitly use + // the original profile to avoid potential problems. + profile_ = profile->GetOriginalProfile(); + sync_service_ = profile_->GetProfileSyncService(); + + if (sync_service_) { + sync_service_->ResetClearServerDataState(); + sync_service_->AddObserver(observer_.get()); + } + [self initFromPrefs]; } return self; @@ -137,7 +146,8 @@ class ClearBrowsingObserver : public BrowsingDataRemover::Observer, // while clearing is in progress as the dialog is modal and not closeable). remover_->RemoveObserver(observer_.get()); } - profile_->GetProfileSyncService()->RemoveObserver(observer_.get()); + if (sync_service_) + sync_service_->RemoveObserver(observer_.get()); [self setClearingStatus:nil]; [super dealloc]; @@ -341,13 +351,13 @@ class ClearBrowsingObserver : public BrowsingDataRemover::Observer, // the syncer syncs and resets itself before the user tries pressing the Clear // button in this dialog again. TODO(raz) Confirm whether we have an issue // here - if (profile_->GetProfileSyncService()->HasSyncSetupCompleted()) { + if (sync_service_->HasSyncSetupCompleted()) { bool clear = platform_util::SimpleYesNoBox( nil, l10n_util::GetStringUTF16(IDS_CONFIRM_CLEAR_TITLE), l10n_util::GetStringUTF16(IDS_CONFIRM_CLEAR_DESCRIPTION)); if (clear) { - profile_->GetProfileSyncService()->ClearServerData(); + sync_service_->ClearServerData(); [self syncStateChanged]; } } @@ -357,8 +367,8 @@ class ClearBrowsingObserver : public BrowsingDataRemover::Observer, bool deleteInProgress = false; ProfileSyncService::ClearServerDataState clearState = - profile_->GetProfileSyncService()->GetClearServerDataState(); - profile_->GetProfileSyncService()->ResetClearServerDataState(); + sync_service_->GetClearServerDataState(); + sync_service_->ResetClearServerDataState(); switch (clearState) { case ProfileSyncService::CLEAR_NOT_STARTED: @@ -387,13 +397,13 @@ class ClearBrowsingObserver : public BrowsingDataRemover::Observer, [self setIsClearing:deleteInProgress]; } -- (BOOL)isSyncEnabled { - BOOL allowClearServerDataUI = - CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableClearServerData); +- (BOOL)isSyncVisible { + return CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnableClearServerData); +} - return allowClearServerDataUI && - profile_->GetProfileSyncService()->HasSyncSetupCompleted(); +- (BOOL)isSyncEnabled { + return sync_service_ && sync_service_->HasSyncSetupCompleted(); } - (NSFont*)labelFont { |