"activeTab"
অনুমতি একটি এক্সটেনশনকে বর্তমানে সক্রিয় ট্যাবে অস্থায়ী অ্যাক্সেস দেয় যখন ব্যবহারকারী এক্সটেনশনটি আহ্বান করেন - উদাহরণস্বরূপ এটির ক্রিয়াতে ক্লিক করে৷ ব্যবহারকারী সেই পৃষ্ঠায় থাকাকালীন ট্যাবে অ্যাক্সেস স্থায়ী হয় এবং ব্যবহারকারী যখন ট্যাবটি বন্ধ করে দেয় বা বন্ধ করে দেয় তখন তা প্রত্যাহার করা হয়। উদাহরণ স্বরূপ, ব্যবহারকারী যদি https://example.com-এ এক্সটেনশনটি আনেন এবং তারপরে https://example.com/foo-এ নেভিগেট করেন, তাহলে এক্সটেনশনটির পৃষ্ঠায় অ্যাক্সেস থাকবে। ব্যবহারকারী https://chromium.org-এ নেভিগেট করলে, অ্যাক্সেস প্রত্যাহার করা হয়।
এটি "<all_urls>"
এর অনেকগুলি ব্যবহারের জন্য একটি বিকল্প হিসাবে কাজ করে, কিন্তু ইনস্টলেশনের সময় কোনও সতর্কতা বার্তা প্রদর্শন করে না :
"activeTab"
ছাড়া:
"activeTab"
সহ:
উদাহরণ
পেজ রেডার নমুনা এক্সটেনশন দেখুন:
manifest.json:
{
"name": "Page Redder",
"version": "2.0",
"permissions": [
"activeTab",
"scripting"
],
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_title": "Make this page red"
},
"manifest_version": 3
}
সেবা কর্মী:
function reddenPage() {
document.body.style.backgroundColor = 'red';
}
chrome.action.onClicked.addListener((tab) => {
if (!tab.url.includes('chrome://')) {
chrome.scripting.executeScript({
target: { tabId: tab.id },
func: reddenPage
});
}
});
প্রেরণা
একটি ক্রিয়া এবং একটি প্রসঙ্গ মেনু আইটেম আছে এমন একটি ওয়েব ক্লিপিং এক্সটেনশন বিবেচনা করুন৷ এই এক্সটেনশনটিকে শুধুমাত্র তখনই ট্যাব অ্যাক্সেস করতে হতে পারে যখন এটির অ্যাকশনে ক্লিক করা হয়, বা যখন এটির প্রসঙ্গ মেনু আইটেমটি কার্যকর করা হয়।
"activeTab"
ব্যতীত, এই এক্সটেনশনটিকে প্রতিটি ওয়েবসাইটে পূর্ণ, অবিরাম অ্যাক্সেসের অনুরোধ করতে হবে, যাতে এটি ব্যবহারকারীর দ্বারা আহ্বান করা হলে এটি তার কাজ করতে পারে৷ এই যেমন একটি সহজ এক্সটেনশন অর্পণ ক্ষমতা অনেক. এবং যদি এক্সটেনশনটি কখনও আপস করা হয়, আক্রমণকারী এক্সটেনশনের সমস্ত কিছুতে অ্যাক্সেস পায়৷
বিপরীতে, "activeTab"
অনুমতি সহ একটি এক্সটেনশন শুধুমাত্র একটি স্পষ্ট ব্যবহারকারীর অঙ্গভঙ্গির প্রতিক্রিয়া হিসাবে একটি ট্যাবে অ্যাক্সেস পায়৷ যদি এক্সটেনশনটি আপস করা হয় তবে আক্রমণকারীকে অ্যাক্সেস পাওয়ার আগে ব্যবহারকারীর এক্সটেনশনটি শুরু করার জন্য অপেক্ষা করতে হবে। এবং এই অ্যাক্সেস শুধুমাত্র ট্যাব নেভিগেট করা বা বন্ধ না হওয়া পর্যন্ত স্থায়ী হয়।
"activeTab" কি অনুমতি দেয়
একটি ট্যাবের জন্য "activeTab"
অনুমতি সক্ষম থাকা অবস্থায়, একটি এক্সটেনশন করতে পারে:
- সেই ট্যাবে
scripting.insertCSS()
বাscripting.executeScript()
কল করুন যদি"scripting"
অনুমতিও ঘোষণা করা হয় ( উপরের উদাহরণের মতো)। - একটি API এর মাধ্যমে সেই ট্যাবের URL, শিরোনাম এবং ফেভিকন পান যা একটি
tabs.Tab
অবজেক্ট প্রদান করে (মূলত,"activeTab"
সাময়িকভাবে হোস্টের অনুমতি দেয়)। - webRequest API ব্যবহার করে ট্যাবের মূল ফ্রেমের উৎপত্তিতে ট্যাবে নেটওয়ার্ক অনুরোধগুলিকে ইন্টারসেপ্ট করুন৷ এক্সটেনশনটি সাময়িকভাবে ট্যাবের প্রধান ফ্রেমের উৎসের জন্য হোস্টের অনুমতি পায়।
সক্রিয় ট্যাব আহ্বান করা হচ্ছে
নিম্নলিখিত ব্যবহারকারীর অঙ্গভঙ্গি "activeTab"
অনুমতি সক্ষম করে:
- একটি কর্ম সঞ্চালন
- একটি প্রসঙ্গ মেনু আইটেম নির্বাহ করা হচ্ছে
- কমান্ড API থেকে একটি কীবোর্ড শর্টকাট নির্বাহ করা হচ্ছে
- omnibox API থেকে একটি পরামর্শ গ্রহণ করা হচ্ছে