Commit 0dc98df5 authored by Claude van der Merwe's avatar Claude van der Merwe Committed by Commit Bot

Fix wrong types sent to removeWebUIListener in os_printing_page

removeWebUIListener expects a WebUIListener argument, but strings
were being passed.

This CL
1. Adds variables to keep track of created WebUIListener types
so they can be removed with removeWebUIListener in
cups_printers_entry_manager.js

2. Uses addWebUIListener from WebUIListenerBehavior for automatic
WebUIListener removal in cups_printers.js

Change-Id: I86da8dda6bf03e3ce83c38a3e63825ff4335f1f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2350335
Commit-Queue: Claude van der Merwe <cvandermerwe@google.com>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Reviewed-by: default avatarJimmy Gong <jimmyxgong@chromium.org>
Cr-Commit-Position: refs/heads/master@{#797461}
parent 72d909d3
...@@ -15,6 +15,7 @@ js_type_check("closure_compile") { ...@@ -15,6 +15,7 @@ js_type_check("closure_compile") {
":cups_printer_dialog_util", ":cups_printer_dialog_util",
":cups_printers", ":cups_printers",
":cups_printers_browser_proxy", ":cups_printers_browser_proxy",
":cups_printers_entry_manager",
":cups_settings_add_printer_dialog", ":cups_settings_add_printer_dialog",
":os_printing_page", ":os_printing_page",
] ]
......
...@@ -33,6 +33,12 @@ Polymer({ ...@@ -33,6 +33,12 @@ Polymer({
notify: true, notify: true,
}, },
/** @private {?WebUIListener} */
onPrintersChangedListener_: {
type: Object,
value: null,
},
searchTerm: { searchTerm: {
type: String, type: String,
}, },
...@@ -128,13 +134,17 @@ Polymer({ ...@@ -128,13 +134,17 @@ Polymer({
*/ */
currentRouteChanged(route) { currentRouteChanged(route) {
if (route != settings.routes.CUPS_PRINTERS) { if (route != settings.routes.CUPS_PRINTERS) {
cr.removeWebUIListener('on-printers-changed'); if (this.onPrintersChangedListener_) {
cr.removeWebUIListener(
/** @type {WebUIListener} */ (this.onPrintersChangedListener_));
this.onPrintersChangedListener_ = null;
}
this.entryManager_.removeWebUIListeners(); this.entryManager_.removeWebUIListeners();
return; return;
} }
this.entryManager_.addWebUIListeners(); this.entryManager_.addWebUIListeners();
cr.addWebUIListener( this.onPrintersChangedListener_ = cr.addWebUIListener(
'on-printers-changed', this.onPrintersChanged_.bind(this)); 'on-printers-changed', this.onPrintersChanged_.bind(this));
this.updateCupsPrintersList_(); this.updateCupsPrintersList_();
}, },
......
...@@ -41,22 +41,29 @@ cr.define('settings.printing', function() { ...@@ -41,22 +41,29 @@ cr.define('settings.printing', function() {
/** @type {!Array<!PrinterListEntry>} */ /** @type {!Array<!PrinterListEntry>} */
this.printServerPrinters = []; this.printServerPrinters = [];
/** @type {!Array<PrintersListCallback>} */ /** @private {!Array<PrintersListCallback>} */
this.onNearbyPrintersChangedListeners_ = []; this.onNearbyPrintersChangedListeners_ = [];
/** @private {?WebUIListener} */
this.onNearbyPrintersChangedListener_ = null;
} }
addWebUIListeners() { addWebUIListeners() {
// TODO(1005905): Add on-printers-changed listener here once legacy code // TODO(1005905): Add on-printers-changed listener here once legacy code
// is removed. // is removed.
cr.addWebUIListener( this.onNearbyPrintersChangedListener_ = cr.addWebUIListener(
'on-nearby-printers-changed', this.setNearbyPrintersList.bind(this)); 'on-nearby-printers-changed', this.setNearbyPrintersList.bind(this));
settings.CupsPrintersBrowserProxyImpl.getInstance() settings.CupsPrintersBrowserProxyImpl.getInstance()
.startDiscoveringPrinters(); .startDiscoveringPrinters();
} }
removeWebUIListeners() { removeWebUIListeners() {
cr.removeWebUIListener('on-nearby-printers-changed'); if (this.onNearbyPrintersChangedListener_) {
cr.removeWebUIListener('on-print-server-added'); cr.removeWebUIListener(/** @type {WebUIListener} */ (
this.onNearbyPrintersChangedListener_));
this.onNearbyPrintersChangedListener_ = null;
}
} }
/** @return {!Array<!PrinterListEntry>} */ /** @return {!Array<!PrinterListEntry>} */
......
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