Commit 0be5a3a1 authored by rbpotter's avatar rbpotter Committed by Commit Bot

WebUI Polymer2: Remove use of /deep/ and bubble event in extensions

Remove usage of deep, and ensure that some events needed by the
manager bubble from the view manager.

Bug: 738611, 860069
Cq-Include-Trybots: luci.chromium.try:closure_compilation
Change-Id: I687ba18b94595703fc859bcdc41c85bddf483a1e
Reviewed-on: https://chromium-review.googlesource.com/1125507Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573597}
parent 2709b642
...@@ -312,7 +312,7 @@ ...@@ -312,7 +312,7 @@
</div> </div>
<div id="button-strip" class="layout horizontal center"> <div id="button-strip" class="layout horizontal center">
<div class="layout flex horizontal center"> <div class="layout flex horizontal center">
<paper-button id="details-button" on-click="onDetailsTap_" <paper-button id="detailsButton" on-click="onDetailsTap_"
aria-describedby="a11yAssociation"> aria-describedby="a11yAssociation">
$i18n{itemDetails} $i18n{itemDetails}
</paper-button> </paper-button>
......
...@@ -107,6 +107,16 @@ cr.define('extensions', function() { ...@@ -107,6 +107,16 @@ cr.define('extensions', function() {
'observeIdVisibility_(inDevMode, showingDetails_, data.id)', 'observeIdVisibility_(inDevMode, showingDetails_, data.id)',
], ],
/** @return {!HTMLElement} The "Details" button. */
getDetailsButton: function() {
return this.$.detailsButton;
},
/** @return {?HTMLElement} The "Errors" button, if it exists. */
getErrorsButton: function() {
return /** @type {?HTMLElement} */ (this.$$('#errors-button'));
},
/** @private string */ /** @private string */
a11yAssociation_: function() { a11yAssociation_: function() {
// Don't use I18nBehavior.i18n because of additional checks it performs. // Don't use I18nBehavior.i18n because of additional checks it performs.
......
...@@ -52,7 +52,7 @@ cr.define('extensions', function() { ...@@ -52,7 +52,7 @@ cr.define('extensions', function() {
* @return {?Element} * @return {?Element}
*/ */
getDetailsButton: function(id) { getDetailsButton: function(id) {
return this.$$(`#${id} /deep/ #details-button`); return this.$$(`#${id}`).getDetailsButton();
}, },
/** /**
...@@ -60,7 +60,7 @@ cr.define('extensions', function() { ...@@ -60,7 +60,7 @@ cr.define('extensions', function() {
* @return {?Element} * @return {?Element}
*/ */
getErrorsButton: function(id) { getErrorsButton: function(id) {
return this.$$(`#${id} /deep/ #errors-button`); return this.$$(`#${id}`).getErrorsButton();
}, },
/** /**
......
...@@ -63,10 +63,12 @@ cr.define('extensions', function() { ...@@ -63,10 +63,12 @@ cr.define('extensions', function() {
element.classList.remove('active'); element.classList.remove('active');
element.classList.add('closing'); element.classList.add('closing');
element.dispatchEvent(new CustomEvent('view-exit-start')); element.dispatchEvent(
new CustomEvent('view-exit-start', {bubbles: true, composed: true}));
return animationFunction(element).then(function() { return animationFunction(element).then(function() {
element.classList.remove('closing'); element.classList.remove('closing');
element.dispatchEvent(new CustomEvent('view-exit-finish')); element.dispatchEvent(new CustomEvent(
'view-exit-finish', {bubbles: true, composed: true}));
}); });
}, },
...@@ -83,9 +85,11 @@ cr.define('extensions', function() { ...@@ -83,9 +85,11 @@ cr.define('extensions', function() {
let effectiveView = view.matches('cr-lazy-render') ? view.get() : view; let effectiveView = view.matches('cr-lazy-render') ? view.get() : view;
effectiveView.classList.add('active'); effectiveView.classList.add('active');
effectiveView.dispatchEvent(new CustomEvent('view-enter-start')); effectiveView.dispatchEvent(
new CustomEvent('view-enter-start', {bubbles: true, composed: true}));
return animationFunction(effectiveView).then(() => { return animationFunction(effectiveView).then(() => {
effectiveView.dispatchEvent(new CustomEvent('view-enter-finish')); effectiveView.dispatchEvent(new CustomEvent(
'view-enter-finish', {bubbles: true, composed: true}));
}); });
}, },
......
...@@ -16,7 +16,7 @@ cr.define('extension_item_tests', function() { ...@@ -16,7 +16,7 @@ cr.define('extension_item_tests', function() {
{selector: '#icon'}, {selector: '#icon'},
{selector: '#description', text: extensionData.description}, {selector: '#description', text: extensionData.description},
{selector: '#enable-toggle'}, {selector: '#enable-toggle'},
{selector: '#details-button'}, {selector: '#detailsButton'},
{selector: '#remove-button'}, {selector: '#remove-button'},
]; ];
// The developer elements, which should only be shown if in developer // The developer elements, which should only be shown if in developer
...@@ -153,7 +153,7 @@ cr.define('extension_item_tests', function() { ...@@ -153,7 +153,7 @@ cr.define('extension_item_tests', function() {
currentPage = newPage; currentPage = newPage;
}); });
MockInteractions.tap(item.$$('#details-button')); MockInteractions.tap(item.$$('#detailsButton'));
expectDeepEquals( expectDeepEquals(
currentPage, {page: Page.DETAILS, extensionId: item.data.id}); currentPage, {page: Page.DETAILS, extensionId: item.data.id});
......
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