mirror of
				https://github.com/zulip/zulip-desktop.git
				synced 2025-11-04 05:53:21 +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