タグ: Chrome Extension

  • Chrome Extension 更新失敗の原因について

    先日、Chrome Extension の更新版をリリースしました。(詳しくはこちら
    その際にいくつかのミスがありましたので、備忘録としてここに記録しておきます。

    (1) 大量データに関する問題

    コメントでご指摘いただき、初めて気づくことができました。
    私は、品質向上のためには性能試験が重要だと考えているにもかかわらず、大量データに対するテストを行わずにリリースしてしまいました。
    自分の Amazon 購入履歴は多くても10ページ程度だったため、それ以上のケースは「テストできない」と思い込んでいました。
    しかし、それは単なる言い訳です。たとえば、1ページを10回ずつ読み込むようにコードを少し変更すれば、簡単に大量データのシミュレーションができます。

    原因と対応策

    エラーの原因は、巨大な配列を String.fromCharCode に展開して渡した際、
    「Maximum call stack size exceeded(スタックオーバーフロー)」が発生していたことです。
    これに対しては、32KBずつに分割して処理することで対応しました。
    該当の修正コミットはこちら

    (2) ZIP 作成ミス

    こちらもコメントでご指摘いただきました。ありがとうございます。
    Chrome Extension は ZIP にまとめて Chrome Web Store にアップロードする必要があります。
    しかし、リリース版にテスト用のデータ水増しコードがそのまま含まれてしまうという、非常に初歩的なミスをしてしまいました。
    私は修正後に git commit をしたことで、未コミットのファイルは ZIP に含まれないと思い込んでいました。
    これは、他のプロジェクトでは CI/CD により自動でビルド・リリース用の ZIP が作成されるため、その感覚が残っていたことが原因です。

    今後の対策

    今後は、ZIP 作成処理をスクリプト化する予定です。
    具体的には、別フォルダに最新コードをクローンし、そこから ZIP を作成する仕組みにします。
    以下は参考までに、macOS 上でのシェルスクリプト例です:

    cd /tmp
    rm -fr ./work
    mkdir work
    cd work
    git clone --depth 1 --branch main git@github-greencode:green-code-developer/chrome_extension_amazon_jp_history .
    zip -r extension.zip ./extension
    ls -l /tmp/work/extension.zip

    ご指摘くださった皆さま、本当にありがとうございました。
    この経験を次回のリリースに活かしていきたいと思います。

    【広告】

  • 購入履歴取り込み変更点

    先日更新した、アマゾン購入履歴csv取得の変更点について説明します。

    変更前(v1.1) まではこちらの方式でした。

    ポップアップからコンテンツへ直接指示を出していました。

    この方式の問題は、ポップアップが突然閉じてしまうと、収集処理が途中で止まってしまうことです。

    更新後(v1.2+)の方式がこちらです。

    バックグラウンドは画面を持たない仮想のタブのようなものです。こちらは、ポップアップと違って、閉じることがありません。そのため、安定して全ページを取得することができます。

    バックグラウンドについてはこちらの記事が分かりやすかったです。

    【広告】

  • アマゾン購入履歴CSV取得Chrome Extension を更新しました

    Chrome Extension でアマゾンの購入履歴をCSV としてダウンロードするアプリに、以下の点を改良してリリースしました。

    • 文字コード選択(SJIS or UTF8)
    • UI改善
    • 動作が途中で止まるバグ対応

    正直に言いましてChrome Web Store を作成以来放置しておりました。先週になってようやくコメントをいただいていたことに気づきました。(遅くなってすみません)
    多くが文字コードに関するものでした。

    Chrom extenson デベロッパーコンソールが上の画像で、ここから約8割の方がwindows での利用されている状況と分かりました。そのため、SJIS でダウンロードする機能が必要と考えて、文字コード選択機能を追加しました。

    よかったら使ってみてください。
    アマゾン購入履歴取得ツール

    SJIS の変換は encoding-japanese を使わせていただきました。
    https://www.npmjs.com/package/encoding-japanese

    【広告】