Gyazo Chrome Extensionの再公開について

Gyazo Extensionの開発を主に担当しているid:Pasta-Kです。

Gyazo Extensionは日本時間の2020年5月21日〜2020年7月29日の間、Chrome Web Storeから取り下げられていました。いくつかの変更をExtensionに加えることで審査を経て本日遂に再公開となりました。同様にGyazo Teams向けのExtensionも引き続き非公開になっていますが、今回のGyazo Extensionの再公開を受け、数日中に再公開できる見込みです。

この件に関する、経緯と対応に関する具体的な内容について、主にChrome Extensionの開発に関わる皆さんに向けて共有しようと思います。もし同じような事象に遭遇している方の参考になれば幸いです。

経緯について

Chrome Web Store側からはUse of Permissions*1に関する違反があったと2020年5月7日に通達されていました。この際、ここから14日間の間に問題を解決しない場合Chrome Web Storeから取り下げられる旨が書かれていたので、対応を開始しました。

この際、まずは現状の機能についてChrome Web Store上でPermissionの目的について記述し、いくつかコードの変更やAPIの変更などに依って不要になっているPermissionがあったので削除をしました。

ほぼ時を同じくして、PushBulletが同様の通達を受けるも機能の削減などはせずに公開できたということがブログで紹介されていたので、同様に問題なく再公開できるであろうと楽観視していました。

ですが、これだけでは再承認を得ることが出来ず、Chrome Web Storeから送られてくるメールの内容も初めの通達と同じ文言でした。詳細に関することや具体的な違反内容について触れられていませんでした。

そうこうしている間に期限である14日が過ぎてしまい、Gyazo ExtensionはChrome Web Storeから取り下げられてしました。

この日を境にChromeへの新規のインストールが出来なくなり、ユーザーの皆さまからもお問い合わせを頂いたり、Twitter上でインストールが出来なくなっていることについて言及を頂いていました。ユーザーの皆さまにご不便をお掛けしてしまいました。具体的に何が原因で非公開になったのか詳細な理由がフィードバックされなかったこともあり、再公開の目処についてお知らせすることはできませんでした。

このまま闇雲に変更と再申請を繰り返しても仕方ないと考え、取り下げられたという通知のメールに返信する形でGoogleのChrome Web Storeチームに対して、非公開になっている理由や解決すべき点について問い合わせを行いました。

要約すると以下の点について問題があるという返答を受けました。

  • ユーザーデータの取り扱いに関するMinimum Permission*2に関する問題
    • **To comply with our policy, please ensure that your Product requests and uses only those permissions that are necessary to deliver the currently stated product’s features.**

    • (Chrome Web Storeチームからの返信メールより。原文ママ)

このようなメールを受け取ったものの、結局具体的にどのPermissionの取り扱いが違反しているかなどについて詳細な説明は受けられず、既知のポリシーなどが記載されているURLを受け取ったまででした。

一方でやはりPermissionがminimumではないと捉えられているのだということを再認識したので、ここで改めて更にPermissionを削ることは果たして可能なのかについて検討しました。ここで、Chrome Web StoreのDashboard上のPrivacyタブに再度注目すると、Extensionに関する Single purposeを記載する箇所の説明にこう書かれていました。

Extensions Quality Guidelines

Single Purpose:

An extension must have a single purpose that is narrow and easy-to-understand. Do not create an extension that requires users to accept bundles of unrelated functionality. If two pieces of functionality are clearly separate, they should be put into two different extensions, and users should have the ability to install and uninstall them separately.

https://developer.chrome.com/webstore/program_policies#extensions より

このことより、Gyazo Extensionが提供していたある機能に目を付けました。Gyazo ExtensionではGithubのissueやPull RequestのエディタにGyazoのURLを貼る際にMarkdown形式に変換する機能を提供していました。この機能がこのSingle Purposeに反しているのではと考え、それをまずはデフォルト無効(ユーザーが任意にオプションより有効にできる)にしました。

この変更を加え再提出するも承認を得ることが出来なかったので、この機能を削除した v3.1.0を提出し、本日承認を得ることが出来ました。

まとめ

Gyazo Extensionは日本時間の2020年5月21日〜2020年7月29日の間、Chrome Web Storeから取り下げられていましたが、Chrome Web StoreのSingle Purposeに則る形で機能を変更することで無事再公開することが出来ました。結果的に取り下げから再公開までに次の変更をExtensionの機能に対して行いました。

  • GithubでのGyazo URL貼り付け時のMarkdown変換サポート機能の削除
  • キャプチャー後のURLのクリップボードへの自動書き込みのオプション化
    • これまでもオプションから無効にすることは出来ましたが、この度の変更よりデフォルトでは無効(所謂オプトイン)になりました

Chrome Web Store側から適切なフィードバックを得られず、またCOVID-19の影響下でレビューに時間が掛かる中、結果的にExtensionの開発者である我々が手探りでポリシーと機能を検討し、変更と提出を繰り返すのは非常に大変で根気を必要とする作業でした。また、PushBulletのように各種機能を残したまま再公開出来ている事例があることについては公平ではないと感じているのが正直な感想です。Chromeは近年ユーザーも多く、また悪意のあるExtensionからユーザーを保護することは非常に重要であるということには同意しますが、その一方でExtension開発者に対してのフィードバックは非常に不親切であると感じました。もう少し分かりやすいフィードバックが行われるようになることを期待しています。

是非GyazoのExtensionをご利用ください

このような経緯を経て再公開されたGyazoのExtension、Webページの全体の画像をGyazoにアップロードする機能やHTML要素のボックスサイズに合わせて撮影する機能などがあります。よろしくおねがいします。

参考