mirror of
https://github.com/zulip/zulip-desktop.git
synced 2025-11-03 13:33:18 +00:00
Escape all strings inserted into CSS selectors.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
@@ -461,7 +461,7 @@ class ServerManagerView {
|
||||
const $parent = $img.parentElement;
|
||||
const $container = $parent.parentElement;
|
||||
const webviewId = $container.dataset.tabId;
|
||||
const $webview = document.querySelector(`webview[data-tab-id="${webviewId}"]`);
|
||||
const $webview = document.querySelector(`webview[data-tab-id="${CSS.escape(webviewId)}"]`);
|
||||
const realmName = $webview.getAttribute('name');
|
||||
|
||||
if (realmName === null) {
|
||||
@@ -972,7 +972,7 @@ class ServerManagerView {
|
||||
webviews.forEach(webview => {
|
||||
const currentId = webview.getWebContentsId();
|
||||
const tabId = webview.getAttribute('data-tab-id');
|
||||
const concurrentTab: HTMLButtonElement = document.querySelector(`div[data-tab-id="${tabId}"]`);
|
||||
const concurrentTab: HTMLButtonElement = document.querySelector(`div[data-tab-id="${CSS.escape(tabId)}"]`);
|
||||
if (currentId === webviewId) {
|
||||
concurrentTab.click();
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ export default class PreferenceNav extends BaseComponent {
|
||||
|
||||
registerListeners(): void {
|
||||
for (const navItem of this.navItems) {
|
||||
const $item = document.querySelector(`#nav-${navItem}`);
|
||||
const $item = document.querySelector(`#nav-${CSS.escape(navItem)}`);
|
||||
$item.addEventListener('click', () => {
|
||||
this.props.onItemSelected(navItem);
|
||||
});
|
||||
@@ -59,12 +59,12 @@ export default class PreferenceNav extends BaseComponent {
|
||||
}
|
||||
|
||||
activate(navItem: string): void {
|
||||
const $item = document.querySelector(`#nav-${navItem}`);
|
||||
const $item = document.querySelector(`#nav-${CSS.escape(navItem)}`);
|
||||
$item.classList.add('active');
|
||||
}
|
||||
|
||||
deactivate(navItem: string): void {
|
||||
const $item = document.querySelector(`#nav-${navItem}`);
|
||||
const $item = document.querySelector(`#nav-${CSS.escape(navItem)}`);
|
||||
$item.classList.remove('active');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user