ਐਕਸਟੈਂਸ਼ਨ ਦੇ ਸਟਾਰਟਅੱਪ ਇਵੈਂਟਾਂ 'ਤੇ Chrome ਪ੍ਰੌਕਸੀ ਲਾਗੂ ਕਰੋ
ਇਨਿਸ਼ੀਅਲਾਈਜ਼ੇਸ਼ਨ ਨੂੰ ਨਵੀਂ ਬ੍ਰਾਊਜ਼ਰ ਵਿੰਡੋ ਨਾਲ ਜੋੜਨ ਦੀ ਬਜਾਏ Manifest V3 ਪ੍ਰੌਕਸੀ ਐਕਸਟੈਂਸ਼ਨ ਲਈ ਰਨਟਾਈਮ ਸਟਾਰਟਅੱਪ ਅਤੇ ਇੰਸਟਾਲੇਸ਼ਨ ਹੈਂਡਲਰ ਰਜਿਸਟਰ ਕਰੋ।
ਜਦੋਂ ਉਹ ਇਵੈਂਟ ਚੁਣੀ ਪ੍ਰੌਕਸੀ ਲਾਗੂ ਕਰਨੇ ਹੋਣ, ਤਾਂ Manifest V3 ਸੇਵਾ ਵਰਕਰ ਦੇ ਸਭ ਤੋਂ ਉੱਪਰਲੇ ਪੱਧਰ 'ਤੇ onStartup ਅਤੇ onInstalled ਨੂੰ ਸਿੰਕ੍ਰੋਨਸ ਰੂਪ ਵਿੱਚ ਰਜਿਸਟਰ ਕਰੋ। ਜਾਣ-ਬੁੱਝ ਕੇ ਇੱਕ ਹੀ ਰੂਟ 'ਤੇ ਤੈਅ ਐਕਸਟੈਂਸ਼ਨ ਲਈ:
function applyProxy() {
chrome.proxy.settings.set({
value: {
mode: 'fixed_servers',
rules: {
singleProxy: {
scheme: 'http',
host: 'proxy.example',
port: 8080,
},
},
},
scope: 'regular',
}, () => {
if (chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message);
}
});
}
chrome.runtime.onStartup.addListener(applyProxy);
chrome.runtime.onInstalled.addListener(applyProxy);manifest ਨੂੰ ਪ੍ਰੌਕਸੀ ਇਜਾਜ਼ਤ ਐਲਾਨਣੀ ਚਾਹੀਦੀ ਹੈ ਅਤੇ ਇਸ ਬੈਕਗ੍ਰਾਊਂਡ ਵਰਕਰ ਦਾ ਨਾਮ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ। ਪ੍ਰੌਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਬ੍ਰਾਊਜ਼ਿੰਗ ਰੂਟ ਲਈ, ਐਂਡਪੌਇੰਟ ਨੂੰ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਵਿੱਚੋਂ ਕਿਸੇ ਉਮੀਦਵਾਰ ਨਾਲ ਬਦਲੋ ਅਤੇ ਪੋਰਟ ਨੂੰ ਪੂਰਨ ਅੰਕ ਰੱਖੋ।
onStartup ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਐਕਸਟੈਂਸ਼ਨ ਇੰਸਟਾਲ ਹੋਵੇ ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਸ਼ੁਰੂ ਹੋਵੇ। onInstalled ਵਿੱਚ ਅਪਡੇਟ ਵੀ ਸ਼ਾਮਲ ਹਨ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਅਨਪੈਕਡ ਐਕਸਟੈਂਸ਼ਨ ਨੂੰ ਦੁਬਾਰਾ ਲੋਡ ਕਰਨਾ ਵੀ ਅਪਡੇਟ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ। ਵਿੰਡੋ ਬਣਨ ਦਾ ਇਵੈਂਟ ਹਰ ਵਿੰਡੋ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਹੀ ਸੈਸ਼ਨ ਵਿੱਚ ਕਈ ਵਾਰ ਹੋ ਸਕਦਾ ਹੈ।
ਜੇ ਐਕਸਟੈਂਸ਼ਨ ਵਿੱਚ ਸੰਭਾਲੇ ਪ੍ਰੋਫਾਈਲ ਜਾਂ ਬੰਦ ਕਰਨ ਦਾ ਸਵਿੱਚ ਹੈ, ਤਾਂ ਹਰ ਅਪਡੇਟ 'ਤੇ ਹਾਰਡਕੋਡਡ ਡਿਫਾਲਟ ਦੁਬਾਰਾ ਸੈੱਟ ਕਰਨ ਦੀ ਬਜਾਏ ਹੈਂਡਲਰ ਨੂੰ ਉਹ ਚੋਣ ਲੋਡ ਕਰਕੇ ਲਾਗੂ ਕਰਨ ਦਿਓ। ਲਿਸਨਰ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਉੱਪਰਲੇ ਪੱਧਰ 'ਤੇ ਹੀ ਰਹਿੰਦੀ ਹੈ; ਜਦੋਂ Chrome ਹੈਂਡਲਰ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ਤਾਂ ਅਸਿੰਕ੍ਰੋਨਸ ਕੰਮ ਸ਼ੁਰੂ ਹੋ ਸਕਦਾ ਹੈ।
ਵਿਕਾਸ ਦੌਰਾਨ ਇੰਸਟਾਲੇਸ਼ਨ ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਸਟਾਰਟਅੱਪ ਨੂੰ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਪਰਖੋ, ਹਰੇਕ ਲਈ ਕਨਫਿਗਰੇਸ਼ਨ ਦਾ ਨਤੀਜਾ ਜਾਂਚਦਿਆਂ। ਇਹ ਦੋ ਇਨਿਸ਼ੀਅਲਾਈਜ਼ੇਸ਼ਨ ਰਾਹ ਹਨ, ਦੂਜੀ ਵਿੰਡੋ ਖੋਲ੍ਹ ਕੇ ਮਿਲਣ ਵਾਲਾ ਸਬੂਤ ਨਹੀਂ।