File tree Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Original file line number Diff line number Diff line change @@ -36,6 +36,7 @@ export const configSchemata = {
3636 useManualProxy : z . boolean ( ) ,
3737 useProxy : z . boolean ( ) ,
3838 useSystemProxy : z . boolean ( ) ,
39+ whitelistedProtocols : z . string ( ) . array ( ) ,
3940} ;
4041
4142export const enterpriseConfigSchemata = {
Original file line number Diff line number Diff line change @@ -3,10 +3,20 @@ import fs from "node:fs";
33import os from "node:os" ;
44import path from "node:path" ;
55
6+ import * as ConfigUtil from "./config-util.ts" ;
67import { html } from "./html.ts" ;
78
9+ /* Fetches the current protocolLaunchers from settings.json */
10+ const whitelistedProtocols = ConfigUtil . getConfigItem ( "whitelistedProtocols" , [
11+ "http:" ,
12+ "https:" ,
13+ "mailto:" ,
14+ "tel:" ,
15+ "sip:" ,
16+ ] ) ;
17+
818export async function openBrowser ( url : URL ) : Promise < void > {
9- if ( [ "http:" , "https:" , "mailto:" ] . includes ( url . protocol ) ) {
19+ if ( whitelistedProtocols . includes ( url . protocol ) ) {
1020 await shell . openExternal ( url . href ) ;
1121 } else {
1222 // For security, indirect links to non-whitelisted protocols
Original file line number Diff line number Diff line change 1+ # Customizing Link Protocols
2+
3+ The Zulip app supports opening certain link protocols directly in their associated system applications. These are known as ** whitelisted protocols** .
4+
5+ ## Default Whitelisted Protocols
6+
7+ By default, the following protocols are whitelisted:
8+
9+ ```
10+ http https mailto tel sip
11+ ```
12+
13+ Links using these protocols are opened directly by the system.
14+
15+ All other protocols are considered potentially unsafe and are therefore opened indirectly—through a local HTML file—in your default web browser.
16+
17+ ## Extending the Whitelisted Protocols
18+ It is possible to customize the list of whitelisted protocols by editing the ` settings.json ` file located at: ` userdata/Zulip/config/settings.json `
19+
20+ To add or modify the list, the ` whitelistedProtocols ` key can be updated. For example:
21+
22+ ``` json
23+ {
24+ ...
25+ "whitelistedProtocols" : [
26+ " http:" ,
27+ " https:" ,
28+ " mailto:"
29+ ]
30+ ...
31+ }
32+ ```
33+
34+ Note: Each protocol should include the trailing colon (:), e.g., "mailto:" instead of "mailto".
You can’t perform that action at this time.
0 commit comments