तीसरे पक्ष के iframe में, Web Share API के लिए नई ज़रूरी शर्तें

बेहतर निजता और सुरक्षा के लिए, अब तीसरे पक्ष के iframe में Web Share API कॉल की अनुमति होनी चाहिए.

थॉमस स्टाइनर
थॉमस स्टाइनर

इस लेख में, Web Share API में हुए संभावित रूप से नुकसान पहुंचा सकने वाले बदलाव के बारे में बताया गया है. यह बदलाव Firefox में पहले से ही उपलब्ध है. यह Chrome के वर्शन 110 पर उपलब्ध होगा. साथ ही, उम्मीद की जा रही है कि यह जल्द ही Safari में उपलब्ध होगी.

Web Share API से आपको टेक्स्ट, यूआरएल या फ़ाइलें शेयर करने की सुविधा मिलती है. अपने सबसे आसान रूप में, शेयर कोड कुछ ऐसा दिखता है:

try {
  await navigator.share({
    title: 'Title',
    text: 'Text',
    url: location.href,
  });
} catch (err) {
  console.error(`${err.name}: ${err.message}`);
}

अगर शेयर करने की कार्रवाई किसी तीसरे पक्ष के iframe में होनी ज़रूरी है, तो हाल ही में किए गए खास बदलाव के लिए आपको साफ़ तौर पर कार्रवाई की अनुमति देनी होगी. ऐसा करने के लिए, web-share वैल्यू वाले <iframe> टैग में allow एट्रिब्यूट जोड़ें. इससे ब्राउज़र को पता चलता है कि एम्बेड की गई साइट, एम्बेड की गई तीसरे पक्ष के iframe को शेयर करने की कार्रवाई को ट्रिगर करने की अनुमति देती है.

<!DOCTYPE html>
<html lang="en">
  <body>
    <h1>Web Share in third-party iframes</h1>
    <!-- The embedding page is hosted on https://example.com/index.html. -->
    <iframe allow="web-share" src="https://third-party.example.com/iframe.html"></iframe>
  </body>
</html>

इसे Glitch के डेमो में इस्तेमाल करके देखा जा सकता है और सोर्स कोड देखा जा सकता है. यह एट्रिब्यूट न देने पर, आपको NotAllowedError के साथ मैसेज Failed to execute 'share' on 'Navigator': Permission denied मिलेगा. इस सीमा पर सभी ब्राउज़र वेंडर ने उपयोगकर्ताओं की निजता और सुरक्षा को बेहतर बनाने और बुरे मकसद से काम करने वाले लोगों (उदाहरण के लिए, गुमराह करने वाले विज्ञापन) को अनचाहे शेयर वाली कार्रवाइयां ट्रिगर करने से रोकने के लिए सहमति दी थी.