Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/policy/configuration_policy_handler_list_factory.h" | 5 #include "chrome/browser/policy/configuration_policy_handler_list_factory.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 54 #endif | 54 #endif |
| 55 | 55 |
| 56 #if defined(ENABLE_EXTENSIONS) | 56 #if defined(ENABLE_EXTENSIONS) |
| 57 #include "chrome/browser/extensions/api/messaging/native_messaging_policy_handle r.h" | 57 #include "chrome/browser/extensions/api/messaging/native_messaging_policy_handle r.h" |
| 58 #include "chrome/browser/extensions/extension_management_constants.h" | 58 #include "chrome/browser/extensions/extension_management_constants.h" |
| 59 #include "chrome/browser/extensions/policy_handlers.h" | 59 #include "chrome/browser/extensions/policy_handlers.h" |
| 60 #include "extensions/browser/pref_names.h" | 60 #include "extensions/browser/pref_names.h" |
| 61 #include "extensions/common/manifest.h" | 61 #include "extensions/common/manifest.h" |
| 62 #endif | 62 #endif |
| 63 | 63 |
| 64 #if defined(ENABLE_PLUGINS) | |
| 65 #include "chrome/browser/plugins/plugin_policy_handler.h" | |
| 66 #endif | |
| 67 | |
| 64 namespace policy { | 68 namespace policy { |
| 65 | 69 |
| 66 namespace { | 70 namespace { |
| 67 | 71 |
| 68 // List of policy types to preference names. This is used for simple policies | 72 // List of policy types to preference names. This is used for simple policies |
| 69 // that directly map to a single preference. | 73 // that directly map to a single preference. |
| 70 const PolicyToPreferenceMapEntry kSimplePolicyMap[] = { | 74 const PolicyToPreferenceMapEntry kSimplePolicyMap[] = { |
| 71 { key::kHomepageLocation, | 75 { key::kHomepageLocation, |
| 72 prefs::kHomePage, | 76 prefs::kHomePage, |
| 73 base::Value::TYPE_STRING }, | 77 base::Value::TYPE_STRING }, |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 base::Value::TYPE_BOOLEAN }, | 119 base::Value::TYPE_BOOLEAN }, |
| 116 { key::kDisablePrintPreview, | 120 { key::kDisablePrintPreview, |
| 117 prefs::kPrintPreviewDisabled, | 121 prefs::kPrintPreviewDisabled, |
| 118 base::Value::TYPE_BOOLEAN }, | 122 base::Value::TYPE_BOOLEAN }, |
| 119 { key::kMetricsReportingEnabled, | 123 { key::kMetricsReportingEnabled, |
| 120 prefs::kMetricsReportingEnabled, | 124 prefs::kMetricsReportingEnabled, |
| 121 base::Value::TYPE_BOOLEAN }, | 125 base::Value::TYPE_BOOLEAN }, |
| 122 { key::kApplicationLocaleValue, | 126 { key::kApplicationLocaleValue, |
| 123 prefs::kApplicationLocale, | 127 prefs::kApplicationLocale, |
| 124 base::Value::TYPE_STRING }, | 128 base::Value::TYPE_STRING }, |
| 125 { key::kDisabledPlugins, | |
| 126 prefs::kPluginsDisabledPlugins, | |
| 127 base::Value::TYPE_LIST }, | |
| 128 { key::kDisabledPluginsExceptions, | |
| 129 prefs::kPluginsDisabledPluginsExceptions, | |
| 130 base::Value::TYPE_LIST }, | |
| 131 { key::kEnabledPlugins, | |
| 132 prefs::kPluginsEnabledPlugins, | |
| 133 base::Value::TYPE_LIST }, | |
| 134 { key::kShowHomeButton, | 129 { key::kShowHomeButton, |
| 135 prefs::kShowHomeButton, | 130 prefs::kShowHomeButton, |
| 136 base::Value::TYPE_BOOLEAN }, | 131 base::Value::TYPE_BOOLEAN }, |
| 137 { key::kSavingBrowserHistoryDisabled, | 132 { key::kSavingBrowserHistoryDisabled, |
| 138 prefs::kSavingBrowserHistoryDisabled, | 133 prefs::kSavingBrowserHistoryDisabled, |
| 139 base::Value::TYPE_BOOLEAN }, | 134 base::Value::TYPE_BOOLEAN }, |
| 140 { key::kAllowDeletingBrowserHistory, | 135 { key::kAllowDeletingBrowserHistory, |
| 141 prefs::kAllowDeletingBrowserHistory, | 136 prefs::kAllowDeletingBrowserHistory, |
| 142 base::Value::TYPE_BOOLEAN }, | 137 base::Value::TYPE_BOOLEAN }, |
| 143 { key::kDeveloperToolsDisabled, | 138 { key::kDeveloperToolsDisabled, |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 175 base::Value::TYPE_LIST }, | 170 base::Value::TYPE_LIST }, |
| 176 { key::kImagesBlockedForUrls, | 171 { key::kImagesBlockedForUrls, |
| 177 prefs::kManagedImagesBlockedForUrls, | 172 prefs::kManagedImagesBlockedForUrls, |
| 178 base::Value::TYPE_LIST }, | 173 base::Value::TYPE_LIST }, |
| 179 { key::kJavaScriptAllowedForUrls, | 174 { key::kJavaScriptAllowedForUrls, |
| 180 prefs::kManagedJavaScriptAllowedForUrls, | 175 prefs::kManagedJavaScriptAllowedForUrls, |
| 181 base::Value::TYPE_LIST }, | 176 base::Value::TYPE_LIST }, |
| 182 { key::kJavaScriptBlockedForUrls, | 177 { key::kJavaScriptBlockedForUrls, |
| 183 prefs::kManagedJavaScriptBlockedForUrls, | 178 prefs::kManagedJavaScriptBlockedForUrls, |
| 184 base::Value::TYPE_LIST }, | 179 base::Value::TYPE_LIST }, |
| 185 { key::kPluginsAllowedForUrls, | |
| 186 prefs::kManagedPluginsAllowedForUrls, | |
| 187 base::Value::TYPE_LIST }, | |
| 188 { key::kPluginsBlockedForUrls, | |
| 189 prefs::kManagedPluginsBlockedForUrls, | |
| 190 base::Value::TYPE_LIST }, | |
| 191 { key::kPopupsAllowedForUrls, | 180 { key::kPopupsAllowedForUrls, |
| 192 prefs::kManagedPopupsAllowedForUrls, | 181 prefs::kManagedPopupsAllowedForUrls, |
| 193 base::Value::TYPE_LIST }, | 182 base::Value::TYPE_LIST }, |
| 194 { key::kPopupsBlockedForUrls, | 183 { key::kPopupsBlockedForUrls, |
| 195 prefs::kManagedPopupsBlockedForUrls, | 184 prefs::kManagedPopupsBlockedForUrls, |
| 196 base::Value::TYPE_LIST }, | 185 base::Value::TYPE_LIST }, |
| 197 { key::kNotificationsAllowedForUrls, | 186 { key::kNotificationsAllowedForUrls, |
| 198 prefs::kManagedNotificationsAllowedForUrls, | 187 prefs::kManagedNotificationsAllowedForUrls, |
| 199 base::Value::TYPE_LIST }, | 188 base::Value::TYPE_LIST }, |
| 200 { key::kNotificationsBlockedForUrls, | 189 { key::kNotificationsBlockedForUrls, |
| (...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 486 base::Value::TYPE_BOOLEAN }, | 475 base::Value::TYPE_BOOLEAN }, |
| 487 { key::kBrowserGuestModeEnabled, | 476 { key::kBrowserGuestModeEnabled, |
| 488 prefs::kBrowserGuestModeEnabled, | 477 prefs::kBrowserGuestModeEnabled, |
| 489 base::Value::TYPE_BOOLEAN }, | 478 base::Value::TYPE_BOOLEAN }, |
| 490 { key::kBrowserAddPersonEnabled, | 479 { key::kBrowserAddPersonEnabled, |
| 491 prefs::kBrowserAddPersonEnabled, | 480 prefs::kBrowserAddPersonEnabled, |
| 492 base::Value::TYPE_BOOLEAN }, | 481 base::Value::TYPE_BOOLEAN }, |
| 493 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) | 482 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
| 494 }; | 483 }; |
| 495 | 484 |
| 485 #if defined(ENABLE_PLUGINS) | |
|
Mattias Nissler (ping if slow)
2015/04/10 08:47:15
Nice!
Will Harris
2015/04/10 18:51:23
Acknowledged.
| |
| 486 // List of policy types to preference names for plugin policies that will cause | |
| 487 // NPAPI to be re-enabled. | |
|
Mattias Nissler (ping if slow)
2015/04/10 08:47:15
This makes it sound like these policy keys are jus
Will Harris
2015/04/10 18:51:23
Acknowledged.
| |
| 488 const PolicyToPreferenceMapEntry kNpapiPluginsPolicyMap[] = { | |
| 489 { key::kEnabledPlugins, | |
| 490 prefs::kPluginsEnabledPlugins, | |
| 491 base::Value::TYPE_LIST }, | |
| 492 { key::kDisabledPlugins, | |
| 493 prefs::kPluginsDisabledPlugins, | |
| 494 base::Value::TYPE_LIST }, | |
| 495 { key::kDisabledPluginsExceptions, | |
| 496 prefs::kPluginsDisabledPluginsExceptions, | |
| 497 base::Value::TYPE_LIST }, | |
| 498 { key::kPluginsAllowedForUrls, | |
| 499 prefs::kManagedPluginsAllowedForUrls, | |
| 500 base::Value::TYPE_LIST }, | |
| 501 { key::kPluginsBlockedForUrls, | |
| 502 prefs::kManagedPluginsBlockedForUrls, | |
| 503 base::Value::TYPE_LIST }, | |
| 504 }; | |
| 505 #endif // defined(ENABLE_PLUGINS) | |
| 506 | |
| 496 #if defined(ENABLE_EXTENSIONS) | 507 #if defined(ENABLE_EXTENSIONS) |
| 497 void GetExtensionAllowedTypesMap( | 508 void GetExtensionAllowedTypesMap( |
| 498 ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) { | 509 ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) { |
| 499 // Mapping from extension type names to Manifest::Type. | 510 // Mapping from extension type names to Manifest::Type. |
| 500 for (size_t index = 0; | 511 for (size_t index = 0; |
| 501 index < extensions::schema_constants::kAllowedTypesMapSize; | 512 index < extensions::schema_constants::kAllowedTypesMapSize; |
| 502 ++index) { | 513 ++index) { |
| 503 const extensions::schema_constants::AllowedTypesMapEntry& entry = | 514 const extensions::schema_constants::AllowedTypesMapEntry& entry = |
| 504 extensions::schema_constants::kAllowedTypesMap[index]; | 515 extensions::schema_constants::kAllowedTypesMap[index]; |
| 505 result->push_back(new StringMappingListPolicyHandler::MappingEntry( | 516 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 536 scoped_ptr<ConfigurationPolicyHandlerList> handlers( | 547 scoped_ptr<ConfigurationPolicyHandlerList> handlers( |
| 537 new ConfigurationPolicyHandlerList( | 548 new ConfigurationPolicyHandlerList( |
| 538 base::Bind(&PopulatePolicyHandlerParameters), | 549 base::Bind(&PopulatePolicyHandlerParameters), |
| 539 base::Bind(&GetChromePolicyDetails))); | 550 base::Bind(&GetChromePolicyDetails))); |
| 540 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { | 551 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { |
| 541 handlers->AddHandler(make_scoped_ptr(new SimplePolicyHandler( | 552 handlers->AddHandler(make_scoped_ptr(new SimplePolicyHandler( |
| 542 kSimplePolicyMap[i].policy_name, kSimplePolicyMap[i].preference_path, | 553 kSimplePolicyMap[i].policy_name, kSimplePolicyMap[i].preference_path, |
| 543 kSimplePolicyMap[i].value_type))); | 554 kSimplePolicyMap[i].value_type))); |
| 544 } | 555 } |
| 545 | 556 |
| 557 #if defined(ENABLE_PLUGINS) | |
| 558 for (size_t i = 0; i < arraysize(kNpapiPluginsPolicyMap); ++i) { | |
| 559 handlers->AddHandler(make_scoped_ptr(new PluginPolicyHandler( | |
| 560 kNpapiPluginsPolicyMap[i].policy_name, | |
| 561 kNpapiPluginsPolicyMap[i].preference_path, | |
| 562 kNpapiPluginsPolicyMap[i].value_type))); | |
| 563 } | |
| 564 #endif | |
| 565 | |
| 546 handlers->AddHandler(make_scoped_ptr(new AutofillPolicyHandler())); | 566 handlers->AddHandler(make_scoped_ptr(new AutofillPolicyHandler())); |
| 547 handlers->AddHandler(make_scoped_ptr(new DefaultSearchPolicyHandler())); | 567 handlers->AddHandler(make_scoped_ptr(new DefaultSearchPolicyHandler())); |
| 548 handlers->AddHandler(make_scoped_ptr(new IncognitoModePolicyHandler())); | 568 handlers->AddHandler(make_scoped_ptr(new IncognitoModePolicyHandler())); |
| 549 handlers->AddHandler( | 569 handlers->AddHandler( |
| 550 make_scoped_ptr(new ManagedBookmarksPolicyHandler(chrome_schema))); | 570 make_scoped_ptr(new ManagedBookmarksPolicyHandler(chrome_schema))); |
| 551 handlers->AddHandler(make_scoped_ptr(new ProxyPolicyHandler())); | 571 handlers->AddHandler(make_scoped_ptr(new ProxyPolicyHandler())); |
| 552 handlers->AddHandler(make_scoped_ptr(new URLBlacklistPolicyHandler())); | 572 handlers->AddHandler(make_scoped_ptr(new URLBlacklistPolicyHandler())); |
| 553 | 573 |
| 554 #if defined(OS_ANDROID) | 574 #if defined(OS_ANDROID) |
| 555 handlers->AddHandler( | 575 handlers->AddHandler( |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 741 handlers->AddHandler(make_scoped_ptr(new SimpleSchemaValidatingPolicyHandler( | 761 handlers->AddHandler(make_scoped_ptr(new SimpleSchemaValidatingPolicyHandler( |
| 742 key::kSessionLocales, NULL, chrome_schema, SCHEMA_STRICT, | 762 key::kSessionLocales, NULL, chrome_schema, SCHEMA_STRICT, |
| 743 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, | 763 SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED, |
| 744 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); | 764 SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED))); |
| 745 #endif // defined(OS_CHROMEOS) | 765 #endif // defined(OS_CHROMEOS) |
| 746 | 766 |
| 747 return handlers.Pass(); | 767 return handlers.Pass(); |
| 748 } | 768 } |
| 749 | 769 |
| 750 } // namespace policy | 770 } // namespace policy |
| OLD | NEW |