2014-09-23 73 views
2

我已經爲基於雲的產品之一的鉻插件工作。對於The Chrome,我們已經使用了第三方JS庫(如BackboneJS等)。現在我必須設計一個Firefox擴展,我試圖弄清楚我們可以重用多少代碼。顯然,Mozilla開發者網站花費了幾個小時,對於Firefox擴展來說,我們必須將XUL用於UI。不確定我們是否可以使用Chrome App的HTML和JavaScript函數來實現Firefox擴展,或者估算工作量的方法是什麼。我的理解是我們必須從頭開始,因爲像FF中的Chrome我們沒有背景頁等概念。實施Firefox擴展與實施Chome插件

回答

1

沒有什麼固有的東西阻止你在HTML/JS中實現UI。您可能必須將其封裝在<window>(Firefox將打開純HTML)中的XUL <iframe><browser>(可能包含其他元素)中。

關於擴展的關鍵問題是它們在高級安全上下文中執行,而不是在網頁上執行。因此,他們有能力在瀏覽器和用戶系統中影響更大範圍的事物。當使用<iframe><browser>元素時,它們具有屬性type,該屬性默認使內容在提升的安全上下文中運行。默認值爲type="chrome",這使得打開的內容位於擴展的較高安全上下文中。 Security best practices in extensionsDisplaying web content in an extension without security issues

至於你的JavaScript:從MDN關於與開放內容安全關切<iframe>,或者沒有從您的分機分配來源<browser>元素

附加文檔,您應該能夠重新使用大量的它。至少,邏輯。顯然,如何完成與標準文檔中沒有涉及的瀏覽器相關的接口(例如,DOM操作應該非常接近,就像網頁JS一樣),將會出現更大的差異。

+0

更具體地說,當我將Chrome擴展的體系結構與Firefox擴展進行比較時,我沒有在Firefox中找到與Chrome等效的背景頁面。 – sidd 2014-09-24 18:20:49

+0

有很多方法可以用來完成一個始終運行的腳本。如何做到這一點取決於多個考慮因素。至少,你正在做什麼[附加](https://developer.mozilla.org/en-US/Add-ons)([Overlay](https://developer.mozilla.org/en -US/Add-ons/Overlay_Extensions),[Bootstrapped](https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions)或[Add-on SDK](https://developer.mozilla .org/en-US/Add-ons/SDK))以及您想要代碼執行的操作。 – Makyen 2014-09-24 23:34:08

+0

我正在遵循附加SDK的步驟來構建擴展。 – sidd 2014-09-25 04:28:37