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

Unified 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: Description corrected. Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/policy_ui_handler.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/policy_ui_handler.cc
diff --git a/chrome/browser/ui/webui/policy_ui.cc b/chrome/browser/ui/webui/policy_ui_handler.cc
similarity index 79%
copy from chrome/browser/ui/webui/policy_ui.cc
copy to chrome/browser/ui/webui/policy_ui_handler.cc
index 3f768e0f8bc8cbd8a015c0b5bad3589cbfce58d5..d22cf51146339573de2cc24cc6da7e14f4a5a911 100644
--- a/chrome/browser/ui/webui/policy_ui.cc
+++ b/chrome/browser/ui/webui/policy_ui_handler.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/webui/policy_ui.h"
+#include "chrome/browser/ui/webui/policy_ui_handler.h"
#include <stddef.h>
@@ -23,32 +23,25 @@
#include "chrome/browser/policy/schema_registry_service.h"
#include "chrome/browser/policy/schema_registry_service_factory.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/common/url_constants.h"
#include "components/policy/core/browser/browser_policy_connector.h"
#include "components/policy/core/browser/cloud/message_util.h"
#include "components/policy/core/browser/configuration_policy_handler_list.h"
-#include "components/policy/core/browser/policy_error_map.h"
#include "components/policy/core/common/cloud/cloud_policy_client.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "components/policy/core/common/cloud/cloud_policy_core.h"
#include "components/policy/core/common/cloud/cloud_policy_refresh_scheduler.h"
#include "components/policy/core/common/cloud/cloud_policy_store.h"
#include "components/policy/core/common/cloud/cloud_policy_validator.h"
-#include "components/policy/core/common/policy_map.h"
-#include "components/policy/core/common/policy_namespace.h"
-#include "components/policy/core/common/policy_service.h"
+#include "components/policy/core/common/policy_details.h"
#include "components/policy/core/common/policy_types.h"
#include "components/policy/core/common/remote_commands/remote_commands_service.h"
#include "components/policy/core/common/schema.h"
#include "components/policy/core/common/schema_map.h"
-#include "components/policy/core/common/schema_registry.h"
#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_ui.h"
-#include "content/public/browser/web_ui_data_source.h"
-#include "content/public/browser/web_ui_message_handler.h"
#include "google_apis/gaia/gaia_auth_util.h"
-#include "grit/browser_resources.h"
#include "grit/components_strings.h"
+#include "grit/policy_resources.h"
+#include "grit/policy_resources_map.h"
#include "policy/policy_constants.h"
#include "policy/proto/device_management_backend.pb.h"
#include "ui/base/l10n/l10n_util.h"
@@ -69,7 +62,6 @@
#if defined(ENABLE_EXTENSIONS)
#include "extensions/browser/extension_registry.h"
-#include "extensions/browser/extension_registry_observer.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h"
@@ -79,96 +71,15 @@ namespace em = enterprise_management;
namespace {
-struct PolicySourceMap {
- const char* key;
- int string_id;
-};
-
// Strings that map from PolicySource enum to i18n string keys and their IDs.
-const PolicySourceMap kPolicySources[policy::POLICY_SOURCE_COUNT] = {
+// Their order has to follow the order of the policy::PolicySource enum.
+const PolicyStringMap kPolicySources[policy::POLICY_SOURCE_COUNT] = {
{"sourceEnterpriseDefault", IDS_POLICY_SOURCE_ENTERPRISE_DEFAULT},
{"sourceCloud", IDS_POLICY_SOURCE_CLOUD},
{"sourcePublicSessionOverride", IDS_POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE},
- {"sourcePlatform", IDS_POLICY_SOURCE_PLATFORM}
+ {"sourcePlatform", IDS_POLICY_SOURCE_PLATFORM},
};
-void AddLocalizedPoilcySourceStrings(content::WebUIDataSource* source) {
- DCHECK_EQ(static_cast<size_t>(policy::POLICY_SOURCE_COUNT),
- arraysize(kPolicySources));
- for (size_t i = 0; i < arraysize(kPolicySources); ++i) {
- source->AddLocalizedString(kPolicySources[i].key,
- kPolicySources[i].string_id);
- }
-}
-
-void AddCommonLocalizedStringsToSource(content::WebUIDataSource* source) {
- source->AddLocalizedString("title", IDS_POLICY_TITLE);
- source->AddLocalizedString("filterPlaceholder",
- IDS_POLICY_FILTER_PLACEHOLDER);
- source->AddLocalizedString("reloadPolicies", IDS_POLICY_RELOAD_POLICIES);
- source->AddLocalizedString("status", IDS_POLICY_STATUS);
- source->AddLocalizedString("statusDevice", IDS_POLICY_STATUS_DEVICE);
- source->AddLocalizedString("statusUser", IDS_POLICY_STATUS_USER);
- source->AddLocalizedString("labelDomain", IDS_POLICY_LABEL_DOMAIN);
- source->AddLocalizedString("labelUsername", IDS_POLICY_LABEL_USERNAME);
- source->AddLocalizedString("labelClientId", IDS_POLICY_LABEL_CLIENT_ID);
- source->AddLocalizedString("labelAssetId", IDS_POLICY_LABEL_ASSET_ID);
- source->AddLocalizedString("labelLocation", IDS_POLICY_LABEL_LOCATION);
- source->AddLocalizedString("labelDirectoryApiId",
- IDS_POLICY_LABEL_DIRECTORY_API_ID);
- source->AddLocalizedString("labelTimeSinceLastRefresh",
- IDS_POLICY_LABEL_TIME_SINCE_LAST_REFRESH);
- source->AddLocalizedString("labelRefreshInterval",
- IDS_POLICY_LABEL_REFRESH_INTERVAL);
- source->AddLocalizedString("labelStatus", IDS_POLICY_LABEL_STATUS);
- source->AddLocalizedString("showUnset", IDS_POLICY_SHOW_UNSET);
- source->AddLocalizedString("noPoliciesSet", IDS_POLICY_NO_POLICIES_SET);
- source->AddLocalizedString("headerScope", IDS_POLICY_HEADER_SCOPE);
- source->AddLocalizedString("headerLevel", IDS_POLICY_HEADER_LEVEL);
- source->AddLocalizedString("headerName", IDS_POLICY_HEADER_NAME);
- source->AddLocalizedString("headerValue", IDS_POLICY_HEADER_VALUE);
- source->AddLocalizedString("headerStatus", IDS_POLICY_HEADER_STATUS);
- source->AddLocalizedString("headerSource", IDS_POLICY_HEADER_SOURCE);
- source->AddLocalizedString("showExpandedValue",
- IDS_POLICY_SHOW_EXPANDED_VALUE);
- source->AddLocalizedString("hideExpandedValue",
- IDS_POLICY_HIDE_EXPANDED_VALUE);
- source->AddLocalizedString("scopeUser", IDS_POLICY_SCOPE_USER);
- source->AddLocalizedString("scopeDevice", IDS_POLICY_SCOPE_DEVICE);
- source->AddLocalizedString("levelRecommended", IDS_POLICY_LEVEL_RECOMMENDED);
- source->AddLocalizedString("levelMandatory", IDS_POLICY_LEVEL_MANDATORY);
- source->AddLocalizedString("ok", IDS_POLICY_OK);
- source->AddLocalizedString("unset", IDS_POLICY_UNSET);
- source->AddLocalizedString("unknown", IDS_POLICY_UNKNOWN);
- source->AddLocalizedString("notSpecified", IDS_POLICY_NOT_SPECIFIED);
- AddLocalizedPoilcySourceStrings(source);
-
- source->SetJsonPath("strings.js");
-}
-
-content::WebUIDataSource* CreatePolicyMaterialDesignUIHtmlSource() {
- content::WebUIDataSource* source =
- content::WebUIDataSource::Create(chrome::kChromeUIMdPolicyHost);
- AddCommonLocalizedStringsToSource(source);
- source->SetDefaultResource(IDR_MD_POLICY_HTML);
-
- return source;
-}
-
-
-content::WebUIDataSource* CreatePolicyUIHtmlSource() {
- content::WebUIDataSource* source =
- content::WebUIDataSource::Create(chrome::kChromeUIPolicyHost);
- AddCommonLocalizedStringsToSource(source);
- // Add required resources.
- source->AddResourcePath("policy.css", IDR_POLICY_CSS);
- source->AddResourcePath("policy.js", IDR_POLICY_JS);
- source->AddResourcePath("uber_utils.js", IDR_UBER_UTILS_JS);
- source->SetDefaultResource(IDR_POLICY_HTML);
-
- return source;
-}
-
// Formats the association state indicated by |data|. If |data| is NULL, the
// state is considered to be UNMANAGED.
base::string16 FormatAssociationState(const em::PolicyData* data) {
@@ -387,80 +298,6 @@ class DeviceLocalAccountPolicyStatusProvider
};
#endif
-// The JavaScript message handler for the chrome://policy page.
-class PolicyUIHandler : public content::WebUIMessageHandler,
-#if defined(ENABLE_EXTENSIONS)
- public extensions::ExtensionRegistryObserver,
-#endif
- public policy::PolicyService::Observer,
- public policy::SchemaRegistry::Observer {
- public:
- PolicyUIHandler();
- ~PolicyUIHandler() override;
-
- // content::WebUIMessageHandler implementation.
- void RegisterMessages() override;
-
-#if defined(ENABLE_EXTENSIONS)
- // extensions::ExtensionRegistryObserver implementation.
- void OnExtensionLoaded(content::BrowserContext* browser_context,
- const extensions::Extension* extension) override;
- void OnExtensionUnloaded(
- content::BrowserContext* browser_context,
- const extensions::Extension* extension,
- extensions::UnloadedExtensionInfo::Reason reason) override;
-#endif
-
- // policy::PolicyService::Observer implementation.
- void OnPolicyUpdated(const policy::PolicyNamespace& ns,
- const policy::PolicyMap& previous,
- const policy::PolicyMap& current) override;
-
- // policy::SchemaRegistry::Observer implementation.
- void OnSchemaRegistryUpdated(bool has_new_schemas) override;
-
- private:
- // Send a dictionary containing the names of all known policies to the UI.
- void SendPolicyNames() const;
-
- // Send information about the current policy values to the UI. For each policy
- // whose value has been set, a dictionary containing the value and additional
- // metadata is sent.
- void SendPolicyValues() const;
-
- // Send the status of cloud policy to the UI. For each scope that has cloud
- // policy enabled (device and/or user), a dictionary containing status
- // information is sent.
- void SendStatus() const;
-
- // Inserts a description of each policy in |policy_map| into |values|, using
- // the optional errors in |errors| to determine the status of each policy.
- void GetPolicyValues(const policy::PolicyMap& policy_map,
- policy::PolicyErrorMap* errors,
- base::DictionaryValue* values) const;
-
- void GetChromePolicyValues(base::DictionaryValue* values) const;
-
- void HandleInitialized(const base::ListValue* args);
- void HandleReloadPolicies(const base::ListValue* args);
-
- void OnRefreshPoliciesDone() const;
-
- policy::PolicyService* GetPolicyService() const;
-
- std::string device_domain_;
-
- // Providers that supply status dictionaries for user and device policy,
- // respectively. These are created on initialization time as appropriate for
- // the platform (Chrome OS / desktop) and type of policy that is in effect.
- scoped_ptr<CloudPolicyStatusProvider> user_status_provider_;
- scoped_ptr<CloudPolicyStatusProvider> device_status_provider_;
-
- base::WeakPtrFactory<PolicyUIHandler> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(PolicyUIHandler);
-};
-
CloudPolicyStatusProvider::CloudPolicyStatusProvider() {
}
@@ -592,6 +429,36 @@ PolicyUIHandler::~PolicyUIHandler() {
#endif
}
+void PolicyUIHandler::AddLocalizedPolicyStrings(
+ content::WebUIDataSource* source,
+ const PolicyStringMap* strings,
+ size_t count) {
+ for (size_t i = 0; i < count; ++i)
+ source->AddLocalizedString(strings[i].key, strings[i].string_id);
+}
+
+void PolicyUIHandler::AddCommonLocalizedStringsToSource(
+ content::WebUIDataSource* source) {
+ AddLocalizedPolicyStrings(source, kPolicySources,
+ static_cast<size_t>(policy::POLICY_SOURCE_COUNT));
+ source->AddLocalizedString("title", IDS_POLICY_TITLE);
+ source->AddLocalizedString("headerScope", IDS_POLICY_HEADER_SCOPE);
+ source->AddLocalizedString("headerLevel", IDS_POLICY_HEADER_LEVEL);
+ source->AddLocalizedString("headerName", IDS_POLICY_HEADER_NAME);
+ source->AddLocalizedString("headerValue", IDS_POLICY_HEADER_VALUE);
+ source->AddLocalizedString("headerStatus", IDS_POLICY_HEADER_STATUS);
+ source->AddLocalizedString("headerSource", IDS_POLICY_HEADER_SOURCE);
+ source->AddLocalizedString("scopeUser", IDS_POLICY_SCOPE_USER);
+ source->AddLocalizedString("scopeDevice", IDS_POLICY_SCOPE_DEVICE);
+ source->AddLocalizedString("levelRecommended", IDS_POLICY_LEVEL_RECOMMENDED);
+ source->AddLocalizedString("levelMandatory", IDS_POLICY_LEVEL_MANDATORY);
+ source->AddLocalizedString("ok", IDS_POLICY_OK);
+ source->AddLocalizedString("unset", IDS_POLICY_UNSET);
+ source->AddLocalizedString("unknown", IDS_POLICY_UNKNOWN);
+ source->AddLocalizedString("notSpecified", IDS_POLICY_NOT_SPECIFIED);
+ source->SetJsonPath("strings.js");
+}
+
void PolicyUIHandler::RegisterMessages() {
#if defined(OS_CHROMEOS)
policy::BrowserPolicyConnectorChromeOS* connector =
@@ -689,6 +556,11 @@ void PolicyUIHandler::OnPolicyUpdated(const policy::PolicyNamespace& ns,
SendPolicyValues();
}
+void PolicyUIHandler::AddPolicyName(const std::string& name,
+ base::DictionaryValue* names) const {
+ names->SetBoolean(name, true);
+}
+
void PolicyUIHandler::SendPolicyNames() const {
base::DictionaryValue names;
@@ -704,7 +576,7 @@ void PolicyUIHandler::SendPolicyNames() const {
const policy::Schema* chrome_schema = schema_map->GetSchema(chrome_ns);
for (policy::Schema::Iterator it = chrome_schema->GetPropertiesIterator();
!it.IsAtEnd(); it.Advance()) {
- chrome_policy_names->SetBoolean(it.key(), true);
+ AddPolicyName(it.key(), chrome_policy_names);
}
names.Set("chromePolicyNames", chrome_policy_names);
@@ -873,22 +745,3 @@ policy::PolicyService* PolicyUIHandler::GetPolicyService() const {
return policy::ProfilePolicyConnectorFactory::GetForBrowserContext(
web_ui()->GetWebContents()->GetBrowserContext())->policy_service();
}
-
-PolicyUI::PolicyUI(content::WebUI* web_ui) : WebUIController(web_ui) {
- web_ui->AddMessageHandler(new PolicyUIHandler);
- content::WebUIDataSource::Add(Profile::FromWebUI(web_ui),
- CreatePolicyUIHtmlSource());
-}
-
-PolicyUI::~PolicyUI() {
-}
-
-PolicyMaterialDesignUI::PolicyMaterialDesignUI(content::WebUI* web_ui) :
- WebUIController(web_ui) {
- web_ui->AddMessageHandler(new PolicyUIHandler);
- content::WebUIDataSource::Add(Profile::FromWebUI(web_ui),
- CreatePolicyMaterialDesignUIHtmlSource());
-}
-
-PolicyMaterialDesignUI::~PolicyMaterialDesignUI() {
-}
« no previous file with comments | « chrome/browser/ui/webui/policy_ui_handler.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698