2016-05-30 134 views
3

我已經使用Web擴展API編寫了Firefox擴展。它已經通過了初步審查,但是評論者說,他不能當他安裝它的全面審查的原因出發,他得到了下面的錯誤 -Firefox擴展:無法解析擴展存儲的JSON數據

「無法解析的擴展存儲JSON數據」

在檢查在相當長的一段時間內,我認爲Firefox會在每個擴展名的配置文件文件夾中創建一個名爲「storage.js」的文件,用於寫入和讀取特定擴展名的所有本地存儲數據。如果在創建此文件之前擴展嘗試寫入此文件,則會引發錯誤「無法將JSON數據寫入擴展存儲」,並且如果擴展代碼嘗試在創建此文件之前從此文件讀取,則會出現錯誤「無法解析擴展存儲的JSON數據「。

現在,我關心的是我怎麼知道肯定該文件已被創建,它可以寫入或讀取?

PS:剛剛安裝擴展時發生這種情況。對於隨後的會話,這個錯誤不會出現,因爲該文件不再丟失。

回答

3

這似乎是在當前的Firefox實現中的錯誤,你的評價是現貨上:

  • 底層ExtStorage模塊總是會getset等甚至writeclear之前調用read
  • read將無條件嘗試訪問底層,延長特定的存儲文件時,可能無法使用首次存儲API新安裝的加載項還不存在。
  • 因此,無論您使用存儲API做什麼,這都會導致記錄一條這樣的消息(Unable to parse JSON data for extension storage)。
  • 因此觸發消息是不可避免的。

我建議你做到以下幾點:

  • 聯繫的編輯團隊,要求他們重新評估基礎上的附加:
    • 有問題的消息是真的只是一個警告(當您的插件第一次訪問存儲API後出現)。
    • 即使消息將是一個實際的錯誤(存儲已損壞),它仍然不會是你的錯誤,如由Mozilla存儲API的實現需要更加有彈性,然後有什麼可以做呢。
    • 消息正在對第一個常規使用的存儲API的,無關什麼WebExtensions附加發行使用該API以及以何種方式,是Mozilla的錯誤,而不是你造成的東西,或可以圍繞自己解決或至少工作。
    • 因此,僅僅因爲mozilla錯誤錯誤地記錄虛假消息而沒有任何其他嚴重效果而拒絕全面審查是......值得懷疑的。
  • File a bug關於這個,所以mozilla開發人員可以解決這個問題。自從他編寫該代碼以來,您至少希望抄送CC至少Bill McCloskey(:billm);)