Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(360)

Side by Side Diff: chrome/browser/policy/configuration_policy_handler_list_factory.cc

Issue 341723002: Refactored StringToIntEnumListPolicyHandler to be more general purpose (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moar clang issues. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 #endif // defined(OS_ANDROID) 477 #endif // defined(OS_ANDROID)
478 478
479 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) 479 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
480 { key::kNativeMessagingUserLevelHosts, 480 { key::kNativeMessagingUserLevelHosts,
481 extensions::pref_names::kNativeMessagingUserLevelHosts, 481 extensions::pref_names::kNativeMessagingUserLevelHosts,
482 base::Value::TYPE_BOOLEAN }, 482 base::Value::TYPE_BOOLEAN },
483 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) 483 #endif // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
484 }; 484 };
485 485
486 #if !defined(OS_IOS) 486 #if !defined(OS_IOS)
487 // Mapping from extension type names to Manifest::Type. 487 void GetExtensionAllowedTypesMap(
488 StringToIntEnumListPolicyHandler::MappingEntry kExtensionAllowedTypesMap[] = { 488 ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) {
489 { "extension", extensions::Manifest::TYPE_EXTENSION }, 489 // Mapping from extension type names to Manifest::Type.
490 { "theme", extensions::Manifest::TYPE_THEME }, 490 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
491 { "user_script", extensions::Manifest::TYPE_USER_SCRIPT }, 491 "extension", scoped_ptr<base::Value>(base::Value::CreateIntegerValue(
492 { "hosted_app", extensions::Manifest::TYPE_HOSTED_APP }, 492 extensions::Manifest::TYPE_EXTENSION))));
493 { "legacy_packaged_app", extensions::Manifest::TYPE_LEGACY_PACKAGED_APP }, 493 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
494 { "platform_app", extensions::Manifest::TYPE_PLATFORM_APP }, 494 "theme", scoped_ptr<base::Value>(base::Value::CreateIntegerValue(
495 }; 495 extensions::Manifest::TYPE_THEME))));
496 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
497 "user_script", scoped_ptr<base::Value>(base::Value::CreateIntegerValue(
498 extensions::Manifest::TYPE_USER_SCRIPT))));
499 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
500 "hosted_app", scoped_ptr<base::Value>(base::Value::CreateIntegerValue(
501 extensions::Manifest::TYPE_HOSTED_APP))));
502 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
503 "legacy_packaged_app", scoped_ptr<base::Value>(
504 base::Value::CreateIntegerValue(
505 extensions::Manifest::TYPE_LEGACY_PACKAGED_APP))));
506 result->push_back(new StringMappingListPolicyHandler::MappingEntry(
507 "platform_app", scoped_ptr<base::Value>(base::Value::CreateIntegerValue(
Joao da Silva 2014/06/18 08:45:26 CreateIntegerValue is deprecated, use new base::Fu
508 extensions::Manifest::TYPE_PLATFORM_APP))));
509 }
496 #endif // !defined(OS_IOS) 510 #endif // !defined(OS_IOS)
497 511
498 } // namespace 512 } // namespace
499 513
500 void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) { 514 void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) {
501 #if defined(OS_CHROMEOS) 515 #if defined(OS_CHROMEOS)
502 if (chromeos::UserManager::IsInitialized()) { 516 if (chromeos::UserManager::IsInitialized()) {
503 const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser(); 517 const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser();
504 if (user) 518 if (user)
505 parameters->user_id_hash = user->username_hash(); 519 parameters->user_id_hash = user->username_hash();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 key::kExtensionInstallBlacklist, 567 key::kExtensionInstallBlacklist,
554 extensions::pref_names::kInstallDenyList, 568 extensions::pref_names::kInstallDenyList,
555 true))); 569 true)));
556 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 570 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
557 new extensions::ExtensionInstallForcelistPolicyHandler())); 571 new extensions::ExtensionInstallForcelistPolicyHandler()));
558 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 572 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
559 new extensions::ExtensionURLPatternListPolicyHandler( 573 new extensions::ExtensionURLPatternListPolicyHandler(
560 key::kExtensionInstallSources, 574 key::kExtensionInstallSources,
561 extensions::pref_names::kAllowedInstallSites))); 575 extensions::pref_names::kAllowedInstallSites)));
562 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 576 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
563 new StringToIntEnumListPolicyHandler( 577 new StringMappingListPolicyHandler(
564 key::kExtensionAllowedTypes, 578 key::kExtensionAllowedTypes,
565 extensions::pref_names::kAllowedTypes, 579 extensions::pref_names::kAllowedTypes,
566 kExtensionAllowedTypesMap, 580 base::Bind(GetExtensionAllowedTypesMap))));
567 kExtensionAllowedTypesMap + arraysize(kExtensionAllowedTypesMap))));
568 #endif // !defined(OS_IOS) 581 #endif // !defined(OS_IOS)
569 582
570 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) 583 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
571 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 584 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
572 new DiskCacheDirPolicyHandler())); 585 new DiskCacheDirPolicyHandler()));
573 586
574 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 587 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
575 new extensions::NativeMessagingHostListPolicyHandler( 588 new extensions::NativeMessagingHostListPolicyHandler(
576 key::kNativeMessagingWhitelist, 589 key::kNativeMessagingWhitelist,
577 extensions::pref_names::kNativeMessagingWhitelist, 590 extensions::pref_names::kNativeMessagingWhitelist,
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 755 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
743 new ExternalDataPolicyHandler(key::kUserAvatarImage))); 756 new ExternalDataPolicyHandler(key::kUserAvatarImage)));
744 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( 757 handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
745 new ExternalDataPolicyHandler(key::kWallpaperImage))); 758 new ExternalDataPolicyHandler(key::kWallpaperImage)));
746 #endif // defined(OS_CHROMEOS) 759 #endif // defined(OS_CHROMEOS)
747 760
748 return handlers.Pass(); 761 return handlers.Pass();
749 } 762 }
750 763
751 } // namespace policy 764 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698