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

Side by Side Diff: ios/chrome/app/startup/register_experimental_settings.mm

Issue 2702253002: [ObjC ARC] Converts ios/chrome/app/startup:startup to ARC. (Closed)
Patch Set: Created 3 years, 10 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "ios/chrome/app/startup/register_experimental_settings.h" 5 #include "ios/chrome/app/startup/register_experimental_settings.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/mac/bundle_locations.h" 8 #include "base/mac/bundle_locations.h"
9 #import "base/mac/scoped_nsobject.h"
10 #include "base/strings/sys_string_conversions.h" 9 #include "base/strings/sys_string_conversions.h"
11 10
11 #if !defined(__has_feature) || !__has_feature(objc_arc)
12 #error "This file requires ARC support."
13 #endif
14
12 namespace { 15 namespace {
13 // Key in the UserDefaults for the Experimental Keys. 16 // Key in the UserDefaults for the Experimental Keys.
14 NSString* kExperimentalKeysKey = @"ExperimentalKeys"; 17 NSString* kExperimentalKeysKey = @"ExperimentalKeys";
15 18
16 // Returns YES if a setting value is equivalent to not having the setting at 19 // Returns YES if a setting value is equivalent to not having the setting at
17 // all. This must always be true for default values, otherwise the experimental 20 // all. This must always be true for default values, otherwise the experimental
18 // settings will have different default behaviors in stable channel (where the 21 // settings will have different default behaviors in stable channel (where the
19 // bundle isn't present). 22 // bundle isn't present).
20 BOOL IsDefaultSettingValueValid(id value) { 23 BOOL IsDefaultSettingValueValid(id value) {
21 if (!value) 24 if (!value)
(...skipping 25 matching lines...) Expand all
47 NSDictionary* infoDictionary = [bundle infoDictionary]; 50 NSDictionary* infoDictionary = [bundle infoDictionary];
48 NSString* version = [infoDictionary objectForKey:@"CFBundleVersion"]; 51 NSString* version = [infoDictionary objectForKey:@"CFBundleVersion"];
49 [userDefaults setObject:version forKey:@"Version"]; 52 [userDefaults setObject:version forKey:@"Version"];
50 53
51 NSString* bundlePath = [bundle bundlePath]; 54 NSString* bundlePath = [bundle bundlePath];
52 NSString* settingsFilepath = 55 NSString* settingsFilepath =
53 [bundlePath stringByAppendingPathComponent:@"Settings.bundle"]; 56 [bundlePath stringByAppendingPathComponent:@"Settings.bundle"];
54 NSArray* settingsContent = 57 NSArray* settingsContent =
55 [[NSFileManager defaultManager] contentsOfDirectoryAtPath:settingsFilepath 58 [[NSFileManager defaultManager] contentsOfDirectoryAtPath:settingsFilepath
56 error:NULL]; 59 error:NULL];
57 base::scoped_nsobject<NSMutableArray> currentExpKeys( 60 NSMutableArray* currentExpKeys = [[NSMutableArray alloc] init];
58 [[NSMutableArray alloc] init]);
59 61
60 for (NSString* filename in settingsContent) { 62 for (NSString* filename in settingsContent) {
61 // Only plist files are preferences definition. 63 // Only plist files are preferences definition.
62 if ([[filename pathExtension] isEqualToString:@"plist"]) { 64 if ([[filename pathExtension] isEqualToString:@"plist"]) {
63 NSString* filepath = 65 NSString* filepath =
64 [settingsFilepath stringByAppendingPathComponent:filename]; 66 [settingsFilepath stringByAppendingPathComponent:filename];
65 NSArray* registeredKeys = 67 NSArray* registeredKeys =
66 [self registerExperimentalSettingsForFile:filepath 68 [self registerExperimentalSettingsForFile:filepath
67 userDefaults:userDefaults]; 69 userDefaults:userDefaults];
68 [currentExpKeys addObjectsFromArray:registeredKeys]; 70 [currentExpKeys addObjectsFromArray:registeredKeys];
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 id currentValue = [userDefaults objectForKey:keyValue]; 121 id currentValue = [userDefaults objectForKey:keyValue];
120 if (currentValue && 122 if (currentValue &&
121 (!defaultValue || [currentValue isEqual:defaultValue])) { 123 (!defaultValue || [currentValue isEqual:defaultValue])) {
122 [userDefaults removeObjectForKey:keyValue]; 124 [userDefaults removeObjectForKey:keyValue];
123 } 125 }
124 } 126 }
125 return registeredKeys; 127 return registeredKeys;
126 } 128 }
127 129
128 @end 130 @end
OLDNEW
« no previous file with comments | « ios/chrome/app/startup/provider_registration.mm ('k') | ios/chrome/app/startup/setup_debugging.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698