[Metrics] Make MetricsStateManager take a callback param to check if UMA is enabled.
[chromium-blink-merge.git] / chrome / browser / ui / cocoa / window_restore_utils.mm
blob133fa29db1377b68d58dc34df7cb7282e263285f
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
3 // found in the LICENSE file.
5 #import "chrome/browser/ui/cocoa/window_restore_utils.h"
7 #import <Foundation/Foundation.h>
9 #include "base/mac/mac_util.h"
11 namespace restore_utils {
13 bool IsWindowRestoreEnabled() {
14   if (!base::mac::IsOSLionOrLater())
15     return false;
17   NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
18   // The defaults must be synchronized here otherwise a stale value will be
19   // returned for an indeterminate amount of time.
20   [defaults synchronize];
22   // By default, the preference is not set. When it's not, the intrinsic Lion
23   // default (YES) should be returned.
24   NSDictionary* prefs = [defaults dictionaryRepresentation];
25   NSNumber* value = [prefs objectForKey:@"NSQuitAlwaysKeepsWindows"];
26   if (!value)
27     return true;
29   return !![value boolValue];
32 }  // namespace restore_utils