クロムからエッジに既存の拡張機能を移植していますが、chrome.storage.localの1MBの制限に問題があります。私はこのトピックの関数String length in bytes in JavaScriptを使用して文字列のサイズを調べ、json文字列が1mBを超える場合は "1mB以上"の例外をスローしますが、json文字列が250kBと1mBの間であれば、 .runtime.lastErrorは、データが1mBを超えていると、例外はスローされず、データは格納されません。Edge extendion chrome.storage.local 1MB制限
私はbrowser.storageに切り替えようとしましたが、私は同じ結果を得ています。これはバグですか、私が間違って使用しているバイトサイズ関数ですか?
また、lz-stringを使用してデータを圧縮してストレージを増やしています。
tmp = JSON.stringify(tmp);
tmpAsString = LZString.compressToUTF16(tmp);
var compresskey = 'compressedJSExtension';
try {
chrome.storage.local.set({[compresskey] : tmp }, function() {
if (chrome.runtime.lastError) console.error(chrome.runtime.lastError);
});
}
catch (f) {
//Handle if the string is over 1mB
}