Chrome এক্সটেনশন আপডেট জীবনচক্র

এই নির্দেশিকায় এক্সটেনশন আপডেটের সম্পূর্ণ কার্যপ্রবাহ বিস্তারিতভাবে বর্ণনা করা হয়েছে, যার মধ্যে রয়েছে সাধারণ আপডেট প্রক্রিয়া, ম্যানুয়াল ওভাররাইড, ডেভেলপার এপিআই এবং এন্টারপ্রাইজ পলিসির গুরুত্বপূর্ণ প্রভাব।

স্ট্যান্ডার্ড আপডেট চক্র

ক্রোম ইনস্টল করা এক্সটেনশনগুলিকে স্বয়ংক্রিয়ভাবে সর্বশেষ সংস্করণে আপডেট করার জন্য ডিজাইন করা হয়েছে, যা ব্যবহারকারীদের নতুন ফিচার এবং নিরাপত্তা সংক্রান্ত সমাধানগুলি ব্যবহারের সুযোগ নিশ্চিত করে। ডিফল্টরূপে, ক্রোম চালু হওয়ার সময় এবং প্রতি কয়েক ঘণ্টা পর পর এক্সটেনশন আপডেটের জন্য পরীক্ষা করে।

আপডেট প্রক্রিয়ার একটি গুরুত্বপূর্ণ দিক হলো, কোনো এক্সটেনশনকে নিষ্ক্রিয় (idle) হিসেবে বিবেচনা করা হলেই কেবল আপডেটটি ইনস্টল করা হয়। একটি এক্সটেনশনকে নিষ্ক্রিয় হতে হলে, এর উপাদানগুলো অবশ্যই সক্রিয়ভাবে ব্যবহৃত হওয়া যাবে না। Manifest V3-এর প্রেক্ষাপটে, এর প্রধান অর্থ হলো এক্সটেনশনটির সার্ভিস ওয়ার্কার চালু নেই। সার্ভিস ওয়ার্কারটি ইভেন্ট-চালিত (event-driven) হিসেবে ডিজাইন করা হয়েছে এবং একটি নির্দিষ্ট সময় নিষ্ক্রিয় থাকার পর এটি বন্ধ হয়ে যায় । এছাড়াও, এক্সটেনশনের যেকোনো খোলা পেজ, যেমন সাইড প্যানেল, পপআপ বা অপশন পেজ, এক্সটেনশনটিকে নিষ্ক্রিয় হিসেবে বিবেচিত হতে বাধা দেয়। একটি সক্রিয় কন্টেন্ট স্ক্রিপ্ট কোনো এক্সটেনশন নিষ্ক্রিয় হিসেবে বিবেচিত হবে কি না, তার উপর কোনো প্রভাব ফেলে না।

এই নিষ্ক্রিয় অবস্থার কারণে ঘন ঘন সক্রিয় এক্সটেনশনগুলির আপডেটে বিলম্ব হতে পারে। যদি কোনো এক্সটেনশনের সার্ভিস ওয়ার্কার ইভেন্টের মাধ্যমে ক্রমাগত ট্রিগার হতে থাকে, তবে এটি হয়তো কখনোই নিষ্ক্রিয় অবস্থায় পৌঁছাতে পারবে না, এবং ব্রাউজার পুনরায় চালু না হওয়া পর্যন্ত আপডেটটি স্থগিত থাকবে।

মনিটর এক্সটেনশন আপডেট বিতরণ

আপনার কতজন ব্যবহারকারী আপনার এক্সটেনশনের সর্বশেষ সংস্করণ ব্যবহার করছেন তা জানতে, Chrome WebStore অ্যানালিটিক্স ড্যাশবোর্ড ব্যবহার করুন। Chrome WebStore ডেভেলপার ড্যাশবোর্ডে যান এবং আপনার প্রকাশিত এক্সটেনশনগুলোর মধ্যে একটি বেছে নিন। সাইড নেভিগেশন বারে Analytics -> Users- এ যান এবং Daily users by item চার্ট পর্যন্ত স্ক্রল ডাউন করুন। এখানে আপনি দেখতে পাবেন কতজন ব্যবহারকারী ইতিমধ্যেই আপনার সর্বশেষ সংস্করণটি ব্যবহার করছেন।

একটি নমুনা এক্সটেনশনের প্রতিটি সংস্করণের দৈনিক ব্যবহারকারীর সংখ্যা দেখানো স্ক্রিনশট।

এক্সটেনশনগুলি ম্যানুয়ালি আপডেট করুন

ব্যবহারকারীরা যদি সর্বশেষ আপডেটগুলো তাৎক্ষণিকভাবে পেতে চান, তবে ক্রোম একটি ম্যানুয়াল আপডেট ব্যবস্থা প্রদান করে। আপডেট পরীক্ষা করার ক্ষেত্রেও এটি একটি কার্যকরী উপায়।

স্বতন্ত্র ব্যবহারকারীরা এই ধাপগুলো অনুসরণ করে তাদের ইনস্টল করা সমস্ত এক্সটেনশন জোরপূর্বক আপডেট করতে পারেন:

  1. chrome://extensions-এ যান।
  2. উপরের ডান কোণায় থাকা টগলটি ব্যবহার করে ডেভেলপার মোড চালু করুন।
  3. প্রদর্শিত আপডেট বোতামটিতে ক্লিক করুন।

এই পদক্ষেপটি ক্রোমকে অবিলম্বে ক্রোম ওয়েব স্টোর থেকে ইনস্টল করা সমস্ত এক্সটেনশনের সর্বশেষ সংস্করণ সংগ্রহ করতে উৎসাহিত করে।

একটি এক্সটেনশন থেকে আপডেটের জন্য চেক করুন

chrome.runtime API এক্সটেনশনগুলিকে আপডেট প্রক্রিয়ার সাথে যোগাযোগ করার জন্য বিভিন্ন টুল সরবরাহ করে।

চাহিদা অনুযায়ী আপডেটের জন্য দেখুন

chrome.runtime.requestUpdateCheck() ফাংশনটি একটি এক্সটেনশনকে প্রোগ্রাম্যাটিকভাবে আপডেট চেক শুরু করার সুযোগ দেয়। এটি বিশেষত সেইসব এক্সটেনশনের জন্য উপযোগী, যেগুলো কোনো ব্যাকএন্ড সার্ভিসের ওপর গভীরভাবে নির্ভরশীল এবং সর্বশেষ সামঞ্জস্যপূর্ণ সংস্করণটি ব্যবহার করছে কিনা তা নিশ্চিত করতে চায়।

এই ফাংশনটি কল করা হলে, ক্রোম ওয়েব স্টোরে নতুন সংস্করণের জন্য অনুসন্ধান করে এবং উপলব্ধ থাকলে নতুন সংস্করণটি ডাউনলোড করে। ফাংশনটির কলব্যাকে একটি স্ট্যাটাস পাওয়া যায়, যা এই অনুসন্ধানের ফলাফল নির্দেশ করে।

উপলব্ধ আপডেটগুলির জন্য শুনুন

যখন কোনো আপডেট ডাউনলোড হয়ে যায় এবং ইনস্টল করার জন্য প্রস্তুত থাকে, তখন chrome.runtime.onUpdateAvailable ইভেন্টটি ফায়ার হয়। এই ইভেন্টটি এর বিবরণে নতুন ভার্সন নম্বরটি প্রদান করে। এই ইভেন্টটি শোনার মাধ্যমে, একটি এক্সটেনশন বুঝতে পারে যে একটি আপডেট উপলব্ধ আছে এবং প্রয়োজন অনুযায়ী নিষ্ক্রিয় থাকার কথা ভাবতে পারে অথবা chrome.runtime.reload() ব্যবহার করে রিলোড করতে পারে।

নিম্নলিখিত কোডটি একটি মৌলিক বাস্তবায়ন প্যাটার্ন দেখায়:

বিশেষ ক্ষেত্রে, chrome.runtime.requestUpdateCheck() ব্যবহার করে ব্রাউজারকে এক্সটেনশন আপডেটের জন্য পরীক্ষা করতে বাধ্য করা সম্ভব।

এটা মনে রাখা গুরুত্বপূর্ণ যে, requestUpdateCheck() ফাংশনটি ঘন ঘন ব্যবহার করলে ব্রাউজার এর গতি কমিয়ে দেবে। এই ফাংশনটি কেবল তখনই ব্যবহার করুন যখন আপনি জানেন যে কোনো আপডেট উপলব্ধ আছে। উদাহরণস্বরূপ, যখন কোনো আপডেট করা ব্যাকএন্ডের জন্য এক্সটেনশনটির একটি নতুন সংস্করণ প্রয়োজন হয়।

এন্টারপ্রাইজ পলিসির মাধ্যমে আপডেট নিয়ন্ত্রণ করা

পরিচালিত এন্টারপ্রাইজ পরিবেশে, স্ট্যান্ডার্ড এক্সটেনশন আপডেট প্রক্রিয়াটি সিস্টেম অ্যাডমিনিস্ট্রেটরদের দ্বারা নির্ধারিত নীতিমালার অধীন থাকে। নিরাপত্তা ও স্থিতিশীলতা নিশ্চিত করার জন্য এই নীতিমালাগুলো ডিফল্ট আচরণকে অগ্রাহ্য করতে পারে।

জোরপূর্বক স্থাপন

ExtensionInstallForcelist পলিসিটি অ্যাডমিনিস্ট্রেটরদেরকে তাদের ব্যবহারকারীদের জন্য নীরবে নির্দিষ্ট এক্সটেনশন ইনস্টল করার সুযোগ দেয়। এই পলিসির মাধ্যমে ইনস্টল করা এক্সটেনশনগুলো ব্যবহারকারীরা নিষ্ক্রিয় বা আনইনস্টল করতে পারেন না।

পিন এক্সটেনশন সংস্করণ

তবে, অন্যান্য সফটওয়্যারের সাথে সামঞ্জস্যতা নিশ্চিত করার জন্য প্রতিষ্ঠানগুলোকে প্রায়শই কোনো এক্সটেনশনের ব্যবহৃত সঠিক সংস্করণটি নিয়ন্ত্রণ করতে হয়। এটি করার জন্য, অ্যাডমিনিস্ট্রেটররা একটি এক্সটেনশনকে একটি নির্দিষ্ট সংস্করণে "পিন" করতে পারেন । এটি গুগল অ্যাডমিন কনসোলের মাধ্যমে করা হয়, যেখানে একজন অ্যাডমিনিস্ট্রেটর একটি সাংগঠনিক ইউনিটের জন্য প্রয়োজনীয় সংস্করণটি নির্বাচন করতে পারেন। যখন কোনো এক্সটেনশন পিন করা হয়, তখন ক্রোম সেটিকে সেই নির্দিষ্ট সংস্করণের বাইরে আর আপডেট করে না।

আপডেট উৎস ওভাররাইড করুন

নিরাপত্তা বা কাস্টমাইজেশনের কারণে প্রতিষ্ঠানগুলো এক্সটেনশনের নিজস্ব ফোর্কড সংস্করণ হোস্ট করতে পারে। এটি করার জন্য, ExtensionSettings পলিসি ব্যবহার করুন এবং override_update_url প্রপার্টিটি true-তে সেট করুন। এটি ক্রোমকে ক্রোম ওয়েব স্টোরের পরিবর্তে একটি নির্দিষ্ট URL থেকে এক্সটেনশন এবং এর আপডেটগুলো ফেচ করতে বাধ্য করে।

ক্রোমের সর্বনিম্ন সংস্করণ সেট করুন

আপনি আপনার এক্সটেনশনের ম্যানিফেস্ট ফাইলে একটি minimum_chrome_version নির্দিষ্ট করে দিতে পারেন। এটি নিশ্চিত করে যে এক্সটেনশনটি শুধুমাত্র ক্রোমের সেইসব সংস্করণে ইনস্টল হবে, যেগুলো এর ব্যবহৃত API-গুলোকে সমর্থন করে।

নতুন ইনস্টলেশনের ক্ষেত্রে, ক্রোম ওয়েব স্টোর ক্রোমের পুরোনো সংস্করণ ব্যবহারকারীদের এক্সটেনশনটি ইনস্টল করতে বাধা দেবে এবং একটি "সামঞ্জস্যপূর্ণ নয়" বার্তা প্রদর্শন করবে। বিদ্যমান ব্যবহারকারীদের জন্য, যদি কোনো এক্সটেনশনের আপডেটের ফলে minimum_chrome_version ব্যবহারকারীর ইনস্টল করা ক্রোম সংস্করণের চেয়ে উচ্চতর সংস্করণে বৃদ্ধি পায়, তবে তারা নীরবে সেই এক্সটেনশনটির জন্য আপডেট পাওয়া বন্ধ করে দেবে। ডেভেলপারদের এই বিষয়ে সচেতন থাকা উচিত এবং যদি তাদের ব্যবহারকারী গোষ্ঠীর একটি উল্লেখযোগ্য অংশ প্রভাবিত হতে পারে, তবে ব্যবহারকারীদের অবহিত করা উচিত।