【アドオン】WebExtensions開発者用スレッド
【アドオン】WebExtensions開発者用スレッド
元スレ
1 :名無しさん@お腹いっぱい。:2017/11/18(土) 12:38:26.45 ID:FCimjQUj0.net
ブラウザのアドオンはWebExtensionsに統一されようとしています
開発者の情報交換にどうぞ
・Chrome公式ドキュメント
https://developer.chrome.com/extensions
・Mozilla公式ドキュメント
https://developer.mozilla.org/ja/Add-ons/WebExtensions
53 :名無しさん@お腹いっぱい。:2018/05/05(土) 13:46:42.36 ID:lW/JmvZM0.net
JS 750行程度(ほかにHTMLやCSSもある)だけどとくに困ってない
デバッグもブラウザコンソールとインスペクタで十分
API依存でない部分は普通のページ上のJSと同じように開発すればいいだけだし
モジュール(のように使うファイル)の数が増えると面倒とは思う
manifest.jsonやら<script>を書き散らかさないといけないWEの仕様は変
ただ基本的に読み込みまれっぱなしで使われるブラウザ拡張を
たくさんのモジュールに依存したり巨大なフレームワーク使うような作りにはしないから
そこまで困ってはいない
37 :名無しさん@お腹いっぱい。:2018/01/20(土) 08:24:54.20 ID:Vcg0eAtp0.net
自動化したいなら
人間以上のAI積んでからしろっつうねん
48 :名無しさん@お腹いっぱい。:2018/04/21(土) 17:37:08.18 ID:RSszIfud0.net
ググルの画像検索仕様が変わって拡張使えなくなっとる
6 :名無しさん@お腹いっぱい。:2017/11/25(土) 14:48:40.89 ID:eAJ09Svo0.net
審査履歴にコメントがあった
機能の詳細、設定方法、使用方法を書いてスクリーンショット付けろって言われとる
この人レビュワーなのかな?面倒だがやるか……
25 :名無しさん@お腹いっぱい。:2017/12/10(日) 10:56:37.00 ID:QMa2l3qs0.net
>>21
>>22
nightlyで試してみた
ダイアログを出さないbeforeunloadが設定されたページをdiscardできるようになっていたけど
そのタブを再度アクティブにしてページをクリックとかしてから
タブを閉じたりリロードしようとするとページ上のbeforeunloadハンドラの返り値を無視して
beforeunloadのダイアログが出るようになりこのタブは二度とdiscardできない
こんなひどいリグレッションがあるようでは58に入れるのは無理かもなあ…
26 :名無しさん@お腹いっぱい。:2017/12/13(水) 00:58:09.72 ID:moP6K8El0.net
50 :名無しさん@お腹いっぱい。:2018/05/04(金) 22:35:17.51 ID:nOPwk/yb0.net
お前らの開発環境を教えてくれ
atomと自分のブラウザでやってたんだが、コードが増えるにつれて辛くなって来た
開発だけじゃなくてデバッグもつらい。500行未満の小さいのならともかく、巨大なアドオンとかとても作れる気がしない
14 :名無しさん@お腹いっぱい。:2017/11/29(水) 21:33:09.68 ID:uL5cKuad0.net
承認通知の文面が変更されて
公開後別のレビュワーがチェックするかもしれないから
ちょっと覚悟しとけみたいな内容が追加されてた
18 :名無しさん@お腹いっぱい。:2017/12/04(月) 08:25:50.18 ID:4N+MCAli0.net
40 :名無しさん@お腹いっぱい。:2018/02/26(月) 04:12:13.54 ID:IzIHHk9b0.net
39 :名無しさん@お腹いっぱい。:2018/02/13(火) 19:16:13.43 ID:04TfZh460.net
☆ 私たち日本人の、日本国憲法を改正しましょう。現在、
衆議員と参議院の両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
17 :名無しさん@お腹いっぱい。:2017/12/03(日) 10:37:04.29 ID:vnrqeG5h0.net
30 :名無しさん@お腹いっぱい。:2017/12/21(木) 23:35:57.21 ID:jVWUmVDQ0.net
>>29
ネイティブのスクロールではなくvim系アドオンとかでJavaScriptでスクロールすると
強制的にスムーススクロールになってしまうようだ
24 :名無しさん@お腹いっぱい。:2017/12/08(金) 05:31:56.24 ID:Mk4JoaRu0.net
49 :名無しさん@お腹いっぱい。:2018/04/24(火) 08:50:41.43 ID:c2v8ucew0.net
49 :名無しさん@お腹いっぱい。:2018/04/24(火) 08:50:41.43 ID:c2v8ucew0.net
2 :名無しさん@お腹いっぱい。:2017/11/20(月) 16:18:51.05 ID:Lah68vpU0.net
46 :名無しさん@お腹いっぱい。:2018/03/17(土) 19:26:59.74 ID:5xKEEa2b0.net
>>45
拡張機能のcontent scriptはそのページに追加で<script>でJavaScriptを
読み込んだかのように動作するからなんだってできる
厳密にはwindowオブジェクトが分離されていて全く同じではないけど
ページ上のHTMLを変更するようなことは無制限にできる
42 :名無しさん@お腹いっぱい。:2018/03/11(日) 16:03:25.24 ID:hBq5a8ho0.net
単に興味本位の疑問なんだけどPermissionからcookies APIを許可しない場合だと
backgroundコンテキストからfetchでXHRのようにcookie持たせたpostを行いたい場合は
そのcookieをcontentscriptsコンテキストから取得してbackgroundに渡さないと駄目なのかな
contentscripts触れるなら好きに引っこ抜けるのに制限している理由がよくわからない
36 :名無しさん@お腹いっぱい。:2018/01/10(水) 09:42:43.10 ID:vkqe9XnG0.net
3 :名無しさん@お腹いっぱい。:2017/11/20(月) 20:32:05.39 ID:Lah68vpU0.net
>>2
userChrome.jsスレの書き込みがヒントになったCSPのせいか
github.comにもCSP設定されているが注入できてたので見落としてた…
raw.githubusercontent.comはsandbox指定されててcontent scriptすら実行できないのね
こうもcontent scriptが実行できないケースが多いと実用性にかけるなあ
28 :名無しさん@お腹いっぱい。:2017/12/20(水) 12:53:38.18 ID:rSTgAnFo0.net
TSTの人が嘆いていたけどWebExtensionsの表記は最近は
API規格としての名称 = WebExtensions
Firefoxにおける拡張機能 = (Browser) Extension
という使い分けに見える
あとW3Cでの呼称がBrowser Extentionsなのも混乱の元
レガシーがなくなったので拡張機能(Browser Extension)がWEなのは自明ってことなんだろうけど
まだ52ESRが当分生きてるんだし時期尚早だと思う
MozillaもわざわざWebExtensionsという独自名称をつけたなら
ちゃんとブランディングしてくれればいいのに
45 :名無しさん@お腹いっぱい。:2018/03/17(土) 13:32:25.64 ID:dolaKGQS0.net
拡張機能に広告を付けることってできるのか?
enhancer for youtubeというアドオンを使ってyoutubeを見てるんだが、
普通に見るときには表示されないアドセンス広告が出てくる
15 :名無しさん@お腹いっぱい。:2017/12/02(土) 04:20:16.48 ID:wVGQJ0ea0.net
tabs.queryで返ってくるtab.discardedが嘘言うことがある気がする
明らかにアンロードされているタブがたくさんあるのに全部falseになってる
Firefox再起動すると直ってしまって再現条件がわからない
9 :名無しさん@お腹いっぱい。:2017/11/25(土) 15:27:02.75 ID:7CvS95LM0.net
>>8
審査通った後の話だったのね
公開された後人力で巡回してチェックしてるというのは聞いた覚えがある
当然全アドオンチェックなんてできないだろうからたまたま当たったのかな
外部サービス依存があるとチェックされやすいのかも
>そのサービスの知識がなくてもアドオンを理解できるようにしなさい
レビューポリシーだったかガイドラインにそんなようなことが書いてあったはず
定型文みたいなもんでしょう
11 :名無しさん@お腹いっぱい。:2017/11/27(月) 18:44:09.49 ID:q7i1N1560.net
何かまた同じ人からコメントが来た
プライバシーポリシーを追加して、どのユーザーデータが送信されているのか、どのサービスに対応しているのか説明しろ
必要ならWebサイトのプライバシーポリシーにも言及しろとある
勝手に作ったアドオンだし、個人情報なんて扱ってないのに
一体何を書けというのやら
8 :名無しさん@お腹いっぱい。:2017/11/25(土) 15:10:45.65 ID:eAJ09Svo0.net
>>7
俺もあっという間に更新されたから自動審査だなと思ったけど、通過した一週間後に来た
ニッチなWebサービス用のアドオンだが、
そのサービスの知識がなくてもアドオンを理解できるようにしなさいとか書いてあってこわいよ
29 :名無しさん@お腹いっぱい。:2017/12/21(木) 23:26:55.44 ID:jVWUmVDQ0.net
Bugzillaの強制スムーススクロールなんだこれ
余計なことを…
33 :名無しさん@お腹いっぱい。:2017/12/30(土) 22:59:41.31 ID:VJCx5akb0.net
僕のアドオンが他のアドオンとめっちゃ競合するう
同じAPIを叩いてる訳だから当たり前と言えば当たり前だが…
他のアドオンの挙動を見て整合性取らなきゃいけないつらい
32 :名無しさん@お腹いっぱい。:2017/12/27(水) 20:54:25.96 ID:wsFe6ieD0.net
16 :名無しさん@お腹いっぱい。:2017/12/02(土) 15:38:24.48 ID:OltRz4ui0.net
browser.downloads.resumeもなんかおかしいかも
こいつ呼んでも止まってるダウンロードが再開しないや
52 :名無しさん@お腹いっぱい。:2018/05/05(土) 01:14:46.28 ID:VnkL2EZD0.net
なんてこった同じか
webpackは名前しか知らない子だったのでこの機に勉強するか
47 :名無しさん@お腹いっぱい。:2018/03/17(土) 19:50:47.22 ID:dolaKGQS0.net
そうなんだ
じゃあ元々貼ってある広告を自分のに差し替えたりもできて、しかもばれない気がするな
20 :名無しさん@お腹いっぱい。:2017/12/04(月) 11:37:12.59 ID:4N+MCAli0.net
>>19
再現した
LastPassのアドオンは巨大(10MB!)で追ってられないけど
ざっとソース検索してbeforeunloadを使っている箇所はあった
しかしbeforeunloadを使っているcontent scriptを全ページに注入するようなアドオンを使うと
discardが一切できなくなるということだから
このままの仕様でdiscard APIリリースするとしたらひどい話だ
21 :名無しさん@お腹いっぱい。:2017/12/06(水) 04:24:08.21 ID:TCGB3jPQ0.net
>>18-20
この件、58ではダメだけど59NightlyだとTwitterもdiscardできるようになってた
Lastpassアドオン入ってても問題ない
31 :名無しさん@お腹いっぱい。:2017/12/23(土) 06:49:45.91 ID:KHcD4MkG0.net
43 :名無しさん@お腹いっぱい。:2018/03/12(月) 16:22:45.23 ID:JP/vte7L0.net
>>42
content scriptのとくにURLを制限しない<all_urls>は非常に強力で
ほぼなんでも許可と言っているようなものなので
この権限を許可してcookies APIは許可しないようなケースは想定してないんだろう
安易に<all_urls>権限を持った拡張機能を作ったり使ったりするのはどうかと思うんだけど
APIが貧弱すぎてなにかとcontent scriptでごちゃごちゃやらざるを得ないから
目をつむって権限許可する以外選択肢が無いという
22 :名無しさん@お腹いっぱい。:2017/12/06(水) 12:05:52.31 ID:aHzowIZS0.net
4 :名無しさん@お腹いっぱい。:2017/11/24(金) 16:53:49.53 ID:ZrJeDzmC0.net
23 :名無しさん@お腹いっぱい。:2017/12/08(金) 04:05:16.11 ID:03t3pjvP0.net
7 :名無しさん@お腹いっぱい。:2017/11/25(土) 15:02:58.85 ID:7CvS95LM0.net
>>6
審査履歴にコメントしてるのはレビュワーだね
そんなこと言われたことないけどなあ
説明一言だけスクリーンショット無しのアドオンたくさん公開されてるし
というか最近すごい審査早いからほぼ自動審査になってると思ってた
12 :名無しさん@お腹いっぱい。:2017/11/28(火) 20:30:06.96 ID:PvRjehi40.net
外部サービスを扱うアドオンなら
・サービスからどんなデータを取得するのか
・取得したデータをどう扱うのか
・取得したデータをローカルに保持するのか
・サービスにどんな操作を行うのか
こういったことを明確にしてくれって話ではないかと
作った本人には自明の内容であったとしても
使う側はブラックボックスだから気になるところだと思う
ろくに記述もないアドオンはそういうレビューがされていないか
コメントがあってもガン無視してるんでしょう
35 :名無しさん@お腹いっぱい。:2018/01/04(木) 22:18:01.18 ID:6ejLFz/90.net
>>6
これと同じようなレビュワーコメントが来た
設定画面も独自のボタンや画面も無いアドオンなのに
おそらくスクリーンショットの有無なんかを機械的にチェックして定型文送ってるだけだな
手抜きチェックでアドオン作者に余計な手間要求しないで欲しい
55 :名無しさん@お腹いっぱい。:2018/06/07(木) 20:50:20.10 ID:saWBnjck0.net
Message系のAPIでContentScriptへ投げられないのが不自由すぎる
storageのonChange使うのが一番マシな代替方法かな
27 :名無しさん@お腹いっぱい。:2017/12/16(土) 09:03:02.03 ID:LymSBaE00.net
>>25
ページをクリックとかしてからタブを閉じたりリロードしようとすると
ページ上のbeforeunloadハンドラの返り値を無視してbeforeunloadのダイアログが出るのは
discardのせいではなくbeforeunloadのundocumented?な挙動のせいだった
beforeunloadの返り値が、
null→必ずダイアログ出ない
空文字列→ページをクリックとか操作しない限りダイアログ出ない
適当な文字列とか→必ずダイアログ出る
ダイアログ出るパターンの場合でもdiscardできるようにするforceDiscardオプションの
実装が進められていたけど
この件含みタブ関係いろいろやってた人がbugzillaから全面撤退してしまった
10 :名無しさん@お腹いっぱい。:2017/11/25(土) 15:41:09.20 ID:eAJ09Svo0.net
なるほど、そんなものがあったのか
ありがとう
レビュワーには努力したぞって返信しとくわ
44 :名無しさん@お腹いっぱい。:2018/03/13(火) 00:19:32.85 ID:h3tWOy130.net
ああ言われてみれば本当にその通りだ
contentscriptsで力技する実装に慣れ過ぎた故の疑問だった
5 :名無しさん@お腹いっぱい。:2017/11/25(土) 13:34:34.18 ID:eAJ09Svo0.net
開発者センターで「詳細情報がリクエストされました。 」ってアクティビティが出たけどなんだろう
英語で説明書けばいいのかな
19 :名無しさん@お腹いっぱい。:2017/12/04(月) 10:36:57.86 ID:Fa8Cu9gn0.net
57 :名無しさん@お腹いっぱい。:2018/06/13(水) 23:36:50.86 ID:mnZQy65V0.net
ContentScriptからContentScriptをやりたかったんだよね
せめてtabsが使えればqueryからid取ってどうにか出来るんだけど
相互通信用のライブラリをbackgroundに常備させたい衝動に駆られる
レスを投稿する(名前省略可)