| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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.h" | 5 #include "chrome/browser/policy/configuration_policy_handler_list.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/prefs/pref_value_map.h" | 9 #include "base/prefs/pref_value_map.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| 11 #include "base/values.h" | 11 #include "base/values.h" |
| 12 #include "chrome/browser/policy/configuration_policy_handler.h" | 12 #include "chrome/browser/policy/configuration_policy_handler.h" |
| 13 #include "chrome/browser/policy/policy_error_map.h" | 13 #include "chrome/browser/policy/policy_error_map.h" |
| 14 #include "chrome/browser/policy/policy_map.h" | 14 #include "chrome/browser/policy/policy_map.h" |
| 15 #include "chrome/common/extensions/manifest.h" | 15 #include "chrome/common/extensions/manifest.h" |
| 16 #include "chrome/common/pref_names.h" | 16 #include "chrome/common/pref_names.h" |
| 17 #include "grit/generated_resources.h" | 17 #include "grit/generated_resources.h" |
| 18 #include "policy/policy_constants.h" | 18 #include "policy/policy_constants.h" |
| 19 | 19 |
| 20 #if defined(OS_CHROMEOS) | 20 #if defined(OS_CHROMEOS) |
| 21 #include "ash/magnifier/magnifier_constants.h" | 21 #include "ash/magnifier/magnifier_constants.h" |
| 22 #include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h
" | 22 #include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h
" |
| 23 #include "chromeos/dbus/power_policy_controller.h" |
| 23 #endif // defined(OS_CHROMEOS) | 24 #endif // defined(OS_CHROMEOS) |
| 24 | 25 |
| 25 namespace policy { | 26 namespace policy { |
| 26 | 27 |
| 27 namespace { | 28 namespace { |
| 28 | 29 |
| 29 // Maps a policy type to a preference path, and to the expected value type. | 30 // Maps a policy type to a preference path, and to the expected value type. |
| 30 // This is the entry type of |kSimplePolicyMap| below. | 31 // This is the entry type of |kSimplePolicyMap| below. |
| 31 struct PolicyToPreferenceMapEntry { | 32 struct PolicyToPreferenceMapEntry { |
| 32 const char* policy_name; | 33 const char* policy_name; |
| (...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 // Mapping from extension type names to Manifest::Type. | 415 // Mapping from extension type names to Manifest::Type. |
| 415 StringToIntEnumListPolicyHandler::MappingEntry kExtensionAllowedTypesMap[] = { | 416 StringToIntEnumListPolicyHandler::MappingEntry kExtensionAllowedTypesMap[] = { |
| 416 { "extension", extensions::Manifest::TYPE_EXTENSION }, | 417 { "extension", extensions::Manifest::TYPE_EXTENSION }, |
| 417 { "theme", extensions::Manifest::TYPE_THEME }, | 418 { "theme", extensions::Manifest::TYPE_THEME }, |
| 418 { "user_script", extensions::Manifest::TYPE_USER_SCRIPT }, | 419 { "user_script", extensions::Manifest::TYPE_USER_SCRIPT }, |
| 419 { "hosted_app", extensions::Manifest::TYPE_HOSTED_APP }, | 420 { "hosted_app", extensions::Manifest::TYPE_HOSTED_APP }, |
| 420 { "legacy_packaged_app", extensions::Manifest::TYPE_LEGACY_PACKAGED_APP }, | 421 { "legacy_packaged_app", extensions::Manifest::TYPE_LEGACY_PACKAGED_APP }, |
| 421 { "platform_app", extensions::Manifest::TYPE_PLATFORM_APP }, | 422 { "platform_app", extensions::Manifest::TYPE_PLATFORM_APP }, |
| 422 }; | 423 }; |
| 423 | 424 |
| 425 #if defined (OS_CHROMEOS) |
| 426 // Idle and lid close actions allowed on the login screen. |
| 427 int kLoginScreenAllowedIdleAndLidCloseActions[] = { |
| 428 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 429 chromeos::PowerPolicyController::ACTION_SHUT_DOWN, |
| 430 chromeos::PowerPolicyController::ACTION_DO_NOTHING, |
| 431 }; |
| 432 #endif |
| 433 |
| 424 } // namespace | 434 } // namespace |
| 425 | 435 |
| 426 ConfigurationPolicyHandlerList::ConfigurationPolicyHandlerList() { | 436 ConfigurationPolicyHandlerList::ConfigurationPolicyHandlerList() { |
| 427 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { | 437 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { |
| 428 handlers_.push_back( | 438 handlers_.push_back( |
| 429 new SimplePolicyHandler(kSimplePolicyMap[i].policy_name, | 439 new SimplePolicyHandler(kSimplePolicyMap[i].policy_name, |
| 430 kSimplePolicyMap[i].preference_path, | 440 kSimplePolicyMap[i].preference_path, |
| 431 kSimplePolicyMap[i].value_type)); | 441 kSimplePolicyMap[i].value_type)); |
| 432 } | 442 } |
| 433 | 443 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 525 0, INT_MAX, true)); | 535 0, INT_MAX, true)); |
| 526 handlers_.push_back( | 536 handlers_.push_back( |
| 527 new IntRangePolicyHandler( | 537 new IntRangePolicyHandler( |
| 528 key::kIdleDelayBattery, | 538 key::kIdleDelayBattery, |
| 529 prefs::kPowerBatteryIdleDelayMs, | 539 prefs::kPowerBatteryIdleDelayMs, |
| 530 0, INT_MAX, true)); | 540 0, INT_MAX, true)); |
| 531 handlers_.push_back( | 541 handlers_.push_back( |
| 532 new IntRangePolicyHandler( | 542 new IntRangePolicyHandler( |
| 533 key::kIdleActionAC, | 543 key::kIdleActionAC, |
| 534 prefs::kPowerAcIdleAction, | 544 prefs::kPowerAcIdleAction, |
| 535 0, 3, false)); | 545 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 546 chromeos::PowerPolicyController::ACTION_DO_NOTHING, |
| 547 false)); |
| 536 handlers_.push_back( | 548 handlers_.push_back( |
| 537 new IntRangePolicyHandler( | 549 new IntRangePolicyHandler( |
| 538 key::kIdleActionBattery, | 550 key::kIdleActionBattery, |
| 539 prefs::kPowerBatteryIdleAction, | 551 prefs::kPowerBatteryIdleAction, |
| 540 0, 3, false)); | 552 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 553 chromeos::PowerPolicyController::ACTION_DO_NOTHING, |
| 554 false)); |
| 541 handlers_.push_back( | 555 handlers_.push_back( |
| 542 new IntRangePolicyHandler( | 556 new IntRangePolicyHandler( |
| 543 key::kLidCloseAction, | 557 key::kLidCloseAction, |
| 544 prefs::kPowerLidClosedAction, | 558 prefs::kPowerLidClosedAction, |
| 545 0, 3, false)); | 559 chromeos::PowerPolicyController::ACTION_SUSPEND, |
| 560 chromeos::PowerPolicyController::ACTION_DO_NOTHING, |
| 561 false)); |
| 546 handlers_.push_back( | 562 handlers_.push_back( |
| 547 new IntPercentageToDoublePolicyHandler( | 563 new IntPercentageToDoublePolicyHandler( |
| 548 key::kPresentationScreenDimDelayScale, | 564 key::kPresentationScreenDimDelayScale, |
| 549 prefs::kPowerPresentationScreenDimDelayFactor, | 565 prefs::kPowerPresentationScreenDimDelayFactor, |
| 550 100, INT_MAX, true)); | 566 100, INT_MAX, true)); |
| 551 handlers_.push_back( | 567 handlers_.push_back( |
| 552 new IntPercentageToDoublePolicyHandler( | 568 new IntPercentageToDoublePolicyHandler( |
| 553 key::kUserActivityScreenDimDelayScale, | 569 key::kUserActivityScreenDimDelayScale, |
| 554 prefs::kPowerUserActivityScreenDimDelayFactor, | 570 prefs::kPowerUserActivityScreenDimDelayFactor, |
| 555 100, INT_MAX, true)); | 571 100, INT_MAX, true)); |
| 572 handlers_.push_back( |
| 573 new IntRangePolicyHandler( |
| 574 key::kDeviceLoginScreenScreenDimDelayAC, |
| 575 NULL, |
| 576 0, INT_MAX, true)); |
| 577 handlers_.push_back( |
| 578 new IntRangePolicyHandler( |
| 579 key::kDeviceLoginScreenScreenOffDelayAC, |
| 580 NULL, |
| 581 0, INT_MAX, true)); |
| 582 handlers_.push_back( |
| 583 new IntRangePolicyHandler( |
| 584 key::kDeviceLoginScreenIdleDelayAC, |
| 585 NULL, |
| 586 0, INT_MAX, true)); |
| 587 handlers_.push_back( |
| 588 new IntRangePolicyHandler( |
| 589 key::kDeviceLoginScreenScreenDimDelayBattery, |
| 590 NULL, |
| 591 0, INT_MAX, true)); |
| 592 handlers_.push_back( |
| 593 new IntRangePolicyHandler( |
| 594 key::kDeviceLoginScreenScreenOffDelayBattery, |
| 595 NULL, |
| 596 0, INT_MAX, true)); |
| 597 handlers_.push_back( |
| 598 new IntRangePolicyHandler( |
| 599 key::kDeviceLoginScreenIdleDelayBattery, |
| 600 NULL, |
| 601 0, INT_MAX, true)); |
| 602 handlers_.push_back( |
| 603 new IntSetPolicyHandler( |
| 604 key::kDeviceLoginScreenIdleActionAC, |
| 605 NULL, |
| 606 kLoginScreenAllowedIdleAndLidCloseActions, |
| 607 kLoginScreenAllowedIdleAndLidCloseActions + |
| 608 arraysize(kLoginScreenAllowedIdleAndLidCloseActions))); |
| 609 handlers_.push_back( |
| 610 new IntSetPolicyHandler( |
| 611 key::kDeviceLoginScreenIdleActionBattery, |
| 612 NULL, |
| 613 kLoginScreenAllowedIdleAndLidCloseActions, |
| 614 kLoginScreenAllowedIdleAndLidCloseActions + |
| 615 arraysize(kLoginScreenAllowedIdleAndLidCloseActions))); |
| 616 handlers_.push_back( |
| 617 new IntSetPolicyHandler( |
| 618 key::kDeviceLoginScreenLidCloseAction, |
| 619 NULL, |
| 620 kLoginScreenAllowedIdleAndLidCloseActions, |
| 621 kLoginScreenAllowedIdleAndLidCloseActions + |
| 622 arraysize(kLoginScreenAllowedIdleAndLidCloseActions))); |
| 623 handlers_.push_back( |
| 624 new IntPercentageToDoublePolicyHandler( |
| 625 key::kDeviceLoginScreenUserActivityScreenDimDelayScale, |
| 626 NULL, |
| 627 100, INT_MAX, true)); |
| 556 handlers_.push_back(new IntRangePolicyHandler(key::kUptimeLimit, | 628 handlers_.push_back(new IntRangePolicyHandler(key::kUptimeLimit, |
| 557 prefs::kUptimeLimit, | 629 prefs::kUptimeLimit, |
| 558 3600, INT_MAX, true)); | 630 3600, INT_MAX, true)); |
| 559 handlers_.push_back(new IntRangePolicyHandler( | 631 handlers_.push_back(new IntRangePolicyHandler( |
| 560 key::kDeviceLoginScreenDefaultScreenMagnifierType, | 632 key::kDeviceLoginScreenDefaultScreenMagnifierType, |
| 561 NULL, | 633 NULL, |
| 562 0, ash::MAGNIFIER_FULL, false)); | 634 0, ash::MAGNIFIER_FULL, false)); |
| 563 #endif // defined(OS_CHROMEOS) | 635 #endif // defined(OS_CHROMEOS) |
| 564 } | 636 } |
| 565 | 637 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 590 } | 662 } |
| 591 | 663 |
| 592 void ConfigurationPolicyHandlerList::PrepareForDisplaying( | 664 void ConfigurationPolicyHandlerList::PrepareForDisplaying( |
| 593 PolicyMap* policies) const { | 665 PolicyMap* policies) const { |
| 594 std::vector<ConfigurationPolicyHandler*>::const_iterator handler; | 666 std::vector<ConfigurationPolicyHandler*>::const_iterator handler; |
| 595 for (handler = handlers_.begin(); handler != handlers_.end(); ++handler) | 667 for (handler = handlers_.begin(); handler != handlers_.end(); ++handler) |
| 596 (*handler)->PrepareForDisplaying(policies); | 668 (*handler)->PrepareForDisplaying(policies); |
| 597 } | 669 } |
| 598 | 670 |
| 599 } // namespace policy | 671 } // namespace policy |
| OLD | NEW |