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

Side by Side Diff: chrome/browser/ui/webui/policy_ui_handler.cc

Issue 1395073002: Policy Ui sends correct translations for risk tags. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactoring: New file for PolicyMaterialDesignUi and PolicyUiHandler. Created 5 years, 2 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
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/ui/webui/policy_ui.h" 5 #include "chrome/browser/ui/webui/policy_ui_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <string.h>
Dan Beam 2015/11/03 18:34:11 just include <string> in policy_ui_handler.h and r
fhorschig 2015/11/04 18:51:18 Done.
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
11 #include "base/callback.h" 12 #include "base/callback.h"
12 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
13 #include "base/json/json_writer.h" 14 #include "base/json/json_writer.h"
14 #include "base/logging.h" 15 #include "base/logging.h"
15 #include "base/macros.h" 16 #include "base/macros.h"
16 #include "base/memory/weak_ptr.h" 17 #include "base/memory/weak_ptr.h"
17 #include "base/strings/string16.h" 18 #include "base/strings/string16.h"
18 #include "base/time/time.h" 19 #include "base/time/time.h"
19 #include "base/values.h" 20 #include "base/values.h"
20 #include "chrome/browser/browser_process.h" 21 #include "chrome/browser/browser_process.h"
21 #include "chrome/browser/policy/profile_policy_connector.h" 22 #include "chrome/browser/policy/profile_policy_connector.h"
22 #include "chrome/browser/policy/profile_policy_connector_factory.h" 23 #include "chrome/browser/policy/profile_policy_connector_factory.h"
23 #include "chrome/browser/policy/schema_registry_service.h" 24 #include "chrome/browser/policy/schema_registry_service.h"
24 #include "chrome/browser/policy/schema_registry_service_factory.h" 25 #include "chrome/browser/policy/schema_registry_service_factory.h"
25 #include "chrome/browser/profiles/profile.h" 26 #include "chrome/browser/profiles/profile.h"
26 #include "chrome/common/url_constants.h"
27 #include "components/policy/core/browser/browser_policy_connector.h" 27 #include "components/policy/core/browser/browser_policy_connector.h"
28 #include "components/policy/core/browser/cloud/message_util.h" 28 #include "components/policy/core/browser/cloud/message_util.h"
29 #include "components/policy/core/browser/configuration_policy_handler_list.h" 29 #include "components/policy/core/browser/configuration_policy_handler_list.h"
30 #include "components/policy/core/browser/policy_error_map.h"
31 #include "components/policy/core/common/cloud/cloud_policy_client.h" 30 #include "components/policy/core/common/cloud/cloud_policy_client.h"
32 #include "components/policy/core/common/cloud/cloud_policy_constants.h" 31 #include "components/policy/core/common/cloud/cloud_policy_constants.h"
33 #include "components/policy/core/common/cloud/cloud_policy_core.h" 32 #include "components/policy/core/common/cloud/cloud_policy_core.h"
34 #include "components/policy/core/common/cloud/cloud_policy_refresh_scheduler.h" 33 #include "components/policy/core/common/cloud/cloud_policy_refresh_scheduler.h"
35 #include "components/policy/core/common/cloud/cloud_policy_store.h" 34 #include "components/policy/core/common/cloud/cloud_policy_store.h"
36 #include "components/policy/core/common/cloud/cloud_policy_validator.h" 35 #include "components/policy/core/common/cloud/cloud_policy_validator.h"
37 #include "components/policy/core/common/policy_map.h" 36 #include "components/policy/core/common/policy_details.h"
38 #include "components/policy/core/common/policy_namespace.h"
39 #include "components/policy/core/common/policy_service.h"
40 #include "components/policy/core/common/policy_types.h" 37 #include "components/policy/core/common/policy_types.h"
41 #include "components/policy/core/common/remote_commands/remote_commands_service. h" 38 #include "components/policy/core/common/remote_commands/remote_commands_service. h"
42 #include "components/policy/core/common/schema.h" 39 #include "components/policy/core/common/schema.h"
43 #include "components/policy/core/common/schema_map.h" 40 #include "components/policy/core/common/schema_map.h"
44 #include "components/policy/core/common/schema_registry.h"
45 #include "content/public/browser/web_contents.h" 41 #include "content/public/browser/web_contents.h"
46 #include "content/public/browser/web_ui.h"
47 #include "content/public/browser/web_ui_data_source.h"
48 #include "content/public/browser/web_ui_message_handler.h"
49 #include "google_apis/gaia/gaia_auth_util.h" 42 #include "google_apis/gaia/gaia_auth_util.h"
50 #include "grit/browser_resources.h"
51 #include "grit/components_strings.h" 43 #include "grit/components_strings.h"
44 #include "grit/policy_resources.h"
45 #include "grit/policy_resources_map.h"
52 #include "policy/policy_constants.h" 46 #include "policy/policy_constants.h"
53 #include "policy/proto/device_management_backend.pb.h" 47 #include "policy/proto/device_management_backend.pb.h"
54 #include "ui/base/l10n/l10n_util.h" 48 #include "ui/base/l10n/l10n_util.h"
55 #include "ui/base/l10n/time_format.h" 49 #include "ui/base/l10n/time_format.h"
56 50
57 #if defined(OS_CHROMEOS) 51 #if defined(OS_CHROMEOS)
58 #include "chrome/browser/browser_process_platform_part.h" 52 #include "chrome/browser/browser_process_platform_part.h"
59 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" 53 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
60 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h" 54 #include "chrome/browser/chromeos/policy/device_cloud_policy_manager_chromeos.h"
61 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h" 55 #include "chrome/browser/chromeos/policy/device_local_account_policy_service.h"
62 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h" 56 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_chromeos.h"
63 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h" 57 #include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chrom eos.h"
64 #include "components/user_manager/user_manager.h" 58 #include "components/user_manager/user_manager.h"
65 #else 59 #else
66 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h" 60 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
67 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h" 61 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
68 #endif 62 #endif
69 63
70 #if defined(ENABLE_EXTENSIONS) 64 #if defined(ENABLE_EXTENSIONS)
71 #include "extensions/browser/extension_registry.h" 65 #include "extensions/browser/extension_registry.h"
72 #include "extensions/browser/extension_registry_observer.h"
73 #include "extensions/common/extension.h" 66 #include "extensions/common/extension.h"
74 #include "extensions/common/manifest.h" 67 #include "extensions/common/manifest.h"
75 #include "extensions/common/manifest_constants.h" 68 #include "extensions/common/manifest_constants.h"
76 #endif 69 #endif
77 70
78 namespace em = enterprise_management; 71 namespace em = enterprise_management;
79 72
80 namespace { 73 namespace {
81 74
82 struct PolicySourceMap {
83 const char* key;
84 int string_id;
85 };
86
87 // Strings that map from PolicySource enum to i18n string keys and their IDs. 75 // Strings that map from PolicySource enum to i18n string keys and their IDs.
88 const PolicySourceMap kPolicySources[policy::POLICY_SOURCE_COUNT] = { 76 // Their order has to follow the order of the policy::PolicySource enum.
77 const PolicyStringMap kPolicySources[policy::POLICY_SOURCE_COUNT] = {
89 {"sourceEnterpriseDefault", IDS_POLICY_SOURCE_ENTERPRISE_DEFAULT}, 78 {"sourceEnterpriseDefault", IDS_POLICY_SOURCE_ENTERPRISE_DEFAULT},
90 {"sourceCloud", IDS_POLICY_SOURCE_CLOUD}, 79 {"sourceCloud", IDS_POLICY_SOURCE_CLOUD},
91 {"sourcePublicSessionOverride", IDS_POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE}, 80 {"sourcePublicSessionOverride", IDS_POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE},
92 {"sourcePlatform", IDS_POLICY_SOURCE_PLATFORM} 81 {"sourcePlatform", IDS_POLICY_SOURCE_PLATFORM},
93 }; 82 };
94 83
95 void AddLocalizedPoilcySourceStrings(content::WebUIDataSource* source) {
96 DCHECK_EQ(static_cast<size_t>(policy::POLICY_SOURCE_COUNT),
97 arraysize(kPolicySources));
98 for (size_t i = 0; i < arraysize(kPolicySources); ++i) {
99 source->AddLocalizedString(kPolicySources[i].key,
100 kPolicySources[i].string_id);
101 }
102 }
103
104 void AddCommonLocalizedStringsToSource(content::WebUIDataSource* source) {
105 source->AddLocalizedString("title", IDS_POLICY_TITLE);
106 source->AddLocalizedString("filterPlaceholder",
107 IDS_POLICY_FILTER_PLACEHOLDER);
108 source->AddLocalizedString("reloadPolicies", IDS_POLICY_RELOAD_POLICIES);
109 source->AddLocalizedString("status", IDS_POLICY_STATUS);
110 source->AddLocalizedString("statusDevice", IDS_POLICY_STATUS_DEVICE);
111 source->AddLocalizedString("statusUser", IDS_POLICY_STATUS_USER);
112 source->AddLocalizedString("labelDomain", IDS_POLICY_LABEL_DOMAIN);
113 source->AddLocalizedString("labelUsername", IDS_POLICY_LABEL_USERNAME);
114 source->AddLocalizedString("labelClientId", IDS_POLICY_LABEL_CLIENT_ID);
115 source->AddLocalizedString("labelAssetId", IDS_POLICY_LABEL_ASSET_ID);
116 source->AddLocalizedString("labelLocation", IDS_POLICY_LABEL_LOCATION);
117 source->AddLocalizedString("labelDirectoryApiId",
118 IDS_POLICY_LABEL_DIRECTORY_API_ID);
119 source->AddLocalizedString("labelTimeSinceLastRefresh",
120 IDS_POLICY_LABEL_TIME_SINCE_LAST_REFRESH);
121 source->AddLocalizedString("labelRefreshInterval",
122 IDS_POLICY_LABEL_REFRESH_INTERVAL);
123 source->AddLocalizedString("labelStatus", IDS_POLICY_LABEL_STATUS);
124 source->AddLocalizedString("showUnset", IDS_POLICY_SHOW_UNSET);
125 source->AddLocalizedString("noPoliciesSet", IDS_POLICY_NO_POLICIES_SET);
126 source->AddLocalizedString("headerScope", IDS_POLICY_HEADER_SCOPE);
127 source->AddLocalizedString("headerLevel", IDS_POLICY_HEADER_LEVEL);
128 source->AddLocalizedString("headerName", IDS_POLICY_HEADER_NAME);
129 source->AddLocalizedString("headerValue", IDS_POLICY_HEADER_VALUE);
130 source->AddLocalizedString("headerStatus", IDS_POLICY_HEADER_STATUS);
131 source->AddLocalizedString("headerSource", IDS_POLICY_HEADER_SOURCE);
132 source->AddLocalizedString("showExpandedValue",
133 IDS_POLICY_SHOW_EXPANDED_VALUE);
134 source->AddLocalizedString("hideExpandedValue",
135 IDS_POLICY_HIDE_EXPANDED_VALUE);
136 source->AddLocalizedString("scopeUser", IDS_POLICY_SCOPE_USER);
137 source->AddLocalizedString("scopeDevice", IDS_POLICY_SCOPE_DEVICE);
138 source->AddLocalizedString("levelRecommended", IDS_POLICY_LEVEL_RECOMMENDED);
139 source->AddLocalizedString("levelMandatory", IDS_POLICY_LEVEL_MANDATORY);
140 source->AddLocalizedString("ok", IDS_POLICY_OK);
141 source->AddLocalizedString("unset", IDS_POLICY_UNSET);
142 source->AddLocalizedString("unknown", IDS_POLICY_UNKNOWN);
143 source->AddLocalizedString("notSpecified", IDS_POLICY_NOT_SPECIFIED);
144 AddLocalizedPoilcySourceStrings(source);
145
146 source->SetJsonPath("strings.js");
147 }
148
149 content::WebUIDataSource* CreatePolicyMaterialDesignUIHtmlSource() {
150 content::WebUIDataSource* source =
151 content::WebUIDataSource::Create(chrome::kChromeUIMdPolicyHost);
152 AddCommonLocalizedStringsToSource(source);
153 source->SetDefaultResource(IDR_MD_POLICY_HTML);
154
155 return source;
156 }
157
158
159 content::WebUIDataSource* CreatePolicyUIHtmlSource() {
160 content::WebUIDataSource* source =
161 content::WebUIDataSource::Create(chrome::kChromeUIPolicyHost);
162 AddCommonLocalizedStringsToSource(source);
163 // Add required resources.
164 source->AddResourcePath("policy.css", IDR_POLICY_CSS);
165 source->AddResourcePath("policy.js", IDR_POLICY_JS);
166 source->AddResourcePath("uber_utils.js", IDR_UBER_UTILS_JS);
167 source->SetDefaultResource(IDR_POLICY_HTML);
168
169 return source;
170 }
171
172 // Formats the association state indicated by |data|. If |data| is NULL, the 84 // Formats the association state indicated by |data|. If |data| is NULL, the
173 // state is considered to be UNMANAGED. 85 // state is considered to be UNMANAGED.
174 base::string16 FormatAssociationState(const em::PolicyData* data) { 86 base::string16 FormatAssociationState(const em::PolicyData* data) {
175 if (data) { 87 if (data) {
176 switch (data->state()) { 88 switch (data->state()) {
177 case em::PolicyData::ACTIVE: 89 case em::PolicyData::ACTIVE:
178 return l10n_util::GetStringUTF16(IDS_POLICY_ASSOCIATION_STATE_ACTIVE); 90 return l10n_util::GetStringUTF16(IDS_POLICY_ASSOCIATION_STATE_ACTIVE);
179 case em::PolicyData::UNMANAGED: 91 case em::PolicyData::UNMANAGED:
180 return l10n_util::GetStringUTF16( 92 return l10n_util::GetStringUTF16(
181 IDS_POLICY_ASSOCIATION_STATE_UNMANAGED); 93 IDS_POLICY_ASSOCIATION_STATE_UNMANAGED);
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 void OnDeviceLocalAccountsChanged() override; 292 void OnDeviceLocalAccountsChanged() override;
381 293
382 private: 294 private:
383 const std::string user_id_; 295 const std::string user_id_;
384 policy::DeviceLocalAccountPolicyService* service_; 296 policy::DeviceLocalAccountPolicyService* service_;
385 297
386 DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyStatusProvider); 298 DISALLOW_COPY_AND_ASSIGN(DeviceLocalAccountPolicyStatusProvider);
387 }; 299 };
388 #endif 300 #endif
389 301
390 // The JavaScript message handler for the chrome://policy page.
391 class PolicyUIHandler : public content::WebUIMessageHandler,
392 #if defined(ENABLE_EXTENSIONS)
393 public extensions::ExtensionRegistryObserver,
394 #endif
395 public policy::PolicyService::Observer,
396 public policy::SchemaRegistry::Observer {
397 public:
398 PolicyUIHandler();
399 ~PolicyUIHandler() override;
400
401 // content::WebUIMessageHandler implementation.
402 void RegisterMessages() override;
403
404 #if defined(ENABLE_EXTENSIONS)
405 // extensions::ExtensionRegistryObserver implementation.
406 void OnExtensionLoaded(content::BrowserContext* browser_context,
407 const extensions::Extension* extension) override;
408 void OnExtensionUnloaded(
409 content::BrowserContext* browser_context,
410 const extensions::Extension* extension,
411 extensions::UnloadedExtensionInfo::Reason reason) override;
412 #endif
413
414 // policy::PolicyService::Observer implementation.
415 void OnPolicyUpdated(const policy::PolicyNamespace& ns,
416 const policy::PolicyMap& previous,
417 const policy::PolicyMap& current) override;
418
419 // policy::SchemaRegistry::Observer implementation.
420 void OnSchemaRegistryUpdated(bool has_new_schemas) override;
421
422 private:
423 // Send a dictionary containing the names of all known policies to the UI.
424 void SendPolicyNames() const;
425
426 // Send information about the current policy values to the UI. For each policy
427 // whose value has been set, a dictionary containing the value and additional
428 // metadata is sent.
429 void SendPolicyValues() const;
430
431 // Send the status of cloud policy to the UI. For each scope that has cloud
432 // policy enabled (device and/or user), a dictionary containing status
433 // information is sent.
434 void SendStatus() const;
435
436 // Inserts a description of each policy in |policy_map| into |values|, using
437 // the optional errors in |errors| to determine the status of each policy.
438 void GetPolicyValues(const policy::PolicyMap& policy_map,
439 policy::PolicyErrorMap* errors,
440 base::DictionaryValue* values) const;
441
442 void GetChromePolicyValues(base::DictionaryValue* values) const;
443
444 void HandleInitialized(const base::ListValue* args);
445 void HandleReloadPolicies(const base::ListValue* args);
446
447 void OnRefreshPoliciesDone() const;
448
449 policy::PolicyService* GetPolicyService() const;
450
451 std::string device_domain_;
452
453 // Providers that supply status dictionaries for user and device policy,
454 // respectively. These are created on initialization time as appropriate for
455 // the platform (Chrome OS / desktop) and type of policy that is in effect.
456 scoped_ptr<CloudPolicyStatusProvider> user_status_provider_;
457 scoped_ptr<CloudPolicyStatusProvider> device_status_provider_;
458
459 base::WeakPtrFactory<PolicyUIHandler> weak_factory_;
460
461 DISALLOW_COPY_AND_ASSIGN(PolicyUIHandler);
462 };
463
464 CloudPolicyStatusProvider::CloudPolicyStatusProvider() { 302 CloudPolicyStatusProvider::CloudPolicyStatusProvider() {
465 } 303 }
466 304
467 CloudPolicyStatusProvider::~CloudPolicyStatusProvider() { 305 CloudPolicyStatusProvider::~CloudPolicyStatusProvider() {
468 } 306 }
469 307
470 void CloudPolicyStatusProvider::SetStatusChangeCallback( 308 void CloudPolicyStatusProvider::SetStatusChangeCallback(
471 const base::Closure& callback) { 309 const base::Closure& callback) {
472 callback_ = callback; 310 callback_ = callback;
473 } 311 }
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 policy::SchemaRegistryServiceFactory::GetForContext( 423 policy::SchemaRegistryServiceFactory::GetForContext(
586 Profile::FromWebUI(web_ui())->GetOriginalProfile())->registry(); 424 Profile::FromWebUI(web_ui())->GetOriginalProfile())->registry();
587 registry->RemoveObserver(this); 425 registry->RemoveObserver(this);
588 426
589 #if defined(ENABLE_EXTENSIONS) 427 #if defined(ENABLE_EXTENSIONS)
590 extensions::ExtensionRegistry::Get(Profile::FromWebUI(web_ui())) 428 extensions::ExtensionRegistry::Get(Profile::FromWebUI(web_ui()))
591 ->RemoveObserver(this); 429 ->RemoveObserver(this);
592 #endif 430 #endif
593 } 431 }
594 432
433 void PolicyUIHandler::AddLocalizedPolicyStrings(
434 content::WebUIDataSource* source,
435 const PolicyStringMap* strings,
436 size_t count) {
437 for (size_t i = 0; i < count; ++i)
438 source->AddLocalizedString(strings[i].key, strings[i].string_id);
439 }
440
441 void PolicyUIHandler::AddCommonLocalizedStringsToSource(
442 content::WebUIDataSource* source) {
443 AddLocalizedPolicyStrings(source, kPolicySources,
444 static_cast<size_t>(policy::POLICY_SOURCE_COUNT));
445 source->AddLocalizedString("title", IDS_POLICY_TITLE);
446 source->AddLocalizedString("headerScope", IDS_POLICY_HEADER_SCOPE);
447 source->AddLocalizedString("headerLevel", IDS_POLICY_HEADER_LEVEL);
448 source->AddLocalizedString("headerName", IDS_POLICY_HEADER_NAME);
449 source->AddLocalizedString("headerValue", IDS_POLICY_HEADER_VALUE);
450 source->AddLocalizedString("headerStatus", IDS_POLICY_HEADER_STATUS);
451 source->AddLocalizedString("headerSource", IDS_POLICY_HEADER_SOURCE);
452 source->AddLocalizedString("scopeUser", IDS_POLICY_SCOPE_USER);
453 source->AddLocalizedString("scopeDevice", IDS_POLICY_SCOPE_DEVICE);
454 source->AddLocalizedString("levelRecommended", IDS_POLICY_LEVEL_RECOMMENDED);
455 source->AddLocalizedString("levelMandatory", IDS_POLICY_LEVEL_MANDATORY);
456 source->AddLocalizedString("ok", IDS_POLICY_OK);
457 source->AddLocalizedString("unset", IDS_POLICY_UNSET);
458 source->AddLocalizedString("unknown", IDS_POLICY_UNKNOWN);
459 source->AddLocalizedString("notSpecified", IDS_POLICY_NOT_SPECIFIED);
460 source->SetJsonPath("strings.js");
461 }
462
595 void PolicyUIHandler::RegisterMessages() { 463 void PolicyUIHandler::RegisterMessages() {
596 #if defined(OS_CHROMEOS) 464 #if defined(OS_CHROMEOS)
597 policy::BrowserPolicyConnectorChromeOS* connector = 465 policy::BrowserPolicyConnectorChromeOS* connector =
598 g_browser_process->platform_part()->browser_policy_connector_chromeos(); 466 g_browser_process->platform_part()->browser_policy_connector_chromeos();
599 if (connector->IsEnterpriseManaged()) 467 if (connector->IsEnterpriseManaged())
600 device_status_provider_.reset(new DevicePolicyStatusProvider(connector)); 468 device_status_provider_.reset(new DevicePolicyStatusProvider(connector));
601 469
602 const user_manager::UserManager* user_manager = 470 const user_manager::UserManager* user_manager =
603 user_manager::UserManager::Get(); 471 user_manager::UserManager::Get();
604 if (user_manager->IsLoggedInAsPublicAccount()) { 472 if (user_manager->IsLoggedInAsPublicAccount()) {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 SendPolicyValues(); 550 SendPolicyValues();
683 } 551 }
684 } 552 }
685 553
686 void PolicyUIHandler::OnPolicyUpdated(const policy::PolicyNamespace& ns, 554 void PolicyUIHandler::OnPolicyUpdated(const policy::PolicyNamespace& ns,
687 const policy::PolicyMap& previous, 555 const policy::PolicyMap& previous,
688 const policy::PolicyMap& current) { 556 const policy::PolicyMap& current) {
689 SendPolicyValues(); 557 SendPolicyValues();
690 } 558 }
691 559
560 void PolicyUIHandler::AddPolicyName(const std::string& name,
561 base::DictionaryValue* names) const {
562 names->SetBoolean(name, true);
563 }
564
692 void PolicyUIHandler::SendPolicyNames() const { 565 void PolicyUIHandler::SendPolicyNames() const {
693 base::DictionaryValue names; 566 base::DictionaryValue names;
694 567
695 Profile* profile = Profile::FromWebUI(web_ui()); 568 Profile* profile = Profile::FromWebUI(web_ui());
696 policy::SchemaRegistry* registry = 569 policy::SchemaRegistry* registry =
697 policy::SchemaRegistryServiceFactory::GetForContext( 570 policy::SchemaRegistryServiceFactory::GetForContext(
698 profile->GetOriginalProfile())->registry(); 571 profile->GetOriginalProfile())->registry();
699 scoped_refptr<policy::SchemaMap> schema_map = registry->schema_map(); 572 scoped_refptr<policy::SchemaMap> schema_map = registry->schema_map();
700 573
701 // Add Chrome policy names. 574 // Add Chrome policy names.
702 base::DictionaryValue* chrome_policy_names = new base::DictionaryValue; 575 base::DictionaryValue* chrome_policy_names = new base::DictionaryValue;
703 policy::PolicyNamespace chrome_ns(policy::POLICY_DOMAIN_CHROME, ""); 576 policy::PolicyNamespace chrome_ns(policy::POLICY_DOMAIN_CHROME, "");
704 const policy::Schema* chrome_schema = schema_map->GetSchema(chrome_ns); 577 const policy::Schema* chrome_schema = schema_map->GetSchema(chrome_ns);
705 for (policy::Schema::Iterator it = chrome_schema->GetPropertiesIterator(); 578 for (policy::Schema::Iterator it = chrome_schema->GetPropertiesIterator();
706 !it.IsAtEnd(); it.Advance()) { 579 !it.IsAtEnd(); it.Advance()) {
707 chrome_policy_names->SetBoolean(it.key(), true); 580 AddPolicyName(it.key(), chrome_policy_names);
708 } 581 }
709 names.Set("chromePolicyNames", chrome_policy_names); 582 names.Set("chromePolicyNames", chrome_policy_names);
710 583
711 #if defined(ENABLE_EXTENSIONS) 584 #if defined(ENABLE_EXTENSIONS)
712 // Add extension policy names. 585 // Add extension policy names.
713 base::DictionaryValue* extension_policy_names = new base::DictionaryValue; 586 base::DictionaryValue* extension_policy_names = new base::DictionaryValue;
714 587
715 for (const scoped_refptr<const extensions::Extension>& extension : 588 for (const scoped_refptr<const extensions::Extension>& extension :
716 extensions::ExtensionRegistry::Get(profile)->enabled_extensions()) { 589 extensions::ExtensionRegistry::Get(profile)->enabled_extensions()) {
717 // Skip this extension if it's not an enterprise extension. 590 // Skip this extension if it's not an enterprise extension.
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 } 739 }
867 740
868 void PolicyUIHandler::OnRefreshPoliciesDone() const { 741 void PolicyUIHandler::OnRefreshPoliciesDone() const {
869 web_ui()->CallJavascriptFunction("policy.Page.reloadPoliciesDone"); 742 web_ui()->CallJavascriptFunction("policy.Page.reloadPoliciesDone");
870 } 743 }
871 744
872 policy::PolicyService* PolicyUIHandler::GetPolicyService() const { 745 policy::PolicyService* PolicyUIHandler::GetPolicyService() const {
873 return policy::ProfilePolicyConnectorFactory::GetForBrowserContext( 746 return policy::ProfilePolicyConnectorFactory::GetForBrowserContext(
874 web_ui()->GetWebContents()->GetBrowserContext())->policy_service(); 747 web_ui()->GetWebContents()->GetBrowserContext())->policy_service();
875 } 748 }
876
877 PolicyUI::PolicyUI(content::WebUI* web_ui) : WebUIController(web_ui) {
878 web_ui->AddMessageHandler(new PolicyUIHandler);
879 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui),
880 CreatePolicyUIHtmlSource());
881 }
882
883 PolicyUI::~PolicyUI() {
884 }
885
886 PolicyMaterialDesignUI::PolicyMaterialDesignUI(content::WebUI* web_ui) :
887 WebUIController(web_ui) {
888 web_ui->AddMessageHandler(new PolicyUIHandler);
889 content::WebUIDataSource::Add(Profile::FromWebUI(web_ui),
890 CreatePolicyMaterialDesignUIHtmlSource());
891 }
892
893 PolicyMaterialDesignUI::~PolicyMaterialDesignUI() {
894 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698