diff options
author | achuith@chromium.org <achuith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-21 19:21:49 +0000 |
---|---|---|
committer | achuith@chromium.org <achuith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-21 19:21:49 +0000 |
commit | 3cbae79b076f6cff6fcacbae93e87f5872a11c58 (patch) | |
tree | ce03cf4a293e7bb31f1fa93cf3176f0f4ada9cef /chrome/browser | |
parent | 13f3f595723af07d2de2fb184157fffaefa5a438 (diff) | |
download | chromium_src-3cbae79b076f6cff6fcacbae93e87f5872a11c58.zip chromium_src-3cbae79b076f6cff6fcacbae93e87f5872a11c58.tar.gz chromium_src-3cbae79b076f6cff6fcacbae93e87f5872a11c58.tar.bz2 |
Add gdata-related enterprise policy preferences.
* Add preferences kDisableGData, kDisableGDataOverCellular, kDisableGDataHostedFiles, and register/handle these.
* CommandLinePrefStore is used to set kDisableGData preference based on switch.
* Add GDataDisabled and GDataDisabledOverCellular to policy template, add to simple pref-policy handler list.
* Cros specific tests for new gdata policies.
BUG=chromium-os:27168
TEST=--disable-gdata works as expected. GDataDisabled in /etc/chromium/policies/managed/test_policy.json works as expected.
Review URL: https://chromiumcodereview.appspot.com/9719008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128025 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
6 files changed, 40 insertions, 8 deletions
diff --git a/chrome/browser/chromeos/extensions/file_browser_private_api.cc b/chrome/browser/chromeos/extensions/file_browser_private_api.cc index 858d649..349b00d 100644 --- a/chrome/browser/chromeos/extensions/file_browser_private_api.cc +++ b/chrome/browser/chromeos/extensions/file_browser_private_api.cc @@ -4,9 +4,10 @@ #include "chrome/browser/chromeos/extensions/file_browser_private_api.h" +#include <utility> + #include "base/base64.h" #include "base/bind.h" -#include "base/command_line.h" #include "base/logging.h" #include "base/memory/singleton.h" #include "base/memory/weak_ptr.h" @@ -30,10 +31,10 @@ #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/views/select_file_dialog_extension.h" #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" -#include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_icon_set.h" #include "chrome/common/extensions/file_browser_handler.h" +#include "chrome/common/pref_names.h" #include "content/public/browser/child_process_security_policy.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" @@ -430,7 +431,7 @@ void RequestLocalFileSystemFunction::RequestOnFileThread( const GURL& source_url, int child_id) { GURL origin_url = source_url.GetOrigin(); BrowserContext::GetFileSystemContext(profile())->OpenFileSystem( - origin_url, fileapi::kFileSystemTypeExternal, false, // create + origin_url, fileapi::kFileSystemTypeExternal, false, // create LocalFileSystemCallbackDispatcher::CreateCallback( this, profile(), @@ -1535,8 +1536,8 @@ bool FileDialogStringsFunction::RunImpl() { ChromeURLDataManager::DataSource::SetFontAndTextDirection(dict); - if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableGData)) - dict->SetString("ENABLE_GDATA", "1"); + if (!profile_->GetPrefs()->GetBoolean(prefs::kDisableGData)) + dict->SetString("ENABLE_GDATA", "1"); return true; } diff --git a/chrome/browser/chromeos/preferences.cc b/chrome/browser/chromeos/preferences.cc index 4641710..9b1663b 100644 --- a/chrome/browser/chromeos/preferences.cc +++ b/chrome/browser/chromeos/preferences.cc @@ -96,6 +96,15 @@ void Preferences::RegisterUserPrefs(PrefService* prefs) { prefs->RegisterBooleanPref(prefs::kUse24HourClock, base::GetHourClockType() == base::k24HourClock, PrefService::SYNCABLE_PREF); + prefs->RegisterBooleanPref(prefs::kDisableGData, + false, + PrefService::SYNCABLE_PREF); + prefs->RegisterBooleanPref(prefs::kDisableGDataOverCellular, + true, + PrefService::SYNCABLE_PREF); + prefs->RegisterBooleanPref(prefs::kDisableGDataHostedFiles, + false, + PrefService::SYNCABLE_PREF); // We don't sync prefs::kLanguageCurrentInputMethod and PreviousInputMethod // because they're just used to track the logout state of the device. prefs->RegisterStringPref(prefs::kLanguageCurrentInputMethod, @@ -240,6 +249,11 @@ void Preferences::Init(PrefService* prefs) { accessibility_enabled_.Init(prefs::kSpokenFeedbackEnabled, prefs, this); sensitivity_.Init(prefs::kTouchpadSensitivity, prefs, this); use_24hour_clock_.Init(prefs::kUse24HourClock, prefs, this); + disable_gdata_.Init(prefs::kDisableGData, prefs, this); + disable_gdata_over_cellular_.Init(prefs::kDisableGDataOverCellular, + prefs, this); + disable_gdata_hosted_files_.Init(prefs::kDisableGDataHostedFiles, + prefs, this); primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight, prefs, this); hotkey_next_engine_in_menu_.Init( diff --git a/chrome/browser/chromeos/preferences.h b/chrome/browser/chromeos/preferences.h index ee5aeb5..f7b8844 100644 --- a/chrome/browser/chromeos/preferences.h +++ b/chrome/browser/chromeos/preferences.h @@ -92,8 +92,11 @@ class Preferences : public content::NotificationObserver { BooleanPrefMember accessibility_enabled_; IntegerPrefMember speed_factor_; IntegerPrefMember sensitivity_; - BooleanPrefMember use_24hour_clock_; BooleanPrefMember primary_mouse_button_right_; + BooleanPrefMember use_24hour_clock_; + BooleanPrefMember disable_gdata_; + BooleanPrefMember disable_gdata_over_cellular_; + BooleanPrefMember disable_gdata_hosted_files_; // Input method preferences. StringPrefMember hotkey_next_engine_in_menu_; diff --git a/chrome/browser/policy/configuration_policy_handler_list.cc b/chrome/browser/policy/configuration_policy_handler_list.cc index 4b7a830..c5b33d7 100644 --- a/chrome/browser/policy/configuration_policy_handler_list.cc +++ b/chrome/browser/policy/configuration_policy_handler_list.cc @@ -296,6 +296,12 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = { { key::kChromeOsReleaseChannel, prefs::kChromeOsReleaseChannel, Value::TYPE_STRING }, + { key::kGDataDisabled, + prefs::kDisableGData, + Value::TYPE_BOOLEAN }, + { key::kGDataDisabledOverCellular, + prefs::kDisableGDataOverCellular, + Value::TYPE_BOOLEAN }, #endif // defined(OS_CHROMEOS) #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) diff --git a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc index db8f45d..61526c2 100644 --- a/chrome/browser/policy/configuration_policy_pref_store_unittest.cc +++ b/chrome/browser/policy/configuration_policy_pref_store_unittest.cc @@ -111,7 +111,8 @@ TEST_P(ConfigurationPolicyPrefStoreStringTest, GetDefault) { TEST_P(ConfigurationPolicyPrefStoreStringTest, SetValue) { provider_.AddMandatoryPolicy(GetParam().policy_name(), - base::Value::CreateStringValue("http://chromium.org")); + base::Value::CreateStringValue( + "http://chromium.org")); store_->OnUpdatePolicy(&provider_); const base::Value* value = NULL; EXPECT_EQ(PrefStore::READ_OK, @@ -274,7 +275,11 @@ INSTANTIATE_TEST_CASE_P( ConfigurationPolicyPrefStoreBooleanTest, testing::Values( PolicyAndPref(key::kChromeOsLockOnIdleSuspend, - prefs::kEnableScreenLock))); + prefs::kEnableScreenLock), + PolicyAndPref(key::kGDataDisabled, + prefs::kDisableGData), + PolicyAndPref(key::kGDataDisabledOverCellular, + prefs::kDisableGDataOverCellular))); #endif // defined(OS_CHROMEOS) // Test cases for integer-valued policy settings. diff --git a/chrome/browser/prefs/command_line_pref_store.cc b/chrome/browser/prefs/command_line_pref_store.cc index 6200b52..ba83704 100644 --- a/chrome/browser/prefs/command_line_pref_store.cc +++ b/chrome/browser/prefs/command_line_pref_store.cc @@ -59,6 +59,9 @@ const CommandLinePrefStore::BooleanSwitchToPreferenceMapEntry #else { switches::kEnablePrintPreview, prefs::kPrintPreviewDisabled, false }, #endif +#if defined(OS_CHROMEOS) + { switches::kDisableGData, prefs::kDisableGData, true }, +#endif }; const CommandLinePrefStore::IntegerSwitchToPreferenceMapEntry |