আমরা একটি নতুন এক্সটেনশন মেনু পরীক্ষা শুরু করার সাথে সাথে আপনার এক্সটেনশন প্রস্তুত করুন৷

প্রকাশিত: নভেম্বর 19, 2024

Google I/O 2024-এ, আমরা এক্সটেনশন মেনুতে আসন্ন পরিবর্তনের জন্য কিছু প্রাথমিক ডিজাইন শেয়ার করেছি, যা ব্যবহারকারীদের এক্সটেনশনগুলি অ্যাক্সেস করতে পারে এমন সাইটগুলির উপর আরও নিয়ন্ত্রণ দেয়। আমরা শীঘ্রই এই পরিবর্তনগুলি পরীক্ষা করা শুরু করতে যাচ্ছি, ক্যানারিতে ব্যবহারকারীদের একটি ছোট শতাংশের সাথে শুরু করে এবং ভবিষ্যতে সেগুলি আরও ব্যাপকভাবে রোল আউট করার আশা নিয়ে।

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

এই পোস্টটি একটি ওভারভিউ দেয় কী আশা করা যায় এবং আপনি কীভাবে একটি নতুন API দিয়ে আপনার এক্সটেনশনগুলি প্রস্তুত করতে পারেন এমন ক্ষেত্রে যেখানে ব্যবহারকারীর দ্বারা একটি পৃষ্ঠায় অ্যাক্সেস আটকানো হয়েছে তা পরিচালনা করতে।

কি পরিবর্তন হচ্ছে?

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

নতুন এক্সটেনশন মেনুর জন্য ডিজাইনে কাজ চলছে
নতুন এক্সটেনশন মেনুর জন্য ডিজাইনে কাজ চলছে

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

একটি সাইট অ্যাক্সেস অনুরোধ যোগ করুন

WebExtensions Community Group- এর অন্যান্য ব্রাউজার এবং ডেভেলপারদের উল্লেখযোগ্য ইনপুট সহ আমরা এই পরিবর্তনগুলিকে পরিপূরক করার জন্য একটি নতুন API ডিজাইন করেছি৷

যদি কোনও ব্যবহারকারী কোনও পৃষ্ঠায় অ্যাক্সেস আটকে রাখেন, তবে এক্সটেনশনগুলি এখন নতুন permissions.addSiteAccessRequest API ব্যবহার করে অ্যাক্সেসের অনুরোধ করতে পারে। যখন একটি এক্সটেনশন এটি করে, ব্যবহারকারী টুলবারে এক্সটেনশন ধাঁধা অংশের পাশাপাশি একটি "অনুমতি দিন" বার্তা দেখতে পাবেন৷ এখানে একটি নকশা আমরা অন্বেষণ করছি:

example.com-এ একটি সাইট অ্যাক্সেসের অনুরোধ
example.com-এ একটি সাইট অ্যাক্সেসের অনুরোধ

যখন একজন ব্যবহারকারী এক্সটেনশন মেনুতে "অনুমতি দিন" ক্লিক করেন, তখন এক্সটেনশনটিকে হোস্টে অবিরাম অ্যাক্সেস দেওয়া হয়। ব্যবহারকারী এক্সটেনশন মেনু বা chrome://extensions পৃষ্ঠায় অ্যাক্সেস করে ভবিষ্যতে এটি আবার আটকে রাখতে পারেন। "অনুমতি 1?" ক্লিক করা হচ্ছে? টুলবারের মধ্যে তাৎক্ষণিক অ্যাক্সেস মঞ্জুর করার একটি দ্রুত উপায় প্রদান করে।

এক্সটেনশানগুলি একটি tabId সহ permissions.addSiteAccessRequest কল করতে পারে সেই ট্যাবের জন্য একটি অনুমতির অনুরোধ দেখাতে৷ আপনি আজই আপনার এক্সটেনশনে এটিকে নিরাপদে ব্যবহার শুরু করতে বৈশিষ্ট্য সনাক্তকরণ ব্যবহার করতে পারেন৷ API নতুন মেনু ছাড়া ব্যবহারকারীদের জন্য কিছুই করবে না, তবে এটিকে গ্রহণ করলে ব্যবহারকারীরা নতুন মেনু দিয়ে উপকৃত হবে কারণ এটি ধীরে ধীরে রোল আউট হয়ে গেছে।

chrome.tabs.onUpdated.addListener(async (tabId, changes) => {
  if (typeof changes.url !== 'string') return;

  const url = new URL(changes.url);

  // If we are on the /checkout page of example.com.
  if (url.origin === 'https://example.com' && url.pathname === '/checkout') {
    const hasPermission = await chrome.permissions.contains({
      origins: ['https://example.com/*']
    });

    // We already have host permissions.
    if (hasPermission) {
      return;
    }

    // Add a site access request if the API is available.
    if (chrome.permissions.addSiteAccessRequest) {
      chrome.permissions.addSiteAccessRequest({ tabId });
    }
  }
});

এই উদাহরণে, আমরা শুধুমাত্র একটি অনুরোধ যোগ করি যদি ব্যবহারকারী /checkout পৃষ্ঠায় থাকে। আপনি আমাদের ক্রোম-এক্সটেনশন-নমুনা সংগ্রহস্থলে সম্পূর্ণ কোড দেখতে পারেন।

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

অনুরোধগুলি একটি নির্দিষ্ট ট্যাবে আবদ্ধ থাকে এবং যখন কোনও ব্যবহারকারী অন্য কোনও উত্সে নেভিগেট করে তখন স্বয়ংক্রিয়ভাবে সাফ হয়ে যায়৷ একটি সংশ্লিষ্ট removeSiteAccessRequest পদ্ধতি একটি অনুরোধ স্পষ্টভাবে সাফ করার জন্য উপলব্ধ (যেমন যদি একটি অনুরোধ একটি নির্দিষ্ট পথের সাথে আবদ্ধ হয়)।

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

ঐচ্ছিক অনুমতি নিয়ে কাজ করার বিষয়ে আরও জানতে, অনুমতির ডকুমেন্টেশন দেখুন।

চেষ্টা করে দেখুন

এপিআই ডিফল্টরূপে ক্রোম 133.0.6838.0 এবং উচ্চতর (বর্তমানে ক্রোম ক্যানারিতে) সক্ষম করা আছে। নতুন মেনু সক্ষম করতে, chrome://flags-এ, "এক্সটেনশন মেনু অ্যাক্সেস কন্ট্রোল" পতাকা সক্ষম করুন৷

একটি অনুস্মারক হিসাবে, এটি এখনও প্রগতিশীল কাজ এবং বিবর্তিত এবং পরিবর্তন অবিরত হতে পারে. আমরা সর্বাধিক আপ টু ডেট অভিজ্ঞতা দেখতে Chrome ক্যানারিতে পরীক্ষা করার পরামর্শ দিই।

আপনি ক্রোমিয়াম-এক্সটেনশন মেলিং তালিকায় নতুন ডিজাইনের বিষয়ে প্রতিক্রিয়া জানাতে পারেন যা আমরা নতুন মেনুতে কাজ চালিয়ে যাওয়ার সময় মনে রাখব।