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" |
11 #include "chrome/browser/net/proxy_policy_handler.h" | 11 #include "chrome/browser/net/proxy_policy_handler.h" |
12 #include "chrome/browser/policy/managed_bookmarks_policy_handler.h" | 12 #include "chrome/browser/policy/managed_bookmarks_policy_handler.h" |
13 #include "chrome/browser/profiles/incognito_mode_policy_handler.h" | 13 #include "chrome/browser/profiles/incognito_mode_policy_handler.h" |
14 #include "chrome/browser/search_engines/default_search_policy_handler.h" | 14 #include "chrome/browser/search_engines/default_search_policy_handler.h" |
| 15 #include "chrome/common/chrome_switches.h" |
15 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
16 #include "components/password_manager/core/common/password_manager_pref_names.h" | 17 #include "components/password_manager/core/common/password_manager_pref_names.h" |
17 #include "components/policy/core/browser/autofill_policy_handler.h" | 18 #include "components/policy/core/browser/autofill_policy_handler.h" |
18 #include "components/policy/core/browser/configuration_policy_handler.h" | 19 #include "components/policy/core/browser/configuration_policy_handler.h" |
19 #include "components/policy/core/browser/configuration_policy_handler_list.h" | 20 #include "components/policy/core/browser/configuration_policy_handler_list.h" |
20 #include "components/policy/core/browser/configuration_policy_handler_parameters
.h" | 21 #include "components/policy/core/browser/configuration_policy_handler_parameters
.h" |
21 #include "components/policy/core/browser/url_blacklist_policy_handler.h" | 22 #include "components/policy/core/browser/url_blacklist_policy_handler.h" |
22 #include "components/policy/core/common/policy_details.h" | 23 #include "components/policy/core/common/policy_details.h" |
23 #include "components/policy/core/common/policy_map.h" | 24 #include "components/policy/core/common/policy_map.h" |
24 #include "components/policy/core/common/policy_pref_names.h" | 25 #include "components/policy/core/common/policy_pref_names.h" |
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 extensions::pref_names::kNativeMessagingUserLevelHosts, | 482 extensions::pref_names::kNativeMessagingUserLevelHosts, |
482 base::Value::TYPE_BOOLEAN }, | 483 base::Value::TYPE_BOOLEAN }, |
483 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) | 484 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
484 }; | 485 }; |
485 | 486 |
486 #if !defined(OS_IOS) | 487 #if !defined(OS_IOS) |
487 void GetExtensionAllowedTypesMap( | 488 void GetExtensionAllowedTypesMap( |
488 ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) { | 489 ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) { |
489 // Mapping from extension type names to Manifest::Type. | 490 // Mapping from extension type names to Manifest::Type. |
490 result->push_back(new StringMappingListPolicyHandler::MappingEntry( | 491 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
491 "extension", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( | 492 "extension", scoped_ptr<base::Value>(new base::FundamentalValue( |
492 extensions::Manifest::TYPE_EXTENSION)))); | 493 extensions::Manifest::TYPE_EXTENSION)))); |
493 result->push_back(new StringMappingListPolicyHandler::MappingEntry( | 494 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
494 "theme", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( | 495 "theme", scoped_ptr<base::Value>(new base::FundamentalValue( |
495 extensions::Manifest::TYPE_THEME)))); | 496 extensions::Manifest::TYPE_THEME)))); |
496 result->push_back(new StringMappingListPolicyHandler::MappingEntry( | 497 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
497 "user_script", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( | 498 "user_script", scoped_ptr<base::Value>(new base::FundamentalValue( |
498 extensions::Manifest::TYPE_USER_SCRIPT)))); | 499 extensions::Manifest::TYPE_USER_SCRIPT)))); |
499 result->push_back(new StringMappingListPolicyHandler::MappingEntry( | 500 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
500 "hosted_app", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( | 501 "hosted_app", scoped_ptr<base::Value>(new base::FundamentalValue( |
501 extensions::Manifest::TYPE_HOSTED_APP)))); | 502 extensions::Manifest::TYPE_HOSTED_APP)))); |
502 result->push_back(new StringMappingListPolicyHandler::MappingEntry( | 503 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
503 "legacy_packaged_app", scoped_ptr<base::Value>( | 504 "legacy_packaged_app", scoped_ptr<base::Value>(new base::FundamentalValue( |
504 base::Value::CreateIntegerValue( | 505 extensions::Manifest::TYPE_LEGACY_PACKAGED_APP)))); |
505 extensions::Manifest::TYPE_LEGACY_PACKAGED_APP)))); | |
506 result->push_back(new StringMappingListPolicyHandler::MappingEntry( | 506 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
507 "platform_app", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( | 507 "platform_app", scoped_ptr<base::Value>(new base::FundamentalValue( |
508 extensions::Manifest::TYPE_PLATFORM_APP)))); | 508 extensions::Manifest::TYPE_PLATFORM_APP)))); |
509 } | 509 } |
| 510 |
| 511 void GetDeprecatedFeaturesMap( |
| 512 ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) { |
| 513 // Maps feature tags as specified in policy to the corresponding switch to |
| 514 // re-enable them. |
| 515 // TODO: Remove after 2015-04-30 per http://crbug.com/374782. |
| 516 result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
| 517 "ShowModalDialog_EffectiveUntil20150430", |
| 518 scoped_ptr<base::Value>(new base::StringValue( |
| 519 switches::kEnableShowModalDialog)))); |
| 520 } |
510 #endif // !defined(OS_IOS) | 521 #endif // !defined(OS_IOS) |
511 | 522 |
512 } // namespace | 523 } // namespace |
513 | 524 |
514 void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) { | 525 void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) { |
515 #if defined(OS_CHROMEOS) | 526 #if defined(OS_CHROMEOS) |
516 if (chromeos::UserManager::IsInitialized()) { | 527 if (chromeos::UserManager::IsInitialized()) { |
517 const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser(); | 528 const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser(); |
518 if (user) | 529 if (user) |
519 parameters->user_id_hash = user->username_hash(); | 530 parameters->user_id_hash = user->username_hash(); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
571 new extensions::ExtensionInstallForcelistPolicyHandler())); | 582 new extensions::ExtensionInstallForcelistPolicyHandler())); |
572 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 583 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
573 new extensions::ExtensionURLPatternListPolicyHandler( | 584 new extensions::ExtensionURLPatternListPolicyHandler( |
574 key::kExtensionInstallSources, | 585 key::kExtensionInstallSources, |
575 extensions::pref_names::kAllowedInstallSites))); | 586 extensions::pref_names::kAllowedInstallSites))); |
576 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 587 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
577 new StringMappingListPolicyHandler( | 588 new StringMappingListPolicyHandler( |
578 key::kExtensionAllowedTypes, | 589 key::kExtensionAllowedTypes, |
579 extensions::pref_names::kAllowedTypes, | 590 extensions::pref_names::kAllowedTypes, |
580 base::Bind(GetExtensionAllowedTypesMap)))); | 591 base::Bind(GetExtensionAllowedTypesMap)))); |
| 592 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
| 593 new StringMappingListPolicyHandler( |
| 594 key::kEnableDeprecatedWebPlatformFeatures, |
| 595 prefs::kEnableDeprecatedWebPlatformFeatures, |
| 596 base::Bind(GetDeprecatedFeaturesMap)))); |
581 #endif // !defined(OS_IOS) | 597 #endif // !defined(OS_IOS) |
582 | 598 |
583 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) | 599 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |
584 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 600 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
585 new DiskCacheDirPolicyHandler())); | 601 new DiskCacheDirPolicyHandler())); |
586 | 602 |
587 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 603 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
588 new extensions::NativeMessagingHostListPolicyHandler( | 604 new extensions::NativeMessagingHostListPolicyHandler( |
589 key::kNativeMessagingWhitelist, | 605 key::kNativeMessagingWhitelist, |
590 extensions::pref_names::kNativeMessagingWhitelist, | 606 extensions::pref_names::kNativeMessagingWhitelist, |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
755 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 771 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
756 new ExternalDataPolicyHandler(key::kUserAvatarImage))); | 772 new ExternalDataPolicyHandler(key::kUserAvatarImage))); |
757 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( | 773 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
758 new ExternalDataPolicyHandler(key::kWallpaperImage))); | 774 new ExternalDataPolicyHandler(key::kWallpaperImage))); |
759 #endif // defined(OS_CHROMEOS) | 775 #endif // defined(OS_CHROMEOS) |
760 | 776 |
761 return handlers.Pass(); | 777 return handlers.Pass(); |
762 } | 778 } |
763 | 779 |
764 } // namespace policy | 780 } // namespace policy |
OLD | NEW |