2013-12-17 168 views
0

FF25.0,Fedora 18.安裝Crossrider擴展的調試擴展失敗 - Firefox

這只是一直循環。暫存擴展安裝,並且它的一部分是活動的,因爲擴展修改了dom的一部分(我認爲即使後臺腳本也在本地存儲初始化時運行)。並非所有的擴展工程,如側邊欄和其他dom注入,應該在頁面加載運行。但crossrider中的調試模式頁面無法識別正在運行的擴展。

我懷疑這是由於我的代碼中的錯誤,但似乎沒有辦法調試它。當我註釋了側邊欄時,它仍然在另一次安裝後短暫顯示,這讓我懷疑代理/緩存正在阻礙,但在擴展URL上添加額外的GET參數並沒有幫助。我試過把debugger加到extension.js。控制檯是空的。沒有錯誤報告的螢火蟲。擴展在Chrome中運行正常,我真的不想回到空白擴展名,並嘗試添加一點點,直到失敗。必須有一個更簡單的方法,例如製作firefox,只需說,「這是你的問題,就在X號線上」。有任何想法嗎?

[編輯]
打開一些調試選項後,我已經得到了在控制檯中的錯誤,但點擊問題的文件/行號剛打開「來源:...」窗口。在谷歌瀏覽器中,我在調試器中獲取文件,可以達到中斷點,刷新並捕獲錯誤。更妙的是,如何運作的「突破例外」選項,但實際上的作品。

[編輯]
我終於得到了瀏覽器調試器的工作。第一個錯誤是NS_ERROR_XPC_BAD_OP_ON_WN_PROTO

回答

1

好了,開始實際得到的消息,你需要設置一些標誌在「about:config」這裏列出:Setting_up_extension_development_environment

我會複製一些...

  • javascript.options.showInConsole = true(這是已經在對我來說)
  • browser.dom.window.dump.enabled = true
  • javascript.options.strict = true(還有一個調試版本我打開過)
  • devtools.chrome.enabled = true(無關的谷歌瀏覽器)
  • devtools.debugger.remote-enabled = true重要的一個,允許Firefox->Web Developer->Browser Debugger,確保允許遠程調試否則撤銷的配置變化)
  • devtools.errorconsole.enabled = true
  • extensions.logging.enabled = true

看起來好像很多選項也被刪除了。這至少讓我開始了。

[編輯]
This答案也提到了「Web開發技術>瀏覽器調試器」(這是目前空白 - 「無源」 - 我不知道)和「Web開發技術>瀏覽器控制檯」窗口(只是似乎與窗內控制檯具有相同的輸出)。

1
  1. 拋出一個巨大的的try/catch各地ALL您的擴展代碼。至少這可以讓crossrider「staging」擴展程序安裝並被識別。

  2. 打印異常(我假設所有的愚蠢about:config東西必須設置這個工作)

    appAPI.ready(function($) { 
        try { 
        ...rest of extension code 
        } 
        catch (e) 
        { 
         console.log("#################", e); 
        } 
    } 
    
  3. 找到在控制檯中的錯誤,並點擊[object exception]。注意行號(在注入其他代碼時不正確)。另外請注意,我們已經設法打印一個例外,並且firefox 失敗打破它。 FFFFFFFFFFFFFFFFFFFF

  4. 大約在代碼中間添加一些換行符。

  5. 重新加載。注意行號。如果它改變了,錯誤在換行符之後。如果不是,錯誤是之前。

  6. 重複步驟4直到找到錯誤。

  7. 花點時間反思這個過程的愚蠢。 (這不完全是針對crossrider的評論,更多的是目前嚴重缺乏簡單的Web開發工具和API)

+0

+1爲您的努力。這很痛苦。 –