Commit 496814ca authored by Esmael El-Moslimany's avatar Esmael El-Moslimany Committed by Commit Bot

Settings WebUI: adding extensions external link in settings sidebar menu

Bug: 809293
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: I301fa871eb33ccbae30c219f4ff3b12c7916f6dd
Reviewed-on: https://chromium-review.googlesource.com/976942
Commit-Queue: Esmael El-Moslimany <aee@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarHector Carmona <hcarmona@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546033}
parent 8bfc0e2c
...@@ -65,12 +65,15 @@ ...@@ -65,12 +65,15 @@
outline: auto 5px -webkit-focus-ring-color; outline: auto 5px -webkit-focus-ring-color;
} }
#advancedButton > span { #advancedButton > span,
#extensionsButton > span {
flex: 1; flex: 1;
} }
#advancedButton > iron-icon { #advancedButton > iron-icon,
-webkit-margin-end: 22px; /* 24px - 2px from margin for outline. */ #extensionsButton > iron-icon {
@apply --cr-icon-height-width;
-webkit-margin-end: 14px; /* 16px - 2px from margin for outline. */
} }
#menuSeparator { #menuSeparator {
...@@ -80,8 +83,9 @@ ...@@ -80,8 +83,9 @@
margin-top: 8px; margin-top: 8px;
} }
</style> </style>
<iron-selector id="topMenu" selectable="a" attr-for-selected="href" <iron-selector id="topMenu" selectable="a:not([unselectable])"
on-iron-activate="onSelectorActivate_" role="navigation"> attr-for-selected="href" on-iron-activate="onSelectorActivate_"
role="navigation">
<if expr="chromeos"> <if expr="chromeos">
<a href="/internet"> <a href="/internet">
<iron-icon icon="settings:network-wifi"></iron-icon> <iron-icon icon="settings:network-wifi"></iron-icon>
...@@ -189,6 +193,11 @@ ...@@ -189,6 +193,11 @@
</iron-selector> </iron-selector>
</iron-collapse> </iron-collapse>
<div id="menuSeparator"></div> <div id="menuSeparator"></div>
<a id="extensionsButton" unselectable href="chrome://extensions"
target="_blank" on-click="onExternalLinkClick_">
<span>$i18n{extensionsPageTitle}</span>
<iron-icon class="cr-icon icon-external" actionable></iron-icon>
</a>
<a id="about-menu" href="/help">$i18n{aboutPageTitle}</a> <a id="about-menu" href="/help">$i18n{aboutPageTitle}</a>
</iron-selector> </iron-selector>
</template> </template>
......
...@@ -52,7 +52,8 @@ Polymer({ ...@@ -52,7 +52,8 @@ Polymer({
* @private * @private
*/ */
onLinkTap_: function(event) { onLinkTap_: function(event) {
if (event.target.hasAttribute('href')) if (event.target.tagName == 'A' &&
!event.target.hasAttribute('unselectable'))
event.preventDefault(); event.preventDefault();
}, },
...@@ -87,4 +88,9 @@ Polymer({ ...@@ -87,4 +88,9 @@ Polymer({
arrowState_: function(opened) { arrowState_: function(opened) {
return opened ? 'cr:arrow-drop-up' : 'cr:arrow-drop-down'; return opened ? 'cr:arrow-drop-up' : 'cr:arrow-drop-down';
}, },
/** @private */
onExternalLinkClick_: function() {
this.fire('external-link-click');
},
}); });
...@@ -59,7 +59,7 @@ Polymer({ ...@@ -59,7 +59,7 @@ Polymer({
lastSearchQuery_: { lastSearchQuery_: {
type: String, type: String,
value: '', value: '',
} },
}, },
listeners: { listeners: {
...@@ -82,6 +82,10 @@ Polymer({ ...@@ -82,6 +82,10 @@ Polymer({
this.$.drawerTemplate.if = true; this.$.drawerTemplate.if = true;
}); });
this.addEventListener('external-link-click', () => {
this.$.drawer.closeDrawer();
});
window.addEventListener('popstate', e => { window.addEventListener('popstate', e => {
this.$.drawer.closeDrawer(); this.$.drawer.closeDrawer();
}); });
......
...@@ -2331,6 +2331,11 @@ void AddMultideviceStrings(content::WebUIDataSource* html_source) { ...@@ -2331,6 +2331,11 @@ void AddMultideviceStrings(content::WebUIDataSource* html_source) {
} }
#endif #endif
void AddExtensionsStrings(content::WebUIDataSource* html_source) {
html_source->AddLocalizedString("extensionsPageTitle",
IDS_SETTINGS_EXTENSIONS_CHECKBOX_LABEL);
}
} // namespace } // namespace
void AddLocalizedStrings(content::WebUIDataSource* html_source, void AddLocalizedStrings(content::WebUIDataSource* html_source,
...@@ -2379,6 +2384,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, ...@@ -2379,6 +2384,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
AddImportDataStrings(html_source); AddImportDataStrings(html_source);
AddSystemStrings(html_source); AddSystemStrings(html_source);
#endif #endif
AddExtensionsStrings(html_source);
#if defined(USE_NSS_CERTS) #if defined(USE_NSS_CERTS)
certificate_manager::AddLocalizedStrings(html_source); certificate_manager::AddLocalizedStrings(html_source);
......
...@@ -1276,6 +1276,7 @@ CrSettingsMenuTest.prototype = { ...@@ -1276,6 +1276,7 @@ CrSettingsMenuTest.prototype = {
/** @override */ /** @override */
extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([ extraLibraries: CrSettingsBrowserTest.prototype.extraLibraries.concat([
'test_util.js',
'settings_menu_test.js', 'settings_menu_test.js',
]), ]),
}; };
......
...@@ -75,6 +75,13 @@ cr.define('settings_menu', function() { ...@@ -75,6 +75,13 @@ cr.define('settings_menu', function() {
MockInteractions.tap(settingsMenu.$.people); MockInteractions.tap(settingsMenu.$.people);
assertEquals('', settings.getQueryParameters().toString()); assertEquals('', settings.getQueryParameters().toString());
}); });
test('extensionsButtonClicked', function() {
const eventPromise =
test_util.eventToPromise('external-link-click', settingsMenu);
settingsMenu.$.extensionsButton.click();
return eventPromise;
});
}); });
suite('SettingsMenuReset', function() { suite('SettingsMenuReset', function() {
......
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