欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
掃盲 Firefox 定制——從“user.js”到“omni.ja”

最近一年,寫(xiě)過(guò)好幾篇涉及“Web 安全”的博文。這些博文或多或少都會(huì )提及“Firefox 的定制”??紤]到某些讀者對這方面不太了解,單獨寫(xiě)一篇掃盲。
  如果你從來(lái)不用 Firefox 瀏覽器,本教程就不用看了(以免浪費時(shí)間)。
  本文主要面向不太熟悉 Firefox 的菜鳥(niǎo);對于 Firefox 的老鳥(niǎo),頂多只需要看“高級話(huà)題”相關(guān)的章節。


★預備知識

◇“瀏覽器實(shí)例”(profile)是啥?

  Firefox 支持【多實(shí)例】(多個(gè) profile)。你可以把“profile”這個(gè)概念通俗理解為:“獨立的瀏覽器環(huán)境”。
  也就是說(shuō),實(shí)例之間是【互相隔離】滴,每個(gè)實(shí)例都有自己【獨立的】“書(shū)簽、瀏覽歷史、下載歷史、cookies ......”
  就算你從來(lái)沒(méi)有創(chuàng )建過(guò)實(shí)例,只要你通過(guò) Firefox 上網(wǎng),你的 Firefox 至少會(huì )有一個(gè)實(shí)例(也就是你正在用的這個(gè))。

◇如何找到當前實(shí)例的目錄?

  每個(gè)實(shí)例(profile)都對應一個(gè)目錄,屬于該實(shí)例的那些東西(書(shū)簽、瀏覽歷史、下載歷史、cookies ...)全都存儲在該目錄下。
  要想查看你正在使用的 Firefox 實(shí)例對應的目錄,很簡(jiǎn)單:
1. 在瀏覽器地址欄輸入 about:support 然后敲回車(chē)
2. 這時(shí)候會(huì )顯示一個(gè)支持頁(yè)面,其中有一項 Profile Directory(俺用的是英文版,中文版的叫法略有不同),對應的就是【當前實(shí)例的目錄】。


★掃盲“配置選項”(Preferences)

◇啥是“配置選項”?

  “配置選項”也叫“首選項”,洋文稱(chēng)之為“Preferences”。
  通俗地說(shuō)就是:Firefox 提供了一大堆可供用戶(hù)定制的參數。通過(guò)修改這些參數,可以對 Firefox 進(jìn)行【全方位】定制。
  每個(gè) Preference 包含如下幾個(gè)要素:

  名稱(chēng)
  每個(gè) Preference 的名稱(chēng)必定是【唯一】滴。
  “名稱(chēng)”由英文單詞構成,單詞之間以“小數點(diǎn)”或“下劃線(xiàn)”分隔。

  數據類(lèi)型
  Preferences 的“數據類(lèi)型”必須是“布爾型、整數型、字符串型”這三者之一。
  “布爾型”的值只能是 true 或 false。
  “整數型”的值可以是負數。

  默認值
  每個(gè) Preference 都有個(gè)“默認值”。
  “默認值”包含在 Firefox 的安裝包里面。
  絕大多數用戶(hù)并【不需要】去修改“默認值”。
 ?。ㄗⅲ簶O少數有此需求的讀者,可以去本文的高級話(huà)題——autoconfig這個(gè)章節)

  當前值
  每個(gè) Preference 都對應某個(gè)“當前值”。
  當你修改 Preference 的時(shí)候,修改的就是它的“當前值”。
  一開(kāi)始的時(shí)候,每個(gè) Preference 的“當前值”就等于它的“默認值”;如果該 Preference 被定制了(修改了),其“當前值”與“默認值”就有可能不同。

◇誰(shuí)可以修改“配置選項”?

  首先,Firefox 的用戶(hù)當然可以修改配置選項(具體如何做,后續章節會(huì )細聊)
  除了用戶(hù),【瀏覽器擴展】也可以添加或修改“配置選項”。某些擴展會(huì )提供定制界面,讓用戶(hù)設定某些參數。這些參數也保存在瀏覽器的 Preference 里面。
  有必要強調一下:網(wǎng)站上的 JS 是【無(wú)法修改】Preference 滴!
  道理很簡(jiǎn)單:因為 Firefox 的 Preference 中保存了很多與安全性相關(guān)的配置參數。如果允許網(wǎng)站的 JS 修改這些參數,將會(huì )成為巨大的安全隱患。

◇為啥要修改“配置選項”?

  俺總結下來(lái),大致有如下幾種需求:
  1. 安全加固
  你可以通過(guò)定制很多的 Preferences 以大大強化 Firefox 的安全性(包括隱私防護能力)。
  每次 Firefox 的新版本增加了某個(gè)比較重要的安全相關(guān)的定制選項,俺會(huì )在每季度的《近期安全動(dòng)態(tài)和點(diǎn)評》提醒大伙兒。
  2. 性能優(yōu)化
  通過(guò)定制 Preference 可以?xún)?yōu)化性能(包括:“網(wǎng)絡(luò )傳輸、內存使用、界面渲染”等方面)
  3. 易用性
  通過(guò)定制 Preference,你還可以改進(jìn) Firefox 界面的易用性。


★“about:config”界面

◇進(jìn)入界面

  修改 Firefox 的 Preference,最簡(jiǎn)單的方式就是“about:config”界面了。
  你在瀏覽器地址欄輸入 about:config 然后敲回車(chē),就進(jìn)入該界面。
 ?。ㄌ嵝岩幌拢捍蜷_(kāi)該界面時(shí),你可能會(huì )看到一個(gè)警告提示,別慌張)

  “about:config”界面主要是個(gè)的表格,共4列,分別是:
  第1列:Preference 的“名稱(chēng)”
  第2列:Preference 的“狀態(tài)”(如果顯示“default”表示該 Preference 還沒(méi)被修改過(guò),顯示“modified”表示已經(jīng)被改過(guò))
  第3列:Preference 的“數據類(lèi)型”
  第4列:Preference 的“當前值”

◇【篩選/過(guò)濾】Preferences

  該界面默認會(huì )列出 Firefox【所有的】Preference(成百上千個(gè))。某些菜鳥(niǎo)一看到這個(gè)架勢,可能會(huì )有點(diǎn)暈。
  別慌,界面上方有一個(gè)搜索框,可以幫你進(jìn)行【篩選/過(guò)濾】。
  該搜索框針對 Preference 的名稱(chēng)進(jìn)行【模糊匹配】。比如說(shuō):你在搜索框中輸入 network,那么界面上就只列出名稱(chēng)中包含 network 的那些 Preferences。

◇【修改】某個(gè) Preference 的值

  對于“布爾型”的 Preference,你雙擊 Preference 所在的這行,就可以修改它的“當前值”(在 true 與 false 之間切換)
  對于其它數據類(lèi)型,雙擊 Preference 所在的行,會(huì )彈出一個(gè)對話(huà)框,讓你輸入【新的】數值。

◇【重置】某個(gè) Preference 的值

  所謂的“重置”(reset)就是指“恢復默認值”。
 ?。▽τ谝呀?jīng)被改過(guò)的 Preference)選中它所在的那行;點(diǎn)右鍵;在快捷菜單上有一項“Reset”(重置);使用這個(gè)菜單項就可以把該選項重新恢復成默認值。

◇【添加】一個(gè)新的 Preference

  在“about:config”界面的表格上點(diǎn)右鍵;在快捷菜單上有一項“New”(新增);可以讓你添加一個(gè)新的 Preference。
  添加時(shí)會(huì )讓你指定新 Preference 的“名稱(chēng)”和“數值”。

◇一個(gè)小小的練習——如何去掉“about:config”界面的警告

  你在“about:config”界面的搜索框中輸入 general.warnOnAboutConfig,此時(shí)只會(huì )過(guò)濾出一個(gè) Preference,這個(gè) Preference 是“布爾型”。當它的值是 true,每次你打開(kāi)“about:config”界面都會(huì )顯示警告提示;反之,則不顯示。
  你可以修改這個(gè) Preference 的值。修改之后再【重新打開(kāi)】“about:config”界面,體會(huì )一下效果。


★“prefs.js”配置文件

◇功能簡(jiǎn)介

  每個(gè) Firefox 實(shí)例中都有名為 prefs.js 的配置文件。這個(gè)文件保存了當前實(shí)例中【所有】Preferences 的設置。

◇文件位置

  該文件位于每個(gè)【實(shí)例目錄】下。

◇文件格式

  該文件的擴展名是 .js,說(shuō)明其內容是 javascript 語(yǔ)法。
  在 javascript 語(yǔ)法中,任何一行中如果出現【雙斜杠】// ,那么“從雙斜杠一直到行尾”都算【注釋】;另外,包含在 /* 和 */ 之間的內容也是【注釋】。(注:第二種注釋可以跨越多行)
  除了注釋之外,該文件的每一行有效代碼對應一個(gè) Preferences。文件中的每個(gè)有效代碼行全都是如下這個(gè)樣子:
user_pref("配置項名稱(chēng)", 配置項數值);

  由于每一個(gè) Preferences 的名稱(chēng)都是字符串,因此上述代碼中的 配置項名稱(chēng) 總是包含在【半角引號】中。
  如果某個(gè) Preferences 的數據類(lèi)型屬于“字符串型”,那么上述代碼中的“配置項數值”也要包含在【半角引號】中;否則,就不需要使用引號。

◇注意事項?。?!

  【不要】直接修改 prefs.js 文件?。?!
  如果你想通過(guò)【配置文件】的方式定制 Firefox 的 Preferences,請使用【user.js】(參見(jiàn)下一個(gè)章節)。


★“user.js”配置文件

◇功能簡(jiǎn)介

  Firefox 使用名為 user.js 的文件對 Preferences 進(jìn)行個(gè)性化定制。

◇文件位置

  該文件位于【實(shí)例目錄】下。請注意:默認情況下【沒(méi)有】這個(gè)文件!
  如果你想用這種方式定制 Firefox,需要在【當前實(shí)例】的目錄下【手動(dòng)創(chuàng )建】該文件,然后往這個(gè)文件中添加代碼。

◇文件格式

  該文件的格式與 prefs.js 相同。具體介紹參見(jiàn)“前一個(gè)章節”。

◇配置舉例

  前面介紹“about:config”界面時(shí),已經(jīng)讓你做了一個(gè)小小的練習。
  現在,咱們在“user.js”中繼續進(jìn)行這個(gè)練習——
  當你創(chuàng )建好一個(gè)空的 user.js 文件,在文件中添加如下代碼,并存盤(pán)。
user_pref("general.warnOnAboutConfig", false);
 ?。ㄗⅲ荷鲜龃a中的“括號、引號、逗號、分號”必須都是【半角符號】)
  上述文件存盤(pán)之后,你把 Firefox 重新啟動(dòng),然后再打開(kāi)“about:config”界面,這時(shí)候就不會(huì )再有那個(gè)討厭的警告信息了。

◇【重置】某個(gè) Preference 的值

  如果你已經(jīng)在“user.js”中修改過(guò)某個(gè) Preference,之后又想恢復其默認值。請參照如下步驟:
1. 先在“user.js”中把這個(gè) Preference 的配置“刪除”或“注釋掉”;
2. 重啟瀏覽器;
3. 再到“about:config”界面進(jìn)行重置操作。

◇注意事項?。?!

  當你要通過(guò)這種方式修改某個(gè)選項,先搞清楚這個(gè)選項的含義和用途,并了解可能的【副作用】。


★上述三種配置方式的【原理】

◇加載配置

  當 Firefox 啟動(dòng)的時(shí)候,會(huì )讀取 user.js 和 prefs.js,拿到這兩個(gè)文件中的 Preferences 配置,并保存在內存中。
  如果發(fā)現這兩個(gè)文件的配置有沖突,以 user.js 為準(也就是說(shuō):“user.js 的配置”會(huì )覆蓋“prefs.js 的配置”)。
  如果同一個(gè)配置項在某個(gè)文件中出現多次,后面的代碼行會(huì )覆蓋前面的代碼行。

◇修改配置

  當你打開(kāi)“about:config”界面,Firefox 會(huì )把內存中的 Preferences 信息顯示給你看。
  如果你在這個(gè)界面上進(jìn)行了修改,修改的結果會(huì )保存在內存中,同時(shí)也會(huì )保存到 prefs.js 文件中。
  另外,Firefox【不會(huì )】去修改你用于定制的 user.js 文件。


★高級話(huà)題——autoconfig

  “高級話(huà)題”是專(zhuān)門(mén)針對“Firefox 老鳥(niǎo)”,尤其是那些具有“geek 精神”(善于折騰)的用戶(hù)。
 ?。ㄊ煜け静┛偷淖x者應該知道:俺一向鼓勵【折騰】,并寫(xiě)過(guò)一篇博文《聊聊【折騰】的重要性》)
  至于菜鳥(niǎo)嘛,先搞定前面章節介紹的內容,學(xué)會(huì )怎么用“user.js”;然后再考慮本文的“高級話(huà)題”。
  考慮到本章節的特點(diǎn),“高級話(huà)題”的介紹只是【點(diǎn)到為止】——對于【善折騰】的讀者,俺只需給出一個(gè)方向,他們自然能沿著(zhù)這個(gè)方向走得足夠遠。

◇“user.js”的局限性

  通過(guò)“user.js”,雖然可以讓你定制每一個(gè) Preference;但至少有如下局限性:

  局限性1——【無(wú)法】修改某個(gè) Preference 的【默認值】
  請注意:在 user.js 中修改的是【當前值】。不管“當前值”如何變,“默認值”【沒(méi)】變。
  在某些特殊場(chǎng)合,你可能想要定制 Preference 的【默認值】。

  局限性2——【無(wú)法】鎖定某個(gè) Preference
  所謂的“鎖定”就是“禁止修改”的意思。
  比如說(shuō):某個(gè)第三方擴展會(huì )修改某個(gè) Preference 的值;但你又不希望這個(gè) Preference 被修改。這時(shí)候就可以把這個(gè) Preference【鎖定】。

◇比“user.js”更牛逼的【autoconfig】

  Firefox 的擴展能力及其強大,當然能滿(mǎn)足上述這些怪異的需求。
  Mozilla 提供了名為【autoconfig】的機制,可以更進(jìn)一步地定制 Preference。具體參見(jiàn) Mozilla 官網(wǎng)的“這篇教程”(洋文)。
  在 user.js 中,咱們只能使用 user_pref 這個(gè)函數;而在【autoconfig】這種定制方式中,還提供了更多的函數,至少包括如下(代碼中綠色的部分是注釋?zhuān)?/span>
defaultPref("配置項名稱(chēng)", 配置項數值);  // 該函數用于:定制配置項的【默認值】
lockPref("配置項名稱(chēng)", 配置項數值);  // 該函數用于:設置配置項的默認值并【鎖定】
unlockPref("配置項名稱(chēng)");  // 該函數用于:【解鎖】配置項
clearPref("配置項名稱(chēng)");  //  該函數用于:把配置項的【當前值】恢復為【默認值】


★高級話(huà)題——定制“omni.ja”

◇“autoconfig”的局限性

  “autoconfig”雖然比“user.js”更牛逼,但其能力只局限于 Preference 相關(guān)的定制。
  有些你想定制的東西(比如:默認的鍵盤(pán)快捷鍵)【并不】保存在 Preference 中——也就是說(shuō),即便你去搗鼓“autoconfig”也【搞不定】!這時(shí)候就要引入【終極大殺器】——直接修改【omni.ja】。

  順便插一句:
  自從 Firefox Quantum(Firefox 57)之后,舊的“XPCOM 擴展機制”已經(jīng)淘汰,換成新的“WebExtensions 擴展機制”。但是,“新擴展機制”的功能比原來(lái)要弱(據說(shuō)是為了安全性的考慮)。比如:對“鍵盤(pán)快捷鍵”的定制能力就變弱了。
  在這種情況下,“定制 omni.ja”的優(yōu)勢就更加明顯——因為它能做到“用擴展無(wú)法完成的事情”。

◇比“autoconfig”更強大的【omni.ja】

  Firefox 是一個(gè)很復雜的開(kāi)源項目,代碼量超大。它的核心代碼(比如:渲染引擎、JS 引擎)是基于 C++ 語(yǔ)言開(kāi)發(fā)(并在逐步遷移到 Rust 語(yǔ)言)。而軟件界面(UI)相關(guān)的部分,大體上還是 Web 那套東西(不外乎就是:XML、JS、JSON、CSS ...)。
  這些與 UI 相關(guān)的東西,大部分都打包在(安裝包自帶的)omni.ja 文件中。如果你摸透了 omni.ja 的結構,就可以對 Firefox 的界面進(jìn)行任意定制。
  說(shuō)到這里,某些熟悉 Firefox 的用戶(hù)會(huì )反問(wèn):為啥不用 userChrome.css 定制 Firefox?
  這個(gè)東東俺當然知道(而且還寫(xiě)過(guò)專(zhuān)門(mén)的教程,鏈接在“這里”)。但它的能力很【有限】——只能修改 CSS 樣式,【無(wú)法】定制界面的功能。

  舉個(gè)【簡(jiǎn)單】例子:
  比如說(shuō) Firefox 的默認快捷鍵中,【Ctrl + q】會(huì )退出整個(gè)進(jìn)程;
  如果你不喜歡這個(gè)快捷鍵,可以換成一個(gè)更順手的(通過(guò)修改 omni.ja 里面的 chrome/en-US/locale/browser/browser.dtd)

  舉個(gè)【復雜】例子:
  或許很多 Firefox 用戶(hù)不知道——你可以用【Alt + 數字鍵】或【Ctrl + 數字鍵】來(lái)切換 Firefox 的標簽頁(yè)。
 ?。ㄗⅲ喊吃?Linux 用的是 Alt,而 Windows 環(huán)境用的是 Ctrl)
  當你在 Firefox 界面上按了這個(gè)組合鍵,會(huì )觸發(fā)某個(gè) JS 代碼,然后由這個(gè) JS 代碼來(lái)改變當前標簽頁(yè)的狀態(tài)。
  而這段 JS 代碼就包含在 omni.ja 這個(gè)壓縮包的某個(gè)文件中(chrome/browser/content/browser/browser.xul)。如果你能修改這段 JS 代碼,就可以實(shí)現自己想要的某些效果。

  友情提醒:
  安裝好的 Firefox 有【兩個(gè)】 omni.ja ——大的那個(gè)有30多兆,小的那個(gè)有十多兆。
  當你要折騰的時(shí)候,別搞錯了?。?!
  比如說(shuō):當俺在折騰鍵盤(pán)快捷鍵時(shí),修改的是【大的】那個(gè)。

◇簡(jiǎn)述“omni.ja”的格式

  如何“解壓縮”?
  雖然 omni.ja 的擴展名是 .ja,但其實(shí)是個(gè) zip 壓縮包;但它又【不是】標準的 zip 壓縮包——因為它的文件頭有點(diǎn)特殊。
  俺在 Linux 下用 unzip 命令進(jìn)行解壓縮,完全 OK(使用 Mac OS 的同學(xué)也可以用這個(gè)命令);
  對于使用 Windows 的同學(xué),(Mozilla 官網(wǎng)的文檔建議)先把擴展名改為 .zip 再用資源管理器自帶的解壓功能(注:其它解壓 zip 的工具不一定能行)。

  如何“壓縮(重新打包)”?
  當你【修改完】omni.ja 內部的文件之后,要【重新打包】該文件。
  對于 POSIX 環(huán)境(Linux & UNIX),Mozilla 官網(wǎng)的文檔建議使用如下命令:
zip -qr9XD omni.ja *

◇定制“omni.ja”的注意事項

  簡(jiǎn)單說(shuō)幾個(gè)注意事項:

  第1條
  omni.ja 內部的文件很多。只修改那些【你有把握】的文件。
  如果你把 omni.ja 內部的某些文件改壞了,可能會(huì )導致 Firefox 無(wú)法啟動(dòng),而且也沒(méi)有任何報錯信息。

  第2條
  每次修改完 omni.ja,為了讓你的修改生效,要記得:先退出 Firefox【進(jìn)程】;然后清空整個(gè)緩存目錄;最后再啟動(dòng) Firefox。

  第3條
  由于每次修改完都要做“打包、清緩存、重啟 Firefox”這幾件事情。俺建議:搞個(gè)命令行腳本幫你自動(dòng)干這些事兒,以提升效率。

  第4條
  omni.ja 會(huì )隨著(zhù) Firefox 的版本而變化。也就是說(shuō),每次有新版本,你還需要在新版本上再修改一次。
  如果結合第3條與第4條,你更應該寫(xiě)一個(gè)腳本,幫你【自動(dòng)化】完成整個(gè)定制流程。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
如何在 Linux 中找出 CPU 占用高的進(jìn)程
firefox占用內存大,資源大的解決方法
【轉】Firefox占用內存過(guò)大的解決辦法_豬窩
Firefox火狐about:config設置
firefox優(yōu)化
[轉帖]火狐優(yōu)化技巧,優(yōu)化之后速度遠超chrome
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久