blob: f2d4f5ed1ad2103aad58c9ffddeb3f3d8e3948bb [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import '//resources/cr_elements/cr_button/cr_button.m.js';
import '../i18n_setup.js';
import '../settings_shared_css.js';
import {assert} from '//resources/js/assert_ts.js';
import {loadTimeData} from '//resources/js/load_time_data.m.js';
import {PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {ExtensionControlBrowserProxyImpl} from '../extension_control_browser_proxy.js';
import {OpenWindowProxyImpl} from '../open_window_proxy.js';
import {getTemplate} from './extension_controlled_indicator.html.js';
export class ExtensionControlledIndicatorElement extends PolymerElement {
static get is() {
return 'extension-controlled-indicator';
}
static get template() {
return getTemplate();
}
static get properties() {
return {
extensionCanBeDisabled: Boolean,
extensionId: String,
extensionName: String,
};
}
extensionCanBeDisabled: boolean;
extensionId: string;
extensionName: string;
private getLabel_(): string {
return loadTimeData.getStringF('controlledByExtension', this.extensionName);
}
private onManageClick_() {
const manageUrl = 'chrome://extensions/?id=' + this.extensionId;
OpenWindowProxyImpl.getInstance().openURL(manageUrl);
}
private onDisableClick_() {
assert(this.extensionCanBeDisabled);
ExtensionControlBrowserProxyImpl.getInstance().disableExtension(
this.extensionId);
this.dispatchEvent(
new CustomEvent('extension-disable', {bubbles: true, composed: true}));
}
}
declare global {
interface HTMLElementTagNameMap {
'extension-controlled-indicator': ExtensionControlledIndicatorElement;
}
}
customElements.define(
ExtensionControlledIndicatorElement.is,
ExtensionControlledIndicatorElement);