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

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: Comments addressed. Rebased. 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 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698