| // Copyright 2021 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import './strings.m.js'; |
| |
| import {loadTimeData} from 'chrome://resources/ash/common/load_time_data.m.js'; |
| import {html, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; |
| |
| import {DiagnosticEntry_Status as Status} from './guest_os_diagnostics.mojom-webui.js'; |
| import {VmDiagnosticsProvider} from './vm.mojom-webui.js'; |
| |
| class VmApp extends PolymerElement { |
| static get properties() { |
| return { |
| title_: {type: String}, |
| // If the url is recognized, we show the diagnostics. Otherwise, we show |
| // the contents page. |
| showContentsPage_: {type: Boolean}, |
| diagnostics_: {type: Object}, |
| }; |
| } |
| |
| static get template() { |
| return html`{__html_template__}`; |
| } |
| |
| ready() { |
| super.ready(); |
| |
| this.init(); |
| } |
| |
| async init() { |
| const url = new URL(window.location.href); |
| switch (url.pathname) { |
| case '/parallels': |
| this.setTitle_(this.getTitle('pluginVmAppName')); |
| this.showContentsPage_ = false; |
| this.diagnostics_ = |
| (await VmDiagnosticsProvider.getRemote().getPluginVmDiagnostics()) |
| .diagnostics; |
| break; |
| default: |
| // Show the contents page if the url is unknown. |
| this.setTitle_(loadTimeData.getString('contentsPageTitle')); |
| this.showContentsPage_ = true; |
| break; |
| } |
| } |
| |
| /** @private */ |
| setTitle_(title) { |
| this.title_ = title; |
| document.title = this.title_; |
| } |
| |
| statusToString(statusValue) { |
| let stringId = ''; |
| switch (statusValue) { |
| case Status.kPass: |
| stringId = 'passLabel'; |
| break; |
| case Status.kFail: |
| stringId = 'failLabel'; |
| break; |
| case Status.kNotApplicable: |
| stringId = 'notApplicableLabel'; |
| break; |
| } |
| return loadTimeData.getString(stringId); |
| } |
| |
| statusToClass(statusValue) { |
| switch (statusValue) { |
| case Status.kPass: |
| return 'pass'; |
| case Status.kFail: |
| return 'fail'; |
| case Status.kNotApplicable: |
| return ''; |
| } |
| } |
| |
| getTitle(appNameId) { |
| return loadTimeData.getStringF( |
| 'pageTitle', loadTimeData.getString(appNameId)); |
| } |
| |
| formatTopErrorMessage(topErrorMessage) { |
| return loadTimeData.getStringF('notEnabledMessage', topErrorMessage); |
| } |
| } |
| |
| customElements.define('vm-app', VmApp); |