Commit 149f5cd5 authored by Yann Dago's avatar Yann Dago Committed by Commit Bot

Management WebUI: Refactor to remove non static data from loadTimeData

Visual: http://screen/f95xLi88ybU

Bug: 951066
Change-Id: I31ddebbd8b41a291b668b24c47cc4a1e9db33c44
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1558686Reviewed-by: default avatarHector Carmona <hcarmona@chromium.org>
Reviewed-by: default avatarThiemo Nagel <tnagel@chromium.org>
Commit-Queue: Yann Dago <ydago@chromium.org>
Cr-Commit-Position: refs/heads/master@{#650405}
parent 9a8df283
...@@ -28,6 +28,27 @@ management.ReportingType = { ...@@ -28,6 +28,27 @@ management.ReportingType = {
*/ */
management.BrowserReportingResponse; management.BrowserReportingResponse;
/**
* @typedef {{
* overview: string,
* setup: string,
* data: string,
* }}
*/
management.ManagedInfo;
/**
* @typedef {{
* accountManagedInfo: ?management.ManagedInfo,
* browserManagementNotice: string,
* deviceManagedInfo: ?management.ManagedInfo,
* extensionReportingTitle: string,
* pageSubtitle: string,
* overview: string,
* }}
*/
management.ManagedDataResponse;
// <if expr="chromeos"> // <if expr="chromeos">
/** /**
* @enum {string} Look at ToJSDeviceReportingType usage in * @enum {string} Look at ToJSDeviceReportingType usage in
...@@ -52,33 +73,12 @@ management.DeviceReportingType = { ...@@ -52,33 +73,12 @@ management.DeviceReportingType = {
management.DeviceReportingResponse; management.DeviceReportingResponse;
// </if> // </if>
/**
* @typedef {{
* overview: string,
* setup: string,
* data: string,
* }}
*/
management.ManagedInfo;
/**
* @typedef {{
* overview: string,
* deviceManagedInfo: ?management.ManagedInfo,
* accountManagedInfo: ?management.ManagedInfo,
* }}
*/
management.ManagementStatus;
cr.define('management', function() { cr.define('management', function() {
/** @interface */ /** @interface */
class ManagementBrowserProxy { class ManagementBrowserProxy {
/** @return {!Promise<!Array<!management.Extension>>} */ /** @return {!Promise<!Array<!management.Extension>>} */
getExtensions() {} getExtensions() {}
/** @return {!Promise<!management.ManagementStatus>} */
getManagementStatus() {}
// <if expr="chromeos"> // <if expr="chromeos">
/** /**
* @return {!Promise<boolean>} Boolean describing trust root configured * @return {!Promise<boolean>} Boolean describing trust root configured
...@@ -93,10 +93,8 @@ cr.define('management', function() { ...@@ -93,10 +93,8 @@ cr.define('management', function() {
getDeviceReportingInfo() {} getDeviceReportingInfo() {}
// </if> // </if>
// <if expr="not chromeos"> /** @return {!Promise<!management.ManagedDataResponse>} */
/** @return {string} */ getContextualManagedData() {}
getManagementNotice() {}
// </if>
/** /**
* @return {!Promise<!Array<!management.BrowserReportingResponse>>} The list * @return {!Promise<!Array<!management.BrowserReportingResponse>>} The list
...@@ -112,11 +110,6 @@ cr.define('management', function() { ...@@ -112,11 +110,6 @@ cr.define('management', function() {
return cr.sendWithPromise('getExtensions'); return cr.sendWithPromise('getExtensions');
} }
/** @override */
getManagementStatus() {
return cr.sendWithPromise('getManagementStatus');
}
// <if expr="chromeos"> // <if expr="chromeos">
/** @override */ /** @override */
getLocalTrustRootsInfo() { getLocalTrustRootsInfo() {
...@@ -129,12 +122,10 @@ cr.define('management', function() { ...@@ -129,12 +122,10 @@ cr.define('management', function() {
} }
// </if> // </if>
// <if expr="not chromeos">
/** @override */ /** @override */
getManagementNotice() { getContextualManagedData() {
return loadTimeData.getString('managementNotice'); return cr.sendWithPromise('getContextualManagedData');
} }
// </if>
/** @override */ /** @override */
initBrowserReportingInfo() { initBrowserReportingInfo() {
......
...@@ -96,10 +96,14 @@ ...@@ -96,10 +96,14 @@
margin-top: 1em; margin-top: 1em;
} }
.overview-messages div + div { .overview-messages {
margin-top: 0; margin-top: 0;
} }
.overview-messages li {
margin-top: 8px;
}
<if expr="chromeos"> <if expr="chromeos">
.device-reporting div { .device-reporting div {
align-items: center; align-items: center;
...@@ -173,36 +177,27 @@ ...@@ -173,36 +177,27 @@
[[subtitle_]] [[subtitle_]]
</section> </section>
<section class="single-column overview-section"> <section class="single-column overview-section">
<if expr="not chromeos"> <if expr="not chromeos">
<p inner-h-t-m-l="[[managementNoticeHtml_]]"></p> <p inner-h-t-m-l="[[managementNoticeHtml_]]"></p>
</if> </if>
<if expr="chromeos"> <if expr="chromeos">
<div>[[managementOverview_]]</div> <div>[[managementOverview_]]</div>
<div class="overview-messages" <div>[[deviceManagedInfo_.overview]]</div>
<ul class="overview-messages"
hidden="[[!deviceManagedInfo_]]"> hidden="[[!deviceManagedInfo_]]">
[[deviceManagedInfo_.overview]] <li>
<div class="content-indented">
[[deviceManagedInfo_.setup]] [[deviceManagedInfo_.setup]]
<a href="$i18nRaw{managementDeviceLearnMoreUrl}" <a href="$i18nRaw{managementDeviceLearnMoreUrl}"
target="_blank">$i18n{learnMore}</a> target="_blank">$i18n{learnMore}</a>
</div> </li>
<div class="content-indented">[[deviceManagedInfo_.data]]</div> <li>[[deviceManagedInfo_.data]]</li>
</div> </ul>
</if>
<div class="overview-messages" hidden="[[!accountManagedInfo_]]">
[[accountManagedInfo_.overview]]
<div class="content-indented">
<if expr="chromeos">
[[accountManagedInfo_.setup]]
<a href="$i18nRaw{managementAccountLearnMoreUrl}"
target="_blank">$i18n{learnMore}</a>
</if>
<if expr="not chromeos">
[[accountManagedInfo_.setup]]
</if> </if>
</div> <div>[[accountManagedInfo_.overview]]</div>
<div class="content-indented">[[accountManagedInfo_.data]]</div> <ul class="overview-messages" hidden="[[!accountManagedInfo_]]">
</div> <li>[[accountManagedInfo_.setup]]</li>
<li>[[accountManagedInfo_.data]]</li>
</ul>
</section> </section>
<if expr="chromeos"> <if expr="chromeos">
<div hidden="[[!localTrustRoots_]]"> <div hidden="[[!localTrustRoots_]]">
......
...@@ -81,8 +81,7 @@ Polymer({ ...@@ -81,8 +81,7 @@ Polymer({
'browser-reporting-info-updated', 'browser-reporting-info-updated',
reportingInfo => this.onBrowserReportingInfoReceived_(reportingInfo)); reportingInfo => this.onBrowserReportingInfoReceived_(reportingInfo));
this.addWebUIListener('update-load-time-data', data => { this.addWebUIListener('managed_state_changed', () => {
loadTimeData.overrideValues(data);
this.updateManagedFields_(); this.updateManagedFields_();
}); });
...@@ -91,7 +90,6 @@ Polymer({ ...@@ -91,7 +90,6 @@ Polymer({
this.getDeviceReportingInfo_(); this.getDeviceReportingInfo_();
this.getLocalTrustRootsInfo_(); this.getLocalTrustRootsInfo_();
// </if> // </if>
this.getManagementStatus_();
}, },
/** @private */ /** @private */
...@@ -128,17 +126,6 @@ Polymer({ ...@@ -128,17 +126,6 @@ Polymer({
.map(reportingType => reportingInfoMap[reportingType]); .map(reportingType => reportingInfoMap[reportingType]);
}, },
/** @private */
getManagementStatus_() {
this.browserProxy_.getManagementStatus().then(status => {
// <if expr="chromeos">
this.managementOverview_ = status.overview;
this.deviceManagedInfo_ = status.deviceManagedInfo;
// </if>
this.accountManagedInfo_ = status.accountManagedInfo;
});
},
/** @private */ /** @private */
getExtensions_() { getExtensions_() {
this.browserProxy_.getExtensions().then(extensions => { this.browserProxy_.getExtensions().then(extensions => {
...@@ -250,11 +237,17 @@ Polymer({ ...@@ -250,11 +237,17 @@ Polymer({
/** @private */ /** @private */
updateManagedFields_() { updateManagedFields_() {
this.subtitle_ = loadTimeData.getString('subtitle'); this.browserProxy_.getContextualManagedData().then(data => {
this.extensionReportingSubtitle_ = data.extensionReportingTitle;
this.subtitle_ = data.pageSubtitle;
this.accountManagedInfo_ = data.accountManagedInfo;
// <if expr="chromeos">
this.managementOverview_ = data.overview;
this.deviceManagedInfo_ = data.deviceManagedInfo;
// </if>
// <if expr="not chromeos"> // <if expr="not chromeos">
this.managementNoticeHtml_ = this.browserProxy_.getManagementNotice(); this.managementNoticeHtml_ = data.browserManagementNotice;
// </if> // </if>
this.extensionReportingSubtitle_ = });
loadTimeData.getString('extensionReportingTitle');
}, },
}); });
...@@ -123,8 +123,6 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() { ...@@ -123,8 +123,6 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() {
source->AddString("managementDeviceLearnMoreUrl", source->AddString("managementDeviceLearnMoreUrl",
chrome::kLearnMoreEnterpriseURL); chrome::kLearnMoreEnterpriseURL);
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
source->AddString("managementAccountLearnMoreUrl",
chrome::kManagedUiLearnMoreUrl);
source->SetJsonPath("strings.js"); source->SetJsonPath("strings.js");
// Add required resources. // Add required resources.
......
...@@ -33,21 +33,14 @@ class ManagementUITest : public InProcessBrowserTest { ...@@ -33,21 +33,14 @@ class ManagementUITest : public InProcessBrowserTest {
void VerifyTexts(base::Value* actual_values, void VerifyTexts(base::Value* actual_values,
std::map<std::string, base::string16>& expected_values) { std::map<std::string, base::string16>& expected_values) {
base::ListValue* values_as_list = NULL; base::DictionaryValue* values_as_dict = NULL;
actual_values->GetAsDictionary(&values_as_dict);
actual_values->GetAsList(&values_as_list); for (const auto& val : expected_values) {
for (size_t i = 0; i < values_as_list->GetSize(); ++i) { base::string16 actual_value;
base::Value* result = NULL; values_as_dict->GetString(val.first, &actual_value);
EXPECT_TRUE(values_as_list->Get(i, &result)); ASSERT_EQ(actual_value, val.second);
auto* name = result->FindStringKey("name");
auto* value = result->FindKey("value");
DCHECK(name);
auto expected_value = base::Value(expected_values[*name]);
DCHECK(value);
ASSERT_TRUE(value->Equals(&expected_value));
} }
} }
policy::MockConfigurationPolicyProvider* provider() { return &provider_; } policy::MockConfigurationPolicyProvider* provider() { return &provider_; }
policy::ProfilePolicyConnector* profile_policy_connector() { policy::ProfilePolicyConnector* profile_policy_connector() {
...@@ -68,21 +61,10 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -68,21 +61,10 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
// The browser is not managed. // The browser is not managed.
const std::string javascript = const std::string javascript =
"const unmanaged_result = [];" "management.ManagementBrowserProxyImpl.getInstance()"
"unmanaged_result.push({" " .getContextualManagedData()"
" name: 'browserManagementNotice'," " .then(managed_result => "
" value: management.ManagementBrowserProxyImpl" " domAutomationController.send(JSON.stringify(managed_result)));";
" .getInstance().getManagementNotice()"
"});"
"unmanaged_result.push({"
" name: 'extensionReportingTitle',"
" value: loadTimeData.getString('extensionReportingTitle')"
"});"
"unmanaged_result.push({"
" name: 'pageSubtitle',"
" value: loadTimeData.getString('subtitle')"
"});"
"domAutomationController.send(JSON.stringify(unmanaged_result));";
content::WebContents* contents = content::WebContents* contents =
browser()->tab_strip_model()->GetActiveWebContents(); browser()->tab_strip_model()->GetActiveWebContents();
...@@ -101,6 +83,9 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -101,6 +83,9 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)}, l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)},
{"pageSubtitle", {"pageSubtitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)}, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)},
{"accountManagedInfo.overview", base::string16()},
{"accountManagedInfo.data", base::string16()},
{"accountManagedInfo.setup", base::string16()},
}; };
VerifyTexts(unmanaged_value_ptr.get(), expected_unmanaged_values); VerifyTexts(unmanaged_value_ptr.get(), expected_unmanaged_values);
...@@ -117,24 +102,8 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -117,24 +102,8 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
contents = browser()->tab_strip_model()->GetActiveWebContents(); contents = browser()->tab_strip_model()->GetActiveWebContents();
std::string managed_json; std::string managed_json;
const std::string javascript_2 =
"const managed_result = [];" ASSERT_TRUE(content::ExecuteScriptAndExtractString(contents, javascript,
"managed_result.push({"
" name: 'browserManagementNotice',"
" value: management.ManagementBrowserProxyImpl"
" .getInstance().getManagementNotice()"
"});"
"managed_result.push({"
" name: 'extensionReportingTitle',"
" value: loadTimeData.getString('extensionReportingTitle')"
"});"
"managed_result.push({"
" name: 'pageSubtitle',"
" value: loadTimeData.getString('subtitle')"
"});"
"domAutomationController.send(JSON.stringify(managed_result));";
ASSERT_TRUE(content::ExecuteScriptAndExtractString(contents, javascript_2,
&managed_json)); &managed_json));
std::unique_ptr<base::Value> managed_value_ptr = std::unique_ptr<base::Value> managed_value_ptr =
...@@ -147,6 +116,13 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -147,6 +116,13 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
{"extensionReportingTitle", {"extensionReportingTitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)}, l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)},
{"pageSubtitle", l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE)}, {"pageSubtitle", l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE)},
{"accountManagedInfo.overview",
l10n_util::GetStringUTF16(
IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION_UNKNOWN_DOMAIN)},
{"accountManagedInfo.data",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_DATA)},
{"accountManagedInfo.setup",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP)},
}; };
VerifyTexts(managed_value_ptr.get(), expected_managed_values); VerifyTexts(managed_value_ptr.get(), expected_managed_values);
......
...@@ -116,10 +116,10 @@ const char kManagementReportNetworkInterfaces[] = ...@@ -116,10 +116,10 @@ const char kManagementReportNetworkInterfaces[] =
"managementReportNetworkInterfaces"; "managementReportNetworkInterfaces";
const char kManagementReportUsers[] = "managementReportUsers"; const char kManagementReportUsers[] = "managementReportUsers";
const char kManagementPrinting[] = "managementPrinting"; const char kManagementPrinting[] = "managementPrinting";
const char kDeviceManagedInfo[] = "deviceManagedInfo";
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
const char kOverview[] = "overview"; const char kOverview[] = "overview";
const char kDeviceManagedInfo[] = "deviceManagedInfo";
const char kAccountManagedInfo[] = "accountManagedInfo"; const char kAccountManagedInfo[] = "accountManagedInfo";
const char kSetup[] = "setup"; const char kSetup[] = "setup";
const char kData[] = "data"; const char kData[] = "data";
...@@ -155,53 +155,6 @@ std::string GetAccountDomain(Profile* profile) { ...@@ -155,53 +155,6 @@ std::string GetAccountDomain(Profile* profile) {
return consumer_domain_pos == std::string::npos ? domain : std::string(); return consumer_domain_pos == std::string::npos ? domain : std::string();
} }
#if !defined(OS_CHROMEOS)
void GetDataManagementBrowserContextualSourceUpdate(
base::DictionaryValue* update,
Profile* profile,
bool managed) {
auto management_domain = GetAccountDomain(profile);
if (management_domain.empty()) {
update->SetString(
"extensionReportingTitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED));
update->SetString("managementNotice",
l10n_util::GetStringFUTF16(
managed ? IDS_MANAGEMENT_BROWSER_NOTICE
: IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
update->SetString("subtitle",
l10n_util::GetStringUTF16(
managed ? IDS_MANAGEMENT_SUBTITLE
: IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
} else {
update->SetString(
"extensionReportingTitle",
l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY,
base::UTF8ToUTF16(management_domain)));
update->SetString(
"managementNotice",
managed ? l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_MANAGEMENT_BY_NOTICE,
base::UTF8ToUTF16(management_domain),
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))
: l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
update->SetString(
"subtitle",
managed
? l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY,
base::UTF8ToUTF16(management_domain))
: l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
}
}
#endif // !defined(OS_CHROMEOS)
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
enum class DeviceReportingType { enum class DeviceReportingType {
...@@ -385,17 +338,13 @@ void ManagementUIHandler::InitializeInternal(content::WebUI* web_ui, ...@@ -385,17 +338,13 @@ void ManagementUIHandler::InitializeInternal(content::WebUI* web_ui,
handler->managed_ = IsProfileManaged(profile) || IsBrowserManaged(); handler->managed_ = IsProfileManaged(profile) || IsBrowserManaged();
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
source->AddLocalizedStrings(
*handler->GetDataManagementContextualSourceUpdate(profile));
handler->web_ui_data_source_name_ = source->GetSource();
web_ui->AddMessageHandler(std::move(handler)); web_ui->AddMessageHandler(std::move(handler));
} }
void ManagementUIHandler::RegisterMessages() { void ManagementUIHandler::RegisterMessages() {
web_ui()->RegisterMessageCallback( web_ui()->RegisterMessageCallback(
"getManagementStatus", "getContextualManagedData",
base::BindRepeating(&ManagementUIHandler::HandleGetManagementStatus, base::BindRepeating(&ManagementUIHandler::HandleGetContextualManagedData,
base::Unretained(this))); base::Unretained(this)));
web_ui()->RegisterMessageCallback( web_ui()->RegisterMessageCallback(
"getExtensions", "getExtensions",
...@@ -523,6 +472,57 @@ void ManagementUIHandler::AddExtensionReportingInfo( ...@@ -523,6 +472,57 @@ void ManagementUIHandler::AddExtensionReportingInfo(
} }
} }
base::DictionaryValue ManagementUIHandler::GetContextualManagedData(
Profile* profile) const {
base::DictionaryValue response;
auto management_domain = GetAccountDomain(profile);
if (management_domain.empty()) {
response.SetString(
"extensionReportingTitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED));
#if !defined(OS_CHROMEOS)
response.SetString("browserManagementNotice",
l10n_util::GetStringFUTF16(
managed_ ? IDS_MANAGEMENT_BROWSER_NOTICE
: IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
response.SetString("pageSubtitle",
l10n_util::GetStringUTF16(
managed_ ? IDS_MANAGEMENT_SUBTITLE
: IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
#endif // !defined(OS_CHROMEOS)
} else {
response.SetString(
"extensionReportingTitle",
l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY,
base::UTF8ToUTF16(management_domain)));
#if !defined(OS_CHROMEOS)
response.SetString(
"browserManagementNotice",
managed_ ? l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_MANAGEMENT_BY_NOTICE,
base::UTF8ToUTF16(management_domain),
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))
: l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
#endif // !defined(OS_CHROMEOS)
response.SetString(
"pageSubtitle",
managed_
? l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY,
base::UTF8ToUTF16(management_domain))
: l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
}
GetManagementStatus(profile, &response);
return response;
}
policy::PolicyService* ManagementUIHandler::GetPolicyService() const { policy::PolicyService* ManagementUIHandler::GetPolicyService() const {
return policy::ProfilePolicyConnectorFactory::GetForBrowserContext( return policy::ProfilePolicyConnectorFactory::GetForBrowserContext(
Profile::FromWebUI(web_ui())) Profile::FromWebUI(web_ui()))
...@@ -537,18 +537,6 @@ const extensions::Extension* ManagementUIHandler::GetEnabledExtension( ...@@ -537,18 +537,6 @@ const extensions::Extension* ManagementUIHandler::GetEnabledExtension(
} }
#endif // BUILDFLAG(ENABLE_EXTENSIONS) #endif // BUILDFLAG(ENABLE_EXTENSIONS)
std::unique_ptr<base::DictionaryValue>
ManagementUIHandler::GetDataManagementContextualSourceUpdate(
Profile* profile) const {
auto update = std::make_unique<base::DictionaryValue>();
#if !defined(OS_CHROMEOS)
GetDataManagementBrowserContextualSourceUpdate(update.get(), profile,
managed_);
#endif // !defined(OS_CHROMEOS)
return update;
}
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
void AddStatusDeviceManagedInfo(base::Value* status, void AddStatusDeviceManagedInfo(base::Value* status,
const std::string& device_domain) { const std::string& device_domain) {
...@@ -582,9 +570,16 @@ void AddStatusDeviceAndAccountManagedInfo( ...@@ -582,9 +570,16 @@ void AddStatusDeviceAndAccountManagedInfo(
void AddStatusAccountManagedInfo(base::Value* status, void AddStatusAccountManagedInfo(base::Value* status,
const std::string& account_domain) { const std::string& account_domain) {
base::Value info(base::Value::Type::DICTIONARY); base::Value info(base::Value::Type::DICTIONARY);
if (account_domain.empty()) {
info.SetKey(
kOverview,
base::Value(l10n_util::GetStringUTF16(
IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION_UNKNOWN_DOMAIN)));
} else {
info.SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( info.SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION, IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION,
base::UTF8ToUTF16(account_domain)))); base::UTF8ToUTF16(account_domain))));
}
info.SetKey(kSetup, base::Value(l10n_util::GetStringUTF16( info.SetKey(kSetup, base::Value(l10n_util::GetStringUTF16(
IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP))); IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP)));
info.SetKey(kData, base::Value(l10n_util::GetStringUTF16( info.SetKey(kData, base::Value(l10n_util::GetStringUTF16(
...@@ -633,8 +628,8 @@ void AddStatusOverviewManagedAccount(base::Value* status, ...@@ -633,8 +628,8 @@ void AddStatusOverviewManagedAccount(base::Value* status,
status->SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( status->SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_ACCOUNT_MANAGED_BY, IDS_MANAGEMENT_ACCOUNT_MANAGED_BY,
base::UTF8ToUTF16(account_domain)))); base::UTF8ToUTF16(account_domain))));
#endif // defined(OS_CHROMEOS)
status->SetKey(kDeviceManagedInfo, base::Value()); status->SetKey(kDeviceManagedInfo, base::Value());
#endif // defined(OS_CHROMEOS)
AddStatusAccountManagedInfo(status, account_domain); AddStatusAccountManagedInfo(status, account_domain);
} }
...@@ -647,8 +642,8 @@ void AddStatusOverviewNotManaged(base::Value* status) { ...@@ -647,8 +642,8 @@ void AddStatusOverviewNotManaged(base::Value* status) {
} }
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void ManagementUIHandler::GetManagementStatus(base::Value* status) { void ManagementUIHandler::GetManagementStatus(Profile* profile,
auto* profile = Profile::FromWebUI(web_ui()); base::Value* status) const {
const std::string account_domain = GetAccountDomain(profile); const std::string account_domain = GetAccountDomain(profile);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
const bool account_managed = IsProfileManaged(profile); const bool account_managed = IsProfileManaged(profile);
...@@ -709,15 +704,6 @@ void ManagementUIHandler::GetManagementStatus(base::Value* status) { ...@@ -709,15 +704,6 @@ void ManagementUIHandler::GetManagementStatus(base::Value* status) {
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
} }
void ManagementUIHandler::HandleGetManagementStatus(
const base::ListValue* args) {
base::RecordAction(base::UserMetricsAction("ManagementPageViewed"));
AllowJavascript();
base::Value status(base::Value::Type::DICTIONARY);
GetManagementStatus(&status);
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */, status);
}
void ManagementUIHandler::HandleGetExtensions(const base::ListValue* args) { void ManagementUIHandler::HandleGetExtensions(const base::ListValue* args) {
AllowJavascript(); AllowJavascript();
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
...@@ -765,6 +751,13 @@ void ManagementUIHandler::HandleGetDeviceReportingInfo( ...@@ -765,6 +751,13 @@ void ManagementUIHandler::HandleGetDeviceReportingInfo(
} }
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void ManagementUIHandler::HandleGetContextualManagedData(
const base::ListValue* args) {
AllowJavascript();
auto result = GetContextualManagedData(Profile::FromWebUI(web_ui()));
ResolveJavascriptCallback(args->GetList()[0] /* callback_id */,
std::move(result));
}
void ManagementUIHandler::HandleInitBrowserReportingInfo( void ManagementUIHandler::HandleInitBrowserReportingInfo(
const base::ListValue* args) { const base::ListValue* args) {
...@@ -816,11 +809,7 @@ void ManagementUIHandler::OnManagedStateChanged() { ...@@ -816,11 +809,7 @@ void ManagementUIHandler::OnManagedStateChanged() {
managed_ = managed; managed_ = managed;
auto data_source_update = GetDataManagementContextualSourceUpdate(profile); FireWebUIListener("managed_state_changed");
FireWebUIListener("update-load-time-data", data_source_update->Clone());
content::WebUIDataSource::Update(profile, web_ui_data_source_name_,
std::move(data_source_update));
} }
void ManagementUIHandler::OnPolicyUpdated( void ManagementUIHandler::OnPolicyUpdated(
......
...@@ -106,22 +106,19 @@ class ManagementUIHandler : public content::WebUIMessageHandler { ...@@ -106,22 +106,19 @@ class ManagementUIHandler : public content::WebUIMessageHandler {
protected: protected:
// Protected for testing. // Protected for testing.
std::unique_ptr<base::DictionaryValue>
GetDataManagementContextualSourceUpdate(Profile* profile) const;
static void InitializeInternal(content::WebUI* web_ui, static void InitializeInternal(content::WebUI* web_ui,
content::WebUIDataSource* source, content::WebUIDataSource* source,
Profile* profile); Profile* profile);
void AddExtensionReportingInfo(base::Value* report_sources); void AddExtensionReportingInfo(base::Value* report_sources);
base::DictionaryValue GetContextualManagedData(Profile* profile) const;
virtual policy::PolicyService* GetPolicyService() const; virtual policy::PolicyService* GetPolicyService() const;
virtual const extensions::Extension* GetEnabledExtension( virtual const extensions::Extension* GetEnabledExtension(
const std::string& extensionId) const; const std::string& extensionId) const;
#endif // BUILDFLAG(ENABLE_EXTENSIONS) #endif // BUILDFLAG(ENABLE_EXTENSIONS)
private: private:
void GetManagementStatus(base::Value* status); void GetManagementStatus(Profile* profile, base::Value* status) const;
void HandleGetManagementStatus(const base::ListValue* args);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
void HandleGetDeviceReportingInfo(const base::ListValue* args); void HandleGetDeviceReportingInfo(const base::ListValue* args);
...@@ -133,6 +130,7 @@ class ManagementUIHandler : public content::WebUIMessageHandler { ...@@ -133,6 +130,7 @@ class ManagementUIHandler : public content::WebUIMessageHandler {
void HandleGetLocalTrustRootsInfo(const base::ListValue* args); void HandleGetLocalTrustRootsInfo(const base::ListValue* args);
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
void HandleGetContextualManagedData(const base::ListValue* args);
void HandleInitBrowserReportingInfo(const base::ListValue* args); void HandleInitBrowserReportingInfo(const base::ListValue* args);
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
......
...@@ -95,7 +95,10 @@ ...@@ -95,7 +95,10 @@
</message> </message>
</if> </if>
<!-- Account managed clarification --> <!-- Account managed clarification -->
<message name="IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION" desc="First part of the sentence of the managed account clarification."> <message name="IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION_UNKNOWN_DOMAIN" desc="First part of the sentence for managed account clarification. This is a header over a bullet point list.">
The company, school, or organization that manages this account:
</message>
<message name="IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION" desc="First part of the sentence for managed account clarification. This is a header over a bullet point list.">
As the manager of your account, <ph name="ACCOUNT_DOMAIN">$1<ex>example.com</ex></ph>: As the manager of your account, <ph name="ACCOUNT_DOMAIN">$1<ex>example.com</ex></ph>:
</message> </message>
<message name="IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP" desc="Continuation of the managed account clarification sentence explaining account setup management."> <message name="IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP" desc="Continuation of the managed account clarification sentence explaining account setup management.">
......
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