বেশিরভাগ এক্সটেনশনের কাজ করার জন্য এক বা একাধিক ক্রোম এক্সটেনশন এপিআই-তে অ্যাক্সেসের প্রয়োজন হয়। এই এপিআই রেফারেন্সটি এক্সটেনশনে ব্যবহারের জন্য উপলব্ধ এপিআইগুলো বর্ণনা করে এবং এর ব্যবহারের কিছু উদাহরণ তুলে ধরে।
Chrome 148 থেকে শুরু করে, এই API-গুলো chrome এর একটি ক্রস-ব্রাউজার বিকল্প হিসেবে browser namespace-এর অধীনেও উপলব্ধ। ব্যবহারের নির্দেশনার জন্য The browser namespace দেখুন।
সাধারণ এক্সটেনশন এপিআই বৈশিষ্ট্য
একটি এক্সটেনশনস এপিআই একটি নেমস্পেস নিয়ে গঠিত, যেখানে এক্সটেনশনের কাজ করার জন্য মেথড ও প্রোপার্টি থাকে এবং সাধারণত, তবে সবসময় নয়, manifest.json ফাইলের জন্য ম্যানিফেস্ট ফিল্ডও থাকে। উদাহরণস্বরূপ, browser.action নেমস্পেসের জন্য ম্যানিফেস্টে একটি "action" অবজেক্ট প্রয়োজন। অনেক এপিআই-এর জন্য ম্যানিফেস্টে পারমিশনও প্রয়োজন হয়।
এক্সটেনশন এপিআই-এর মেথডগুলো অ্যাসিঙ্ক্রোনাস হয়, যদি না অন্যথা উল্লেখ করা থাকে। অ্যাসিঙ্ক্রোনাস মেথডগুলো যে অপারেশন থেকে কল করা হয়, তার শেষ হওয়ার অপেক্ষা না করেই তাৎক্ষণিকভাবে রিটার্ন করে। এই অ্যাসিঙ্ক্রোনাস মেথডগুলোর ফলাফল পেতে প্রমিজ ব্যবহার করুন।
ক্রোম এক্সটেনশন এপিআই
- অ্যাক্সেসযোগ্যতার বৈশিষ্ট্য
ক্রোমের অ্যাক্সেসিবিলিটি ফিচারগুলো পরিচালনা করতে
chrome.accessibilityFeaturesAPI ব্যবহার করুন। এই API-টি স্বতন্ত্র অ্যাক্সেসিবিলিটি ফিচারগুলো পেতে এবং সেট করতে type API-এর ChromeSetting প্রোটোটাইপের উপর নির্ভর করে। ফিচারের স্টেট পেতে হলে এক্সটেনশনটিকে অবশ্যইaccessibilityFeatures.readপারমিশনের জন্য অনুরোধ করতে হবে। ফিচারের স্টেট পরিবর্তন করার জন্য এক্সটেনশনটিরaccessibilityFeatures.modifyপারমিশন প্রয়োজন। মনে রাখবেন যেaccessibilityFeatures.modifyপারমিশন মানেইaccessibilityFeatures.readপারমিশন নয়।- পদক্ষেপ
- ক্রোম ৮৮+ এমভি৩+
গুগল ক্রোম টুলবারে এক্সটেনশনটির আইকন নিয়ন্ত্রণ করতে
chrome.actionAPI ব্যবহার করুন। - অ্যালার্ম
পর্যায়ক্রমে অথবা ভবিষ্যতে একটি নির্দিষ্ট সময়ে কোড চালানোর জন্য সময়সূচী নির্ধারণ করতে
chrome.alarmsAPI ব্যবহার করুন।- অডিও
- শুধুমাত্র Chrome 59+ ChromeOS এর জন্য
সিস্টেমের সাথে সংযুক্ত অডিও ডিভাইসগুলো সম্পর্কে তথ্য পেতে এবং সেগুলোকে নিয়ন্ত্রণ করতে ব্যবহারকারীদের জন্য
chrome.audioAPI প্রদান করা হয়েছে। এই API-টি বর্তমানে শুধুমাত্র ChromeOS-এর কিয়স্ক মোডে উপলব্ধ। - বুকমার্ক
বুকমার্ক তৈরি, সাজানো এবং অন্যান্যভাবে পরিচালনা করতে
chrome.bookmarksAPI ব্যবহার করুন। এছাড়াও Override Pages দেখুন, যা ব্যবহার করে আপনি একটি কাস্টম বুকমার্ক ম্যানেজার পেজ তৈরি করতে পারবেন।- ব্রাউজিং ডেটা
ব্যবহারকারীর স্থানীয় প্রোফাইল থেকে ব্রাউজিং ডেটা মুছে ফেলতে
chrome.browsingDataAPI ব্যবহার করুন।- সার্টিফিকেট প্রদানকারী
- শুধুমাত্র Chrome 46+ এবং ChromeOS এর জন্য
এই API ব্যবহার করে প্ল্যাটফর্মে সার্টিফিকেটগুলো উন্মুক্ত করুন, যা প্ল্যাটফর্মটি TLS প্রমাণীকরণের জন্য ব্যবহার করতে পারবে।
- কমান্ড
আপনার এক্সটেনশনে বিভিন্ন অ্যাকশন চালু করার জন্য কিবোর্ড শর্টকাট যোগ করতে কমান্ডস এপিআই (commands API) ব্যবহার করুন; যেমন, ব্রাউজার খোলার অ্যাকশন বা এক্সটেনশনে কোনো কমান্ড পাঠানো।
- বিষয়বস্তু সেটিংস
ওয়েবসাইটগুলো কুকি, জাভাস্ক্রিপ্ট এবং প্লাগইনের মতো ফিচার ব্যবহার করতে পারবে কি না, তা নিয়ন্ত্রণকারী সেটিংস পরিবর্তন করতে
chrome.contentSettingsAPI ব্যবহার করুন। আরও সাধারণভাবে বলতে গেলে, কন্টেন্ট সেটিংস আপনাকে বিশ্বব্যাপী না করে, বরং প্রতিটি সাইটের জন্য আলাদাভাবে ক্রোমের আচরণ কাস্টমাইজ করার সুযোগ দেয়।- প্রসঙ্গ মেনু
গুগল ক্রোমের কনটেক্সট মেনুতে আইটেম যোগ করতে
chrome.contextMenusAPI ব্যবহার করুন। আপনার কনটেক্সট মেনুতে যোগ করা আইটেমগুলো কোন ধরনের অবজেক্টের জন্য প্রযোজ্য হবে, যেমন—ছবি, হাইপারলিঙ্ক এবং পেজ, তা আপনি বেছে নিতে পারেন।- কুকি
কুকি সম্পর্কে জানতে ও পরিবর্তন করতে এবং কুকি পরিবর্তিত হলে বিজ্ঞপ্তি পেতে
chrome.cookiesAPI ব্যবহার করুন।- ডিবাগার
chrome.debuggerAPI, Chrome-এর রিমোট ডিবাগিং প্রোটোকলের একটি বিকল্প মাধ্যম হিসেবে কাজ করে। নেটওয়ার্ক ইন্টারঅ্যাকশন পর্যবেক্ষণ করতে, জাভাস্ক্রিপ্ট ডিবাগ করতে, DOM ও CSS পরিবর্তন করতে এবং আরও অনেক কিছুর জন্য এক বা একাধিক ট্যাবের সাথে সংযুক্ত হতেchrome.debuggerব্যবহার করুন।sendCommandমাধ্যমে ট্যাবগুলোকে নির্দিষ্ট করতে এবংonEventকলব্যাক থেকেtabIdঅনুযায়ী ইভেন্ট রাউট করতেDebuggeeপ্রপার্টিtabIdব্যবহার করুন।- ঘোষণামূলক বিষয়বস্তু
কোনো পৃষ্ঠার বিষয়বস্তু পড়ার অনুমতির প্রয়োজন ছাড়াই, সেই পৃষ্ঠার বিষয়বস্তুর ওপর নির্ভর করে বিভিন্ন পদক্ষেপ নিতে
chrome.declarativeContentAPI ব্যবহার করুন।- ডিক্লারেটিভনেটরিকোয়েস্ট
- ক্রোম ৮৪+
ডিক্লারেটিভ নিয়ম নির্দিষ্ট করার মাধ্যমে নেটওয়ার্ক রিকোয়েস্ট ব্লক বা পরিবর্তন করতে
chrome.declarativeNetRequestAPI ব্যবহার করা হয়। এর ফলে এক্সটেনশনগুলো নেটওয়ার্ক রিকোয়েস্টকে বাধা না দিয়ে বা তার বিষয়বস্তু না দেখেই পরিবর্তন করতে পারে, যা আরও বেশি গোপনীয়তা নিশ্চিত করে। - ডেস্কটপক্যাপচার
ডেস্কটপ ক্যাপচার এপিআই স্ক্রিনের বিষয়বস্তু, স্বতন্ত্র উইন্ডো বা স্বতন্ত্র ট্যাব ক্যাপচার করে।
- devtools.inspectedWindow
ইন্সপেক্টেড উইন্ডোর সাথে ইন্টারঅ্যাক্ট করতে
chrome.devtools.inspectedWindowAPI ব্যবহার করুন: এর মাধ্যমে আপনি ইন্সপেক্টেড পেজের ট্যাব আইডি পেতে, ইন্সপেক্টেড উইন্ডোর প্রেক্ষাপটে কোড ইভ্যালুয়েট করতে, পেজটি রিলোড করতে, অথবা পেজের ভেতরের রিসোর্সগুলোর তালিকা পেতে পারেন।- devtools.network
ডেভেলপার টুলসের নেটওয়ার্ক প্যানেলে প্রদর্শিত নেটওয়ার্ক অনুরোধ সম্পর্কিত তথ্য পুনরুদ্ধার করতে
chrome.devtools.networkAPI ব্যবহার করুন।- devtools.panels
আপনার এক্সটেনশনটিকে ডেভেলপার টুলস উইন্ডো UI-তে একীভূত করতে
chrome.devtools.panelsAPI ব্যবহার করুন: নিজের প্যানেল তৈরি করুন, বিদ্যমান প্যানেল অ্যাক্সেস করুন এবং সাইডবার যোগ করুন।- devtools.performance
- ক্রোম ১২৯+
DevTools-এর পারফরম্যান্স প্যানেলে রেকর্ডিং স্ট্যাটাস আপডেট শোনার জন্য
chrome.devtools.performanceAPI ব্যবহার করুন। - devtools.recorder
- ক্রোম ১০৫+
DevTools-এর Recorder প্যানেলটি কাস্টমাইজ করতে
chrome.devtools.recorderAPI ব্যবহার করুন। - ডিএনএস
- দেব চ্যানেল
ডিএনএস রেজোলিউশনের জন্য
chrome.dnsএপিআই ব্যবহার করুন। - ডকুমেন্টস্ক্যান
- শুধুমাত্র Chrome 44+ এবং ChromeOS এর জন্য
সংযুক্ত ডকুমেন্ট স্ক্যানারগুলো থেকে ছবি খুঁজে বের করতে ও পুনরুদ্ধার করতে
chrome.documentScanAPI ব্যবহার করুন। - ডোম
- ক্রোম ৮৮+
এক্সটেনশনগুলির জন্য বিশেষ DOM API অ্যাক্সেস করতে
chrome.domAPI ব্যবহার করুন। - ডাউনলোড
প্রোগ্রামের মাধ্যমে ডাউনলোড শুরু করতে, পর্যবেক্ষণ করতে, পরিচালনা করতে এবং অনুসন্ধান করতে
chrome.downloadsAPI ব্যবহার করুন।- এন্টারপ্রাইজ.ডিভাইস অ্যাট্রিবিউট
ডিভাইসের অ্যাট্রিবিউটগুলো পড়ার জন্য
chrome.enterprise.deviceAttributesAPI ব্যবহার করুন। দ্রষ্টব্য: এই API-টি শুধুমাত্র এন্টারপ্রাইজ পলিসি দ্বারা জোরপূর্বক ইনস্টল করা এক্সটেনশনগুলোর জন্য উপলব্ধ।- এন্টারপ্রাইজ.হার্ডওয়্যারপ্ল্যাটফর্ম
- ক্রোম ৭১+ এর জন্য পলিসি প্রয়োজন।
ব্রাউজারটি যে হার্ডওয়্যার প্ল্যাটফর্মে চলে, তার প্রস্তুতকারক এবং মডেল জানতে
chrome.enterprise.hardwarePlatformAPI ব্যবহার করুন। দ্রষ্টব্য: এই API-টি শুধুমাত্র এন্টারপ্রাইজ পলিসি দ্বারা ইনস্টল করা এক্সটেনশনগুলির জন্য উপলব্ধ। - এন্টারপ্রাইজ.লগইন
ম্যানেজড গেস্ট সেশন থেকে বের হতে
chrome.enterprise.loginAPI ব্যবহার করুন। দ্রষ্টব্য: এই API-টি শুধুমাত্র ChromeOS ম্যানেজড গেস্ট সেশনে এন্টারপ্রাইজ পলিসি দ্বারা ইনস্টল করা এক্সটেনশনগুলির জন্য উপলব্ধ।- এন্টারপ্রাইজ.নেটওয়ার্কিংঅ্যাট্রিবিউটস
আপনার বর্তমান নেটওয়ার্ক সম্পর্কে তথ্য জানতে
chrome.enterprise.networkingAttributesAPI ব্যবহার করুন। দ্রষ্টব্য: এই API শুধুমাত্র এন্টারপ্রাইজ পলিসি দ্বারা জোরপূর্বক ইনস্টল করা এক্সটেনশনগুলির জন্য উপলব্ধ।- এন্টারপ্রাইজ.প্ল্যাটফর্মকীজ
- শুধুমাত্র ChromeOS-এর জন্য পলিসি প্রয়োজন।
কী তৈরি করতে এবং এই কীগুলির জন্য সার্টিফিকেট ইনস্টল করতে
chrome.enterprise.platformKeysAPI ব্যবহার করুন। সার্টিফিকেটগুলি প্ল্যাটফর্ম দ্বারা পরিচালিত হবে এবং chrome.platformKeys-এর মাধ্যমে TLS অথেনটিকেশন, নেটওয়ার্ক অ্যাক্সেস বা অন্যান্য এক্সটেনশনের জন্য ব্যবহার করা যাবে। - ঘটনাগুলি
chrome.eventsনেমস্পেসটিতে এমন সাধারণ টাইপগুলো রয়েছে, যা কোনো আকর্ষণীয় ঘটনা ঘটলে আপনাকে অবহিত করার জন্য ইভেন্ট প্রেরণকারী এপিআইগুলো ব্যবহার করে থাকে।- সম্প্রসারণ
chrome.extensionAPI-তে এমন কিছু ইউটিলিটি রয়েছে যা যেকোনো এক্সটেনশন পেজ ব্যবহার করতে পারে। এতে একটি এক্সটেনশন ও তার কন্টেন্ট স্ক্রিপ্টের মধ্যে অথবা এক্সটেনশনগুলোর নিজেদের মধ্যে বার্তা আদান-প্রদানের সুবিধা রয়েছে, যা Message Passing অংশে বিস্তারিতভাবে বর্ণনা করা হয়েছে।- এক্সটেনশন টাইপ
chrome.extensionTypesAPI-তে ক্রোম এক্সটেনশনগুলির জন্য টাইপ ডিক্লারেশন রয়েছে।- ফাইলব্রাউজারহ্যান্ডলার
- শুধুমাত্র ChromeOS-এর জন্য ফোরগ্রাউন্ডে
ক্রোম ওএস ফাইল ব্রাউজারকে সম্প্রসারিত করতে
chrome.fileBrowserHandlerAPI ব্যবহার করুন। উদাহরণস্বরূপ, আপনি এই API ব্যবহার করে ব্যবহারকারীদের আপনার ওয়েবসাইটে ফাইল আপলোড করার সুযোগ দিতে পারেন। - ফাইলসিস্টেমপ্রোভাইডার
- শুধুমাত্র ChromeOS
chrome.fileSystemProviderAPI ব্যবহার করে ফাইল সিস্টেম তৈরি করুন, যা Chrome OS-এর ফাইল ম্যানেজার থেকে অ্যাক্সেস করা যাবে। - ফন্ট সেটিংস
ক্রোমের ফন্ট সেটিংস পরিচালনা করতে
chrome.fontSettingsAPI ব্যবহার করুন।- জিসিএম
অ্যাপ এবং এক্সটেনশনগুলিকে ফায়ারবেস ক্লাউড মেসেজিং (FCM)-এর মাধ্যমে বার্তা পাঠাতে ও গ্রহণ করতে
chrome.gcmব্যবহার করুন।- ইতিহাস
ব্রাউজারের ভিজিট করা পেজগুলোর রেকর্ডের সাথে ইন্টারঅ্যাক্ট করতে
chrome.historyAPI ব্যবহার করুন। আপনি ব্রাউজারের হিস্ট্রিতে URL যোগ করতে, সরাতে এবং কোয়েরি করতে পারেন। হিস্ট্রি পেজটিকে আপনার নিজস্ব ভার্সন দিয়ে ওভাররাইড করতে, Override Pages দেখুন।- i18n
আপনার সম্পূর্ণ অ্যাপ বা এক্সটেনশন জুড়ে আন্তর্জাতিকীকরণ বাস্তবায়ন করতে
chrome.i18nপরিকাঠামো ব্যবহার করুন।- পরিচয়
OAuth2 অ্যাক্সেস টোকেন পেতে
chrome.identityAPI ব্যবহার করুন।- নিষ্ক্রিয়
মেশিনের নিষ্ক্রিয় অবস্থার পরিবর্তন কখন হয় তা শনাক্ত করতে
chrome.idleAPI ব্যবহার করুন।- ইনপুট.টাইম
- শুধুমাত্র ChromeOS
Chrome OS-এর জন্য একটি কাস্টম IME তৈরি করতে
chrome.input.imeAPI ব্যবহার করুন। এর মাধ্যমে আপনার এক্সটেনশন কীস্ট্রোক পরিচালনা করতে, কম্পোজিশন সেট করতে এবং ক্যান্ডিডেট উইন্ডো নিয়ন্ত্রণ করতে পারবে। - ইনস্ট্যান্সআইডি
- ক্রোম ৪৪+
ইনস্ট্যান্স আইডি পরিষেবা অ্যাক্সেস করতে
chrome.instanceIDব্যবহার করুন। - লগইন অবস্থা
- শুধুমাত্র Chrome 78+ এবং ChromeOS এর জন্য
লগইন অবস্থা পড়তে ও পর্যবেক্ষণ করতে
chrome.loginStateAPI ব্যবহার করুন। - ব্যবস্থাপনা
chrome.managementAPI ইনস্টল করা অ্যাপ এবং এক্সটেনশনগুলো পরিচালনা করার উপায় প্রদান করে।- মাইমহ্যান্ডলার
- ক্রোম ১৫১+
থার্ড-পার্টি এক্সটেনশনগুলিতে MIME টাইপ স্ট্রিম পরিচালনা করতে
chrome.mimeHandlerAPI ব্যবহার করুন। - বিজ্ঞপ্তি
টেমপ্লেট ব্যবহার করে রিচ নোটিফিকেশন তৈরি করতে
chrome.notificationsAPI ব্যবহার করুন এবং এই নোটিফিকেশনগুলো ব্যবহারকারীদের সিস্টেম ট্রে-তে দেখান।- অফস্ক্রিন
- ক্রোম ১০৯+ এমভি৩+
অফস্ক্রিন ডকুমেন্ট তৈরি ও পরিচালনা করতে
offscreenএপিআই ব্যবহার করুন। - অমনিবক্স
অমনিবক্স এপিআই আপনাকে গুগল ক্রোমের অ্যাড্রেস বারে একটি কীওয়ার্ড নিবন্ধন করার সুযোগ দেয়, যা অমনিবক্স নামেও পরিচিত।
- পৃষ্ঠা ক্যাপচার
একটি ট্যাবকে MHTML হিসেবে সংরক্ষণ করতে
chrome.pageCaptureAPI ব্যবহার করুন।- অনুমতি
ইনস্টল করার সময়ের পরিবর্তে রান টাইমে ঘোষিত ঐচ্ছিক অনুমতিগুলো অনুরোধ করতে
chrome.permissionsAPI ব্যবহার করুন, যাতে ব্যবহারকারীরা বুঝতে পারেন কেন অনুমতিগুলো প্রয়োজন এবং শুধুমাত্র প্রয়োজনীয় অনুমতিগুলোই প্রদান করেন।- প্ল্যাটফর্ম কী
- শুধুমাত্র Chrome 45+ ChromeOS এর জন্য
প্ল্যাটফর্ম দ্বারা পরিচালিত ক্লায়েন্ট সার্টিফিকেট অ্যাক্সেস করতে
chrome.platformKeysAPI ব্যবহার করুন। যদি ব্যবহারকারী বা পলিসি অনুমতি দেয়, তাহলে একটি এক্সটেনশন তার নিজস্ব প্রমাণীকরণ প্রোটোকলে এই ধরনের সার্টিফিকেট ব্যবহার করতে পারে। উদাহরণস্বরূপ, এটি তৃতীয় পক্ষের VPN-এ প্ল্যাটফর্ম দ্বারা পরিচালিত সার্টিফিকেট ব্যবহারের সুযোগ দেয় (