Greasemonkey: Pertimbangkan kembali GM.registerMenuCommand (polyfill bergantung pada API yang akan dihapus)

Dibuat pada 29 Apr 2020  ·  7Komentar  ·  Sumber: greasemonkey/greasemonkey

Karena tidak ada mesin browser lain yang mau mendukungnya, Firefox, untuk sementara waktu sekarang, memiliki bug terbuka untuk menghapus kemampuan mengubah menu konteks yang diandalkan oleh bagian registerMenuCommand dari polyfill.

Tampaknya ada seseorang yang sekarang tertarik untuk "memperbaikinya" (yaitu menghapus dukungan) jadi mungkin ide yang baik untuk mempertimbangkan kembali GM4 tidak memberikan dukungannya sendiri untuk ini.

Saya menggunakannya cukup banyak untuk hal-hal seperti meluncurkan UI konfigurasi saya, jika tidak ada penggantian yang sesuai, saya hanya perlu menghentikan dukungan untuk GreaseMonkey dan menginstruksikan pengguna bahwa, untuk alasan teknis, saya hanya dapat mendukung ViolentMoney dan TamperMonkey karena Saya tidak menganggapnya sebagai UX yang dapat diterima untuk mengacaukan situs dengan tombol konfigurasi UI "setel sekali dan hampir tidak pernah mengubahnya".

Semua 7 komentar

+1
Saya sangat menyukai Menu Konteks HTML 5, tetapi jika/ketika menghilang, saya juga berharap GM.registerMenuCommand kembali. Saya tidak dapat melihat diri saya mempertahankan solusi buatan sendiri lainnya untuk skrip pengguna multi-situs.

Adakah saran untuk UI/API yang masih ada yang ingin Anda gunakan?

Saya kira kita akan dipaksa untuk mendaftarkan hal-hal di menu monyet?

Begitulah cara TamperMonkey dan ViolentMonkey melakukannya.

Saya kira opsi lain adalah menjelajahi kelayakan untuk memperkirakan apa yang dilakukan polyfill menggunakan browser.menus.create untuk mendorong semua item menu yang terdaftar dengan skrip pengguna ke dalam submenu menu konteks ... meskipun itu akan menjadi sub- optimal tanpa beberapa cara untuk memasukkannya ke dalam konteks karena orang umumnya mengharapkan menu konteks menjadi kontekstual.

(Dan, idealnya, masih bagus untuk memiliki cara untuk menempatkan entri "konfigurasi skrip pengguna ini" di menu monyet daripada menu konteks, mirip dengan cara kerja pengelola addon Firefox.)

Yang terakhir itu benar-benar merupakan "eksplorasi kelayakan". Sudah begitu lama sejak saya menyodok di WebExtensions API sehingga saya tidak dapat mengingat batasannya dalam hal itu. (Saya menulis skrip pengguna karena lebih portabel dan sebagai protes atas penandatanganan ekstensi wajib.)

@arantius

Saya kira kita akan dipaksa untuk mendaftarkan hal-hal di menu monyet?

Bahkan jika menu konteks belum usang dari spesifikasi, menggunakannya sebagai pengganti GM_registerMenuCommand memiliki kerugian sebagai berikut:

  • Itu selalu dimasukkan ke dalam menu konteks browser, yang menghalangi penjelajahan
  • Karena dimasukkan ke dalam konteks yang tidak aman (DOM sisi halaman Web), dapat menyebabkan masalah privasi dan keamanan
  • Tidak tersedia jika menu konteks diblokir oleh sisi halaman Web.

Trunk Firefox baru saja mendapatkan patch untuk menonaktifkan akses ke <menuitem> dengan target rilis tonggak Firefox 85.

https://bugzilla.mozilla.org/show_bug.cgi?id=1680596#c11

(Secara khusus, ini menempatkannya di belakang dom.menuitem.enabled pref yang defaultnya adalah false.)

@arantius Implementasi GM.registerMenuCommand() menjadi isu yang mendesak.

API ini telah diimplementasikan di Violemntmonkey dan Tampermonkey, serta di Greasemonkey 3.x. Itu tidak dapat diganti dengan cara lain, seperti yang disebutkan di atas, dan penting untuk kompatibilitas.

Saya telah mengatasi semua masalah sebelumnya tentang implementasi di https://github.com/greasemonkey/greasemonkey/pull/2770 pembaruan. Kenapa tidak bisa digabung?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat