Greasemonkey: Firefox < FF57 (misalnya FF56 dan 52ESR) tidak boleh "ditingkatkan" secara otomatis ke Greasemonkey 4

Dibuat pada 13 Des 2017  ·  13Komentar  ·  Sumber: greasemonkey/greasemonkey

strict_min_version di GM 4.1 adalah 52.0 . Hal ini menyebabkan orang yang menggunakan versi Firefox yang mendukung ekstensi lawas (misalnya FF56 dan 52ESR) untuk "meningkatkan" ke 4.1. Banyak orang yang menggunakan FF 52ESR, atau terus menggunakan FF55/56, melakukannya secara khusus sehingga mereka dapat terus menggunakan ekstensi lama.

Versi lama dari Greasemonkey jauh lebih fungsional daripada versi 4.x, dan akan selalu begitu. Orang yang menjalankan versi Firefox < FF57 tidak boleh "ditingkatkan" secara otomatis ke Greasemonkey 4.x.

Dengan demikian, manifest.json harus memiliki:

"strict_min_version": "57.0"

Sementara pengguna dapat memilih untuk menonaktifkan pembaruan otomatis untuk GM, atau ekstensi secara umum (yaitu pengaturan strict_min_version ini dapat diselesaikan berdasarkan profil per profil), GM4 sebenarnya bukan "peningkatan". Sebagian besar pengguna menganggapnya sebagai penurunan versi. Pengguna tidak boleh melakukan upgrade otomatis ke GM4 saat menggunakan GM4 tidak diperlukan karena kurangnya dukungan untuk ekstensi lawas di versi Firefox yang mereka gunakan.

Komentar yang paling membantu

Saya pikir dorongan ada pada Anda untuk menginstal versi Greasemonkey yang Anda inginkan dan kemudian mematikan pembaruan otomatis.

Semua 13 komentar

Saya pikir pengaturan versi min adalah artefak dari periode waktu di mana versi 3.x memiliki WebExtension tertanam untuk memfasilitasi migrasi skrip. Tanpa menurunkannya, saya tidak percaya addon akan diinstal dengan benar.

4.1 didorong dengan versi minimum yang lebih rendah, _oops?_. Saya tidak berpikir ini dilakukan untuk 'dengan sengaja memaksa' orang ke 4.x, dan permusuhan di pos tidak beralasan.

@Sxderp Tidak ada permusuhan yang dimaksudkan. Saya minta maaf karena terdengar seperti itu. Bahkan membaca ulang apa yang saya tulis, saya tidak sepenuhnya yakin bagian mana yang Anda anggap bermusuhan. Jadi, saya telah mengeditnya, menebak (sebagian) apa yang Anda rasa tidak pantas.

Harap dicatat bahwa sementara saya mengatakan "dipaksa" (yang saya maksudkan hanya sebagai deskripsi tentang apa yang terjadi pada pengguna), saya tidak mengatakan "dengan sengaja memaksa" (yang akan menunjukkan bahwa saya menganggap beberapa maksud di balik pengaturan, yang saya tidak mencoba melakukan). [Anda membuat saya menebak-nebak sendiri. Saya tidak berpikir saya mengatakan "sengaja memaksa", tetapi sekarang saya telah mengedit komentar asli, saya tidak dapat memverifikasi 100%, karena sebagai penulis posting saya tidak mendapatkan email dengan isinya. Jika saya melakukannya, saya minta maaf. Itu tidak dimaksudkan.]

Catatan: Meskipun saya memiliki perasaan negatif terhadap Mozilla seputar peralihan ke WebExtensions-only, saya merasa bahwa orang-orang yang terlibat dengan GM menangani dengan baik situasi di mana Mozilla menempatkan mereka. Itu termasuk harus berurusan dengan banyak orang yang menyalahkan penulis ekstensi untuk hal-hal yang sepenuhnya merupakan kesalahan Mozilla.

eyep, saya telah "membekukan" FF saya di v56 dan sekarang dengan GM4.1 saya mendapatkan beberapa kesalahan yang tidak jelas seperti "Error: Permission denied to access property "nodeType"" pada skrip yang sangat sederhana.

Saya mendapatkan beberapa kesalahan yang tidak jelas seperti

Skrip pengguna dijalankan dalam konteks 'skrip konten'. Jika objek/fungsi dideklarasikan dalam konteks ini, mereka perlu dikloning ke jendela sebelum jendela dapat mengaksesnya. Mozilla menerapkan fitur keamanan ini dan mencegah kebocoran ke dalam lingkup halaman.

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#Sharing_content_script_objects_with_page_scripts

@Sxderp ya, saya sudah membaca di catatan pembaruan bahwa unsafeWindow bekerja dengan cara yang berbeda dan seseorang harus menggunakan exportFunction() or cloneInto() dan menautkan artikel yang sama dengan yang Anda lakukan (yang menjelaskan cara menulis ekstensi, bukan skrip pengguna )). Tidak ada yang memberikan contoh bagaimana melakukannya di skrip pengguna. Tapi itu tidak penting. Intinya FF<=56 tidak menderita dari seluruh keterbelakangan ini jadi tidak ada alasan untuk memaksanya.

Tidak ada yang memberikan contoh bagaimana melakukannya di skrip pengguna.

Hampir sama persis. Jika seseorang mengatakan 'script konten' ganti dengan 'userscript'. Lanjutkan seperti biasa.

Sebagai contoh, ini adalah sesuatu yang saya posting beberapa waktu lalu.

Selanjutnya, jika Anda menggunakan window.eval() argumen akan dijalankan langsung di lingkup halaman tanpa harus berurusan dengan ekspor.

Terima kasih. untuk eval() - eval itu jahat dan aturan pertama menggunakan eval adalah "jangan gunakan eval".

@Spown IMO, exportFunction() dan cloneInto() harus dihindari, karena hanya Firefox. Manfaat signifikan dari skrip pengguna dan WebExtensions adalah keduanya dapat dijalankan di berbagai browser yang berbeda. Ada berbagai cara di mana Anda dapat mengeksekusi kode dalam konteks halaman. Cara saya melakukannya di skrip pengguna dan skrip konten adalah sebuah fungsi, executeInPage() , yang dapat Anda temukan dalam jawaban ini di Stack Overflow . Ini memungkinkan Anda untuk meneruskan parameter ke fungsi yang Anda panggil, mengkloning parameter tersebut ke dalam konteks halaman. Dengan fungsi sederhana yang memberikan nilai parameter yang diteruskan ke variabel dalam konteks jendela (misalnya window[variableName] ), Anda dapat dengan mudah melakukan apa yang dilakukan cloneInto() .

Ini tidak sefleksibel cloneInto() , karena hanya menangani Object , Array , function , RegExp , Date , dan/atau primitif lainnya ( Boolean , null , undefined, Number , dan String , tetapi tidak Symbol ).

@Sxderp ini semua mungkin benar, tapi saya tidak terlalu peduli karena saya memilih untuk tidak mengambil bagian dalam semua ini dengan tidak memperbarui ke FF>56. Tapi itu masih merembes seperti dalam kasus ini.

BTW, mencoba menggunakan kembali jQuery halaman dalam skrip saya (yang mengembalikan kesalahan yang disebutkan di atas) seperti yang Anda lakukan dalam contoh Anda masih menghasilkan kesalahan yang sama. nvm

Saya pikir dorongan ada pada Anda untuk menginstal versi Greasemonkey yang Anda inginkan dan kemudian mematikan pembaruan otomatis.

Jika saya meningkatkan ke Greasemonkey 4, apakah mungkin untuk menginstal Greasemonkey 3 untuk menurunkan versi dan terus menggunakannya, jika saya mau? Atau apakah Greasemonkey 4 membuat perubahan yang tidak dapat diubah?

@garyking Anda harus dapat menurunkan versi tanpa masalah. File skrip harus tetap ada.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat