summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-14 20:05:21 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-14 20:05:21 +0000
commit4cd7adb2f69afcebd5690b10d24cd13f5c05f095 (patch)
treeb563fafc38aed7c76795ff568d035dc7b011e361
parente63783695ea1efc9789883c132b7cfb56c26454c (diff)
downloadchromium_src-4cd7adb2f69afcebd5690b10d24cd13f5c05f095.zip
chromium_src-4cd7adb2f69afcebd5690b10d24cd13f5c05f095.tar.gz
chromium_src-4cd7adb2f69afcebd5690b10d24cd13f5c05f095.tar.bz2
Policy provider for the Mac.
BUG=http://crbug.com/7147 TEST=unit tested; not integrated yet Review URL: http://codereview.chromium.org/2605002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49715 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/configuration_policy_provider_mac.cc78
-rw-r--r--chrome/browser/configuration_policy_provider_mac.h30
-rw-r--r--chrome/browser/configuration_policy_provider_mac_unittest.cc142
-rw-r--r--[-rwxr-xr-x]chrome/browser/configuration_policy_provider_win.cc0
-rw-r--r--[-rwxr-xr-x]chrome/browser/configuration_policy_provider_win.h0
-rw-r--r--[-rwxr-xr-x]chrome/browser/configuration_policy_provider_win_unittest.cc28
-rw-r--r--chrome/browser/preferences_mac.cc15
-rw-r--r--chrome/browser/preferences_mac.h32
-rw-r--r--chrome/browser/preferences_mock_mac.cc45
-rw-r--r--chrome/browser/preferences_mock_mac.h30
-rwxr-xr-xchrome/chrome_browser.gypi9
-rwxr-xr-xchrome/chrome_tests.gypi3
12 files changed, 392 insertions, 20 deletions
diff --git a/chrome/browser/configuration_policy_provider_mac.cc b/chrome/browser/configuration_policy_provider_mac.cc
new file mode 100644
index 0000000..c1a9c2c
--- /dev/null
+++ b/chrome/browser/configuration_policy_provider_mac.cc
@@ -0,0 +1,78 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/configuration_policy_provider_mac.h"
+
+#include "base/logging.h"
+#include "base/scoped_cftyperef.h"
+#include "base/sys_string_conversions.h"
+
+ConfigurationPolicyProviderMac::ConfigurationPolicyProviderMac()
+ : preferences_(new MacPreferences()) {
+}
+
+ConfigurationPolicyProviderMac::ConfigurationPolicyProviderMac(
+ MacPreferences* preferences) : preferences_(preferences) {
+}
+
+bool ConfigurationPolicyProviderMac::Provide(ConfigurationPolicyStore* store) {
+ bool success = true;
+ const PolicyValueMap* mapping = PolicyValueMapping();
+
+ for (PolicyValueMap::const_iterator current = mapping->begin();
+ current != mapping->end(); ++current) {
+ scoped_cftyperef<CFStringRef> name(
+ base::SysUTF8ToCFStringRef(current->name));
+ scoped_cftyperef<CFPropertyListRef> value(
+ preferences_->CopyAppValue(name, kCFPreferencesCurrentApplication));
+ if (!value.get())
+ continue;
+ if (!preferences_->AppValueIsForced(name, kCFPreferencesCurrentApplication))
+ continue;
+
+ switch (current->value_type) {
+ case Value::TYPE_STRING:
+ if (CFGetTypeID(value) == CFStringGetTypeID()) {
+ std::string string_value =
+ base::SysCFStringRefToUTF8((CFStringRef)value.get());
+ store->Apply(
+ current->policy_type,
+ Value::CreateStringValue(string_value));
+ } else {
+ success = false;
+ }
+ break;
+ case Value::TYPE_BOOLEAN:
+ if (CFGetTypeID(value) == CFBooleanGetTypeID()) {
+ bool bool_value = CFBooleanGetValue((CFBooleanRef)value.get());
+ store->Apply(current->policy_type,
+ Value::CreateBooleanValue(bool_value));
+ } else {
+ success = false;
+ }
+ break;
+ case Value::TYPE_INTEGER:
+ if (CFGetTypeID(value) == CFNumberGetTypeID()) {
+ int int_value;
+ bool cast = CFNumberGetValue((CFNumberRef)value.get(),
+ kCFNumberIntType,
+ &int_value);
+ if (cast)
+ store->Apply(current->policy_type,
+ Value::CreateIntegerValue(int_value));
+ else
+ success = false;
+ } else {
+ success = false;
+ }
+ break;
+ default:
+ NOTREACHED();
+ return false;
+ }
+ }
+
+ return success;
+}
+
diff --git a/chrome/browser/configuration_policy_provider_mac.h b/chrome/browser/configuration_policy_provider_mac.h
new file mode 100644
index 0000000..1cb67a1
--- /dev/null
+++ b/chrome/browser/configuration_policy_provider_mac.h
@@ -0,0 +1,30 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_CONFIGURATION_POLICY_PROVIDER_MAC_H_
+#define CHROME_BROWSER_CONFIGURATION_POLICY_PROVIDER_MAC_H_
+
+#include "base/scoped_ptr.h"
+#include "chrome/browser/configuration_policy_store.h"
+#include "chrome/browser/configuration_policy_provider.h"
+#include "chrome/browser/preferences_mac.h"
+
+// An implementation of |ConfigurationPolicyProvider| using the mechanism
+// provided by Mac OS X's managed preferences.
+class ConfigurationPolicyProviderMac : public ConfigurationPolicyProvider {
+ public:
+ ConfigurationPolicyProviderMac();
+ // For testing; takes ownership of |preferences|.
+ explicit ConfigurationPolicyProviderMac(MacPreferences* preferences);
+ virtual ~ConfigurationPolicyProviderMac() { }
+
+ // ConfigurationPolicyProvider method overrides:
+ virtual bool Provide(ConfigurationPolicyStore* store);
+
+ protected:
+ scoped_ptr<MacPreferences> preferences_;
+};
+
+#endif // CHROME_BROWSER_CONFIGURATION_POLICY_PROVIDER_MAC_H_
+
diff --git a/chrome/browser/configuration_policy_provider_mac_unittest.cc b/chrome/browser/configuration_policy_provider_mac_unittest.cc
new file mode 100644
index 0000000..d237891
--- /dev/null
+++ b/chrome/browser/configuration_policy_provider_mac_unittest.cc
@@ -0,0 +1,142 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <gtest/gtest.h>
+
+#include "base/stl_util-inl.h"
+#include "base/sys_string_conversions.h"
+#include "chrome/browser/configuration_policy_provider_mac.h"
+#include "chrome/browser/mock_configuration_policy_store.h"
+#include "chrome/browser/preferences_mock_mac.h"
+
+// A subclass of |ConfigurationPolicyProviderMac| providing access to various
+// internal things without an orgy of FRIEND_TESTS.
+class TestConfigurationPolicyProviderMac
+ : public ConfigurationPolicyProviderMac {
+ public:
+ TestConfigurationPolicyProviderMac() :
+ ConfigurationPolicyProviderMac(new MockPreferences()) { }
+ virtual ~TestConfigurationPolicyProviderMac() { }
+
+ void AddTestItem(ConfigurationPolicyStore::PolicyType policy,
+ CFPropertyListRef value,
+ bool is_forced);
+
+ typedef std::vector<PolicyValueMapEntry> PolicyValueMap;
+ static const PolicyValueMap* PolicyValueMapping() {
+ return ConfigurationPolicyProvider::PolicyValueMapping();
+ }
+};
+
+void TestConfigurationPolicyProviderMac::AddTestItem(
+ ConfigurationPolicyStore::PolicyType policy,
+ CFPropertyListRef value,
+ bool is_forced) {
+ const PolicyValueMap* mapping = PolicyValueMapping();
+ for (PolicyValueMap::const_iterator current = mapping->begin();
+ current != mapping->end(); ++current) {
+ if (current->policy_type == policy) {
+ scoped_cftyperef<CFStringRef> name(
+ base::SysUTF8ToCFStringRef(current->name));
+ static_cast<MockPreferences*>(preferences_.get())->
+ AddTestItem(name, value, is_forced);
+ }
+ }
+}
+
+TEST(ConfigurationPolicyProviderMacTest, TestPolicyDefault) {
+ MockConfigurationPolicyStore store;
+ TestConfigurationPolicyProviderMac provider;
+
+ provider.Provide(&store);
+
+ const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
+ EXPECT_FALSE(ContainsKey(map, ConfigurationPolicyStore::kPolicyHomePage));
+}
+
+TEST(ConfigurationPolicyProviderMacTest, TestHomePagePolicy) {
+ MockConfigurationPolicyStore store;
+ TestConfigurationPolicyProviderMac provider;
+ provider.AddTestItem(ConfigurationPolicyStore::kPolicyHomePage,
+ CFSTR("http://chromium.org"),
+ true);
+
+ provider.Provide(&store);
+
+ const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
+ MockConfigurationPolicyStore::PolicyMap::const_iterator i =
+ map.find(ConfigurationPolicyStore::kPolicyHomePage);
+ ASSERT_TRUE(i != map.end());
+ std::string value;
+ i->second->GetAsString(&value);
+ EXPECT_EQ("http://chromium.org", value);
+}
+
+TEST(ConfigurationPolicyProviderMacTest, TestHomePagePolicyUnforced) {
+ MockConfigurationPolicyStore store;
+ TestConfigurationPolicyProviderMac provider;
+ provider.AddTestItem(ConfigurationPolicyStore::kPolicyHomePage,
+ CFSTR("http://chromium.org"),
+ false);
+
+ provider.Provide(&store);
+
+ const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
+ EXPECT_FALSE(ContainsKey(map, ConfigurationPolicyStore::kPolicyHomePage));
+}
+
+TEST(ConfigurationPolicyProviderMacTest, TestHomePagePolicyWrongType) {
+ MockConfigurationPolicyStore store;
+ TestConfigurationPolicyProviderMac provider;
+ provider.AddTestItem(ConfigurationPolicyStore::kPolicyHomePage,
+ kCFBooleanTrue,
+ true);
+
+ provider.Provide(&store);
+
+ const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
+ EXPECT_FALSE(ContainsKey(map, ConfigurationPolicyStore::kPolicyHomePage));
+}
+
+TEST(ConfigurationPolicyProviderMacTest, TestHomepageIsNewTabPagePolicy) {
+ MockConfigurationPolicyStore store;
+ TestConfigurationPolicyProviderMac provider;
+ provider.AddTestItem(ConfigurationPolicyStore::kPolicyHomepageIsNewTabPage,
+ kCFBooleanTrue,
+ true);
+
+ provider.Provide(&store);
+
+ const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
+ MockConfigurationPolicyStore::PolicyMap::const_iterator i =
+ map.find(ConfigurationPolicyStore::kPolicyHomepageIsNewTabPage);
+ ASSERT_TRUE(i != map.end());
+ bool value = false;
+ i->second->GetAsBoolean(&value);
+ EXPECT_EQ(true, value);
+}
+
+TEST(ConfigurationPolicyProviderMacTest, TestCookiesModePolicy) {
+ MockConfigurationPolicyStore store;
+ TestConfigurationPolicyProviderMac provider;
+ int test_value = 2;
+ scoped_cftyperef<CFNumberRef> test_number(
+ CFNumberCreate(kCFAllocatorDefault,
+ kCFNumberIntType,
+ &test_value));
+ provider.AddTestItem(ConfigurationPolicyStore::kPolicyCookiesMode,
+ test_number,
+ true);
+
+ provider.Provide(&store);
+
+ const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
+ MockConfigurationPolicyStore::PolicyMap::const_iterator i =
+ map.find(ConfigurationPolicyStore::kPolicyCookiesMode);
+ ASSERT_TRUE(i != map.end());
+ int value = 0;
+ i->second->GetAsInteger(&value);
+ EXPECT_EQ(2, value);
+}
+
diff --git a/chrome/browser/configuration_policy_provider_win.cc b/chrome/browser/configuration_policy_provider_win.cc
index 420ff36..420ff36 100755..100644
--- a/chrome/browser/configuration_policy_provider_win.cc
+++ b/chrome/browser/configuration_policy_provider_win.cc
diff --git a/chrome/browser/configuration_policy_provider_win.h b/chrome/browser/configuration_policy_provider_win.h
index f5c5eee..f5c5eee 100755..100644
--- a/chrome/browser/configuration_policy_provider_win.h
+++ b/chrome/browser/configuration_policy_provider_win.h
diff --git a/chrome/browser/configuration_policy_provider_win_unittest.cc b/chrome/browser/configuration_policy_provider_win_unittest.cc
index 1451ede..cf3bc68 100755..100644
--- a/chrome/browser/configuration_policy_provider_win_unittest.cc
+++ b/chrome/browser/configuration_policy_provider_win_unittest.cc
@@ -9,6 +9,7 @@
#include "base/logging.h"
#include "base/registry.h"
#include "base/scoped_ptr.h"
+#include "base/stl_util-inl.h"
#include "base/string_piece.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/configuration_policy_provider_win.h"
@@ -189,9 +190,7 @@ void ConfigurationPolicyProviderWinTest::TestBooleanPolicyDefault(
provider.Provide(&store);
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
- MockConfigurationPolicyStore::PolicyMap::const_iterator i =
- map.find(type);
- EXPECT_TRUE(i == map.end());
+ EXPECT_FALSE(ContainsKey(map, type));
}
void ConfigurationPolicyProviderWinTest::TestBooleanPolicyHKLM(
@@ -203,7 +202,7 @@ void ConfigurationPolicyProviderWinTest::TestBooleanPolicyHKLM(
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
MockConfigurationPolicyStore::PolicyMap::const_iterator i = map.find(type);
- EXPECT_TRUE(i != map.end());
+ ASSERT_TRUE(i != map.end());
bool value = false;
i->second->GetAsBoolean(&value);
EXPECT_EQ(true, value);
@@ -222,9 +221,7 @@ TEST_F(ConfigurationPolicyProviderWinTest, TestHomePagePolicyDefault) {
provider.Provide(&store);
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
- MockConfigurationPolicyStore::PolicyMap::const_iterator i =
- map.find(ConfigurationPolicyStore::kPolicyHomePage);
- EXPECT_TRUE(i == map.end());
+ EXPECT_FALSE(ContainsKey(map, ConfigurationPolicyStore::kPolicyHomePage));
}
TEST_F(ConfigurationPolicyProviderWinTest, TestHomePagePolicyHKCU) {
@@ -238,7 +235,7 @@ TEST_F(ConfigurationPolicyProviderWinTest, TestHomePagePolicyHKCU) {
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
MockConfigurationPolicyStore::PolicyMap::const_iterator i =
map.find(ConfigurationPolicyStore::kPolicyHomePage);
- EXPECT_TRUE(i != map.end());
+ ASSERT_TRUE(i != map.end());
string16 value;
i->second->GetAsString(&value);
EXPECT_EQ(L"http://chromium.org", value);
@@ -252,9 +249,7 @@ TEST_F(ConfigurationPolicyProviderWinTest, TestHomePagePolicyHKCUWrongType) {
provider.Provide(&store);
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
- MockConfigurationPolicyStore::PolicyMap::const_iterator i =
- map.find(ConfigurationPolicyStore::kPolicyHomePage);
- EXPECT_TRUE(i == map.end());
+ EXPECT_FALSE(ContainsKey(map, ConfigurationPolicyStore::kPolicyHomePage));
}
TEST_F(ConfigurationPolicyProviderWinTest, TestHomePagePolicyHKLM) {
@@ -268,7 +263,7 @@ TEST_F(ConfigurationPolicyProviderWinTest, TestHomePagePolicyHKLM) {
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
MockConfigurationPolicyStore::PolicyMap::const_iterator i =
map.find(ConfigurationPolicyStore::kPolicyHomePage);
- EXPECT_TRUE(i != map.end());
+ ASSERT_TRUE(i != map.end());
string16 value;
i->second->GetAsString(&value);
EXPECT_EQ(L"http://chromium.org", value);
@@ -287,7 +282,7 @@ TEST_F(ConfigurationPolicyProviderWinTest, TestHomePagePolicyHKLMOverHKCU) {
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
MockConfigurationPolicyStore::PolicyMap::const_iterator i =
map.find(ConfigurationPolicyStore::kPolicyHomePage);
- EXPECT_TRUE(i != map.end());
+ ASSERT_TRUE(i != map.end());
string16 value;
i->second->GetAsString(&value);
EXPECT_EQ(L"http://crbug.com", value);
@@ -332,9 +327,8 @@ TEST_F(ConfigurationPolicyProviderWinTest,
provider.Provide(&store);
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
- MockConfigurationPolicyStore::PolicyMap::const_iterator i =
- map.find(ConfigurationPolicyStore::kPolicyCookiesMode);
- EXPECT_TRUE(i == map.end());
+ EXPECT_FALSE(ContainsKey(map,
+ ConfigurationPolicyStore::kPolicyCookiesMode));
}
TEST_F(ConfigurationPolicyProviderWinTest,
@@ -348,7 +342,7 @@ TEST_F(ConfigurationPolicyProviderWinTest,
const MockConfigurationPolicyStore::PolicyMap& map(store.policy_map());
MockConfigurationPolicyStore::PolicyMap::const_iterator i =
map.find(ConfigurationPolicyStore::kPolicyCookiesMode);
- EXPECT_TRUE(i != map.end());
+ ASSERT_TRUE(i != map.end());
int value = 0;
i->second->GetAsInteger(&value);
EXPECT_EQ(2, value);
diff --git a/chrome/browser/preferences_mac.cc b/chrome/browser/preferences_mac.cc
new file mode 100644
index 0000000..f1430f7
--- /dev/null
+++ b/chrome/browser/preferences_mac.cc
@@ -0,0 +1,15 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/preferences_mac.h"
+
+CFPropertyListRef MacPreferences::CopyAppValue(CFStringRef key,
+ CFStringRef applicationID) {
+ return CFPreferencesCopyAppValue(key, applicationID);
+}
+
+Boolean MacPreferences::AppValueIsForced(CFStringRef key,
+ CFStringRef applicationID) {
+ return CFPreferencesAppValueIsForced(key, applicationID);
+}
diff --git a/chrome/browser/preferences_mac.h b/chrome/browser/preferences_mac.h
new file mode 100644
index 0000000..8c70ea1
--- /dev/null
+++ b/chrome/browser/preferences_mac.h
@@ -0,0 +1,32 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PREFERENCES_MAC_H_
+#define CHROME_BROWSER_PREFERENCES_MAC_H_
+
+#include <CoreFoundation/CoreFoundation.h>
+
+#include "base/basictypes.h"
+
+// Wraps a small part of the CFPreferences API surface in a very thin layer, to
+// allow it to be mocked out for testing.
+
+// See CFPreferences documentation for function documentation, as these call
+// through directly to their CFPreferences equivalents (Foo ->
+// CFPreferencesFoo).
+class MacPreferences {
+ public:
+ MacPreferences() {}
+ virtual ~MacPreferences() {}
+
+ virtual CFPropertyListRef CopyAppValue(CFStringRef key,
+ CFStringRef applicationID);
+
+ virtual Boolean AppValueIsForced(CFStringRef key, CFStringRef applicationID);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(MacPreferences);
+};
+
+#endif // CHROME_BROWSER_PREFERENCES_MAC_H_
diff --git a/chrome/browser/preferences_mock_mac.cc b/chrome/browser/preferences_mock_mac.cc
new file mode 100644
index 0000000..aa32a93
--- /dev/null
+++ b/chrome/browser/preferences_mock_mac.cc
@@ -0,0 +1,45 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/preferences_mock_mac.h"
+
+MockPreferences::MockPreferences() {
+ values_.reset(CFDictionaryCreateMutable(kCFAllocatorDefault,
+ 0,
+ &kCFTypeDictionaryKeyCallBacks,
+ &kCFTypeDictionaryValueCallBacks));
+ forced_.reset(CFSetCreateMutable(kCFAllocatorDefault,
+ 0,
+ &kCFTypeSetCallBacks));
+}
+
+MockPreferences::~MockPreferences() {
+}
+
+
+CFPropertyListRef MockPreferences::CopyAppValue(CFStringRef key,
+ CFStringRef applicationID) {
+ CFPropertyListRef value;
+ Boolean found = CFDictionaryGetValueIfPresent(values_,
+ key,
+ &value);
+ if (!found || !value)
+ return NULL;
+ CFRetain(value);
+ return value;
+}
+
+Boolean MockPreferences::AppValueIsForced(CFStringRef key,
+ CFStringRef applicationID) {
+ return CFSetContainsValue(forced_, key);
+}
+
+void MockPreferences::AddTestItem(CFStringRef key,
+ CFPropertyListRef value,
+ bool is_forced) {
+ CFDictionarySetValue(values_, key, value);
+ if (is_forced)
+ CFSetAddValue(forced_, key);
+}
+
diff --git a/chrome/browser/preferences_mock_mac.h b/chrome/browser/preferences_mock_mac.h
new file mode 100644
index 0000000..6735ad1
--- /dev/null
+++ b/chrome/browser/preferences_mock_mac.h
@@ -0,0 +1,30 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PREFERENCES_MOCK_MAC_H_
+#define CHROME_BROWSER_PREFERENCES_MOCK_MAC_H_
+
+#include "base/scoped_cftyperef.h"
+#include "chrome/browser/preferences_mac.h"
+
+// Mock preferences wrapper for testing code that interacts with CFPreferences.
+class MockPreferences : public MacPreferences {
+ public:
+ MockPreferences();
+ virtual ~MockPreferences();
+
+ virtual CFPropertyListRef CopyAppValue(CFStringRef key,
+ CFStringRef applicationID);
+
+ virtual Boolean AppValueIsForced(CFStringRef key, CFStringRef applicationID);
+
+ // Adds a preference item with the given info to the test set.
+ void AddTestItem(CFStringRef key, CFPropertyListRef value, bool is_forced);
+
+ private:
+ scoped_cftyperef<CFMutableDictionaryRef> values_;
+ scoped_cftyperef<CFMutableSetRef> forced_;
+};
+
+#endif // CHROME_BROWSER_PREFERENCES_MOCK_MAC_H_
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 2535b6d..cc75e14 100755
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -917,6 +917,8 @@
'browser/configuration_policy_pref_store.h',
'browser/configuration_policy_provider.cc',
'browser/configuration_policy_provider.h',
+ 'browser/configuration_policy_provider_mac.cc',
+ 'browser/configuration_policy_provider_mac.h',
'browser/configuration_policy_provider_win.cc',
'browser/configuration_policy_provider_win.h',
'browser/cross_site_request_manager.cc',
@@ -1644,8 +1646,8 @@
'browser/load_from_memory_cache_details.h',
'browser/load_notification_details.h',
'browser/location_bar.h',
- 'browser/location_bar_util.cc',
- 'browser/location_bar_util.h',
+ 'browser/location_bar_util.cc',
+ 'browser/location_bar_util.h',
'browser/login_model.h',
'browser/login_prompt.cc',
'browser/login_prompt.h',
@@ -1834,9 +1836,10 @@
'browser/pref_member.h',
'browser/pref_service.cc',
'browser/pref_service.h',
- 'browser/pref_store.h',
'browser/pref_value_store.cc',
'browser/pref_value_store.h',
+ 'browser/preferences_mac.cc',
+ 'browser/preferences_mac.h',
'browser/printing/print_dialog_gtk.cc',
'browser/printing/print_dialog_gtk.h',
'browser/printing/print_dialog_cloud.cc',
diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi
index 7786f58..ab34683 100755
--- a/chrome/chrome_tests.gypi
+++ b/chrome/chrome_tests.gypi
@@ -756,6 +756,7 @@
'browser/config_dir_policy_provider_unittest.cc',
'browser/command_updater_unittest.cc',
'browser/configuration_policy_pref_store_unittest.cc',
+ 'browser/configuration_policy_provider_mac_unittest.cc',
'browser/configuration_policy_provider_win_unittest.cc',
'browser/cookies_tree_model_unittest.cc',
'browser/debugger/devtools_manager_unittest.cc',
@@ -870,6 +871,8 @@
'browser/password_manager/password_store_win_unittest.cc',
'browser/pref_member_unittest.cc',
'browser/pref_service_unittest.cc',
+ 'browser/preferences_mock_mac.cc',
+ 'browser/preferences_mock_mac.h',
'browser/printing/print_dialog_cloud_unittest.cc',
'browser/printing/print_job_unittest.cc',
'browser/privacy_blacklist/blacklist_interceptor_unittest.cc',