因為 Brave 會繼續支援 webRequest 的完整功能,所以早早就已經跳槽過來,不過 Brave 的垃圾功能太多 (一堆 cryptocurrency 相關的功能),有需要全部關掉,所以裝好後第一件事情就是到 brave://flags
裡面把所有 Brave 自家功能的設定關光光,只留下 Brave Sync V2 的功能。
先前都是用滑鼠一個一個關,剛剛覺得太累了,研究一下 js 直接在 dev console 裡面關:
document.querySelector('flags-app').shadowRoot.querySelectorAll('flags-experiment[id^=brave]').forEach(flag => { flag.shadowRoot.querySelectorAll('option').forEach(o => { if (o.innerText === 'Disabled') { o.selected = 'selected'; o.parentElement.dispatchEvent(new Event('change')); } }); });
這樣會全部把 brave
開頭的 feature flag 都關掉;最後再手動把 Sync V2 開回來就可以重開 Brave 了。
後續就是 GUI 上面的選單再調整成自己要的。
這邊搞 javascript 的部分有遇到四個地方要處理... 第一個是現在 dev console 預設不讓你貼東西進去,貼了以後會顯示要輸入 allow pasting
後才行,這個字串以及方法之後不知道會不會改。
第二個是遇到 querySelectorAll 穿不過 shadow DOM,所以可以看到程式碼裡面需要先選出 shadow DOM 元素,用 shadowRoot
鑽進去再 querySelectorAll 一次。
第三個是 css selector 沒辦法針對 innerHTML
或是 innerText
的內容判斷,所以得自己拉出 option
後對 innerText
判斷。
最後一個是改變 select 的值後,得自己觸發 change event,這樣才會讓 Brave 偵測到並且儲存。
flags变化没有页面可查,更推荐用组策略进行配置。
https://support.brave.com/hc/en-us/articles/360039248271-Group-Policy