Opsi distribusi ekstensi alternatif

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

Biasanya, pengguna menginstal ekstensi dari Chrome Web Store, tetapi terkadang Anda mungkin ingin ekstensi diinstal dengan cara lain. Berikut ini dua kasus yang umum terjadi:

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

Ekstensi yang tidak diinstal dari Chrome Web Store dikenal sebagai ekstensi eksternal. Bagi developer yang ingin mendistribusikan ekstensi sebagai bagian dari proses penginstalan software lain, atau untuk admin jaringan yang ingin mendistribusikan ekstensi di seluruh organisasi mereka, Google Chrome mendukung metode penginstalan ekstensi berikut:

  • Menggunakan file JSON preferensi (hanya untuk 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, publish ekstensi di Chrome Web Store, atau kemas file .crx dan pastikan ekstensi berhasil diinstal.

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

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

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

Contoh berikut mengasumsikan versinya adalah 1.0 dan ID-nya adalah aaaaaaaaaabbbbbbbbbbcccccccccc.

Menggunakan file preferensi

  1. Jika Anda menginstal dari file di Linux, buat file ekstensi .crx tersedia untuk komputer tempat Anda ingin menginstal ekstensi. (Salin ke direktori lokal atau ke jaringan bersama 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) 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 tersebut dimiliki oleh pengguna root, memiliki grup admin atau wheel, dan tidak dapat ditulis secara global. Jalur tersebut juga harus bebas dari link simbolis. Batasan ini mencegah pengguna yang tidak memiliki hak istimewa menyebabkan ekstensi diinstal untuk semua pengguna. Lihat pemecahan masalah untuk mengetahui detailnya.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    Catatan: Gunakan chmod jika perlu untuk memastikan bahwa file aaaaaaaaaabbbbbbbbbbcccccccccc.json dapat dibaca secara global.

  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 "external_update_url".
    • 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 ingin menginstal ekstensi hanya untuk beberapa lokal browser, Anda dapat mencantumkan lokalitas yang didukung dalam nama kolom "supported_locale". Lokalitas dapat menentukan lokalitas induk seperti "en", dalam hal ini ekstensi akan diinstal untuk semua lokalitas bahasa Inggris seperti "en-US", "en-GB", dll. Jika lokal browser lain dipilih yang tidak didukung oleh ekstensi, ekstensi eksternal akan di-uninstal. Jika daftar "supported_locales" tidak ada, ekstensi akan 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.

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

Pemecahan masalah izin Mac OS

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

  1. Luncurkan program Console. Anda dapat menemukannya di bagian /Applications/Utilitas/Console.
  2. Jika ikon paling kiri di Konsol menampilkan "Show Log List", klik ikon tersebut. Kolom kedua akan muncul di sebelah kiri.
  3. Klik "Console Messages" 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 tepat di atasnya, yang seharusnya 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 Get Info dari Finder untuk mengubah pemilik grup direktori ke grup Administrator.
  5. Setelah memperbaiki masalah, luncurkan ulang Chrome. Uji apakah ekstensi eksternal telah diinstal. Ada kemungkinan bahwa satu error izin akan mencegah Chrome mendeteksi error kedua. Jika ekstensi eksternal tidak diinstal, ulangi langkah-langkah ini sampai Anda tidak melihat error dalam aplikasi Console.

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 seperti ID ekstensi Anda (misalnya, aaaaaaaaaabbbbbbbbbbcccccccccc).
  3. Di kunci ekstensi, buat properti, "update_url", dan tetapkan ke nilai: "https://clients2.google.com/service/update2/crx" (ini mengarah 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 di preferensi dan registry setiap kali browser dimulai, dan membuat perubahan yang diperlukan pada ekstensi eksternal yang terinstal.

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

Untuk meng-uninstal ekstensi (misalnya, jika software di-uninstal), hapus file preferensi Anda (aaaaaaaaabbbbbbbbbbcccccccccc.json) atau metadatanya dari registry.

FAQ

Bagian ini menjawab pertanyaan umum tentang ekstensi eksternal.

Apakah metodologi untuk mengizinkan "pra-penginstalan" tetap didukung oleh Google Chrome mulai 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. Ekstensi harus dihosting seperti yang dijelaskan dalam hosting. Di file preferensi, gunakan properti "external_update_url" agar mengarah ke manifes update yang memiliki URL untuk ekstensi Anda. Di registry Windows, gunakan properti "update_url".

Apa saja kesalahan umum saat menginstal dengan file preferensi?

  • Tidak menentukan ID/versi yang sama dengan yang tercantum di .crx
  • File .json (aaaaaaaaaabbbbbbbbbbcccccccccc.json) berada di lokasi yang salah atau ID 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 menunjuk ke jalur yang salah ke .crx (atau jalur yang ditentukan tetapi tanpa nama file)
  • Garis miring terbalik di jalur UNC tidak di-escape (misalnya, "\\server\share\file" salah; seharusnya "\\\\server\\share\\extension")
  • Masalah izin di jaringan berbagi

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
  • Entri registry mengarah ke jalur yang salah ke file .crx di Chrome Web Store
  • Masalah izin di jaringan berbagi

Bagaimana cara mengupdate biner dan ekstensi native secara bertahap?

Sebelumnya, jika ekstensi di luar Play Store didukung, biner native dan ekstensi dapat diupdate secara bertahap. Namun, ekstensi yang dihosting di Chrome Web Store diupdate melalui mekanisme update Chrome yang tidak dikontrol oleh developer. Developer ekstensi harus berhati-hati dalam mengupdate ekstensi yang memiliki dependensi pada biner native (misalnya, ekstensi lama yang menggunakan PKCS).

Bagaimana jika pengguna meng-uninstal ekstensi?

Jika pengguna meng-uninstal ekstensi melalui UI, ekstensi tidak akan lagi diinstal atau diupdate pada setiap startup. Dengan kata lain, ekstensi eksternal tidak diizinkan.

Bagaimana cara keluar dari daftar yang tidak diizinkan?

Jika pengguna meng-uninstal ekstensi, Anda harus mematuhi keputusan tersebut. Namun, jika Anda (developer) tidak sengaja meng-uninstal ekstensi melalui UI, Anda dapat menghapus tag yang tidak diizinkan dengan menginstal ekstensi secara normal melalui UI, lalu meng-uninstalnya.