blob: dbbc9cd535bb32001a2f69c42d69c6e493875ef4 [file] [log] [blame]
<style include="iron-flex cr-shared-style cr-icons action-link
shared-style">
:host {
--iron-icon-fill-color: var(--cr-secondary-text-color);
display: block;
height: 100%;
}
#enable-section {
margin-bottom: 8px;
}
#enable-section cr-tooltip-icon {
margin-inline-end: 20px;
}
#enable-section span {
color: var(--cr-secondary-text-color);
font-weight: 500;
}
#enable-section .enabled-text {
color: var(--google-blue-500);
}
@media (prefers-color-scheme: dark) {
#enable-section .enabled-text {
color: var(--google-blue-refresh-300);
}
}
#icon {
height: 24px;
margin-inline-end: 12px;
margin-inline-start: 16px;
width: 24px;
}
#name {
flex-grow: 1;
}
.section {
box-sizing: border-box;
padding: var(--cr-section-vertical-padding) var(--cr-section-padding);
}
.cr-row.control-line {
justify-content: space-between;
}
.section-content {
color: var(--cr-secondary-text-color);
}
.actionable {
cursor: pointer;
}
.inspectable-view {
height: 20px;
width: auto; /* override the default button size of 24x24 */
}
@media (prefers-color-scheme: light) {
.warning .action-button {
background: white;
color: var(--google-blue-500);
}
#reload-button {
color: var(--google-blue-500);
}
}
.warning span {
color: var(--error-color);
flex: 1;
}
.warning-icon {
--iron-icon-fill-color: var(--error-color);
flex-shrink: 0;
height: 18px;
margin-inline-end: 8px;
width: 18px;
}
ul {
margin: 0;
padding-inline-start: 20px;
}
#options-section .control-line:first-child {
border-top: var(--cr-separator-line);
}
extensions-toggle-row {
box-sizing: border-box;
padding: var(--cr-section-vertical-padding) var(--cr-section-padding);
}
#load-path {
word-break: break-all;
}
#load-path > a[is='action-link'] {
display: inline;
}
#size {
align-items: center;
display: flex;
}
paper-spinner-lite {
height: var(--cr-icon-size);
width: var(--cr-icon-size);
}
</style>
<div class="page-container" id="container">
<div class="page-content">
<div class="page-header">
<cr-icon-button class="icon-arrow-back no-overlap" id="closeButton"
aria-label="$i18n{back}" on-click="onCloseButtonTap_">
</cr-icon-button>
<img id="icon" src="[[data.iconUrl]]"
aria-label$="[[a11yAssociation(data.name)]]"
alt$="[[appOrExtension(
data.type,
'$i18nPolymer{appIcon}',
'$i18nPolymer{extensionIcon}')]]">
<span id="name" class="cr-title-text" role="heading" aria-level="1">
[[data.name]]
</span>
</div>
<div class="cr-row first control-line" id="enable-section">
<span class$="[[computeEnabledStyle_(data.state)]]">
[[computeEnabledText_(data.state, '$i18nPolymer{itemOn}',
'$i18nPolymer{itemOff}')]]
</span>
<div class="layout horizontal">
<cr-tooltip-icon hidden$="[[!data.controlledInfo]]"
tooltip-text="[[data.controlledInfo.text]]"
icon-class="cr20:domain"
icon-aria-label="[[data.controlledInfo.text]]">
</cr-tooltip-icon>
<template is="dom-if" if="[[showReloadButton_(data.state)]]">
<cr-button id="terminated-reload-button" class="action-button"
on-click="onReloadTap_">
$i18n{itemReload}
</cr-button>
</template>
<cr-tooltip-icon id="parentDisabledPermissionsToolTip"
hidden$="[[!data.disableReasons.parentDisabledPermissions]]"
tooltip-text="$i18n{parentDisabledPermissions}"
icon-class="cr20:kite"
icon-aria-label="$i18n{parentDisabledPermissions}">
</cr-tooltip-icon>
<cr-toggle id="enableToggle"
aria-label$="[[appOrExtension(
data.type,
'$i18nPolymer{appEnabled}',
'$i18nPolymer{extensionEnabled}')]]"
aria-describedby="name"
checked="[[isEnabled_(data.state)]]"
on-change="onEnableToggleChange_"
disabled$="[[!isEnableToggleEnabled_(data.*)]]"
hidden$="[[!showEnableToggle_(data.*)]]">
</cr-toggle>
</div>
</div>
<div id="warnings" hidden$="[[!hasWarnings_(data.*)]]">
<div id="runtime-warnings" hidden$="[[!data.runtimeWarnings.length]]"
class="cr-row continuation warning control-line">
<iron-icon class="warning-icon" icon="cr:error"></iron-icon>
<span>
<template is="dom-repeat" items="[[data.runtimeWarnings]]">
[[item]]
</template>
</span>
<template is="dom-if" if="[[!showReloadButton_(data.state)]]">
<cr-button id="warnings-reload-button" class="action-button"
on-click="onReloadTap_">
$i18n{itemReload}
</cr-button>
</template>
</div>
<div class="cr-row continuation warning" id="suspicious-warning"
hidden$="[[!data.disableReasons.suspiciousInstall]]">
<iron-icon class="warning-icon" icon="cr:warning"></iron-icon>
<span>
$i18n{itemSuspiciousInstall}
<a target="_blank" href="$i18n{suspiciousInstallHelpUrl}">
$i18n{learnMore}
</a>
</span>
</div>
<div class="cr-row continuation warning control-line"
id="corrupted-warning"
hidden$="[[!showRepairButton_(data.disableReasons.corruptInstall)]]">
<iron-icon class="warning-icon" icon="cr:warning"></iron-icon>
<span>$i18n{itemCorruptInstall}</span>
<cr-button id="repair-button" class="action-button"
on-click="onRepairTap_">
$i18n{itemRepair}
</cr-button>
</div>
<div class="cr-row continuation warning" id="blacklisted-warning"
hidden$="[[!data.blacklistText]]">
<iron-icon class="warning-icon" icon="cr:warning"></iron-icon>
<span>[[data.blacklistText]]</span>
</div>
<div class="cr-row continuation warning" id="update-required-warning"
hidden$="[[!data.disableReasons.updateRequired]]">
<iron-icon class="warning-icon" icon="cr:warning"></iron-icon>
<span>$i18n{updateRequiredByPolicy}</span>
</div>
</div>
<div class="section">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemDescriptionLabel}
</div>
<div class="section-content" id="description">
[[getDescription_(data.description, '$i18nPolymer{noDescription}')]]
</div>
</div>
<div class="section hr">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemVersion}
</div>
<div class="section-content">[[data.version]]</div>
</div>
<div class="section hr">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemSize}
</div>
<div class="section-content" id="size">
<span>[[size_]]</span>
<paper-spinner-lite active="[[!size_]]" hidden="[[size_]]">
</paper-spinner-lite>
</div>
</div>
<div class="section hr" id="id-section" hidden$="[[!inDevMode]]">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemIdHeading}
</div>
<div class="section-content">[[data.id]]</div>
</div>
<template is="dom-if" if="[[inDevMode]]">
<div class="section hr" id="inspectable-views">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemInspectViews}
</div>
<div class="section-content">
<ul id="inspect-views">
<li hidden="[[data.views.length]]">
$i18n{noActiveViews}
</li>
<template is="dom-repeat" items="[[data.views]]">
<li>
<a is="action-link" class="inspectable-view"
on-click="onInspectTap_">
[[computeInspectLabel_(item)]]
</a>
</li>
</template>
</ul>
</div>
</div>
</template>
<div class="section hr">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemPermissions}
</div>
<div class="section-content">
<span id="no-permissions" hidden$="[[hasPermissions_(data.*)]]">
$i18n{itemPermissionsEmpty}
</span>
<ul id="permissions-list"
hidden$="[[!data.permissions.simplePermissions.length]]">
<template is="dom-repeat"
items="[[data.permissions.simplePermissions]]">
<li>
[[item.message]]
<ul hidden="[[!item.submessages.length]]">
<template is="dom-repeat" items="[[item.submessages]]">
<li>[[item]]</li>
</template>
</ul>
</li>
</template>
</ul>
</div>
</div>
<div class="section hr">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemSiteAccess}
</div>
<div class="section-content">
<span id="no-site-access"
hidden$="[[showSiteAccessContent_(data.*)]]">
$i18n{itemSiteAccessEmpty}
</span>
<template is="dom-if"
if="[[showFreeformRuntimeHostPermissions_(data.*)]]">
<extensions-runtime-host-permissions
permissions="[[data.permissions.runtimeHostPermissions]]"
delegate="[[delegate]]"
item-id="[[data.id]]">
</extensions-runtime-host-permissions>
</template>
<template is="dom-if"
if="[[showHostPermissionsToggleList_(data.*)]]">
<extensions-host-permissions-toggle-list
permissions="[[data.permissions.runtimeHostPermissions]]"
delegate="[[delegate]]"
item-id="[[data.id]]">
</extensions-host-permissions-toggle-list>
</template>
</div>
</div>
<template is="dom-if"
if="[[hasDependentExtensions_(data.dependentExtensions.splices)]]">
<div class="section hr">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemDependencies}
</div>
<div class="section-content">
<ul id="dependent-extensions-list">
<template is="dom-repeat" items="[[data.dependentExtensions]]">
<li>[[computeDependentEntry_(item)]]</li>
</template>
</ul>
</div>
</div>
</template>
<template is="dom-if" if="[[shouldShowOptionsSection_(data.*)]]">
<div id="options-section">
<template is="dom-if"
if="[[shouldShowIncognitoOption_(
data.incognitoAccess.isEnabled, incognitoAvailable)]]">
<extensions-toggle-row id="allow-incognito"
checked="[[data.incognitoAccess.isActive]]"
class="hr"
on-change="onAllowIncognitoChange_">
<div>
<div>$i18n{itemAllowIncognito}</div>
<div class="section-content">$i18n{incognitoInfoWarning}</div>
</div>
</extensions-toggle-row>
</template>
<template is="dom-if" if="[[data.fileAccess.isEnabled]]">
<extensions-toggle-row id="allow-on-file-urls"
checked="[[data.fileAccess.isActive]]"
class="hr"
on-change="onAllowOnFileUrlsChange_">
<span>$i18n{itemAllowOnFileUrls}</span>
</extensions-toggle-row>
</template>
<template is="dom-if" if="[[data.errorCollection.isEnabled]]">
<extensions-toggle-row id="collect-errors"
checked="[[data.errorCollection.isActive]]"
class="hr"
on-change="onCollectErrorsChange_">
<span>$i18n{itemCollectErrors}</span>
</extensions-toggle-row>
</template>
</div>
</template>
<cr-link-row class="hr" id="extensions-options"
disabled="[[!isEnabled_(data.state)]]"
hidden="[[!shouldShowOptionsLink_(data.*)]]"
label="$i18n{itemOptions}" on-click="onExtensionOptionsTap_"
external></cr-link-row>
<cr-link-row class="hr"
id="extensionsActivityLogLink" hidden$="[[!showActivityLog]]"
label="$i18n{viewActivityLog}" on-click="onActivityLogTap_"
role-description="$i18n{subpageArrowRoleDescription}">
</cr-link-row>
<cr-link-row class="hr" hidden="[[!data.manifestHomePageUrl.length]]"
id="extensionWebsite" label="$i18n{extensionWebsite}"
on-click="onExtensionWebSiteTap_" external></cr-link-row>
<cr-link-row class="hr" hidden="[[!data.webStoreUrl.length]]"
id="viewInStore" label="$i18n{viewInStore}"
on-click="onViewInStoreTap_" external></cr-link-row>
<div class="section hr">
<div class="section-title" role="heading" aria-level="2">
$i18n{itemSource}
</div>
<div id="source" class="section-content">
[[computeSourceString_(data.*)]]
</div>
<div id="load-path" class="section-content"
hidden$="[[!data.prettifiedPath]]">
<span>$i18n{itemExtensionPath}</span>
<a is="action-link" on-click="onLoadPathTap_">
[[data.prettifiedPath]]
</a>
</div>
</div>
<cr-link-row class="hr" id="remove-extension"
hidden="[[data.mustRemainInstalled]]"
label="$i18n{itemRemoveExtension}" on-click="onRemoveTap_">
</cr-link-row>
</div>
</div>