| 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() {
|
| -}
|
|
|