browser.runtime

বিবরণ

সার্ভিস ওয়ার্কার ফিরিয়ে আনতে, ম্যানিফেস্ট সম্পর্কে বিবরণ রিটার্ন করতে এবং এক্সটেনশন লাইফসাইকেলে ইভেন্ট শুনতে ও তার উত্তর দিতে chrome.runtime API ব্যবহার করুন। এছাড়াও, আপনি এই API ব্যবহার করে URL-এর রিলেটিভ পাথকে সম্পূর্ণ-যোগ্য URL-এ পরিবর্তন করতে পারবেন।

এই API-এর বেশিরভাগ মেম্বারের কোনও অনুমতি প্রয়োজন হয় না। connectNative(), sendNativeMessage() এবং onNativeConnect-এর জন্য এই অনুমতি প্রয়োজন।

ম্যানিফেস্টে কীভাবে "nativeMessaging" অনুমতি ঘোষণা করতে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:

manifest.json:

{
  "name": "My extension",
  ...
  "permissions": [
    "nativeMessaging"
  ],
  ...
}

ধারণা ও ব্যবহার

রানটাইম API এমন পদ্ধতি প্রদান করে যা আপনার এক্সটেনশন ব্যবহার করতে পারে এমন বেশ কয়েকটি ক্ষেত্রকে সমর্থন করে:

মেসেজ পাসিং
আপনার এক্সটেনশন, এক্সটেনশনের মধ্যে বিভিন্ন কন্টেক্সটের সাথে এবং এইসব পদ্ধতি ও ইভেন্ট ব্যবহার করে অন্যান্য এক্সটেনশনের সাথেও যোগাযোগ করতে পারে: connect(), onConnect, onConnectExternal, sendMessage(), onMessage এবং onMessageExternal। এছাড়াও, আপনার এক্সটেনশন connectNative() এবং sendNativeMessage() ব্যবহার করে ব্যবহারকারীর ডিভাইসে নেটিভ অ্যাপ্লিকেশনে মেসেজ পাঠাতে পারে।
এক্সটেনশন ও প্ল্যাটফর্ম মেটাডেটা অ্যাক্সেস করা হচ্ছে
এইসব পদ্ধতির মাধ্যমে আপনি এক্সটেনশন ও প্ল্যাটফর্ম সম্পর্কে মেটাডেটার নির্দিষ্ট কিছু অংশ উদ্ধার করতে পারবেন। এই বিভাগের পদ্ধতির মধ্যে রয়েছে getManifest() এবং getPlatformInfo()।
এক্সটেনশন লাইফসাইকেল ও বিকল্প ম্যানেজ করা
এইসব প্রপার্টি আপনাকে এক্সটেনশনে কিছু মেটা-অপারেশন করতে এবং বিকল্প পৃষ্ঠা দেখতে দেয়। এই বিভাগের পদ্ধতি ও ইভেন্টের মধ্যে রয়েছে onInstalled, onStartup, openOptionsPage(), reload(), requestUpdateCheck() এবং setUninstallURL()।
সহায়ক ইউটিলিটি
এইসব পদ্ধতি ইন্টার্নাল রিসোর্স রিপ্রেজেন্টেশনকে এক্সটার্নাল ফর্ম্যাটে কনভার্ট করার মতো ইউটিলিটি প্রদান করে। এই বিভাগের পদ্ধতির মধ্যে রয়েছে getURL()।
কিয়স্ক মোড ইউটিলিটি
এই পদ্ধতিগুলি শুধুমাত্র ChromeOS-এ উপলভ্য এবং মূলত কিয়স্ক বাস্তবায়নে সহায়তা করার জন্য বিদ্যমান। এই বিভাগের পদ্ধতির মধ্যে রয়েছে restart() এবং restartAfterDelay()`।

আনপ্যাক করা এক্সটেনশনের আচরণ

আনপ্যাক করা এক্সটেনশন রিলোড করা হলে, এটিকে আপডেট হিসেবে বিবেচনা করা হয়। এর অর্থ হল, browser.runtime.onInstalled ইভেন্ট "update" কারণে ফায়ার হবে। এর মধ্যে browser.runtime.reload()-এর মাধ্যমে এক্সটেনশন রিলোড করার বিষয়টিও অন্তর্ভুক্ত।

যেসব ক্ষেত্রে ব্যবহার করা যাবে

ওয়েব পৃষ্ঠায় ছবি যোগ করা

অন্য ডোমেনে হোস্ট করা অ্যাসেট অ্যাক্সেস করার জন্য কোনও ওয়েব পেজকে অবশ্যই রিসোর্সের সম্পূর্ণ URL উল্লেখ করতে হবে (যেমন, <img src="https://example.com/logo.png">)। কোনও ওয়েব পেজে এক্সটেনশন অ্যাসেট অন্তর্ভুক্ত করার ক্ষেত্রেও একই নিয়ম প্রযোজ্য। দুটি পার্থক্য হল, এক্সটেনশনের অ্যাসেট অবশ্যই ওয়েব অ্যাক্সেসযোগ্য রিসোর্স হিসেবে প্রকাশ করতে হবে এবং সাধারণত কন্টেন্ট স্ক্রিপ্ট এক্সটেনশন অ্যাসেট ইনজেক্ট করার জন্য দায়ী।

এই উদাহরণে, এক্সটেনশনটি পৃষ্ঠায় logo.png যোগ করবে, যেখানে কন্টেন্ট স্ক্রিপ্ট ইনজেক্ট করা হচ্ছে, runtime.getURL() ব্যবহার করে একটি সম্পূর্ণ-যোগ্য URL তৈরি করার জন্য। তবে প্রথমে, অ্যাসেটটি ম্যানিফেস্টে ওয়েব অ্যাক্সেসযোগ্য রিসোর্স হিসেবে ঘোষণা করতে হবে।

manifest.json:

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "logo.png" ],
      "matches": [ "https://*/*" ]
    }
  ],
  ...
}

content.js:

{ // Block used to avoid setting global variables
  const img = document.createElement('img');
  img.src = browser.runtime.getURL('logo.png');
  document.body.append(img);
}

কন্টেন্ট স্ক্রিপ্ট থেকে পরিষেবা কর্মীকে ডেটা পাঠান

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

এই উদাহরণে, কন্টেন্ট স্ক্রিপ্টের UI শুরু করার জন্য এক্সটেনশনের সার্ভিস ওয়ার্কার থেকে কিছু ডেটা প্রয়োজন। এই ডেটা পেতে, এটি ডেভেলপার-নির্ধারিত get-user-data মেসেজ সার্ভিস ওয়ার্কারের কাছে পাঠায় এবং এটি ব্যবহারকারীর তথ্যের একটি কপি সহ উত্তর দেয়।

content.js:

// 1. Send a message to the service worker requesting the user's data
browser.runtime.sendMessage('get-user-data', (response) => {
  // 3. Got an asynchronous response with the data from the service worker
  console.log('received user data', response);
  initializeUI(response);
});

service-worker.js:

// Example of a simple user data object
const user = {
  username: 'demo-user'
};

browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
  // 2. A page requested user data, respond with a copy of `user`
  if (message === 'get-user-data') {
    sendResponse(user);
  }
});

আনইনস্টল করার বিষয়ে মতামত সংগ্রহ করা

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

background.js:

browser.runtime.onInstalled.addListener(details => {
  if (details.reason === browser.runtime.OnInstalledReason.INSTALL) {
    browser.runtime.setUninstallURL('https://example.com/extension-survey');
  }
});

উদাহরণ

আরও রানটাইম API উদাহরণের জন্য Manifest V3 - ওয়েব অ্যাক্সেসযোগ্য রিসোর্স ডেমো দেখুন।

ধরন

ContextFilter

Chrome 114+ Chrome 148 থেকে browser.*

নির্দিষ্ট এক্সটেনশন প্রসঙ্গের সাথে ম্যাচ করার জন্য একটি ফিল্টার। ম্যাচিং কনটেক্সট অবশ্যই সব নির্দিষ্ট ফিল্টারের সাথে ম্যাচ করতে হবে; নির্দিষ্ট করা হয়নি এমন যেকোনও ফিল্টার উপলভ্য সব কনটেক্সটের সাথে ম্যাচ করে। তাই, `{}`-এর ফিল্টার উপলভ্য সব কনটেক্সটের সাথে ম্যাচ করবে।

প্রপার্টি

  • contextIds

    string[] ঐচ্ছিক

  • contextTypes

    ContextType[] ঐচ্ছিক

  • documentIds

    string[] ঐচ্ছিক

  • documentOrigins

    string[] ঐচ্ছিক

  • documentUrls

    string[] ঐচ্ছিক

  • frameIds

    number[] ঐচ্ছিক

  • ছদ্মবেশী মোড

    বুলিয়ান ঐচ্ছিক

  • tabIds

    number[] ঐচ্ছিক

  • windowIds

    number[] ঐচ্ছিক

ContextType

Chrome 114+ Chrome 148 থেকে browser.*

Enum

"TAB"
ট্যাব হিসেবে কনটেক্সটের ধরন নির্দিষ্ট করে

"POPUP"
এক্সটেনশন পপ-আপ উইন্ডো হিসেবে কন্টেক্সটের ধরন নির্দিষ্ট করে

"BACKGROUND"
সার্ভিস ওয়ার্কার হিসেবে কনটেক্সটের ধরন নির্দিষ্ট করে।

"OFFSCREEN_DOCUMENT"
অফস্ক্রিন ডকুমেন্ট হিসেবে কনটেক্সটের ধরন নির্দিষ্ট করে।

"SIDE_PANEL"
সাইড প্যানেল হিসেবে কনটেক্সটের ধরন নির্দিষ্ট করে।

"DEVELOPER_TOOLS"
ডেভেলপার টুল হিসেবে কনটেক্সটের ধরন নির্দিষ্ট করে।

ExtensionContext

Chrome 114+ Chrome 148 থেকে browser.*

এক্সটেনশন কন্টেন্ট হোস্ট করা একটি প্রসঙ্গ।

প্রপার্টি

  • contextId

    স্ট্রিং

    এই প্রসঙ্গের জন্য একটি অনন্য শনাক্তকারী

  • contextType

    এটি যে ধরনের প্রসঙ্গের সাথে সম্পর্কিত।

  • documentId

    স্ট্রিং ঐচ্ছিক

    এই প্রসঙ্গের সাথে যুক্ত ডকুমেন্টের জন্য একটি UUID, অথবা এই প্রসঙ্গটি কোনও ডকুমেন্টে হোস্ট না করা হলে তা সংজ্ঞায়িত করা হয় না।

  • documentOrigin

    স্ট্রিং ঐচ্ছিক

    এই প্রসঙ্গের সাথে যুক্ত ডকুমেন্টের উৎস, অথবা প্রসঙ্গটি কোনও ডকুমেন্টে হোস্ট করা না থাকলে তা সংজ্ঞায়িত করা হয় না।

  • documentUrl

    স্ট্রিং ঐচ্ছিক

    এই প্রসঙ্গের সাথে যুক্ত ডকুমেন্টের URL অথবা প্রসঙ্গটি কোনও ডকুমেন্টে হোস্ট করা না থাকলে এটি সংজ্ঞায়িত করা হয় না।

  • frameId

    নম্বর

    এই প্রসঙ্গের জন্য ফ্রেমের আইডি, অথবা এই প্রসঙ্গটি কোনও ফ্রেমে হোস্ট করা না হলে -1।

  • ছদ্মবেশী মোড

    বুলিয়ান

    প্রসঙ্গটি ছদ্মবেশী প্রোফাইলের সাথে যুক্ত কিনা।

  • tabId

    নম্বর

    এই প্রসঙ্গের জন্য ট্যাবের আইডি, অথবা এই প্রসঙ্গ কোনও ট্যাবে হোস্ট করা না হলে -১।

  • windowId

    নম্বর

    এই প্রসঙ্গের জন্য উইন্ডোর আইডি, অথবা এই প্রসঙ্গ কোনও উইন্ডোতে হোস্ট করা না হলে -১।

ExtensionLoadDetails

Chrome 157+

এক্সটেনশন লোড ইভেন্ট সম্পর্কে বিবরণ।

প্রপার্টি

  • previousVersion

    স্ট্রিং ঐচ্ছিক

    এক্সটেনশনের আগের ভার্সন নির্দেশ করে। 'কারণ' হিসেবে 'আপডেট' বা 'চালু করুন' উল্লেখ করা থাকলে তবেই এটি দেখানো হয়। 'কারণ' যদি 'আপডেট' হয়, তাহলে এটি হল আপডেট করার আগে এক্সটেনশনের ভার্সন। 'reason' যদি 'enable' হয়, তাহলে এটি এক্সটেনশনের বর্তমান ভার্সন।

  • কারণ

    এই ইভেন্টটি ডিসপ্যাচ করার কারণ।

MessageSender

স্ক্রিপ্ট কনটেক্সট সম্পর্কিত তথ্য সহ অবজেক্ট যা মেসেজ বা অনুরোধ পাঠিয়েছে।

প্রপার্টি

  • documentId

    স্ট্রিং ঐচ্ছিক

    Chrome 106+ Chrome 148 থেকে browser.*

    কানেকশন খুলেছে এমন ডকুমেন্টের UUID।

  • documentLifecycle

    স্ট্রিং ঐচ্ছিক

    Chrome 106+ Chrome 148 থেকে browser.*

    পোর্ট তৈরি করার সময় যে ডকুমেন্ট কানেকশন খুলেছে সেটির লাইফসাইকেল। মনে রাখবেন যে পোর্ট তৈরি করার পর থেকে ডকুমেন্টের লাইফসাইকেল স্ট্যাটাস পরিবর্তিত হয়ে থাকতে পারে।

  • frameId

    নম্বর ঐচ্ছিক

    যে ফ্রেম কানেকশন খুলেছে। টপ-লেভেল ফ্রেমের জন্য ০, চাইল্ড ফ্রেমের জন্য পজিটিভ। tab সেট করা থাকলে তবেই এটি সেট করা হবে।

  • id

    স্ট্রিং ঐচ্ছিক

    কানেকশন খুলেছে এমন এক্সটেনশনের আইডি, যদি থাকে।

  • nativeApplication

    স্ট্রিং ঐচ্ছিক

    Chrome 74+ Chrome 148 থেকে browser.*

    কানেকশন খুলেছে এমন নেটিভ অ্যাপ্লিকেশনের নাম, যদি থাকে।

  • উৎস

    স্ট্রিং ঐচ্ছিক

    Chrome 80+ ব্রাউজার।* Chrome 148 থেকে

    কানেকশন খুলেছে এমন পৃষ্ঠা বা ফ্রেমের উৎস। এটি URL প্রপার্টি (যেমন, about:blank) থেকে আলাদা হতে পারে অথবা অস্বচ্ছ (যেমন, স্যান্ডবক্স করা iframe) হতে পারে। URL থেকে আমরা যদি অবিলম্বে বলতে না পারি, তাহলে সোর্সটি বিশ্বাসযোগ্য কিনা তা শনাক্ত করার জন্য এটি উপযোগী।

  • ট্যাব

    ট্যাব ঐচ্ছিক

    tabs.Tab যা কানেকশন খুলেছে, যদি থাকে। এই প্রপার্টি শুধুমাত্র তখনই থাকবে যখন কোনও ট্যাব (কন্টেন্ট স্ক্রিপ্ট সহ) থেকে কানেকশন খোলা হবে এবং শুধুমাত্র যদি রিসিভার কোনও এক্সটেনশন হয়, অ্যাপ নয়।

  • tlsChannelId

    স্ট্রিং ঐচ্ছিক

    এক্সটেনশন অনুরোধ করলে এবং উপলভ্য থাকলে, কানেকশন খুলেছে এমন পৃষ্ঠা বা ফ্রেমের TLS চ্যানেল আইডি।

  • URL

    স্ট্রিং ঐচ্ছিক

    কানেকশন খুলেছে এমন পৃষ্ঠা বা ফ্রেমের URL। প্রেরক iframe-এ থাকলে, এটি iframe-এর URL হবে, যে পৃষ্ঠায় এটি হোস্ট করা হয়েছে সেই পৃষ্ঠার URL নয়।

OnInstalledReason

Chrome 44+ Chrome 148 থেকে browser.*

এই ইভেন্টটি ডিসপ্যাচ করার কারণ।

Enum

"install"
ইনস্টলেশন হিসেবে ইভেন্টের কারণ নির্দিষ্ট করে।

"আপডেট"
এক্সটেনশন আপডেট হিসেবে ইভেন্টের কারণ উল্লেখ করে।

"chrome_update"
Chrome আপডেট হিসেবে ইভেন্টের কারণ নির্দিষ্ট করে।

"shared_module_update"
শেয়ার করা মডিউলের আপডেট হিসেবে ইভেন্টের কারণ উল্লেখ করে।

OnLoadedReason

Chrome 157+

এই ইভেন্টটি ডিসপ্যাচ করার কারণ।

Enum

"ইনস্টল"
এক্সটেনশনটি নতুন ইনস্টল করা হয়েছে।

"আপডেট"
আপডেট করার পরে এক্সটেনশনটি আবার লোড করা হয়েছে।

"browser_update"
ব্রাউজারটি নতুন ভার্সনে আপডেট করা হয়েছে।

"চালু করুন"
বন্ধ থাকা অবস্থা থেকে এক্সটেনশনটি আবার চালু করা হয়েছে।

"স্টার্টআপ"
ব্রাউজার স্টার্টআপের সময় এক্সটেনশন লোড করা হচ্ছে।

"রিলোড"
এক্সটেনশনটি রিলোড করা হয়েছে (যেমন chrome.runtime.reload() এর মাধ্যমে বা ব্যবহারকারী ম্যানুয়ালি এক্সটেনশনটি রিলোড করেছেন)।

OnRestartRequiredReason

Chrome 44+ Chrome 148 থেকে browser.*

ইভেন্টটি ডিসপ্যাচ করার কারণ। অ্যাপ্লিকেশনটি নতুন ভার্সনে আপডেট করার কারণে রিস্টার্ট করার প্রয়োজন হলে 'app_update' ব্যবহার করা হয়। ব্রাউজার/OS নতুন ভার্সনে আপডেট করার কারণে রিস্টার্ট করার প্রয়োজন হলে 'os_update' ব্যবহার করা হয়। এন্টারপ্রাইজ নীতিতে সেট করা অনুমোদিত আপটাইমের চেয়ে বেশি সময় ধরে সিস্টেম চললে 'পর্যায়ক্রমিক' ব্যবহার করা হয়।

Enum

"app_update"
অ্যাপের আপডেট হিসেবে ইভেন্টের কারণ নির্দিষ্ট করে।

"os_update"
অপারেটিং সিস্টেমের আপডেট হিসেবে ইভেন্টের কারণ উল্লেখ করে।

"periodic"
অ্যাপের পিরিয়ডিক রিস্টার্ট হিসেবে ইভেন্টের কারণ নির্দিষ্ট করে।

PlatformArch

Chrome 44+ Chrome 148 থেকে browser.*

মেশিনের প্রসেসর আর্কিটেকচার।

Enum

"arm"
প্রসেসর আর্কিটেকচারকে arm হিসেবে নির্দিষ্ট করে।

"arm64"
প্রসেসর আর্কিটেকচার arm64 হিসেবে নির্দিষ্ট করে।

"x86-32"
প্রসেসর আর্কিটেকচার x86-32 হিসেবে নির্দিষ্ট করে।

"x86-64"
প্রসেসর আর্কিটেকচারকে x86-64 হিসেবে নির্দিষ্ট করে।

"mips"
প্রসেসর আর্কিটেকচার mips হিসেবে নির্দিষ্ট করে।

"mips64"
প্রসেসর আর্কিটেকচার mips64 হিসেবে নির্দিষ্ট করে।

"riscv64"
প্রসেসর আর্কিটেকচারকে riscv64 হিসেবে নির্দিষ্ট করে।

PlatformInfo

বর্তমান প্ল্যাটফর্ম সম্পর্কে তথ্য সহ অবজেক্ট।

প্রপার্টি

  • খিলান

    মেশিনের প্রসেসর আর্কিটেকচার।

  • nacl_arch

    PlatformNaclArch ঐচ্ছিক

    Chrome 149 থেকে বন্ধ করা হয়েছে

    নেটিভ ক্লায়েন্ট সম্পূর্ণভাবে সরিয়ে দেওয়ার পরে এই অ্যাট্রিবিউট আর কাজ করে না।

    নেটিভ ক্লায়েন্ট আর্কিটেকচার। এটি কিছু প্ল্যাটফর্মে arch থেকে আলাদা হতে পারে।

  • Chrome যে অপারেটিং সিস্টেমে চলছে।

PlatformNaclArch

Chrome 44+ Chrome 148 থেকে browser.* Chrome 149 থেকে বন্ধ করা হয়েছে

নেটিভ ক্লায়েন্ট সম্পূর্ণভাবে সরিয়ে দেওয়ার পরে এই enum বাতিল করা হয়েছে।

নেটিভ ক্লায়েন্ট আর্কিটেকচার। এটি কিছু প্ল্যাটফর্মে arch থেকে আলাদা হতে পারে।

Enum

"arm"
নেটিভ ক্লায়েন্ট আর্কিটেকচারকে arm হিসেবে নির্দিষ্ট করে।

"x86-32"
নেটিভ ক্লায়েন্ট আর্কিটেকচার x86-32 হিসেবে নির্দিষ্ট করে।

"x86-64"
নেটিভ ক্লায়েন্ট আর্কিটেকচারকে x86-64 হিসেবে নির্দিষ্ট করে।

"mips"
নেটিভ ক্লায়েন্ট আর্কিটেকচার mips হিসেবে নির্দিষ্ট করে।

"mips64"
নেটিভ ক্লায়েন্ট আর্কিটেকচার mips64 হিসেবে নির্দিষ্ট করে।

PlatformOs

Chrome 44+ Chrome 148 থেকে browser.*

Chrome যে অপারেটিং সিস্টেমে চলছে।

Enum

"mac"
MacOS অপারেটিং সিস্টেম নির্দিষ্ট করে।

"win"
Windows অপারেটিং সিস্টেম নির্দিষ্ট করে।

"android"
Android অপারেটিং সিস্টেম নির্দিষ্ট করে।

"cros"
Chrome অপারেটিং সিস্টেম নির্দিষ্ট করে।

"linux"
Linux অপারেটিং সিস্টেম নির্দিষ্ট করে।

"openbsd"
OpenBSD অপারেটিং সিস্টেম নির্দিষ্ট করে।

Port

একটি অবজেক্ট যা অন্যান্য পৃষ্ঠার সাথে দ্বিমুখী যোগাযোগের অনুমতি দেয়। আরও তথ্যের জন্য দীর্ঘস্থায়ী কানেকশন দেখুন।

প্রপার্টি

  • নাম

    স্ট্রিং

    runtime.connect-এ কল করার সময় যেভাবে উল্লেখ করা হয়েছে, সেই অনুযায়ী পোর্টের নাম।

  • onDisconnect

    Event<functionvoidvoid>

    অন্য প্রান্ত থেকে পোর্ট ডিসকানেক্ট করা হলে ফায়ার করা হয়। কোনও সমস্যার কারণে পোর্ট ডিসকানেক্ট হয়ে গেলে runtime.lastError সেট করা হতে পারে। ডিসকানেক্ট করার মাধ্যমে পোর্ট বন্ধ করা হলে, এই ইভেন্ট শুধুমাত্র অন্য প্রান্তে ফায়ার করা হয়। এই ইভেন্টটি সর্বাধিক একবার ফায়ার করা হয় (এছাড়াও পোর্ট লাইফটাইম দেখুন)।

    onDisconnect.addListener ফাংশনটি দেখতে এইরকম:

    (callback: function) => {...}

    • কলব্যাক

      ফাংশন

      callback প্যারামিটারটি দেখতে এইরকম:

      (port: Port) => void

  • onMessage

    Event<functionvoidvoid>

    পোর্টের অন্য প্রান্ত থেকে postMessage কল করা হলে এই ইভেন্টটি ফায়ার করা হয়।

    onMessage.addListener ফাংশনটি দেখতে এইরকম:

    (callback: function) => {...}

    • কলব্যাক

      ফাংশন

      callback প্যারামিটারটি দেখতে এইরকম:

      (message: any, port: Port) => void

  • প্রেরক

    MessageSender ঐচ্ছিক

    এই প্রপার্টি শুধুমাত্র onConnect / onConnectExternal / onConnectNative লিসনারে পাস করা পোর্টে উপস্থিত থাকবে।

  • ডিসকানেক্ট করুন

    বাতিল

    অবিলম্বে পোর্ট ডিসকানেক্ট করুন। আগে থেকেই ডিসকানেক্ট করা পোর্টে disconnect() কল করলে কোনও প্রভাব পড়ে না। কোনও পোর্ট ডিসকানেক্ট করা হলে, এই পোর্টে কোনও নতুন ইভেন্ট পাঠানো হবে না।

    disconnect ফাংশনটি দেখতে এইরকম:

    () => {...}

  • postMessage

    বাতিল

    পোর্টের অন্য প্রান্তে মেসেজ পাঠান। পোর্ট ডিসকানেক্ট হয়ে গেলে, সমস্যা পাওয়া গেছে।

    postMessage ফাংশনটি দেখতে এইরকম:

    (message: any) => {...}

    • মেসেজ

      যেকোনও

      Chrome 52+ ব্রাউজার।* Chrome 148 থেকে

      যে মেসেজ পাঠাতে হবে। এই অবজেক্ট JSON-ifiable হতে হবে।

RequestUpdateCheckStatus

Chrome 44+ Chrome 148 থেকে browser.*

আপডেট চেক করার ফলাফল।

Enum

"থ্রটল করা হয়েছে"
স্ট্যাটাস চেক থ্রটল করা হয়েছে কিনা তা নির্দিষ্ট করে। অল্প সময়ের মধ্যে বারবার চেক করলে এটি হতে পারে।

"no_update"
ইনস্টল করার জন্য কোনও আপডেট উপলভ্য নেই বলে উল্লেখ করে।

"update_available"
ইনস্টল করার জন্য আপডেট উপলভ্য আছে কিনা তা নির্দিষ্ট করে।

প্রপার্টি

id

এক্সটেনশন/অ্যাপের আইডি।

ধরন

স্ট্রিং

lastError

API ফাংশন কল করা না গেলে সমস্যার মেসেজ দেখানো হয়; অন্যথায় এটি সংজ্ঞায়িত করা হয় না। এটি শুধুমাত্র সেই ফাংশনের কলব্যাকের স্কোপের মধ্যে সংজ্ঞায়িত করা হয়। কোনও সমস্যা হলে, কিন্তু কলব্যাকের মধ্যে runtime.lastError অ্যাক্সেস করা না হলে, কনসোলে একটি মেসেজ লগ করা হয়, যেখানে সমস্যা তৈরি করা API ফাংশন তালিকাভুক্ত থাকে। যেসব API ফাংশন প্রমিস রিটার্ন করে সেগুলি এই প্রপার্টি সেট করে না।

ধরন

অবজেক্ট

প্রপার্টি

  • মেসেজ

    স্ট্রিং ঐচ্ছিক

    যে সমস্যা হয়েছে তার বিবরণ।

পদ্ধতি

connect()

browser.runtime.connect(
  extensionId?: string,
  connectInfo?: object,
)
: Port

কোনও এক্সটেনশন (যেমন ব্যাকগ্রাউন্ড পৃষ্ঠা) বা অন্যান্য এক্সটেনশন/অ্যাপের মধ্যে শ্রোতাদের কানেক্ট করার চেষ্টা করে। এটি এক্সটেনশন প্রসেস, অ্যাপ/এক্সটেনশনের মধ্যে যোগাযোগ এবং ওয়েব মেসেজিং-এর সাথে কানেক্ট করা কন্টেন্ট স্ক্রিপ্টের জন্য উপযোগী। মনে রাখবেন যে এটি কোনও কন্টেন্ট স্ক্রিপ্টে কোনও শ্রোতার সাথে কানেক্ট করে না। এক্সটেনশন tabs.connect-এর মাধ্যমে ট্যাবে এম্বেড করা কন্টেন্ট স্ক্রিপ্টের সাথে কানেক্ট করতে পারে।

প্যারামিটারগুলি

  • extensionId

    স্ট্রিং ঐচ্ছিক

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

  • connectInfo

    অবজেক্ট ঐচ্ছিক

    • includeTlsChannelId

      বুলিয়ান ঐচ্ছিক

      কানেকশন ইভেন্টের জন্য শুনছে এমন প্রসেসের জন্য TLS চ্যানেল আইডি onConnectExternal-এ পাস করা হবে কিনা।

    • নাম

      স্ট্রিং ঐচ্ছিক

      কানেকশন ইভেন্ট শুনছে এমন প্রসেসের জন্য onConnect-এ পাস করা হবে।

রিটার্ন

  • যে পোর্টের মাধ্যমে মেসেজ পাঠানো ও রিসিভ করা যায়। এক্সটেনশন না থাকলে, পোর্টের onDisconnect ইভেন্ট ফায়ার করা হয়।

connectNative()

browser.runtime.connectNative(
  application: string,
)
: Port

হোস্ট মেশিনে নেটিভ অ্যাপ্লিকেশনের সাথে কানেক্ট করে। এই পদ্ধতির জন্য "nativeMessaging" অনুমতি প্রয়োজন। আরও তথ্যের জন্য নেটিভ মেসেজিং দেখুন।

প্যারামিটারগুলি

  • অ্যাপ্লিকেশন

    স্ট্রিং

    কানেক্ট করার জন্য রেজিস্টার করা অ্যাপ্লিকেশনের নাম।

রিটার্ন

  • অ্যাপ্লিকেশনের মাধ্যমে মেসেজ পাঠানো ও পাওয়ার জন্য পোর্ট

getBackgroundPage()

শুধুমাত্র ফোরগ্রাউন্ড Chrome 133 থেকে বন্ধ করা হয়েছে
browser.runtime.getBackgroundPage(): Promise<Window | undefined>

MV3 এক্সটেনশনে ব্যাকগ্রাউন্ড পৃষ্ঠা থাকে না।

বর্তমান এক্সটেনশন/অ্যাপের মধ্যে চলা ব্যাকগ্রাউন্ড পৃষ্ঠার জন্য জাভাস্ক্রিপ্ট 'উইন্ডো' অবজেক্ট ফিরিয়ে আনে। ব্যাকগ্রাউন্ড পৃষ্ঠাটি ইভেন্ট পৃষ্ঠা হলে, সিস্টেম নিশ্চিত করবে যে কলব্যাক কল করার আগে এটি লোড করা হয়েছে। ব্যাকগ্রাউন্ড পৃষ্ঠা না থাকলে, সমস্যা সেট করা হয়।

রিটার্ন

  • Promise<Window | undefined>

    Chrome 99+ Chrome 148 থেকে browser.*

getContexts()

Chrome 116+ browser.* Chrome 148 থেকে MV3+
browser.runtime.getContexts(
  filter: ContextFilter,
)
: Promise<ExtensionContext[]>

এই এক্সটেনশনের সাথে যুক্ত অ্যাক্টিভ কনটেক্সট সম্পর্কে তথ্য নিয়ে আসে

প্যারামিটারগুলি

  • ফিল্টার করুন

    ম্যাচিং প্রসঙ্গ খুঁজে পাওয়ার ফিল্টার। ফিল্টারে উল্লেখ করা সব ফিল্ডের সাথে ম্যাচ করলে, তবেই কোনও প্রসঙ্গ ম্যাচ করে। ফিল্টারে উল্লেখ না করা যেকোনও ফিল্ড সব কনটেক্সটের সাথে ম্যাচ করে।

রিটার্ন

  • Promise<ExtensionContext[]>

    প্রমিস যা ম্যাচিং কনটেক্সটের সাথে সমাধান করে, যদি থাকে।

getManifest()

browser.runtime.getManifest(): object

ম্যানিফেস্ট থেকে অ্যাপ বা এক্সটেনশন সম্পর্কে বিবরণ প্রদান করে। ফেরত আসা অবজেক্টটি হল সম্পূর্ণ ম্যানিফেস্ট ফাইলের সিরিয়ালাইজেশন।

রিটার্ন

  • অবজেক্ট

    ম্যানিফেস্টের বিবরণ।

getPackageDirectoryEntry()

শুধুমাত্র ফোরগ্রাউন্ড
browser.runtime.getPackageDirectoryEntry(): Promise<DirectoryEntry>

প্যাকেজ ডিরেক্টরির জন্য DirectoryEntry রিটার্ন করে।

রিটার্ন

  • <DirectoryEntry> প্রমিস

    Chrome 122+ ব্রাউজার।* Chrome 148 থেকে

getPlatformInfo()

browser.runtime.getPlatformInfo(): Promise<PlatformInfo>

বর্তমান প্ল্যাটফর্ম সম্পর্কে তথ্য দেখায়।

রিটার্ন

  • Promise<PlatformInfo>

    Chrome 99+ Chrome 148 থেকে browser.*

    বর্তমান প্ল্যাটফর্ম সম্পর্কে তথ্য সহ সমাধান করে এমন প্রমিস।

getURL()

browser.runtime.getURL(
  path: string,
)
: string

অ্যাপ/এক্সটেনশন ইনস্টল ডিরেক্টরির মধ্যে একটি রিলেটিভ পাথকে সম্পূর্ণ-যোগ্য URL-এ কনভার্ট করে।

প্যারামিটারগুলি

  • পথ

    স্ট্রিং

    অ্যাপ/এক্সটেনশনের মধ্যে কোনও রিসোর্সের পাথ যা ইনস্টল ডিরেক্টরির সাপেক্ষে প্রকাশ করা হয়।

রিটার্ন

  • স্ট্রিং

    রিসোর্সের সম্পূর্ণ-উপযুক্ত URL।

getVersion()

Chrome 143+ Chrome 148 থেকে browser.*
browser.runtime.getVersion(): string

ম্যানিফেস্টে ঘোষণা করা এক্সটেনশনের ভার্সন দেখায়।

রিটার্ন

  • স্ট্রিং

    এক্সটেনশনের ভার্সন।

openOptionsPage()

browser.runtime.openOptionsPage(): Promise<void>

সম্ভব হলে, আপনার এক্সটেনশনের বিকল্প পৃষ্ঠা খুলুন।

সঠিক আচরণ আপনার ম্যানিফেস্টের options_ui বা options_page কী অথবা সেই সময় Chrome কী সাপোর্ট করে তার উপর নির্ভর করতে পারে। যেমন, পৃষ্ঠাটি নতুন ট্যাবে, chrome://extensions-এর মধ্যে, কোনও অ্যাপের মধ্যে খোলা হতে পারে অথবা এটি শুধু খোলা বিকল্প পৃষ্ঠায় ফোকাস করতে পারে। এটি কখনই কলার পৃষ্ঠা রিলোড করবে না।

আপনার এক্সটেনশন যদি কোনও বিকল্প পৃষ্ঠা ঘোষণা না করে, অথবা Chrome অন্য কোনও কারণে একটি তৈরি করতে ব্যর্থ হয়, তাহলে কলব্যাক lastError সেট করবে।

রিটার্ন

  • <void> প্রমিস

    Chrome 99+ Chrome 148 থেকে browser.*

reload()

browser.runtime.reload(): void

অ্যাপ বা এক্সটেনশন আবার লোড করে। কিয়স্ক মোডে এই পদ্ধতি কাজ করে না। কিয়স্ক মোডের জন্য, chrome.runtime.restart() পদ্ধতি ব্যবহার করুন।

requestUpdateCheck()

browser.runtime.requestUpdateCheck(): Promise<object>

এই অ্যাপ/এক্সটেনশনের জন্য অবিলম্বে আপডেট চেক করার অনুরোধ করে।

গুরুত্বপূর্ণ: বেশিরভাগ এক্সটেনশন/অ্যাপের এই পদ্ধতি ব্যবহার করা উচিত নয়, কারণ Chrome আগে থেকেই প্রতি কয়েক ঘণ্টা অন্তর অটোমেটিক চেক করে এবং আপনি requestUpdateCheck কল না করেই runtime.onUpdateAvailable ইভেন্ট শুনতে পারবেন।

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

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

রিটার্ন

  • Promise<object>

    Chrome 109+ Chrome 148 থেকে browser.*

restart()

browser.runtime.restart(): void

অ্যাপ কিয়স্ক মোডে চললে ChromeOS ডিভাইস রিস্টার্ট করুন। অন্যথায়, এটি নো-অপ।

restartAfterDelay()

Chrome 53+ Chrome 148 থেকে browser.*
browser.runtime.restartAfterDelay(
  seconds: number,
)
: Promise<void>

অ্যাপটি কিয়স্ক মোডে চলার সময় নির্দিষ্ট সেকেন্ড পরে ChromeOS ডিভাইস রিস্টার্ট করুন। সময় শেষ হওয়ার আগে আবার কল করা হলে, রিবুট হতে দেরি হবে। -১ ভ্যালু দিয়ে কল করা হলে, রিবুট বাতিল করা হবে। এটি নন-কিয়স্ক মোডে কাজ করে না। এই API চালু করার জন্য প্রথম এক্সটেনশনটিকেই শুধু বারবার কল করার অনুমতি দেওয়া হয়।

প্যারামিটারগুলি

  • সেকেন্ড

    নম্বর

    ডিভাইস রিবুট করার আগে সেকেন্ডে অপেক্ষা করার সময়, অথবা শিডিউল করা রিবুট বাতিল করতে -১।

রিটার্ন

  • <void> প্রমিস

    Chrome 99+ Chrome 148 থেকে browser.*

    রিস্টার্ট করার অনুরোধ সফলভাবে রিসিডিউল করা হলে প্রমিস রিজলভ হয়।

sendMessage()

browser.runtime.sendMessage(
  extensionId?: string,
  message: any,
  options?: object,
)
: Promise<any>

আপনার এক্সটেনশন বা অন্য এক্সটেনশন/অ্যাপের মধ্যে ইভেন্ট লিসেনারকে একটি মেসেজ পাঠায়। runtime.connect-এর মতো, তবে ঐচ্ছিক উত্তর সহ শুধুমাত্র একটি মেসেজ পাঠায়। আপনার এক্সটেনশনে পাঠানো হলে, runtime.onMessage ইভেন্ট আপনার এক্সটেনশনের প্রতিটি ফ্রেমে (প্রেরকের ফ্রেম ছাড়া) বা অন্য এক্সটেনশন হলে runtime.onMessageExternal ফায়ার করা হবে। মনে রাখবেন, এই পদ্ধতি ব্যবহার করে এক্সটেনশন কন্টেন্ট স্ক্রিপ্টে মেসেজ পাঠাতে পারবে না। কন্টেন্ট স্ক্রিপ্টে মেসেজ পাঠাতে, tabs.sendMessage ব্যবহার করুন।

প্যারামিটারগুলি

  • extensionId

    স্ট্রিং ঐচ্ছিক

    যে এক্সটেনশনে মেসেজ পাঠাতে হবে সেটির আইডি। বাদ দেওয়া হলে, মেসেজটি আপনার নিজের এক্সটেনশন/অ্যাপে পাঠানো হবে। ওয়েব মেসেজিংয়ের জন্য কোনও ওয়েব পেজ থেকে মেসেজ পাঠানোর ক্ষেত্রে প্রয়োজন।

  • মেসেজ

    যেকোনও

    যে মেসেজ পাঠাতে হবে। এই মেসেজটি JSON-ifiable অবজেক্ট হতে হবে।

  • বিকল্প

    অবজেক্ট ঐচ্ছিক

    • includeTlsChannelId

      বুলিয়ান ঐচ্ছিক

      কানেকশন ইভেন্টের জন্য শুনছে এমন প্রসেসের জন্য TLS চ্যানেল আইডি onMessageExternal-এ পাস করা হবে কিনা।

রিটার্ন

  • <any> প্রমিস

    Chrome 99+ Chrome 148 থেকে browser.*

    Chrome 99-এ এক্সটেনশন কনটেক্সটের জন্য প্রমিস সাপোর্ট যোগ করা হয়েছে। কোনও ওয়েব পেজ থেকে এক্সটেনশনে কমিউনিকেট করার সময়, Chrome 118 থেকে প্রমিস উপলভ্য।

sendNativeMessage()

browser.runtime.sendNativeMessage(
  application: string,
  message: object,
)
: Promise<any>

নেটিভ অ্যাপ্লিকেশনে একটি মেসেজ পাঠান। এই পদ্ধতির জন্য "nativeMessaging" অনুমতি প্রয়োজন।

প্যারামিটারগুলি

  • অ্যাপ্লিকেশন

    স্ট্রিং

    নেটিভ মেসেজিং হোস্টের নাম বা টার্গেটের বিবরণ।

  • মেসেজ

    অবজেক্ট

    নেটিভ মেসেজিং হোস্টকে যে মেসেজ পাঠানো হবে।

রিটার্ন

  • <any> প্রমিস

    Chrome 99+ Chrome 148 থেকে browser.*

setUninstallURL()

browser.runtime.setUninstallURL(
  url: string,
)
: Promise<void>

আনইনস্টল করার পরে যে URL-এ যেতে হবে সেটি সেট করে। সার্ভার-সাইড ডেটা পরিষ্কার, বিশ্লেষণ ও সমীক্ষা করার জন্য এটি ব্যবহার করা হতে পারে। সর্বাধিক ১০২৩টি অক্ষর।

প্যারামিটারগুলি

  • URL

    স্ট্রিং

    এক্সটেনশন আনইনস্টল করার পরে URL খুলতে হবে। এই URL-এ অবশ্যই http: বা https: স্কিম থাকতে হবে। আনইনস্টল করার সময় নতুন ট্যাব যাতে না খোলে তার জন্য খালি স্ট্রিং সেট করুন।

রিটার্ন

  • <void> প্রমিস

    Chrome 99+ Chrome 148 থেকে browser.*

    আনইনস্টল URL সেট করা হলে প্রমিস সমাধান করে। প্রদত্ত URL সঠিক না হলে, প্রমিস বাতিল করা হবে।

ইভেন্ট

onBrowserUpdateAvailable

বন্ধ করে দেওয়া হয়েছে
browser.runtime.onBrowserUpdateAvailable.addListener(
  callback: function,
)

runtime.onRestartRequired ব্যবহার করুন।

Chrome আপডেট উপলভ্য হলে ফায়ার করা হয়, কিন্তু ব্রাউজার রিস্টার্ট করতে হবে বলে সাথে সাথে ইনস্টল করা হয় না।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    () => void

onConnect

browser.runtime.onConnect.addListener(
  callback: function,
)

এক্সটেনশন প্রসেস বা কন্টেন্ট স্ক্রিপ্ট (runtime.connect-এর মাধ্যমে) থেকে কানেকশন তৈরি হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (port: Port) => void

onConnectExternal

browser.runtime.onConnectExternal.addListener(
  callback: function,
)

অন্য এক্সটেনশন (runtime.connect দ্বারা) বা এক্সটার্নাল কানেক্টেবল ওয়েবসাইট থেকে কানেকশন তৈরি করা হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (port: Port) => void

onConnectNative

Chrome 76+ browser.* Chrome 148 থেকে
browser.runtime.onConnectNative.addListener(
  callback: function,
)

নেটিভ অ্যাপ্লিকেশন থেকে কানেকশন তৈরি করা হলে ফায়ার করা হয়। এই ইভেন্টের জন্য "nativeMessaging" অনুমতি প্রয়োজন। এটি শুধুমাত্র Chrome OS-এ কাজ করে।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (port: Port) => void

onEnabled

Chrome 155+
browser.runtime.onEnabled.addListener(
  callback: function,
)

কোনও এক্সটেনশন বন্ধ থেকে চালু করা হলে এটি ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    () => void

onExtensionLoaded

Chrome 157+
browser.runtime.onExtensionLoaded.addListener(
  callback: function,
)

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

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (details: ExtensionLoadDetails) => void

onInstalled

browser.runtime.onInstalled.addListener(
  callback: function,
)

এক্সটেনশন প্রথমবার ইনস্টল করা হলে, এক্সটেনশন নতুন ভার্সনে আপডেট করা হলে এবং Chrome নতুন ভার্সনে আপডেট করা হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (details: object) => void

    • বিস্তারিত বিবরণ

      অবজেক্ট

      • id

        স্ট্রিং ঐচ্ছিক

        আপডেট করা ইমপোর্ট করা শেয়ার করা মডিউল এক্সটেনশনের আইডি দেখায়। 'কারণ' যদি 'shared_module_update' হয়, তবেই এটি দেখানো হয়।

      • previousVersion

        স্ট্রিং ঐচ্ছিক

        এক্সটেনশনের আগের ভার্সন দেখায়, যা এইমাত্র আপডেট করা হয়েছে। 'কারণ' হিসেবে 'আপডেট' উল্লেখ করা থাকলে তবেই এটি দেখানো হয়।

      • কারণ

        এই ইভেন্টটি ডিসপ্যাচ করার কারণ।

onMessage

browser.runtime.onMessage.addListener(
  callback: function,
)

runtime.sendMessage অথবা tabs.sendMessage থেকে মেসেজ পাঠানো হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined

    • মেসেজ

      যেকোনও

    • প্রেরক
    • sendResponse

      ফাংশন

      sendResponse প্যারামিটারটি দেখতে এইরকম:

      (response?: any) => void

      • উত্তর

        যেকোনও ঐচ্ছিক

        মেসেজ প্রেরককে উত্তর পাঠানো।

    • ফেরত দেওয়া

      বুলিয়ান | Promise<any> | undefined

onMessageExternal

browser.runtime.onMessageExternal.addListener(
  callback: function,
)

অন্য এক্সটেনশন থেকে মেসেজ পাঠানো হলে ফায়ার করা হয় (runtime.sendMessage-এর মাধ্যমে)। কন্টেন্ট স্ক্রিপ্টে ব্যবহার করা যাবে না।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | Promise<any> | undefined

    • মেসেজ

      যেকোনও

    • প্রেরক
    • sendResponse

      ফাংশন

      sendResponse প্যারামিটারটি দেখতে এইরকম:

      (response?: any) => void

      • উত্তর

        যেকোনও ঐচ্ছিক

        মেসেজ প্রেরককে উত্তর পাঠানো।

    • ফেরত দেওয়া

      বুলিয়ান | Promise<any> | undefined

onRestartRequired

browser.runtime.onRestartRequired.addListener(
  callback: function,
)

কোনও অ্যাপ বা যে ডিভাইসে এটি চলে সেটি রিস্টার্ট করার প্রয়োজন হলে ফায়ার করা হয়। রিস্টার্ট করার জন্য অ্যাপটি যত তাড়াতাড়ি সম্ভব তার সব উইন্ডো বন্ধ করে দেবে। অ্যাপটি কিছু না করলে, ২৪ ঘণ্টার অতিরিক্ত সময়কাল অতিবাহিত হওয়ার পরে রিস্টার্ট করতে বাধ্য করা হবে। বর্তমানে, এই ইভেন্ট শুধুমাত্র Chrome OS কিয়স্ক অ্যাপের জন্য ফায়ার করা হয়।

প্যারামিটারগুলি

onStartup

browser.runtime.onStartup.addListener(
  callback: function,
)

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

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    () => void

onSuspend

browser.runtime.onSuspend.addListener(
  callback: function,
)

ইভেন্ট পৃষ্ঠা আনলোড হওয়ার ঠিক আগে পাঠানো হয়েছে। এটি এক্সটেনশনকে কিছু ক্লিন আপ করার সুযোগ দেয়। মনে রাখবেন, যেহেতু পৃষ্ঠাটি আনলোড হচ্ছে, তাই এই ইভেন্টটি ম্যানেজ করার সময় শুরু হওয়া যেকোনও অ্যাসিঙ্ক্রোনাস অপারেশন সম্পূর্ণ হওয়ার কোনও গ্যারান্টি নেই। আনলোড হওয়ার আগে ইভেন্ট পৃষ্ঠায় আরও অ্যাক্টিভিটি হলে, onSuspendCanceled ইভেন্ট পাঠানো হবে এবং পৃষ্ঠা আনলোড করা হবে না।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    () => void

onSuspendCanceled

browser.runtime.onSuspendCanceled.addListener(
  callback: function,
)

onSuspend-এর পরে পাঠানো হয়েছে, যা থেকে বোঝা যায় যে অ্যাপটি আনলোড করা হবে না।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    () => void

onUpdateAvailable

browser.runtime.onUpdateAvailable.addListener(
  callback: function,
)

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

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (details: object) => void

    • বিস্তারিত বিবরণ

      অবজেক্ট

      • ভার্সন

        স্ট্রিং

        উপলভ্য আপডেটের ভার্সন নম্বর।

onUserScriptConnect

Chrome 115+ Chrome 148 থেকে browser.* MV3+
browser.runtime.onUserScriptConnect.addListener(
  callback: function,
)

এই এক্সটেনশন থেকে কোনও ব্যবহারকারীর স্ক্রিপ্ট থেকে কানেকশন তৈরি করা হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (port: Port) => void

onUserScriptMessage

Chrome 115+ Chrome 148 থেকে browser.* MV3+
browser.runtime.onUserScriptMessage.addListener(
  callback: function,
)

একই এক্সটেনশনের সাথে যুক্ত ব্যবহারকারীর স্ক্রিপ্ট থেকে কোনও মেসেজ পাঠানো হলে ফায়ার করা হয়।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (message: any, sender: MessageSender, sendResponse: function) => boolean | undefined

    • মেসেজ

      যেকোনও

    • প্রেরক
    • sendResponse

      ফাংশন

      sendResponse প্যারামিটারটি দেখতে এইরকম:

      (response?: any) => void

      • উত্তর

        যেকোনও ঐচ্ছিক

        মেসেজ প্রেরককে উত্তর পাঠানো।

    • ফেরত দেওয়া

      বুলিয়ান | অনির্দিষ্ট