Opsi distribusi ekstensi alternatif

Semua ekstensi Chrome harus didistribusikan langsung dari Chrome Web Store atau dengan menggunakan mekanisme yang dijelaskan di bawah ini. Kegagalan dalam mematuhi salah satu metode distribusi ini merupakan pelanggaran terhadap kebijakan ekstensi Chrome dan dapat mengakibatkan ekstensi dan/atau software yang mendistribusikannya akan ditandai sebagai software yang tidak diinginkan.

Biasanya, pengguna menginstal ekstensi dari Chrome Web Store, tetapi terkadang Anda mungkin menginginkan ekstensi untuk diinstal melalui cara lain. Berikut adalah dua kasus yang umum:

  • Ekstensi dikaitkan dengan beberapa software lainnya, dan ekstensi harus diinstal setiap kali pengguna menginstal perangkat lunak lain tersebut.
  • Admin jaringan ingin menginstal ekstensi yang sama di seluruh organisasinya.

Ekstensi yang tidak diinstal dari Chrome Web Store dikenal sebagai ekstensi eksternal. Untuk developer yang ingin mendistribusikan ekstensi sebagai bagian dari proses penginstalan untuk aplikasi bagi admin jaringan, atau untuk admin jaringan yang ingin mendistribusikan ekstensi ke seluruh organisasi, Google Chrome mendukung metode penginstalan ekstensi berikut:

  • Menggunakan file JSON preferensi (khusus Mac OS X dan Linux)
  • Menggunakan registry Windows (khusus Windows)

Kedua cara tersebut mendukung penginstalan ekstensi yang dihosting di update_URL. Di Windows dan Mac, update_URL harus mengarah ke Chrome Web Store tempat ekstensi harus dihosting.

File preferensi di Linux dapat mengarah ke server Anda sendiri tempat Anda menghosting ekstensi. File JSON preferensi juga mendukung penginstalan ekstensi dari file ekstensi .crx di komputer Linux pengguna.

Sebelum memulai

Pertama, publikasikan ekstensi di Chrome Web Store, atau kemas file .crx, lalu buat memastikan bahwa aplikasi itu berhasil diinstal.

Jika menginstal dari URL update, pastikan ekstensi dihosting dengan benar.

Sebelum mengedit file preferensi atau registry, perhatikan hal-hal berikut:

  • Lokasi file ekstensi .crx yang diinginkan, atau URL update tempat ekstensi ditayangkan
  • Versi ekstensi (dari file manifes atau halaman chrome://extensions)
  • ID ekstensi (dari halaman chrome://extensions setelah Anda memuat paket ekstensi)

Contoh berikut mengasumsikan bahwa versi tersebut adalah 1.0 dan ID-nya adalah aaaaaaaaaabbbbbbbbbbcccccccccc.

Menggunakan file preferensi

  1. Jika Anda menginstal dari file di Linux, sediakan file ekstensi .crx untuk komputer tempat ekstensi akan dipasang. (Salin ke direktori lokal atau ke jaringan bagikan, misalnya, \\server\share\extension.crx atau /home/share/extension.crx.)
  2. Buat file dengan nama berikut di salah satu folder yang tercantum di bawah: aaaaaaaaaabbbbbbbbbbcccccccccc.json dengan nama file (tanpa ekstensi) yang sesuai dengan ID ekstensi Anda. Lokasi bergantung pada sistem operasi.

    Mac OS X:

    Untuk pengguna tertentu: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ Untuk semua pengguna: /Library/Application Support/Google/Chrome/External Extensions/

    File ekstensi eksternal untuk semua pengguna hanya dapat dibaca jika setiap direktori dalam jalur dimiliki oleh pengguna root, memiliki grup admin atau wheel, dan tidak dapat ditulis oleh umum. Jalurnya harus bebas dari tautan simbolis. Pembatasan ini mencegah pengguna yang tidak memiliki hak istimewa menyebabkan ekstensi yang akan diinstal untuk semua pengguna. Lihat pemecahan masalah untuk mengetahui detailnya.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    Catatan: Gunakan chmod jika diperlukan untuk memastikan bahwa aaaaaaaaaabbbbbbbbbbcccccccccc.json file dapat dibaca oleh semua orang.

  3. Khusus Linux: Jika Anda menginstal dari file, tentukan lokasi dan versi ekstensi dengan kolom bernama "external_crx" dan "external_version" dalam file yang dibuat di atas.

    • Contoh:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • Catatan: Anda harus meng-escape setiap \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"`.
    • Jika Anda menginstal dari URL update, tentukan URL update ekstensi dengan nama kolom "url_update_eksternal".
    • Contoh penginstalan dari file .crx lokal (khusus Linux):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Contoh penginstalan dari Chrome Web Store (Mac dan Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • Jika Anda ingin menginstal ekstensi hanya untuk beberapa lokal browser, Anda dapat mencantumkan ekstensi lokalitas dalam nama kolom "supported_locale". Lokalitas dapat menentukan lokalitas induk seperti "en", dalam hal ini jika ekstensi akan diinstal untuk semua lokalitas bahasa Inggris seperti "en-US", "en-GB", dll. lokal browser lain dipilih yang tidak didukung oleh ekstensi, ekstensi akan di-uninstal. Jika "supported_locales" tidak ada, ekstensi akan yang diinstal untuk lokalitas mana pun.
    • Contoh:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. Simpan file JSON-nya.

  5. Luncurkan Google Chrome dan buka chrome://extensions; Anda akan melihat ekstensi yang tercantum.

Memecahkan masalah izin OS Mac

Di Mac OS, file ekstensi eksternal untuk semua pengguna hanya dibaca jika izin sistem file mencegah pengguna yang tidak memiliki hak istimewa mengubahnya. Jika Anda tidak melihat ekstensi eksternal diinstal saat Chrome diluncurkan, mungkin ada masalah izin dengan preferensi ekstensi eksternal . Untuk mengetahui apakah ini masalahnya, ikuti langkah-langkah berikut:

  1. Luncurkan program Konsol. Anda dapat menemukannya di bawah {i> /Applications/Utilitas/Konsol<i}.
  2. Jika ikon paling kiri di Konsol bertuliskan "Show Log List", klik ikon tersebut. Kolom kedua muncul di sebelah kiri.
  3. Klik "Pesan Konsol" di panel kiri.
  4. Telusuri string Tidak dapat membaca ekstensi eksternal. Jika ada masalah saat membaca file ekstensi eksternal, Anda akan melihat pesan error. Cari pesan error lain di atasnya, yang seharusnya dapat menjelaskan masalahnya. Misalnya, jika Anda melihat error berikut: "Path /Library/Application Support/Google/Chrome dimiliki oleh grup yang salah", Anda harus menggunakan chgrp atau dialog Dapatkan Info dari Pencari untuk mengubah pemilik grup direktori ke Grup administrator.
  5. Setelah memperbaiki masalah, luncurkan kembali Chrome. Uji apakah ekstensi eksternal telah terinstal. Ini mungkin ada satu kesalahan izin yang membuat Chrome tidak mendeteksi kesalahan kedua. Jika ekstensi eksternal tidak diinstal, ulangi langkah ini hingga Anda tidak melihat error di Aplikasi konsol.

Menggunakan registry Windows

  1. Temukan atau buat kunci berikut di registry:
    • Windows 32 bit: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • Windows 64 bit: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. Buat kunci (folder) baru di bagian kunci Extensions dengan nama yang sama dengan ID (misalnya, aaaaaaaaaabbbbbbbbbbcccccccccc).
  3. Di kunci ekstensi, buat properti "update_url", dan tetapkan ke nilai: &quot;https://clients2.google.com/service/update2/crx&quot; (ini menunjuk ke crx ekstensi Anda di Chrome Web Store):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. Luncurkan browser dan buka chrome://extensions; Anda akan melihat ekstensi yang tercantum.

Mengupdate dan meng-uninstal

Google Chrome akan memindai entri metadata dalam preferensi dan melakukan registry setiap kali browser dimulai, dan membuat perubahan yang diperlukan pada ekstensi eksternal yang diinstal.

Untuk mengupdate ekstensi ke versi baru, update file, lalu update versi di preferensi atau registry.

Untuk meng-uninstal ekstensi (misalnya, jika software Anda di-uninstal), hapus preferensi Anda (aaaaaaaaaabbbbbbbbccccccc.json) atau metadata dari {i>registry<i}.

FAQ

Bagian ini menjawab pertanyaan umum tentang ekstensi eksternal.

Apakah metodologi untuk memungkinkan "pra-penginstalan" masih didukung oleh Google Chrome dari M33 dan seterusnya?

Ya, tetapi hanya sebagai penginstalan dari update_URL Chrome Web Store, bukan dari jalur file lokal.

Dapatkah saya menentukan URL sebagai jalur ke ekstensi eksternal?

Ya, gunakan file JSON preferensi untuk Mac OS X dan Linux; registry untuk Windows. Tujuan harus dihosting seperti yang dijelaskan dalam hosting. Di file preferensi, gunakan "url_update_eksternal" agar mengarah ke manifes update yang memiliki URL untuk . Di registry Windows, gunakan "update_url" saat ini.

Apa saja kesalahan umum saat menginstal dengan file preferensi?

  • Tidak menetapkan ID/versi yang sama dengan yang tercantum dalam .crx
  • File .json (aaaaaaaaaabbbbbbbbbbcccccccccc.json) berada di lokasi atau ID yang salah yang ditentukan tidak cocok dengan ID ekstensi.
  • Error sintaksis dalam file JSON (lupa memisahkan entri dengan koma atau meninggalkan koma di akhir di suatu tempat)
  • Entri file JSON mengarah ke jalur yang salah ke .crx (atau jalur yang ditentukan, tetapi tidak ada nama file)
  • Garis miring terbalik di jalur UNC tidak di-escape (misalnya, "\\server\share\file" salah; seharusnya "\\\\server\\share\\extension")
  • Masalah izin pada berbagi jaringan

Apa saja kesalahan umum saat menginstal dengan registry?

  • Tidak menetapkan ID/versi yang sama dengan yang tercantum di Chrome Web Store
  • Kunci dibuat di lokasi yang salah dalam registry
  • Titik entri registry ke jalur yang salah ke file .crx di Chrome Web Store
  • Masalah izin pada berbagi jaringan

Bagaimana cara mengupdate biner dan ekstensi native secara bertahap?

Sebelumnya, ketika ekstensi di luar toko didukung, dimungkinkan untuk memiliki biner dan ekstensi diperbarui pada langkah kunci. Namun, ekstensi yang dihosting di Chrome Web Store diupdate melalui mekanisme update Chrome yang tidak dikontrol oleh developer. Developer ekstensi seharusnya berhati-hatilah dalam mengupdate ekstensi yang memiliki dependensi pada biner native (misalnya, ekstensi lama menggunakan NPAPI).

Bagaimana jika pengguna meng-uninstal ekstensi?

Jika pengguna meng-uninstal ekstensi melalui UI, ekstensi tidak akan lagi diinstal atau diupdate di pada setiap {i>startup<i}. Dengan kata lain, ekstensi eksternal akan masuk daftar yang tidak diizinkan.

Bagaimana cara keluar dari daftar yang tidak diizinkan?

Jika pengguna meng-uninstal ekstensi, Anda harus mengikuti keputusan tersebut. Namun, jika Anda ( developer) secara tidak sengaja meng-uninstal ekstensi melalui UI, Anda dapat menghapus tag daftar yang tidak diizinkan dengan menginstal ekstensi seperti biasa melalui UI, lalu meng-uninstal-nya.