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