OLD | NEW |
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/ui/cocoa/clear_browsing_data_controller.h" | 5 #import "chrome/browser/ui/cocoa/clear_browsing_data_controller.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/lazy_instance.h" |
8 #include "base/mac_util.h" | 9 #include "base/mac_util.h" |
9 #include "base/scoped_nsobject.h" | 10 #include "base/scoped_nsobject.h" |
10 #include "base/singleton.h" | |
11 #include "chrome/browser/browsing_data_remover.h" | 11 #include "chrome/browser/browsing_data_remover.h" |
12 #include "chrome/browser/prefs/pref_service.h" | 12 #include "chrome/browser/prefs/pref_service.h" |
13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
14 #include "chrome/browser/ui/browser.h" | 14 #include "chrome/browser/ui/browser.h" |
15 #include "chrome/browser/ui/browser_window.h" | 15 #include "chrome/browser/ui/browser_window.h" |
16 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
17 #include "grit/locale_settings.h" | 17 #include "grit/locale_settings.h" |
18 #import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" | 18 #import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" |
19 | 19 |
20 NSString* const kClearBrowsingDataControllerDidDelete = | 20 NSString* const kClearBrowsingDataControllerDidDelete = |
(...skipping 13 matching lines...) Expand all Loading... |
34 : controller_(controller) { } | 34 : controller_(controller) { } |
35 void OnBrowsingDataRemoverDone() { [controller_ dataRemoverDidFinish]; } | 35 void OnBrowsingDataRemoverDone() { [controller_ dataRemoverDidFinish]; } |
36 private: | 36 private: |
37 ClearBrowsingDataController* controller_; | 37 ClearBrowsingDataController* controller_; |
38 }; | 38 }; |
39 | 39 |
40 namespace { | 40 namespace { |
41 | 41 |
42 typedef std::map<Profile*, ClearBrowsingDataController*> ProfileControllerMap; | 42 typedef std::map<Profile*, ClearBrowsingDataController*> ProfileControllerMap; |
43 | 43 |
| 44 static base::LazyInstance<ProfileControllerMap> g_profile_controller_map( |
| 45 base::LINKER_INITIALIZED); |
| 46 |
44 } // namespace | 47 } // namespace |
45 | 48 |
46 @implementation ClearBrowsingDataController | 49 @implementation ClearBrowsingDataController |
47 | 50 |
48 @synthesize clearBrowsingHistory = clearBrowsingHistory_; | 51 @synthesize clearBrowsingHistory = clearBrowsingHistory_; |
49 @synthesize clearDownloadHistory = clearDownloadHistory_; | 52 @synthesize clearDownloadHistory = clearDownloadHistory_; |
50 @synthesize emptyCache = emptyCache_; | 53 @synthesize emptyCache = emptyCache_; |
51 @synthesize deleteCookies = deleteCookies_; | 54 @synthesize deleteCookies = deleteCookies_; |
52 @synthesize clearSavedPasswords = clearSavedPasswords_; | 55 @synthesize clearSavedPasswords = clearSavedPasswords_; |
53 @synthesize clearFormData = clearFormData_; | 56 @synthesize clearFormData = clearFormData_; |
(...skipping 13 matching lines...) Expand all Loading... |
67 afterDelay:0]; | 70 afterDelay:0]; |
68 } | 71 } |
69 } | 72 } |
70 | 73 |
71 + (ClearBrowsingDataController *)controllerForProfile:(Profile*)profile { | 74 + (ClearBrowsingDataController *)controllerForProfile:(Profile*)profile { |
72 // Get the original profile in case we get here from an incognito window | 75 // Get the original profile in case we get here from an incognito window |
73 // |GetOriginalProfile()| will return the same profile if it is the original | 76 // |GetOriginalProfile()| will return the same profile if it is the original |
74 // profile. | 77 // profile. |
75 profile = profile->GetOriginalProfile(); | 78 profile = profile->GetOriginalProfile(); |
76 | 79 |
77 ProfileControllerMap* map = Singleton<ProfileControllerMap>::get(); | 80 ProfileControllerMap* map = g_profile_controller_map.Pointer(); |
78 DCHECK(map != NULL); | 81 DCHECK(map != NULL); |
79 ProfileControllerMap::iterator it = map->find(profile); | 82 ProfileControllerMap::iterator it = map->find(profile); |
80 if (it == map->end()) { | 83 if (it == map->end()) { |
81 // Since we don't currently support multiple profiles, this class | 84 // Since we don't currently support multiple profiles, this class |
82 // has not been tested against this case. | 85 // has not been tested against this case. |
83 if (map->size() != 0) { | 86 if (map->size() != 0) { |
84 return nil; | 87 return nil; |
85 } | 88 } |
86 | 89 |
87 ClearBrowsingDataController* controller = | 90 ClearBrowsingDataController* controller = |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 // opening a tab with flash settings. | 201 // opening a tab with flash settings. |
199 [self closeDialog]; | 202 [self closeDialog]; |
200 | 203 |
201 Browser* browser = Browser::Create(profile_); | 204 Browser* browser = Browser::Create(profile_); |
202 browser->OpenURL(GURL(l10n_util::GetStringUTF8(IDS_FLASH_STORAGE_URL)), | 205 browser->OpenURL(GURL(l10n_util::GetStringUTF8(IDS_FLASH_STORAGE_URL)), |
203 GURL(), NEW_FOREGROUND_TAB, PageTransition::LINK); | 206 GURL(), NEW_FOREGROUND_TAB, PageTransition::LINK); |
204 browser->window()->Show(); | 207 browser->window()->Show(); |
205 } | 208 } |
206 | 209 |
207 - (void)closeDialog { | 210 - (void)closeDialog { |
208 ProfileControllerMap* map = Singleton<ProfileControllerMap>::get(); | 211 ProfileControllerMap* map = g_profile_controller_map.Pointer(); |
209 ProfileControllerMap::iterator it = map->find(profile_); | 212 ProfileControllerMap::iterator it = map->find(profile_); |
210 if (it != map->end()) { | 213 if (it != map->end()) { |
211 map->erase(it); | 214 map->erase(it); |
212 } | 215 } |
213 [self autorelease]; | 216 [self autorelease]; |
214 [[self window] orderOut:self]; | 217 [[self window] orderOut:self]; |
215 [NSApp stopModal]; | 218 [NSApp stopModal]; |
216 } | 219 } |
217 | 220 |
218 // Initialize the bools from prefs using the setters to be KVO-compliant. | 221 // Initialize the bools from prefs using the setters to be KVO-compliant. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 object:self | 258 object:self |
256 userInfo:userInfo]; | 259 userInfo:userInfo]; |
257 | 260 |
258 [self closeDialog]; | 261 [self closeDialog]; |
259 [[self window] orderOut:self]; | 262 [[self window] orderOut:self]; |
260 [self setIsClearing:NO]; | 263 [self setIsClearing:NO]; |
261 remover_ = NULL; | 264 remover_ = NULL; |
262 } | 265 } |
263 | 266 |
264 @end | 267 @end |
OLD | NEW |