বিগত বছর ধরে, আমরা MV3 এক্সটেনশন প্ল্যাটফর্ম উন্নত করার উপায়গুলি সম্পর্কে বেশ কয়েকটি বিষয়বস্তু ব্লকিং এক্সটেনশনের পিছনে বিক্রেতাদের সাথে আলোচনায় সক্রিয়ভাবে জড়িত ছিলাম। এই আলোচনার উপর ভিত্তি করে, যার মধ্যে অনেকগুলি WebExtensions Community Group ( WECG ) এ অন্যান্য ব্রাউজারের সহযোগিতায় সংঘটিত হয়েছে, আমরা উল্লেখযোগ্য উন্নতি করতে সক্ষম হয়েছি।
আরো স্ট্যাটিক নিয়ম সেট
ফিল্টার নিয়মের সেটগুলি সাধারণত তালিকায় গোষ্ঠীভুক্ত হয়। উদাহরণস্বরূপ, একটি আরও জেনেরিক তালিকায় সমস্ত ব্যবহারকারীর জন্য প্রযোজ্য নিয়ম থাকতে পারে যখন আরও নির্দিষ্ট তালিকা লোকেশন-নির্দিষ্ট বিষয়বস্তু লুকিয়ে রাখতে পারে যা শুধুমাত্র কিছু ব্যবহারকারী ব্লক করতে চান। সম্প্রতি পর্যন্ত, আমরা প্রতিটি এক্সটেনশনকে ব্যবহারকারীদের 50টি তালিকার (বা "স্ট্যাটিক রুলসেট") একটি পছন্দ অফার করার অনুমতি দিয়েছি এবং এর মধ্যে 10টি একই সাথে সক্ষম করার জন্য। সম্প্রদায়ের সাথে আলোচনায়, এক্সটেনশন বিকাশকারীরা নিশ্চিত প্রমাণ প্রদান করে যে এটি নির্দিষ্ট ব্যবহারের ক্ষেত্রে খুব কম ছিল। এই আলোচনাগুলি মাথায় রেখে ক্রোমে API-এর কার্যকারিতা দেখার পরে, আমরা এখন একসাথে 50 পর্যন্ত সক্ষম করার অনুমতি দিচ্ছি। (উল্লেখ্যভাবে, এটি WECG-তে অনুরোধ করা 20টির সীমার চেয়ে উল্লেখযোগ্যভাবে বেশি।) আমরা মোট 100টি নিয়ম সেটের জন্যও অনুমতি দিই। এটি Chrome 120-এ শিপিং করা হচ্ছে এবং Firefox এবং Safari উভয়ের দ্বারাই সীমা বাড়ানো সমর্থিত যারা উভয়েই এই প্রস্তাবে প্রাথমিক ইনপুট প্রদান করেছে৷
আরো গতিশীল নিয়ম
বেশিরভাগ নিয়ম হল "স্থির" এবং প্রতিটি আপডেটের সাথে একটি এক্সটেনশনে পাঠানো হয়। যাইহোক, আরও ঘন ঘন আপডেট এবং ব্যবহারকারী-সংজ্ঞায়িত নিয়মগুলিকে সমর্থন করার জন্য, এক্সটেনশনগুলি গতিশীলভাবেও নিয়মগুলি যোগ করতে পারে, তাদের বিকাশকারীদেরকে Chrome ওয়েব স্টোরে এক্সটেনশনের একটি নতুন সংস্করণ আপলোড না করে৷
যখন একটি এক্সটেনশন গতিশীলভাবে অনুরোধগুলিকে এমনভাবে পরিবর্তন করতে পারে যা Chrome ওয়েব স্টোর পর্যালোচনার সময় চেক করা হয়নি, তখন এটি ব্যবহারকারীদের ফিশিং বা ডেটা চুরির ঝুঁকির সম্মুখীন করে। উদাহরণস্বরূপ, সম্মতি ছাড়াই অনুমোদিত লিঙ্কগুলিকে ইনজেকশন করার জন্য একটি পুনঃনির্দেশিত নিয়মের অপব্যবহার করা যেতে পারে।
ফলস্বরূপ, আমরা শুধুমাত্র এক্সটেনশনগুলিকে 5,000 পর্যন্ত নিয়মগুলি যোগ করার অনুমতি দিয়েছি যা এই কার্যকারিতাটিকে অল্প পরিমাণে ব্যবহার করতে উত্সাহিত করে এবং আমাদের জন্য অপব্যবহার সনাক্ত করা সহজ করে তোলে৷
যাইহোক, অ্যাডগার্ড এবং অ্যাডব্লক প্লাস সহ এক্সটেনশনগুলির বিকাশকারীরা তাদের নিজস্ব বিশ্লেষণ এবং শেয়ার করা ডেটা যা একটি উচ্চ সীমা আরও আপ টু ডেট নিয়মগুলির জন্য এবং ম্যানিফেস্ট V3-তে স্থানান্তরিত করার জন্য অধিক সংখ্যক কাস্টম তালিকার ব্যবহারকারীদের অনুমতি দেবে৷ প্রকৃতপক্ষে, AdGuard রিপোর্ট করেছে যে প্রতি সপ্তাহে জনপ্রিয় তালিকায় 2600 টিরও বেশি পরিবর্তন করা হয় এবং কাস্টম ফিল্টার তালিকা ব্যবহারকারী ব্যবহারকারীদের পাঁচ শতাংশের মধ্যে চারজনের মধ্যে একজন ব্যবহারকারীর সম্মিলিত মোট 5,000 এর বেশি গতিশীল নিয়ম রয়েছে ( উত্স ) AdGuard এটিকে তাদের এক্সটেনশন ম্যানিফেস্ট V3-এ স্থানান্তরিত করার জন্য একটি উল্লেখযোগ্য চ্যালেঞ্জ হিসাবে উল্লেখ করেছে এবং আমরা অন্যান্য বিষয়বস্তু ব্লকারদের কাছ থেকে অনুরূপ প্রতিক্রিয়া শুনেছি।
আমরা স্থির করেছি যে কিছু ফিল্টার নিয়ম, যেমন block
বা allow
ক্রিয়া সহ, অনেক বেশি নিরাপদ এবং অপব্যবহারের সম্ভাবনা কম৷ তারা বিজ্ঞাপন ব্লক ফিল্টার নিয়মের বড় সংখ্যাগরিষ্ঠতা তৈরি করে। এর উপর ভিত্তি করে, আমি ওয়েব এক্সটেনশন কমিউনিটি গ্রুপে একটি প্রস্তাব খসড়া তৈরি করেছি এবং ভাগ করেছিলাম যাতে আমরা কম ঝুঁকি বিবেচনা করি এবং এর মধ্যে 30,000 পর্যন্ত অনুমোদন করি। পারফরম্যান্স রিগ্রেশন এড়াতে আমরা এখনও একটি উচ্চ সীমা রাখি।
এই প্রস্তাবটি ওয়েব এক্সটেনশন কমিউনিটি গ্রুপে সমর্থিত ছিল তাই আমরা এটি বাস্তবায়ন করেছি। Chrome 121 দিয়ে শুরু করে, 30,000 নিয়মের উচ্চ সীমা নিরাপদ DNR নিয়মের ক্ষেত্রে প্রযোজ্য, যেটিকে আমরা block
, allow
, allowAllRequests
বা upgradeScheme
এর একটি ক্রিয়া সহ নিয়ম হিসাবে সংজ্ঞায়িত করছি৷
AdGuard দ্বারা ভাগ করা ডেটার উপর ভিত্তি করে, তাদের নিয়মগুলির 98 থেকে 99 শতাংশের মধ্যে এই উচ্চ সীমা থেকে উপকৃত হওয়া উচিত। যেকোন অবশিষ্ট নিয়ম এখনও সমর্থিত এবং বিদ্যমান সীমার মধ্যে যোগ করা যেতে পারে।
এটি Chrome-এ MAX_NUMBER_OF_DYNAMIC_RULES ধ্রুবক হিসাবে উপলব্ধ। অন্য সব গতিশীল নেট অনুরোধের নিয়মের সীমা 5,000-এ থাকে।
রুলসেট আকার হ্রাস করা হয়েছে
Chrome 118-এ, আমরা সম্প্রদায়ের প্রতিক্রিয়ার উপর ভিত্তি করে isUrlFilterCaseSensitive
ক্ষেত্রের false
মান পরিবর্তন করেছি । ইউআরএল দ্বারা ফিল্টার করা একটি নিয়ম কেস সংবেদনশীল হলে এই ক্ষেত্রটি নিয়ন্ত্রণ করে এবং আমরা শিখেছি যে বেশিরভাগ বিকাশকারীদের তাদের এক্সটেনশনে আলাদা ডিফল্ট ছিল। ফলস্বরূপ, মান অনেকবার সেট করতে হয়েছিল। এই পরিবর্তনের মাধ্যমে ডেভেলপাররা তাদের নিয়মে উল্লেখযোগ্য আকার হ্রাস করতে সক্ষম হয়।
এরপর কি?
আমরা declarativeNetRequest API-এ বিনিয়োগ চালিয়ে যেতে প্রতিশ্রুতিবদ্ধ যাতে আমরা যতটা সম্ভব ব্যবহারের ক্ষেত্রে সমর্থন করতে পারি, এবং সম্প্রদায়ের সাথে কাজ চালিয়ে যাওয়ার জন্য উন্মুখ। বিশেষ করে, আমরা WECG-এর সদস্যদের তাদের ব্যস্ততার জন্য ধন্যবাদ জানাতে চাই, AdGuard সহ উল্লেখযোগ্য পরিমাণ ডেটা ভাগ করে নেওয়ার জন্য যা এই কাজটি করেছে, এবং সমস্ত ব্রাউজার বিক্রেতা যারা এই API ডিজাইনের প্রধান অংশ।
যেখানে প্রয়োজন সেখানে সামঞ্জস্য করার জন্য আমরা আমাদের সীমাবদ্ধতার পর্যালোচনা চালিয়ে যাব। এটিকে সমর্থন করার জন্য, আমরা অদূর ভবিষ্যতে এই কাজের অংশ হিসাবে সংগৃহীত কিছু ডেটা ভাগ করার পরিকল্পনা করছি৷ উপরন্তু, আমরা প্রতিক্রিয়া শিরোনামগুলির সাথে মিল করার ক্ষমতার মতো অতিরিক্ত ক্ষমতা যুক্ত করার জন্য কাজ করছি, যা একটি সাধারণ অনুরোধ যা আমরা PDF ভিউয়ার এক্সটেনশন থেকে দেখেছি। সব ক্ষেত্রেই, আমরা আমাদের কাজের যোগাযোগ চালিয়ে যাব, এবং ওয়েব এক্সটেনশন কমিউনিটি গ্রুপকে নিয়মিতভাবে ধারনা নিয়ে আলোচনা করার জায়গা হিসাবে ব্যবহার করব এবং পরবর্তীতে আমরা কী দেখতে চাই তার উপর সারিবদ্ধ করব।