browser.webNavigation

বিবরণ

ইন-ফ্লাইট নেভিগেশন অনুরোধের স্ট্যাটাস সম্পর্কে বিজ্ঞপ্তি পেতে chrome.webNavigation API ব্যবহার করুন।

অনুমতি

webNavigation

সব browser.webNavigation পদ্ধতি ও ইভেন্টের জন্য আপনাকে "webNavigation" অনুমতি এক্সটেনশন ম্যানিফেস্টে ঘোষণা করতে হবে। যেমন:

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

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

ইভেন্টের অর্ডার

সফলভাবে সম্পূর্ণ হওয়া নেভিগেশনের জন্য, নিম্নলিখিত ক্রমে ইভেন্ট ফায়ার করা হয়:

onBeforeNavigate -> onCommitted -> [onDOMContentLoaded] -> onCompleted

প্রসেস চলাকালীন কোনও সমস্যা হলে, তার ফলে onErrorOccurred ইভেন্ট হয়। নির্দিষ্ট কোনও নেভিগেশনের জন্য, onErrorOccurred-এর পরে আর কোনও ইভেন্ট ফায়ার করা হয়নি।

কোনও নেভিগেটিং ফ্রেমে সাবফ্রেম থাকলে, তার onCommitted তার যেকোনও চাইল্ডের onBeforeNavigate-এর আগে ফায়ার করা হয়; যেখানে onCompleted তার সব চাইল্ডের onCompleted-এর পরে ফায়ার করা হয়।

ফ্রেমের রেফারেন্স ফ্র্যাগমেন্ট পরিবর্তন করা হলে, onReferenceFragmentUpdated ইভেন্ট ফায়ার করা হয়। এই ইভেন্ট onDOMContentLoaded-এর পরে যেকোনও সময়, এমনকি onCompleted-এর পরেও ফায়ার হতে পারে।

ফ্রেমের স্ট্যাটাস পরিবর্তন করার জন্য ইতিহাস API ব্যবহার করা হলে (যেমন, history.pushState() ব্যবহার করে, একটি onHistoryStateUpdated ইভেন্ট ফায়ার করা হয়। এই ইভেন্ট onDOMContentLoaded-এর পরে যেকোনও সময় ট্রিগার হতে পারে।

কোনও নেভিগেশন যদি ব্যাক ফরোয়ার্ড ক্যাশে থেকে কোনও পৃষ্ঠা রিস্টোর করে, তাহলে onDOMContentLoaded ইভেন্ট ট্রিগার হবে না। ইভেন্টটি ফায়ার করা হয়নি কারণ পৃষ্ঠাটি প্রথমবার দেখার সময় কন্টেন্টটি ইতিমধ্যেই লোড হয়ে গেছে।

Chrome ইনস্ট্যান্ট বা ইনস্ট্যান্ট পৃষ্ঠা ব্যবহার করে নেভিগেশন ট্রিগার করা হলে, সম্পূর্ণ লোড হওয়া পৃষ্ঠা বর্তমান ট্যাবে সোয়্যাপ করা হয়। সেই ক্ষেত্রে, একটি onTabReplaced ইভেন্ট ফায়ার করা হয়।

webRequest ইভেন্টের সাথে সম্পর্ক

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

সাধারণত, webNavigation ইভেন্টগুলি UI-তে দেখানো নেভিগেশন অবস্থার সাথে ঘনিষ্ঠভাবে সম্পর্কিত, যখন webRequest ইভেন্টগুলি নেটওয়ার্ক স্ট্যাকের অবস্থার সাথে সম্পর্কিত যা সাধারণত ব্যবহারকারীর কাছে অস্বচ্ছ।

ট্যাব আইডি

নেভিগেট করা সব ট্যাব Chrome-এর UI-তে আসল ট্যাবের সাথে মেলে না, যেমন, প্রি-রেন্ডার করা হচ্ছে এমন ট্যাব। ট্যাব API ব্যবহার করে এই ধরনের ট্যাব অ্যাক্সেস করা যায় না এবং webNavigation.getFrame() বা webNavigation.getAllFrames() কল করে আপনি এগুলি সম্পর্কে তথ্য পাওয়ার অনুরোধ করতে পারবেন না। এই ধরনের ট্যাব সোয়্যাপ করা হলে, একটি onTabReplaced ইভেন্ট ফায়ার করা হয় এবং এইসব API-এর মাধ্যমে সেগুলি অ্যাক্সেস করা যায়।

টাইমস্ট্যাম্প

এটি মনে রাখা গুরুত্বপূর্ণ যে, OS-এর আলাদা Chrome প্রসেস ম্যানেজ করার ক্ষেত্রে কিছু প্রযুক্তিগত সমস্যার কারণে ব্রাউজার এবং এক্সটেনশন প্রসেসের মধ্যে ঘড়ির সময় আলাদা হতে পারে। এর অর্থ হল, WebNavigation ইভেন্টের timeStamp প্রপার্টি timeStamp প্রপার্টি শুধুমাত্র অভ্যন্তরীণভাবে সামঞ্জস্যপূর্ণ হওয়ার গ্যারান্টি দেয়। একটি ইভেন্টের সাথে অন্য ইভেন্টের তুলনা করলে আপনি তাদের মধ্যে সঠিক অফসেট পাবেন, তবে এক্সটেনশনের মধ্যে বর্তমান সময়ের সাথে তুলনা করলে (যেমন, (new Date()).getTime() ব্যবহার করে) প্রত্যাশিত ফলাফল নাও পেতে পারেন।

ফ্রেম আইডি

ফ্রেম আইডি দিয়ে ট্যাবের মধ্যে থাকা ফ্রেম শনাক্ত করা যায়। প্রধান ফ্রেমের ফ্রেম আইডি সবসময় ০ হয়, চাইল্ড ফ্রেমের আইডি একটি পজিটিভ নম্বর হয়। কোনও ফ্রেমে ডকুমেন্ট তৈরি করা হলে, ডকুমেন্টের লাইফটাইম চলাকালীন তার ফ্রেম আইডি অপরিবর্তিত থাকে। Chrome 49 থেকে, এই আইডি ফ্রেমের লাইফটাইমের (একাধিক নেভিগেশন জুড়ে) জন্যও কনস্ট্যান্ট।

Chrome-এর মাল্টি-প্রসেস প্রকৃতির কারণে, কোনও ট্যাব ওয়েব পেজের সোর্স ও ডেস্টিনেশন রেন্ডার করার জন্য বিভিন্ন প্রসেস ব্যবহার করতে পারে। তাই, নতুন প্রসেসে নেভিগেশন হলে, নতুন নেভিগেশন সম্পূর্ণ না হওয়া পর্যন্ত (অর্থাৎ, নতুন মেন ফ্রেমের জন্য onCommitted ইভেন্ট পাঠানো না হওয়া পর্যন্ত) আপনি নতুন ও পুরনো, উভয় পেজ থেকেই ইভেন্ট পেতে পারেন। অন্যভাবে বলতে গেলে, একই frameId-এর সাথে একাধিক ওয়েবNavigation ইভেন্টের পেন্ডিং সিকোয়েন্স থাকতে পারে। processId কী-এর মাধ্যমে সিকোয়েন্স আলাদা করা যেতে পারে।

এছাড়াও মনে রাখবেন যে প্রভিশনাল লোডের সময় প্রসেসটি একাধিকবার পরিবর্তন করা হতে পারে। লোড অন্য সাইটে রিডাইরেক্ট করা হলে এটি ঘটে। এই ক্ষেত্রে, আপনি বারবার onBeforeNavigate এবং onErrorOccurred ইভেন্ট পাবেন, যতক্ষণ না আপনি চূড়ান্ত onCommitted ইভেন্ট পাচ্ছেন।

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

ট্রানজিশনের ধরন ও কোয়ালিফায়ার

webNavigation onCommitted ইভেন্টে transitionType এবং transitionQualifiers প্রপার্টি আছে। ট্রানজিশনের ধরন হল ইতিহাস API-তে ব্যবহার করা একই ধরনের ট্রানজিশন যা বর্ণনা করে যে কীভাবে ব্রাউজার এই নির্দিষ্ট URL-এ নেভিগেট করেছে। এছাড়াও, বেশ কিছু ট্রানজিশন কোয়ালিফায়ার ফেরত পাঠানো হতে পারে যা নেভিগেশনকে আরও ভালোভাবে সংজ্ঞায়িত করে।

নিম্নলিখিত ট্রানজিশন কোয়ালিফায়ার আছে:

ট্রানজিশন কোয়ালিফায়ারবিবরণ
"client_redirect"নেভিগেশনের সময় পৃষ্ঠায় জাভাস্ক্রিপ্ট বা মেটা রিফ্রেশ ট্যাগের কারণে এক বা একাধিক রিডাইরেক্ট হয়েছে।
"server_redirect"নেভিগেশনের সময় সার্ভার থেকে পাঠানো HTTP হেডারের কারণে এক বা একাধিক রিডাইরেক্ট হয়েছে।
"forward_back"ব্যবহারকারী নেভিগেশন শুরু করতে 'এগিয়ে যান' বা 'ফিরে যান' বোতাম ব্যবহার করেছেন।
"from_address_bar"ব্যবহারকারী অ্যাড্রেস বার (ওরফে Omnibox) থেকে নেভিগেশন শুরু করেছেন।

উদাহরণ

এই API ব্যবহার করে দেখতে, chrome-extension-samples রিপোজিটরি থেকে webNavigation API উদাহরণ ইনস্টল করুন।

ধরন

TransitionQualifier

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

Enum

"client_redirect"

"server_redirect"

"forward_back"

"from_address_bar"

TransitionType

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

নেভিগেশনের কারণ। ইতিহাস API-তে যেভাবে উল্লেখ করা হয়েছে, ঠিক সেইভাবেই ট্রানজিশনের ধরন ব্যবহার করা হয়। ইতিহাস API-তে যেভাবে উল্লেখ করা হয়েছে, এগুলি হল একই ধরনের ট্রানজিশন, শুধু "auto_toplevel"-এর জায়গায় "start_page" ব্যবহার করা হয়েছে (ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্য)।

Enum

"লিঙ্ক"

"টাইপ করা"

"auto_bookmark"

"auto_subframe"

"manual_subframe"

"তৈরি করা হয়েছে"

"start_page"

"form_submit"

"রিলোড করুন"

"কীওয়ার্ড"

"keyword_generated"

পদ্ধতি

getAllFrames()

browser.webNavigation.getAllFrames(
  details: object,
)
: Promise<object[] | undefined>

প্রদত্ত ট্যাবের সব ফ্রেমের তথ্য ফিরিয়ে আনে।

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

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

    অবজেক্ট

    যে ট্যাব থেকে সব ফ্রেম ফিরিয়ে আনতে হবে সেই ট্যাব সম্পর্কিত তথ্য।

    • tabId

      নম্বর

      ট্যাবের আইডি।

রিটার্ন

  • <object[] | undefined> প্রমিস

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

getFrame()

browser.webNavigation.getFrame(
  details: object,
)
: Promise<object | undefined>

প্রদত্ত ফ্রেম সম্পর্কে তথ্য ফিরিয়ে আনে। ফ্রেম বলতে কোনও ওয়েব পেজের <iframe> বা <frame> বোঝায় এবং এটি ট্যাব আইডি ও ফ্রেম আইডি দ্বারা শনাক্ত করা হয়।

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

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

    অবজেক্ট

    যে ফ্রেমের তথ্য রিট্রিভ করতে হবে সেই ফ্রেমের তথ্য।

    • documentId

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

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

      ডকুমেন্টের UUID। frameId এবং/অথবা tabId প্রদান করা হলে, প্রদত্ত ডকুমেন্ট আইডি দ্বারা পাওয়া ডকুমেন্টের সাথে মিলিয়ে সেগুলি যাচাই করা হবে।

    • frameId

      নম্বর ঐচ্ছিক

      প্রদত্ত ট্যাবে ফ্রেমের আইডি।

    • processId

      নম্বর ঐচ্ছিক

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

      ফ্রেমগুলি এখন তাদের ট্যাব আইডি এবং ফ্রেম আইডি দ্বারা অনন্যভাবে চিহ্নিত করা হয়; প্রসেস আইডির আর প্রয়োজন নেই এবং তাই উপেক্ষা করা হয়।

      এই ট্যাবের জন্য রেন্ডারার রান করে এমন প্রসেসের আইডি।

    • tabId

      নম্বর ঐচ্ছিক

      ফ্রেমটি যে ট্যাবে আছে সেটির আইডি।

রিটার্ন

  • <অবজেক্ট | অনির্ধারিত> প্রমিস

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

ইভেন্ট

onBeforeNavigate

browser.webNavigation.onBeforeNavigate.addListener(
  callback: function,
  filters?: object,
)

নেভিগেশন শুরু হওয়ার ঠিক আগে ফায়ার করা হয়।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

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

        ডকুমেন্টটি যে লাইফসাইকেলে রয়েছে।

      • frameId

        নম্বর

        0-এর অর্থ হল, ট্যাব কন্টেন্ট উইন্ডোতে নেভিগেশন হয়; পজিটিভ ভ্যালুর অর্থ হল, সাবফ্রেমে নেভিগেশন হয়। প্রদত্ত ট্যাব ও প্রসেসের জন্য ফ্রেম আইডি অনন্য হয়।

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

        যে ধরনের ফ্রেমে নেভিগেশন হয়েছে।

      • parentDocumentId

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

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

        এই ফ্রেমের মালিকানা থাকা পেরেন্ট ডকুমেন্টের UUID। অভিভাবক না থাকলে এটি সেট করা হয় না।

      • parentFrameId

        নম্বর

        পেরেন্ট ফ্রেমের আইডি অথবা এটি মূল ফ্রেম হলে -1।

      • processId

        নম্বর

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

        এই ইভেন্টের জন্য processId আর সেট করা নেই, কারণ যে প্রসেসটি ফলাফল ডকুমেন্ট রেন্ডার করবে তা onCommit না হওয়া পর্যন্ত জানা যায় না।

        -১-এর মান।

      • tabId

        নম্বর

        যে ট্যাবে নেভিগেশন হতে চলেছে সেটির আইডি।

      • timeStamp

        নম্বর

        ব্রাউজার যখন নেভিগেশন শুরু করতে চলেছে, সেই সময়, যুগ থেকে মিলিসেকেন্ডে।

      • URL

        স্ট্রিং

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onCommitted

browser.webNavigation.onCommitted.addListener(
  callback: function,
  filters?: object,
)

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

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • documentId

        স্ট্রিং

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

        লোড করা ডকুমেন্টের UUID।

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

        ডকুমেন্টটি যে লাইফসাইকেলে রয়েছে।

      • frameId

        নম্বর

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

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

        যে ধরনের ফ্রেমে নেভিগেশন হয়েছে।

      • parentDocumentId

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

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

        এই ফ্রেমের মালিকানা থাকা পেরেন্ট ডকুমেন্টের UUID। অভিভাবক না থাকলে এটি সেট করা হয় না।

      • parentFrameId

        নম্বর

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

        পেরেন্ট ফ্রেমের আইডি অথবা এটি মূল ফ্রেম হলে -1।

      • processId

        নম্বর

        এই ফ্রেমের জন্য রেন্ডারার রান করে এমন প্রসেসের আইডি।

      • tabId

        নম্বর

        যে ট্যাবে নেভিগেশন হয় সেটির আইডি।

      • timeStamp

        নম্বর

        নেভিগেশন সম্পূর্ণ হওয়ার সময়, ইপক থেকে মিলিসেকেন্ডে।

      • transitionQualifiers

        ট্রানজিশন কোয়ালিফায়ারের তালিকা।

      • transitionType

        নেভিগেশনের কারণ।

      • URL

        স্ট্রিং

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onCompleted

browser.webNavigation.onCompleted.addListener(
  callback: function,
  filters?: object,
)

ডকুমেন্ট এবং তার সাথে সম্পর্কিত রিসোর্স সম্পূর্ণভাবে লোড ও শুরু করা হলে এটি ফায়ার করা হয়।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • documentId

        স্ট্রিং

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

        লোড করা ডকুমেন্টের UUID।

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

        ডকুমেন্টটি যে লাইফসাইকেলে রয়েছে।

      • frameId

        নম্বর

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

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

        যে ধরনের ফ্রেমে নেভিগেশন হয়েছে।

      • parentDocumentId

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

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

        এই ফ্রেমের মালিকানা থাকা পেরেন্ট ডকুমেন্টের UUID। অভিভাবক না থাকলে এটি সেট করা হয় না।

      • parentFrameId

        নম্বর

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

        পেরেন্ট ফ্রেমের আইডি অথবা এটি মূল ফ্রেম হলে -1।

      • processId

        নম্বর

        এই ফ্রেমের জন্য রেন্ডারার রান করে এমন প্রসেসের আইডি।

      • tabId

        নম্বর

        যে ট্যাবে নেভিগেশন হয় সেটির আইডি।

      • timeStamp

        নম্বর

        ডকুমেন্ট লোড হওয়া শেষ হওয়ার সময়, যুগ থেকে মিলিসেকেন্ডে।

      • URL

        স্ট্রিং

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onCreatedNavigationTarget

browser.webNavigation.onCreatedNavigationTarget.addListener(
  callback: function,
  filters?: object,
)

নেভিগেশন হোস্ট করার জন্য নতুন উইন্ডো বা আগে থেকে থাকা উইন্ডোতে নতুন ট্যাব তৈরি করা হলে ফায়ার করা হয়।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • sourceFrameId

        নম্বর

        sourceTabId সহ ফ্রেমের আইডি, যেখানে নেভিগেশন ট্রিগার করা হয়েছে। ০ প্রধান ফ্রেমকে নির্দেশ করে।

      • sourceProcessId

        নম্বর

        প্রসেসের আইডি যা সোর্স ফ্রেমের জন্য রেন্ডারার চালায়।

      • sourceTabId

        নম্বর

        যে ট্যাবে নেভিগেশন ট্রিগার করা হয়েছে সেটির আইডি।

      • tabId

        নম্বর

        যে ট্যাবে URL খোলা হয়েছে সেটির আইডি

      • timeStamp

        নম্বর

        ব্রাউজার যখন নতুন ভিউ তৈরি করতে যাচ্ছিল, সেই সময়, যুগ থেকে মিলিসেকেন্ডে।

      • URL

        স্ট্রিং

        নতুন উইন্ডোতে URL খুলতে হবে।

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onDOMContentLoaded

browser.webNavigation.onDOMContentLoaded.addListener(
  callback: function,
  filters?: object,
)

পৃষ্ঠার DOM সম্পূর্ণভাবে তৈরি হয়ে গেলে ফায়ার করা হয়, তবে রেফারেন্স করা রিসোর্স লোড করা শেষ নাও হতে পারে।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • documentId

        স্ট্রিং

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

        লোড করা ডকুমেন্টের UUID।

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

        ডকুমেন্টটি যে লাইফসাইকেলে রয়েছে।

      • frameId

        নম্বর

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

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

        যে ধরনের ফ্রেমে নেভিগেশন হয়েছে।

      • parentDocumentId

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

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

        এই ফ্রেমের মালিকানা থাকা পেরেন্ট ডকুমেন্টের UUID। অভিভাবক না থাকলে এটি সেট করা হয় না।

      • parentFrameId

        নম্বর

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

        পেরেন্ট ফ্রেমের আইডি অথবা এটি মূল ফ্রেম হলে -1।

      • processId

        নম্বর

        এই ফ্রেমের জন্য রেন্ডারার রান করে এমন প্রসেসের আইডি।

      • tabId

        নম্বর

        যে ট্যাবে নেভিগেশন হয় সেটির আইডি।

      • timeStamp

        নম্বর

        পৃষ্ঠার DOM সম্পূর্ণভাবে তৈরি হওয়ার সময়, যুগ থেকে মিলিসেকেন্ডে।

      • URL

        স্ট্রিং

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onErrorOccurred

browser.webNavigation.onErrorOccurred.addListener(
  callback: function,
  filters?: object,
)

কোনও সমস্যা হলে এবং নেভিগেশন বন্ধ হয়ে গেলে ফায়ার করা হয়। নেটওয়ার্কের সমস্যা হলে অথবা ব্যবহারকারী নেভিগেশন বন্ধ করে দিলে এটি হতে পারে।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • documentId

        স্ট্রিং

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

        লোড করা ডকুমেন্টের UUID।

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

        ডকুমেন্টটি যে লাইফসাইকেলে রয়েছে।

      • সমস্যা

        স্ট্রিং

        সমস্যার বিবরণ।

      • frameId

        নম্বর

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

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

        যে ধরনের ফ্রেমে নেভিগেশন হয়েছে।

      • parentDocumentId

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

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

        এই ফ্রেমের মালিকানা থাকা পেরেন্ট ডকুমেন্টের UUID। অভিভাবক না থাকলে এটি সেট করা হয় না।

      • parentFrameId

        নম্বর

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

        পেরেন্ট ফ্রেমের আইডি অথবা এটি মূল ফ্রেম হলে -1।

      • processId

        নম্বর

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

        এই ইভেন্টের জন্য processId আর সেট করা নেই।

        -১-এর মান।

      • tabId

        নম্বর

        যে ট্যাবে নেভিগেশন হয় সেটির আইডি।

      • timeStamp

        নম্বর

        যে সময়ে সমস্যা হয়েছে, তা ইপক থেকে মিলিসেকেন্ডে দেখানো হয়।

      • URL

        স্ট্রিং

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onHistoryStateUpdated

browser.webNavigation.onHistoryStateUpdated.addListener(
  callback: function,
  filters?: object,
)

ফ্রেমের ইতিহাস নতুন URL-এ আপডেট করা হলে ফায়ার করা হয়। সেই ফ্রেমের জন্য ভবিষ্যতের সব ইভেন্ট আপডেট করা URL ব্যবহার করবে।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • documentId

        স্ট্রিং

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

        লোড করা ডকুমেন্টের UUID।

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

        ডকুমেন্টটি যে লাইফসাইকেলে রয়েছে।

      • frameId

        নম্বর

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

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

        যে ধরনের ফ্রেমে নেভিগেশন হয়েছে।

      • parentDocumentId

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

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

        এই ফ্রেমের মালিকানা থাকা পেরেন্ট ডকুমেন্টের UUID। অভিভাবক না থাকলে এটি সেট করা হয় না।

      • parentFrameId

        নম্বর

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

        পেরেন্ট ফ্রেমের আইডি অথবা এটি মূল ফ্রেম হলে -1।

      • processId

        নম্বর

        এই ফ্রেমের জন্য রেন্ডারার রান করে এমন প্রসেসের আইডি।

      • tabId

        নম্বর

        যে ট্যাবে নেভিগেশন হয় সেটির আইডি।

      • timeStamp

        নম্বর

        নেভিগেশন সম্পূর্ণ হওয়ার সময়, ইপক থেকে মিলিসেকেন্ডে।

      • transitionQualifiers

        ট্রানজিশন কোয়ালিফায়ারের তালিকা।

      • transitionType

        নেভিগেশনের কারণ।

      • URL

        স্ট্রিং

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onReferenceFragmentUpdated

browser.webNavigation.onReferenceFragmentUpdated.addListener(
  callback: function,
  filters?: object,
)

ফ্রেমের রেফারেন্স ফ্র্যাগমেন্ট আপডেট করা হলে ফায়ার করা হয়। সেই ফ্রেমের জন্য ভবিষ্যতের সব ইভেন্ট আপডেট করা URL ব্যবহার করবে।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • documentId

        স্ট্রিং

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

        লোড করা ডকুমেন্টের UUID।

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

        ডকুমেন্টটি যে লাইফসাইকেলে রয়েছে।

      • frameId

        নম্বর

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

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

        যে ধরনের ফ্রেমে নেভিগেশন হয়েছে।

      • parentDocumentId

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

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

        এই ফ্রেমের মালিকানা থাকা পেরেন্ট ডকুমেন্টের UUID। অভিভাবক না থাকলে এটি সেট করা হয় না।

      • parentFrameId

        নম্বর

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

        পেরেন্ট ফ্রেমের আইডি অথবা এটি মূল ফ্রেম হলে -1।

      • processId

        নম্বর

        এই ফ্রেমের জন্য রেন্ডারার রান করে এমন প্রসেসের আইডি।

      • tabId

        নম্বর

        যে ট্যাবে নেভিগেশন হয় সেটির আইডি।

      • timeStamp

        নম্বর

        নেভিগেশন সম্পূর্ণ হওয়ার সময়, ইপক থেকে মিলিসেকেন্ডে।

      • transitionQualifiers

        ট্রানজিশন কোয়ালিফায়ারের তালিকা।

      • transitionType

        নেভিগেশনের কারণ।

      • URL

        স্ট্রিং

  • ফিল্টার

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

    • যে URL-এ নেভিগেট করা হচ্ছে সেটিকে অবশ্যই শর্তাবলী পূরণ করতে হবে।

onTabReplaced

browser.webNavigation.onTabReplaced.addListener(
  callback: function,
)

ট্যাবের কন্টেন্ট অন্য (সাধারণত আগে থেকে রেন্ডার করা) ট্যাব দিয়ে পরিবর্তন করা হলে ফায়ার করা হয়।

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

  • কলব্যাক

    ফাংশন

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

    (details: object) => void

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

      অবজেক্ট

      • replacedTabId

        নম্বর

        যে ট্যাবটি পরিবর্তন করা হয়েছে সেটির আইডি।

      • tabId

        নম্বর

        পুরনো ট্যাবের পরিবর্তে যে ট্যাবটি এসেছে সেটির আইডি।

      • timeStamp

        নম্বর

        যে সময়ে রিপ্লেসমেন্ট হয়েছে, তা যুগ থেকে মিলিসেকেন্ডে।