ಪ್ರೊಫೈಲ್ ಬದಲಾವಣೆಗಾಗಿ ಒಂದು Chrome MV3 ಪ್ರಾಕ್ಸಿ ದೃಢೀಕರಣ ಶ್ರೋತೃವನ್ನು ನೋಂದಾಯಿಸಿ
Manifest V3 ದೃಢೀಕರಣ ಶ್ರೋತೃವನ್ನು ಸಮಕಾಲೀನವಾಗಿ ನೋಂದಾಯಿಸಿ ಮತ್ತು ಈವೆಂಟ್ ಕಾಲ್ಬ್ಯಾಕ್ ಒಳಗೆ ಪ್ರಸ್ತುತ ಪ್ರಾಕ್ಸಿ ಖಾತೆಯನ್ನು ಓದಿ.
ಪ್ರಾಕ್ಸಿ ಪ್ರೊಫೈಲ್ಗಳನ್ನು ಬದಲಿಸುವುದು ಆಯ್ಕೆ ಮಾಡಿದ ಖಾತೆಯನ್ನು ಬದಲಿಸಬೇಕು, ಇನ್ನೊಂದು onAuthRequired ಶ್ರೋತೃವನ್ನು ಸೇರಿಸಬಾರದು. ಇಲ್ಲದಿದ್ದರೆ ಹಳೆಯ closures ಹಿಂದಿನ ಆಯ್ಕೆಯ ಖಾತೆಯೊಂದಿಗೆ ಉತ್ತರಿಸುವುದನ್ನು ಮುಂದುವರಿಸಬಹುದು.
ಸೇವಾ ಕೆಲಸಗಾರನ ಮೇಲ್ಮಟ್ಟದಲ್ಲಿ ಒಂದು ಹೆಸರಿನ ಶ್ರೋತೃವನ್ನು ನೋಂದಾಯಿಸಿ. ಈವೆಂಟ್ ಬಂದಾಗ ಪ್ರಸ್ತುತ ಖಾತೆಯನ್ನು ಓದಿ:
function answerProxyChallenge(details, reply) {
if (!details.isProxy) {
reply({});
return;
}
chrome.storage.session.get('selectedProxy').then(({selectedProxy: p}) => {
if (!p || details.challenger.host !== p.host ||
details.challenger.port !== p.port) {
reply({});
return;
}
reply({authCredentials: {username: p.username, password: p.password}});
}).catch(() => reply({cancel: true}));
}
chrome.webRequest.onAuthRequired.addListener(
answerProxyChallenge,
{urls: ['<all_urls>']},
['asyncBlocking'],
);ಈ ತುಣುಕು ಎಕ್ಸ್ಟೆನ್ಷನ್ ಈಗಾಗಲೇ ಆಯ್ಕೆ ಮಾಡಿದ HTTP ಪ್ರಾಕ್ಸಿಯನ್ನು selectedProxy ಅಡಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ ಎಂದು ಊಹಿಸುತ್ತದೆ, ಸಂಖ್ಯಾತ್ಮಕ ಪೋರ್ಟ್ ಮತ್ತು ಅದರ ಉದ್ದೇಶಿತ ಖಾತೆಯೊಂದಿಗೆ. ಮ್ಯಾನಿಫೆಸ್ಟ್ಗೆ webRequest, webRequestAuthProvider, storage ಮತ್ತು ಅಗತ್ಯವಿರುವ ಹೋಸ್ಟ್ ಅನುಮತಿಗಳು ಬೇಕು. ಪ್ರಾಕ್ಸಿ ಆಯ್ಕೆಗೆ ಸ್ವತಃ proxy ಅನುಮತಿ ಬೇಕು.
ನೋಂದಣಿ ಸಮಕಾಲೀನವಾಗಿ ನಡೆಯುತ್ತದೆ. Chrome ಗೆ ಕಳುಹಿಸಲು ಸ್ಥಾಪಿತ ಶ್ರೋತೃ ಇದ್ದ ನಂತರ ಕಾಲ್ಬ್ಯಾಕ್ ಒಳಗೆ ಸಂಗ್ರಹ ಓದಲಾಗುತ್ತದೆ. ಆರಂಭಿಕ storage promise ಬಗೆಹರಿದ ನಂತರ ಮಾತ್ರ ನೋಂದಾಯಿಸುವುದು ಎಚ್ಚರಗೊಳ್ಳುವ ಅಂತರವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
ಬಿಡುಗಡೆಗೆ ಮೊದಲು ನಿರಾಕರಣೆ ಮಿತಿಯನ್ನು ಸೇರಿಸಿ
ತುಣುಕು ನೋಂದಣಿ ಮತ್ತು ಖಾತೆ ಆಯ್ಕೆಯನ್ನು ತೋರಿಸುತ್ತದೆ. ನಿರಾಕರಿಸಿದ ಪಾಸ್ವರ್ಡ್ ಅನಂತವಾಗಿ ಸಲ್ಲಿಸದಂತೆ ಪ್ರತಿ ವಿನಂತಿಗೆ ಸೀಮಿತ ಮರುಪ್ರಯತ್ನ ದಾಖಲೆಯನ್ನು ಸೇರಿಸಿ. ಪೂರ್ಣಗೊಂಡಾಗ ಅಥವಾ ವಿಫಲವಾದಾಗ ಆ ದಾಖಲೆಯನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ. ಕೆಲಸಗಾರ ನಿಲ್ಲಿಸಿದಾಗ worker globals ಮಾಯವಾಗಬಹುದು, ಆದ್ದರಿಂದ ಎಚ್ಚರಗೊಳ್ಳುವಿಕೆಗಳ ನಡುವೆ ಬೇಕಾದ ಸ್ಥಿತಿಯನ್ನು ಸೂಕ್ತವಾದ ಎಕ್ಸ್ಟೆನ್ಷನ್ ಸಂಗ್ರಹ ಪ್ರದೇಶದಲ್ಲಿ ಇರಿಸಿ.
storage.session ಬ್ರೌಸರ್ ಅಧಿವೇಶನದೊಳಗೆ ಕೆಲಸಗಾರ ಮರುಪ್ರಾರಂಭಗಳನ್ನು ಉಳಿದುಕೊಳ್ಳುತ್ತದೆ; ಇದು ಬ್ರೌಸರ್ ಮರುಪ್ರಾರಂಭಗಳ ನಡುವೆ ಶಾಶ್ವತ ಖಾತೆ ಸಂಗ್ರಹವಲ್ಲ. ಆಯ್ಕೆ ಮಾಡಿದ ಖಾತೆ ಲಭ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಎಕ್ಸ್ಟೆನ್ಷನ್ ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ.
isProxy ಮತ್ತು challenger ಪರಿಶೀಲನೆಗಳು ಸಂಬಂಧವಿಲ್ಲದ ವೆಬ್ಸೈಟ್ ಸವಾಲು ಈ ಖಾತೆಯನ್ನು ಪಡೆಯದಂತೆ ತಡೆಯುತ್ತವೆ. ಬ್ರೌಸರ್ ಈವೆಂಟ್ ಅನ್ನು ಎಂದಿಗೂ ಕಳುಹಿಸದಿದ್ದರೆ, ಶ್ರೋತೃ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆ ಮಾತ್ರ ಅದನ್ನು ಉತ್ಪಾದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ: ನಿಜವಾದ ವಿನಂತಿ, ಅನುಮತಿಗಳು ಮತ್ತು ಬ್ರೌಸರ್ ನಡವಳಿಕೆಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಪರಿಶೀಲಿಸಿ.