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

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

Issue 18153007: Add policies to control power management on the Chrome OS login screen (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed some very verbose comments. Created 7 years, 5 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 (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 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 // Mapping from extension type names to Manifest::Type. 412 // Mapping from extension type names to Manifest::Type.
412 StringToIntEnumListPolicyHandler::MappingEntry kExtensionAllowedTypesMap[] = { 413 StringToIntEnumListPolicyHandler::MappingEntry kExtensionAllowedTypesMap[] = {
413 { "extension", extensions::Manifest::TYPE_EXTENSION }, 414 { "extension", extensions::Manifest::TYPE_EXTENSION },
414 { "theme", extensions::Manifest::TYPE_THEME }, 415 { "theme", extensions::Manifest::TYPE_THEME },
415 { "user_script", extensions::Manifest::TYPE_USER_SCRIPT }, 416 { "user_script", extensions::Manifest::TYPE_USER_SCRIPT },
416 { "hosted_app", extensions::Manifest::TYPE_HOSTED_APP }, 417 { "hosted_app", extensions::Manifest::TYPE_HOSTED_APP },
417 { "legacy_packaged_app", extensions::Manifest::TYPE_LEGACY_PACKAGED_APP }, 418 { "legacy_packaged_app", extensions::Manifest::TYPE_LEGACY_PACKAGED_APP },
418 { "platform_app", extensions::Manifest::TYPE_PLATFORM_APP }, 419 { "platform_app", extensions::Manifest::TYPE_PLATFORM_APP },
419 }; 420 };
420 421
422 #if defined (OS_CHROMEOS)
423 // Idle and lid close actions allowed on the login screen.
424 int kLoginScreenAllowedIdleAndLidCloseActions[] = {
425 chromeos::PowerPolicyController::ACTION_SUSPEND,
426 chromeos::PowerPolicyController::ACTION_SHUT_DOWN,
427 chromeos::PowerPolicyController::ACTION_DO_NOTHING,
428 };
429 #endif
430
421 } // namespace 431 } // namespace
422 432
423 ConfigurationPolicyHandlerList::ConfigurationPolicyHandlerList() { 433 ConfigurationPolicyHandlerList::ConfigurationPolicyHandlerList() {
424 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) { 434 for (size_t i = 0; i < arraysize(kSimplePolicyMap); ++i) {
425 handlers_.push_back( 435 handlers_.push_back(
426 new SimplePolicyHandler(kSimplePolicyMap[i].policy_name, 436 new SimplePolicyHandler(kSimplePolicyMap[i].policy_name,
427 kSimplePolicyMap[i].preference_path, 437 kSimplePolicyMap[i].preference_path,
428 kSimplePolicyMap[i].value_type)); 438 kSimplePolicyMap[i].value_type));
429 } 439 }
430 440
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 0, INT_MAX, true)); 532 0, INT_MAX, true));
523 handlers_.push_back( 533 handlers_.push_back(
524 new IntRangePolicyHandler( 534 new IntRangePolicyHandler(
525 key::kIdleDelayBattery, 535 key::kIdleDelayBattery,
526 prefs::kPowerBatteryIdleDelayMs, 536 prefs::kPowerBatteryIdleDelayMs,
527 0, INT_MAX, true)); 537 0, INT_MAX, true));
528 handlers_.push_back( 538 handlers_.push_back(
529 new IntRangePolicyHandler( 539 new IntRangePolicyHandler(
530 key::kIdleActionAC, 540 key::kIdleActionAC,
531 prefs::kPowerAcIdleAction, 541 prefs::kPowerAcIdleAction,
532 0, 3, false)); 542 chromeos::PowerPolicyController::ACTION_SUSPEND,
543 chromeos::PowerPolicyController::ACTION_DO_NOTHING,
544 false));
533 handlers_.push_back( 545 handlers_.push_back(
534 new IntRangePolicyHandler( 546 new IntRangePolicyHandler(
535 key::kIdleActionBattery, 547 key::kIdleActionBattery,
536 prefs::kPowerBatteryIdleAction, 548 prefs::kPowerBatteryIdleAction,
537 0, 3, false)); 549 chromeos::PowerPolicyController::ACTION_SUSPEND,
550 chromeos::PowerPolicyController::ACTION_DO_NOTHING,
551 false));
538 handlers_.push_back( 552 handlers_.push_back(
539 new IntRangePolicyHandler( 553 new IntRangePolicyHandler(
540 key::kLidCloseAction, 554 key::kLidCloseAction,
541 prefs::kPowerLidClosedAction, 555 prefs::kPowerLidClosedAction,
542 0, 3, false)); 556 chromeos::PowerPolicyController::ACTION_SUSPEND,
557 chromeos::PowerPolicyController::ACTION_DO_NOTHING,
558 false));
543 handlers_.push_back( 559 handlers_.push_back(
544 new IntPercentageToDoublePolicyHandler( 560 new IntPercentageToDoublePolicyHandler(
545 key::kPresentationScreenDimDelayScale, 561 key::kPresentationScreenDimDelayScale,
546 prefs::kPowerPresentationScreenDimDelayFactor, 562 prefs::kPowerPresentationScreenDimDelayFactor,
547 100, INT_MAX, true)); 563 100, INT_MAX, true));
548 handlers_.push_back( 564 handlers_.push_back(
549 new IntPercentageToDoublePolicyHandler( 565 new IntPercentageToDoublePolicyHandler(
550 key::kUserActivityScreenDimDelayScale, 566 key::kUserActivityScreenDimDelayScale,
551 prefs::kPowerUserActivityScreenDimDelayFactor, 567 prefs::kPowerUserActivityScreenDimDelayFactor,
552 100, INT_MAX, true)); 568 100, INT_MAX, true));
569 handlers_.push_back(
570 new IntRangePolicyHandler(
571 key::kDeviceLoginScreenScreenDimDelayAC,
572 NULL,
573 0, INT_MAX, true));
574 handlers_.push_back(
575 new IntRangePolicyHandler(
576 key::kDeviceLoginScreenScreenOffDelayAC,
577 NULL,
578 0, INT_MAX, true));
579 handlers_.push_back(
580 new IntRangePolicyHandler(
581 key::kDeviceLoginScreenIdleDelayAC,
582 NULL,
583 0, INT_MAX, true));
584 handlers_.push_back(
585 new IntRangePolicyHandler(
586 key::kDeviceLoginScreenScreenDimDelayBattery,
587 NULL,
588 0, INT_MAX, true));
589 handlers_.push_back(
590 new IntRangePolicyHandler(
591 key::kDeviceLoginScreenScreenOffDelayBattery,
592 NULL,
593 0, INT_MAX, true));
594 handlers_.push_back(
595 new IntRangePolicyHandler(
596 key::kDeviceLoginScreenIdleDelayBattery,
597 NULL,
598 0, INT_MAX, true));
599 handlers_.push_back(
600 new IntSetPolicyHandler(
601 key::kDeviceLoginScreenIdleActionAC,
602 NULL,
603 kLoginScreenAllowedIdleAndLidCloseActions,
604 kLoginScreenAllowedIdleAndLidCloseActions +
605 arraysize(kLoginScreenAllowedIdleAndLidCloseActions)));
606 handlers_.push_back(
607 new IntSetPolicyHandler(
608 key::kDeviceLoginScreenIdleActionBattery,
609 NULL,
610 kLoginScreenAllowedIdleAndLidCloseActions,
611 kLoginScreenAllowedIdleAndLidCloseActions +
612 arraysize(kLoginScreenAllowedIdleAndLidCloseActions)));
613 handlers_.push_back(
614 new IntSetPolicyHandler(
615 key::kDeviceLoginScreenLidCloseAction,
616 NULL,
617 kLoginScreenAllowedIdleAndLidCloseActions,
618 kLoginScreenAllowedIdleAndLidCloseActions +
619 arraysize(kLoginScreenAllowedIdleAndLidCloseActions)));
620 handlers_.push_back(
621 new IntPercentageToDoublePolicyHandler(
622 key::kDeviceLoginScreenUserActivityScreenDimDelayScale,
623 NULL,
624 100, INT_MAX, true));
553 handlers_.push_back(new IntRangePolicyHandler(key::kUptimeLimit, 625 handlers_.push_back(new IntRangePolicyHandler(key::kUptimeLimit,
554 prefs::kUptimeLimit, 626 prefs::kUptimeLimit,
555 3600, INT_MAX, true)); 627 3600, INT_MAX, true));
556 handlers_.push_back(new IntRangePolicyHandler( 628 handlers_.push_back(new IntRangePolicyHandler(
557 key::kDeviceLoginScreenDefaultScreenMagnifierType, 629 key::kDeviceLoginScreenDefaultScreenMagnifierType,
558 NULL, 630 NULL,
559 0, ash::MAGNIFIER_FULL, false)); 631 0, ash::MAGNIFIER_FULL, false));
560 #endif // defined(OS_CHROMEOS) 632 #endif // defined(OS_CHROMEOS)
561 } 633 }
562 634
(...skipping 24 matching lines...) Expand all
587 } 659 }
588 660
589 void ConfigurationPolicyHandlerList::PrepareForDisplaying( 661 void ConfigurationPolicyHandlerList::PrepareForDisplaying(
590 PolicyMap* policies) const { 662 PolicyMap* policies) const {
591 std::vector<ConfigurationPolicyHandler*>::const_iterator handler; 663 std::vector<ConfigurationPolicyHandler*>::const_iterator handler;
592 for (handler = handlers_.begin(); handler != handlers_.end(); ++handler) 664 for (handler = handlers_.begin(); handler != handlers_.end(); ++handler)
593 (*handler)->PrepareForDisplaying(policies); 665 (*handler)->PrepareForDisplaying(policies);
594 } 666 }
595 667
596 } // namespace policy 668 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698