Commit 7a602a80 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Web UI: Add assert to ensure cr.m.js does not run twice

Also fixing some tests that fail due to the addition of the assert.
cr.js is included by default in the extraLibraries of the PolymerTest
base class, so test classes that do not override extraLibraries and
import cr.m.js cause the webUIResponse/webUIListenerCallback to be
set twice.

Bug: 1004967
Change-Id: I7c31cc4df5119556f62e1afe7ebf1b85cb0c6722
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1885230Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#710122}
parent 5d242329
......@@ -22,6 +22,14 @@ var CrManagementA11yTest = class extends PolymerTest {
return 'chrome://management/';
}
/** @override */
get extraLibraries() {
return [
'//third_party/mocha/mocha.js',
'//chrome/test/data/webui/mocha_adapter.js',
];
}
// Default accessibility audit options. Specify in test definition to use.
static get axeOptions() {
return {
......
......@@ -13,6 +13,14 @@ var SetTimeDialogBrowserTest = class extends PolymerTest {
return 'chrome://set-time/test_loader.html?module=set_time_dialog_test.js';
}
/** @override */
get extraLibraries() {
return [
'//third_party/mocha/mocha.js',
'//chrome/test/data/webui/mocha_adapter.js',
];
}
/** @override */
get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors']};
......
......@@ -28,6 +28,14 @@ var SigninSyncConfirmationTest = class extends PolymerTest {
return 'chrome://sync-confirmation/test_loader.html?module=signin/sync_confirmation_test.js';
}
/** @override */
get extraLibraries() {
return [
'//third_party/mocha/mocha.js',
'//chrome/test/data/webui/mocha_adapter.js',
];
}
/** @override */
get featureList() {
return {enabled: ['network::features::kOutOfBlinkCors']};
......
......@@ -23,7 +23,8 @@ WelcomeA11y = class extends PolymerTest {
/** @override */
get extraLibraries() {
return [
...super.extraLibraries,
'//third_party/mocha/mocha.js',
'//chrome/test/data/webui/mocha_adapter.js',
'//ui/webui/resources/js/util.js',
];
}
......
......@@ -186,6 +186,7 @@ js_library("assert.m") {
js_library("cr.m") {
deps = [
":assert.m",
":promise_resolver.m",
]
externs_list = [ "$externs_path/chrome_send.js" ]
......
......@@ -9,6 +9,7 @@
* logic in js_modulizer.py only to address the cr.js case, which is not worth
* it.
*/
import {assert} from './assert.m.js';
import {PromiseResolver} from './promise_resolver.m.js';
/** @typedef {{eventName: string, uid: number}} */
......@@ -172,6 +173,8 @@ export function removeWebUIListener(listener) {
// Globally expose functions that must be called from C++.
window.cr = window.cr || {};
assert(!window.cr.webUIResponse);
assert(!window.cr.webUIListenerCallback);
window.cr.webUIResponse = webUIResponse;
window.cr.webUIListenerCallback = webUIListenerCallback;
......
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