Firefox-ന്റെ എക്സ്റ്റൻഷൻ API-ക്ക് ഒരു അഭ്യർത്ഥനയ്ക്ക് പ്രോക്സി തീരുമാനം എടുക്കാം. അഭ്യർത്ഥനയ്ക്ക് സാധുവായ ടാബ് ആട്രിബ്യൂഷൻ ഉണ്ടെങ്കിൽ, ഉപയോക്താവ് തിരഞ്ഞെടുത്ത ടാബുമായി അതിന്റെ ടാബ് ID എക്സ്റ്റൻഷന് താരതമ്യം ചെയ്യാം.

നിലവിലുള്ള ഒരു Firefox എക്സ്റ്റൻഷന്റെ ബാക്ക്ഗ്രൗണ്ട് സ്ക്രിപ്റ്റിന് റൂട്ടിംഗ് ഭാഗം ഇങ്ങനെയാകാം:

browser.proxy.onRequest.addListener(details => {
  if (details.tabId === selectedTabId) {
    return {type: 'http', host: 'proxy.example', port: 8080};
  }
  return {type: 'direct'};
}, {urls: ['<all_urls>']});

എക്സ്റ്റൻഷൻ സ്വന്തം ഉപയോക്തൃ-തിരഞ്ഞെടുപ്പ് യുക്തിയിൽ നിന്ന് selectedTabId നൽകുന്നു. അനുവദിച്ച പൊതു-ടാബ് പരിശോധനയ്ക്കായി അതിന്റെ HTTP ഹോസ്റ്റും പൂർണ്ണസംഖ്യ പോർട്ടും HTTP പ്രോക്സി പട്ടികയിൽ നിന്ന് വരാം. പ്രോക്സി അനുമതിയും ഫിൽട്ടർ ചെയ്ത URL-കൾ ഉൾക്കൊള്ളുന്ന ഹോസ്റ്റ് അനുമതികളും ആവശ്യമാണ്.

PAC സ്ക്രിപ്റ്റിൽ നിന്ന് ഇത് വ്യത്യസ്തമാണ്; അതിന്റെ സ്റ്റാൻഡേർഡ് URL-ഉം ഹോസ്റ്റും അടിസ്ഥാനമാക്കിയുള്ള തീരുമാനം ബ്രൗസർ ടാബ് തിരിച്ചറിയുന്നില്ല. മറ്റൊരു ടാബ് ലോഡ് ചെയ്യുമ്പോൾ Firefox-ന്റെ ആഗോള മാനുവൽ പ്രോക്സി മാറ്റുന്നതിൽ നിന്നും ഇത് വ്യത്യസ്തമാണ്.

ബ്രൗസറിന്റെ അടിസ്ഥാന കോൺഫിഗറേഷൻ കണക്കിലെടുക്കുക: ProxyInfo-യിലെ direct മൂല്യം ഉപയോക്താവ് സജ്ജീകരിച്ച പ്രോക്സിയെ അസാധുവാക്കുന്നില്ല. പൊരുത്തപ്പെടാത്ത എല്ലാ അഭ്യർത്ഥനകളും നേരിട്ട് പോകുന്നു എന്ന് വാഗ്ദാനം ചെയ്യുന്നതിന് പകരം അടിസ്ഥാന നയവും ഫാൾബാക്ക് സ്വഭാവവും പരിശോധിക്കുക.

ചില ട്രാഫിക്കിന് വിശ്വസനീയമായ ടാബ് വിവരങ്ങളില്ല, കൂടാതെ HTTP/3 പ്രോക്സി കണക്ഷനുകൾക്ക് Mozilla കൃത്യമല്ലാത്ത ആട്രിബ്യൂഷൻ രേഖപ്പെടുത്തുന്നു. ഇത് അഭ്യർത്ഥന റൂട്ടിംഗ് കാണിക്കുന്നു, ബ്രൗസിംഗ് ജോലിയുമായി ബന്ധപ്പെട്ട ഓരോ കണക്ഷനും ടാബ് അനുസരിച്ച് വേർതിരിക്കപ്പെടുന്നു എന്ന ഉറപ്പല്ല. എക്സ്റ്റൻഷന് സവിശേഷമായ കണ്ടെയ്നർ റൂട്ടിംഗ് വിലയിരുത്തേണ്ട മറ്റൊരു മാതൃകയാണ്.

അനുബന്ധ ലേഖനങ്ങൾ