Commit 0462d1e6 authored by Roman Aleksandrov's avatar Roman Aleksandrov Committed by Commit Bot

Management WebUI: Device reporting section

Add device reporting section to the management page. Clean-up related C++ backend.
Apply text changes, add images.

Bug: 879146
Change-Id: I50d65fabfb5cf7acf55a9f444794bcf8c34b8d3f
Reviewed-on: https://chromium-review.googlesource.com/c/1470796Reviewed-by: default avatarThiemo Nagel <tnagel@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Roman Aleksandrov <raleksandrov@google.com>
Cr-Commit-Position: refs/heads/master@{#635966}
parent c9d7cd42
......@@ -470,6 +470,7 @@
<include name="IDR_MANAGEMENT_UI_JS" file="resources\management\management_ui.js" type="BINDATA" compress="gzip" preprocess="true" />
<include name="IDR_MANAGEMENT_BROWSER_PROXY_HTML" file="resources\management\management_browser_proxy.html" allowexternalscript="true" type="BINDATA" compress="gzip" />
<include name="IDR_MANAGEMENT_BROWSER_PROXY_JS" file="resources\management\management_browser_proxy.js" type="BINDATA" compress="gzip" preprocess="true" />
<include name="IDR_MANAGEMENT_ICONS_HTML" file="resources\management\icons.html" type="BINDATA" compress="gzip" preprocess="true" />
</if>
<include name="IDR_SITE_ENGAGEMENT_HTML" file="resources\engagement\site_engagement.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" compress="gzip" />
<include name="IDR_SITE_ENGAGEMENT_JS" file="resources\engagement\site_engagement.js" flattenhtml="true" type="BINDATA" compress="gzip" />
......
......@@ -14,6 +14,7 @@ js_type_check("closure_compile") {
js_library("management_ui") {
deps = [
"//ui/webui/resources/js:cr",
"//ui/webui/resources/js:i18n_behavior",
"//ui/webui/resources/js:load_time_data",
"//ui/webui/resources/js:web_ui_listener_behavior",
]
......
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-iconset-svg/iron-iconset-svg.html">
<!-- Set of the management specific icons -->
<iron-iconset-svg name="management" size="24">
<svg>
<defs>
<if expr="chromeos">
<g id="bar-chart"><path d="M5 9.2h3V19H5zM10.6 5h2.8v14h-2.8zm5.6 8H19v6h-2.8z"></path></g>
<g id="report"><path d="M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z"></path></g>
<g id="supervised-user"><path d="M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm3.61 6.34c1.07 0 1.93.86 1.93 1.93 0 1.07-.86 1.93-1.93 1.93-1.07 0-1.93-.86-1.93-1.93-.01-1.07.86-1.93 1.93-1.93zm-6-1.58c1.3 0 2.36 1.06 2.36 2.36 0 1.3-1.06 2.36-2.36 2.36s-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36zm0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68zM11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09z"></path></g>
<g id="timelapse"><path d="M16.24 7.76C15.07 6.59 13.54 6 12 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0 2.34-2.34 2.34-6.14-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></g>
</if>
</defs>
</svg>
</iron-iconset-svg>
......@@ -27,6 +27,29 @@ management.ReportingType = {
*/
management.BrowserReportingResponse;
// <if expr="chromeos">
/**
* @enum {string} Look at ToJSDeviceReportingType usage in
* management_ui_handler.cc for more details.
*/
management.DeviceReportingType = {
SUPERVISED_USER: 'supervised user',
DEVICE_ACTIVITY: 'device activity',
STATISTIC: 'device statistics',
DEVICE: 'device',
LOGS: 'logs'
};
/**
* @typedef {{
* messageId: string,
* reportingType: !management.DeviceReportingType,
* }}
*/
management.DeviceReportingResponse;
// </if>
cr.define('management', function() {
/** @interface */
class ManagementBrowserProxy {
......@@ -39,6 +62,12 @@ cr.define('management', function() {
* or not.
*/
getLocalTrustRootsInfo() {}
/**
* @return {!Promise<!Array<management.DeviceReportingResponse>>} List of
* items to display in device reporting section.
*/
getDeviceReportingInfo() {}
// </if>
/**
......@@ -60,6 +89,11 @@ cr.define('management', function() {
getLocalTrustRootsInfo() {
return cr.sendWithPromise('getLocalTrustRootsInfo');
}
/** @override */
getDeviceReportingInfo() {
return cr.sendWithPromise('getDeviceReportingInfo');
}
// </if>
/** @override */
......
......@@ -4,8 +4,10 @@
<link rel="import" href="chrome://resources/cr_elements/cr_toolbar/cr_toolbar.html">
<link rel="import" href="chrome://resources/cr_elements/icons.html">
<link rel="import" href="chrome://resources/cr_elements/shared_style_css.html">
<link rel="import" href="chrome://resources/html/i18n_behavior.html">
<link rel="import" href="chrome://resources/html/load_time_data.html">
<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
<link rel="import" href="icons.html">
<link rel="import" href="management_browser_proxy.html">
<dom-module id="management-ui">
......@@ -81,6 +83,26 @@
min-height: var(--cr-section-three-line-min-height);
}
<if expr="chromeos">
.device-reporting div {
align-items: center;
display: flex;
}
.device-reporting div + div {
margin-top: 2em;
}
.device-reporting iron-icon {
margin-inline-end: 10px;
width: 24px;
}
.device-reporting {
margin-bottom: 2em;
}
</if>
.extension-name {
align-items: center;
display: flex;
......@@ -129,6 +151,27 @@
<main id="mainContent">
<div class="sections-container">
<div class="card">
<if expr="chromeos">
<template is="dom-if"
if="[[showDeviceReportingInfo_(deviceReportingInfo_)]]">
<section class="three-line single-column">
<h2>$i18n{deviceReporting}</h2>
<div class="content-indented subtitle">
$i18n{deviceConfiguration}
</div>
<template is="dom-repeat" items="[[deviceReportingInfo_]]">
<div class="content-indented device-reporting">
<span>
<iron-icon icon="[[getIconForDeviceReportingType_(
item.reportingType)]]"></iron-icon>
[[i18n(item.messageId)]]
</span>
</div>
</template>
</section>
</template>
</if>
<template is="dom-if"
if="[[showBrowserReportingInfo_(browserReportingInfo_)]]">
<section class="three-line single-column">
......@@ -200,4 +243,4 @@
</main>
</template>
<script src="management_ui.js"></script>
</dom-module>
\ No newline at end of file
</dom-module>
......@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @typedef {{
* messages: !Array<string>,
......@@ -13,9 +14,7 @@ management.BrowserReportingData;
Polymer({
is: 'management-ui',
behaviors: [
WebUIListenerBehavior,
],
behaviors: [WebUIListenerBehavior, I18nBehavior],
properties: {
/**
......@@ -31,6 +30,12 @@ Polymer({
extensions_: Array,
// <if expr="chromeos">
/**
* List of messages related to device reporting.
* @private {?Array<!management.DeviceReportingResponse>}
*/
deviceReportingInfo_: Array,
/**
* Message stating if the Trust Roots are configured.
* @private
......@@ -63,6 +68,7 @@ Polymer({
this.getExtensions_();
// <if expr="chromeos">
this.getDeviceReportingInfo_();
this.getLocalTrustRootsInfo_();
// </if>
},
......@@ -117,6 +123,43 @@ Polymer({
'managementTrustRootsNotConfigured');
});
},
/** @private */
getDeviceReportingInfo_() {
this.browserProxy_.getDeviceReportingInfo().then(reportingInfo => {
this.deviceReportingInfo_ = reportingInfo;
});
},
/**
* @return {boolean} True of there are device reporting info to show.
* @private
*/
showDeviceReportingInfo_() {
return !!this.deviceReportingInfo_ && this.deviceReportingInfo_.length > 0;
},
/**
* @param {management.DeviceReportingType} reportingType
* @return {string} The associated icon.
* @private
*/
getIconForDeviceReportingType_(reportingType) {
switch (reportingType) {
case management.DeviceReportingType.SUPERVISED_USER:
return 'management:supervised-user';
case management.DeviceReportingType.DEVICE_ACTIVITY:
return 'management:timelapse';
case management.DeviceReportingType.STATISTIC:
return 'management:bar-chart';
case management.DeviceReportingType.DEVICE:
return 'cr:computer';
case management.DeviceReportingType.LOGS:
return 'management:report';
default:
return 'cr:computer';
}
},
// </if>
/**
......
......@@ -23,21 +23,11 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() {
content::WebUIDataSource* source =
content::WebUIDataSource::Create(chrome::kChromeUIManagementHost);
source->AddLocalizedString("title", IDS_MANAGEMENT_TITLE);
#if defined(OS_CHROMEOS)
source->AddLocalizedString("deviceReporting",
IDS_MANAGEMENT_DEVICE_REPORTING);
source->AddLocalizedString("browserReporting",
IDS_MANAGEMENT_BROWSER_REPORTING);
source->AddLocalizedString("browserReportingExplanation",
IDS_MANAGEMENT_BROWSER_REPORTING_EXPLANATION);
source->AddLocalizedString("deviceConfiguration",
IDS_MANAGEMENT_DEVICE_CONFIGURATION);
source->AddLocalizedString("extensionReporting",
IDS_MANAGEMENT_EXTENSION_REPORTING);
source->AddLocalizedString("extensionsInstalled",
IDS_MANAGEMENT_EXTENSIONS_INSTALLED);
source->AddLocalizedString("extensionName", IDS_MANAGEMENT_EXTENSIONS_NAME);
source->AddLocalizedString("extensionPermissions",
IDS_MANAGEMENT_EXTENSIONS_PERMISSIONS);
source->AddLocalizedString(kManagementLogUploadEnabled,
IDS_MANAGEMENT_LOG_UPLOAD_ENABLED);
source->AddLocalizedString(kManagementReportActivityTimes,
......@@ -48,6 +38,18 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() {
IDS_MANAGEMENT_REPORT_DEVICE_NETWORK_INTERFACES);
source->AddLocalizedString(kManagementReportUsers,
IDS_MANAGEMENT_REPORT_DEVICE_USERS);
#endif
source->AddLocalizedString("browserReporting",
IDS_MANAGEMENT_BROWSER_REPORTING);
source->AddLocalizedString("browserReportingExplanation",
IDS_MANAGEMENT_BROWSER_REPORTING_EXPLANATION);
source->AddLocalizedString("extensionReporting",
IDS_MANAGEMENT_EXTENSION_REPORTING);
source->AddLocalizedString("extensionsInstalled",
IDS_MANAGEMENT_EXTENSIONS_INSTALLED);
source->AddLocalizedString("extensionName", IDS_MANAGEMENT_EXTENSIONS_NAME);
source->AddLocalizedString("extensionPermissions",
IDS_MANAGEMENT_EXTENSIONS_PERMISSIONS);
source->AddLocalizedString("localTrustRoots",
IDS_MANAGEMENT_LOCAL_TRUST_ROOTS);
source->AddLocalizedString("managementTrustRootsNotConfigured",
......@@ -94,6 +96,7 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() {
IDR_MANAGEMENT_BROWSER_PROXY_JS);
source->AddResourcePath("management_ui.html", IDR_MANAGEMENT_UI_HTML);
source->AddResourcePath("management_ui.js", IDR_MANAGEMENT_UI_JS);
source->AddResourcePath("icons.html", IDR_MANAGEMENT_ICONS_HTML);
source->SetDefaultResource(IDR_MANAGEMENT_HTML);
source->UseGzip();
return source;
......
......@@ -119,63 +119,43 @@ std::string GetAccountDomain(Profile* profile) {
#if defined(OS_CHROMEOS)
void AddChromeOSReportingDevice(base::Value* report_sources) {
policy::BrowserPolicyConnectorChromeOS* connector =
g_browser_process->platform_part()->browser_policy_connector_chromeos();
// Only check for report status in managed environment.
if (!connector->IsEnterpriseManaged())
return;
policy::DeviceCloudPolicyManagerChromeOS* manager =
connector->GetDeviceCloudPolicyManager();
if (!manager)
return;
if (manager->GetSystemLogUploader()->upload_enabled()) {
report_sources->GetList().push_back(
base::Value(kManagementLogUploadEnabled));
}
const policy::DeviceStatusCollector* collector =
manager->GetStatusUploader()->device_status_collector();
if (collector->report_hardware_status()) {
report_sources->GetList().push_back(
base::Value(kManagementReportHardwareStatus));
enum class DeviceReportingType {
kSupervisedUser,
kDeviceActivity,
kDeviceStatistics,
kDevice,
kLogs
};
// Corresponds to DeviceReportingType in management_browser_proxy.js
std::string ToJSDeviceReportingType(const DeviceReportingType& type) {
switch (type) {
case DeviceReportingType::kSupervisedUser:
return "supervised user";
case DeviceReportingType::kDeviceActivity:
return "device activity";
case DeviceReportingType::kDeviceStatistics:
return "device statistics";
case DeviceReportingType::kDevice:
return "device";
case DeviceReportingType::kLogs:
return "logs";
default:
NOTREACHED() << "Unknown device reporting type";
return "device";
}
}
void AddChromeOSReportingSecurity(base::Value* report_sources) {}
void AddChromeOSReportingUserActivity(base::Value* report_sources) {
policy::BrowserPolicyConnectorChromeOS* connector =
g_browser_process->platform_part()->browser_policy_connector_chromeos();
// Only check for report status in managed environment.
if (!connector->IsEnterpriseManaged())
return;
policy::DeviceCloudPolicyManagerChromeOS* manager =
connector->GetDeviceCloudPolicyManager();
if (!manager)
return;
const policy::DeviceStatusCollector* collector =
manager->GetStatusUploader()->device_status_collector();
if (collector->report_activity_times()) {
report_sources->GetList().push_back(
base::Value(kManagementReportActivityTimes));
}
if (collector->report_users()) {
report_sources->GetList().push_back(base::Value(kManagementReportUsers));
}
void AddDeviceReportingElement(base::Value* report_sources,
const std::string& message_id,
const DeviceReportingType& type) {
base::Value data(base::Value::Type::DICTIONARY);
data.SetKey("messageId", base::Value(message_id));
data.SetKey("reportingType", base::Value(ToJSDeviceReportingType(type)));
report_sources->GetList().push_back(std::move(data));
}
void AddChromeOSReportingWeb(base::Value* report_sources) {
void AddDeviceReportingInfo(base::Value* report_sources) {
policy::BrowserPolicyConnectorChromeOS* connector =
g_browser_process->platform_part()->browser_policy_connector_chromeos();
......@@ -192,48 +172,28 @@ void AddChromeOSReportingWeb(base::Value* report_sources) {
const policy::DeviceStatusCollector* collector =
manager->GetStatusUploader()->device_status_collector();
if (collector->report_network_interfaces()) {
report_sources->GetList().push_back(
base::Value(kManagementReportNetworkInterfaces));
}
}
void AddChromeOSReportingInfo(base::Value* report_sources) {
policy::BrowserPolicyConnectorChromeOS* connector =
g_browser_process->platform_part()->browser_policy_connector_chromeos();
// Only check for report status in managed environment.
if (!connector->IsEnterpriseManaged())
return;
policy::DeviceCloudPolicyManagerChromeOS* manager =
connector->GetDeviceCloudPolicyManager();
if (!manager)
return;
if (manager->GetSystemLogUploader()->upload_enabled()) {
report_sources->GetList().push_back(
base::Value(kManagementLogUploadEnabled));
}
const policy::DeviceStatusCollector* collector =
manager->GetStatusUploader()->device_status_collector();
// Elements appear on the page in the order they are added.
if (collector->report_activity_times()) {
report_sources->GetList().push_back(
base::Value(kManagementReportActivityTimes));
AddDeviceReportingElement(report_sources, kManagementReportActivityTimes,
DeviceReportingType::kDeviceActivity);
} else {
if (collector->report_users()) {
AddDeviceReportingElement(report_sources, kManagementReportUsers,
DeviceReportingType::kSupervisedUser);
}
}
if (collector->report_hardware_status()) {
report_sources->GetList().push_back(
base::Value(kManagementReportHardwareStatus));
AddDeviceReportingElement(report_sources, kManagementReportHardwareStatus,
DeviceReportingType::kDeviceStatistics);
}
if (collector->report_network_interfaces()) {
report_sources->GetList().push_back(
base::Value(kManagementReportNetworkInterfaces));
AddDeviceReportingElement(report_sources,
kManagementReportNetworkInterfaces,
DeviceReportingType::kDevice);
}
if (collector->report_users()) {
report_sources->GetList().push_back(base::Value(kManagementReportUsers));
if (manager->GetSystemLogUploader()->upload_enabled()) {
AddDeviceReportingElement(report_sources, kManagementLogUploadEnabled,
DeviceReportingType::kLogs);
}
}
#endif // defined(OS_CHROMEOS)
......@@ -329,27 +289,11 @@ void ManagementUIHandler::RegisterMessages() {
"getLocalTrustRootsInfo",
base::BindRepeating(&ManagementUIHandler::HandleGetLocalTrustRootsInfo,
base::Unretained(this)));
#endif // defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
"getReportingDevice",
base::BindRepeating(&ManagementUIHandler::HandleGetReportingDevice,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getReportingInfo",
base::BindRepeating(&ManagementUIHandler::HandleGetReportingInfo,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getReportingSecurity",
base::BindRepeating(&ManagementUIHandler::HandleGetReportingSecurity,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getReportingUserActivity",
base::BindRepeating(&ManagementUIHandler::HandleGetReportingUserActivity,
base::Unretained(this)));
web_ui()->RegisterMessageCallback(
"getReportingWeb",
base::BindRepeating(&ManagementUIHandler::HandleGetReportingWeb,
"getDeviceReportingInfo",
base::BindRepeating(&ManagementUIHandler::HandleGetDeviceReportingInfo,
base::Unretained(this)));
#endif // defined(OS_CHROMEOS)
web_ui()->RegisterMessageCallback(
"initBrowserReportingInfo",
base::BindRepeating(&ManagementUIHandler::HandleInitBrowserReportingInfo,
......@@ -595,75 +539,19 @@ void ManagementUIHandler::HandleGetLocalTrustRootsInfo(
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */,
trust_roots_configured);
}
#endif // defined(OS_CHROMEOS)
void ManagementUIHandler::HandleGetReportingDevice(
void ManagementUIHandler::HandleGetDeviceReportingInfo(
const base::ListValue* args) {
base::Value report_sources(base::Value::Type::LIST);
AllowJavascript();
// Only Chrome OS devices report status.
#if defined(OS_CHROMEOS)
AddChromeOSReportingDevice(&report_sources);
#endif // defined(OS_CHROMEOS)
AddDeviceReportingInfo(&report_sources);
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */,
report_sources);
}
void ManagementUIHandler::HandleGetReportingInfo(const base::ListValue* args) {
base::Value report_sources(base::Value::Type::LIST);
AllowJavascript();
// Only Chrome OS devices report status.
#if defined(OS_CHROMEOS)
AddChromeOSReportingInfo(&report_sources);
#endif // defined(OS_CHROMEOS)
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */,
report_sources);
}
void ManagementUIHandler::HandleGetReportingSecurity(
const base::ListValue* args) {
base::Value report_sources(base::Value::Type::LIST);
AllowJavascript();
// Only Chrome OS devices report status.
#if defined(OS_CHROMEOS)
AddChromeOSReportingSecurity(&report_sources);
#endif // defined(OS_CHROMEOS)
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */,
report_sources);
}
void ManagementUIHandler::HandleGetReportingUserActivity(
const base::ListValue* args) {
base::Value report_sources(base::Value::Type::LIST);
AllowJavascript();
// Only Chrome OS devices report status.
#if defined(OS_CHROMEOS)
AddChromeOSReportingUserActivity(&report_sources);
#endif // defined(OS_CHROMEOS)
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */,
report_sources);
}
void ManagementUIHandler::HandleGetReportingWeb(const base::ListValue* args) {
base::Value report_sources(base::Value::Type::LIST);
AllowJavascript();
// Only Chrome OS devices report status.
#if defined(OS_CHROMEOS)
AddChromeOSReportingWeb(&report_sources);
#endif // defined(OS_CHROMEOS)
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */,
report_sources);
}
void ManagementUIHandler::HandleInitBrowserReportingInfo(
const base::ListValue* args) {
......
......@@ -103,22 +103,16 @@ class ManagementUIHandler : public content::WebUIMessageHandler {
void HandleGetDeviceManagementStatus(const base::ListValue* args);
#if defined(OS_CHROMEOS)
void HandleGetDeviceReportingInfo(const base::ListValue* args);
#endif // defined(OS_CHROMEOS)
void HandleGetExtensions(const base::ListValue* args);
#if defined(OS_CHROMEOS)
void HandleGetLocalTrustRootsInfo(const base::ListValue* args);
#endif // defined(OS_CHROMEOS)
void HandleGetReportingDevice(const base::ListValue* args);
void HandleGetReportingInfo(const base::ListValue* args);
void HandleGetReportingSecurity(const base::ListValue* args);
void HandleGetReportingUserActivity(const base::ListValue* args);
void HandleGetReportingWeb(const base::ListValue* args);
void HandleInitBrowserReportingInfo(const base::ListValue* args);
#if BUILDFLAG(ENABLE_EXTENSIONS)
......
......@@ -41,33 +41,30 @@
Your account is managed by <ph name="ENROLLMENT_DOMAIN">$1<ex>example.com</ex></ph>. This means your administrator may remotely configure your account.
</message>
<message name="IDS_MANAGEMENT_DEVICE_REPORTING" desc="Title of the types of device reporting section of the page">
Reporting
</message>
<message name="IDS_MANAGEMENT_BROWSER_REPORTING" desc="Title of the types of browser reporting section of the page">
Browser reporting
</message>
<message name="IDS_MANAGEMENT_BROWSER_REPORTING_EXPLANATION" desc="Message explaining browser reporting">
Your browser has been configured to report
</message>
<message name="IDS_MANAGEMENT_DEVICE_CONFIGURATION" desc="Message telling users that their administrator has set some specific policies on their device">
Your device has been configured to:
</message>
<message name="IDS_MANAGEMENT_LOG_UPLOAD_ENABLED" desc="Message stating that administrators have access to system logs on user's device.">
send system logs to the management server
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_ACTIVITY_TIMES" desc="Message stating that administrators see device activity times.">
report time periods when a user is active on the device
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_HARDWARE_STATUS" desc="Message stating that administrators see device hardware status.">
report hardware statistics such as CPU/RAM usage
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_NETWORK_INTERFACES" desc="Message stating that administrators see device network interfaces.">
report list of network interfaces with their types and hardware addresses
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_USERS" desc="Message stating that administrators see all users that have used the device recently.">
report list of device users that have recently logged in
</message>
<if expr="chromeos">
<!-- Strings related to device reporting section of the management page -->
<message name="IDS_MANAGEMENT_DEVICE_REPORTING" desc="Title of the types of device reporting section of the page">
Device
</message>
<message name="IDS_MANAGEMENT_DEVICE_CONFIGURATION" desc="Message telling users that their administrator has set some specific policies on their device">
Your administrator can see:
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_USERS" desc="Message stating that administrators see all users that have used the device recently.">
Who has used the device recently
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_ACTIVITY_TIMES" desc="Message stating that administrators see device activity times.">
Who has used the device recently and when
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_HARDWARE_STATUS" desc="Message stating that administrators see device hardware status.">
Device statistics such as CPU/RAM usage
</message>
<message name="IDS_MANAGEMENT_LOG_UPLOAD_ENABLED" desc="Message stating that administrators have access to system logs on user's device.">
Detailed system logs
</message>
<message name="IDS_MANAGEMENT_REPORT_DEVICE_NETWORK_INTERFACES" desc="Message stating that administrators see device network interfaces.">
Network addresses
</message>
</if>
<message name="IDS_MANAGEMENT_EXTENSION_REPORTING" desc="Title of the force installed extensions section of the page">
Extension reporting
......@@ -88,6 +85,14 @@
<message name="IDS_MANAGEMENT_TRUST_ROOTS_NOT_CONFIGURED" desc="Message describing that the administrators have not installed certificates">
The contents of websites that you visit is not seen by your administrators
</message>
<message name="IDS_MANAGEMENT_BROWSER_REPORTING" desc="Title of the types of browser reporting section of the page">
Browser
</message>
<message name="IDS_MANAGEMENT_BROWSER_REPORTING_EXPLANATION" desc="Message explaining browser reporting">
Your administrator can see:
</message>
<message name="IDS_MANAGEMENT_EXTENSION_REPORT_MACHINE_NAME" desc="Message explaining that an extension currently reports the user's machine name">
Your machine's name
</message>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment