Chrome 129 का बीटा वर्शन

अगर कुछ और नहीं बताया गया है, तो यहां बताए गए बदलाव, Android, ChromeOS, Linux, macOS, और Windows के लिए, Chrome के बीटा चैनल की नई रिलीज़ पर लागू होंगे. यहां दी गई सुविधाओं के बारे में ज़्यादा जानने के लिए, दिए गए लिंक पर जाएं या ChromeStatus.com पर दी गई सूची देखें. Chrome 129 का बीटा वर्शन 21 अगस्त, 2024 से उपलब्ध है. डेस्कटॉप के लिए Google.com पर या Android के लिए Google Play Store पर जाकर, नया वर्शन डाउनलोड किया जा सकता है.

सीएसएस

इस रिलीज़ में, सीएसएस की दो नई सुविधाएं जोड़ी गई हैं और तीन सुविधाओं को अपडेट किया गया है.

सीएसएस interpolate-size property और calc-size() फ़ंक्शन

सीएसएस interpolate-size प्रॉपर्टी की मदद से, किसी पेज को auto, min-content, और fit-content जैसे सीएसएस इंट्रिन्सिक साइज़िंग कीवर्ड के ऐनिमेशन और ट्रांज़िशन के लिए ऑप्ट-इन किया जा सकता है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब उन कीवर्ड के लिए ऐनिमेशन उपलब्ध हो.

सीएसएस calc-size() फ़ंक्शन, calc() जैसा ही एक सीएसएस फ़ंक्शन है. हालांकि, यह साइज़ करने वाले सिर्फ़ एक कीवर्ड पर काम करता है. फ़िलहाल, साइज़ के लिए इस्तेमाल किए जा सकने वाले कीवर्ड auto, min-content, max-content, और fit-content हैं. साइज़ से जुड़े अन्य कीवर्ड, आने वाले समय में काम कर सकते हैं. इनमें stretch (फ़िलहाल, -webkit-fill-available के तौर पर काम करता है) और contain शामिल हैं. इस फ़ंक्शन का इस्तेमाल, interpolate-size प्रॉपर्टी की अनुमति वाले ऐनिमेशन के बीच में वैल्यू दिखाने के लिए किया जाता है.

सीएसएस ऐंकर पोज़िशनिंग inset-area का नाम बदलकर position-area करें

CSSWG ने इस प्रॉपर्टी का नाम बदलने का फ़ैसला लिया है और इसे inset-area से position-area कर दिया है. Chrome 129 में position-area है. आने वाले समय में रिलीज़ होने वाले वर्शन में, inset-area नाम हटा दिया जाएगा.

सीएसएस ऐंकर पोज़िशनिंग: अनरैप किया गया inset-area()

inset-area() फ़ंक्शन को सीधे position-try-fallbacks में इनसेट-एरिया वैल्यू से बदलता है. उदाहरण के लिए, position-try-fallbacks:inset-area(top) के बजाय position-try-fallbacks:top का इस्तेमाल करें.

मिरर edgeMode का इस्तेमाल करने के लिए, सीएसएस बैकड्रॉप-फ़िल्टर को अपडेट करना

backdrop-filter सीएसएस प्रॉपर्टी, किसी एलिमेंट के बैकड्रॉप पर एक या एक से ज़्यादा फ़िल्टर लागू करती है. बैकग्राउंड, एलिमेंट के पीछे मौजूद पेंट किया गया कॉन्टेंट होता है. ब्लर एक सामान्य फ़िल्टर है. इसकी मदद से डिज़ाइनर, "फ़्रोस्टेड ग्लास" डायलॉग बॉक्स, वीडियो ओवरले, पारदर्शी नेविगेशन हेडर वगैरह बना सकते हैं.

शुरुआत में, इसे सामान्य ब्लर की तरह ही लागू किया गया था. हालांकि, एलिमेंट के किनारों से परे सैंपलिंग करने से, किनारों के रंगों को ब्लर में शामिल किया जा सकता था. बैकग्राउंड के किनारों के पिक्सल को डुप्लीकेट करके, बैकग्राउंड के किनारों के बाहर के पिक्सल को सैंपल करने के लिए, स्पेसिफ़िकेशन में बदलाव किया गया. हालांकि, इससे बैकग्राउंड के किनारे पर पहुंचने पर कॉन्टेंट बहुत ज़्यादा फ़्लिकर करता है. स्पेसिफ़िकेशन में किए गए नए बदलाव के मुताबिक, जब किनारे से ज़्यादा सैंपलिंग की जाती है, तो बैकग्राउंड को दिखाया जाता है. इससे किनारों पर नए रंगों को धीरे-धीरे पेश किया जा सकता है. ऐसा करने पर, रंग की एक लाइन पर ज़्यादा फ़ोकस नहीं किया जाता.

वेब एपीआई

WebRTC डेटा चैनलों में ब्लॉब की सुविधा

RTCDataChannel.send(Blob) लागू करता है. साथ ही, onMessage इवेंट को अब binaryType एट्रिब्यूट का इस्तेमाल करके, Blob टाइप का डेटा मिल सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है.

स्ट्रिंग और ArrayBuffer भेजने के साथ-साथ, अब Blob भेजने का विकल्प भी चुना जा सकता है. हालांकि, इसके लिए ज़रूरी है कि इसका साइज़, SCTP ट्रांसपोर्ट maxMessageSize से कम हो. इस बारे में WebRTC स्पेसिफ़िकेशन में बताया गया है.

binaryType एट्रिब्यूट को "blob" पर सेट करने पर, onMessage इवेंट डेटा एट्रिब्यूट का टाइप, फ़िलहाल इस्तेमाल किए जा रहे ArrayBuffer के बजाय Blob होगा.

Compute Pressure WebDriver एक्सटेंशन के निर्देश

वर्चुअल प्रेशर सोर्स के लिए, प्रेशर सोर्स के सैंपल बनाने, हटाने, और अपडेट करने के लिए WebDriver कमांड दिखाता है. ऐसे दबाव के सोर्स जो डिवाइस के हार्डवेयर या ऑपरेटिंग सिस्टम के साथ काम करने पर निर्भर नहीं होते. साथ ही, इनका इस्तेमाल टेस्टिंग के लिए किया जा सकता है.

Intl.DurationFormat

इसमें, समय को फ़ॉर्मैट करने का तरीका बताया गया है. उदाहरण के लिए, "1 घंटा 40 मिनट 30 सेकंड". यह कई भाषाओं में काम करता है.

Private Aggregation API: क्लाइंट-साइड योगदान को मर्ज करना

एग्रीगेट की जा सकने वाली रिपोर्ट के एन्क्रिप्ट किए गए पेलोड में एम्बेड करने से पहले, हिस्टोग्राम के योगदान को एक ही बकेट और फ़िल्टरिंग आईडी के साथ मर्ज करने के लिए, Private Aggregation API में बदलाव करता है.

निजी एग्रीगेशन की सुविधा, एग्रीगेट की जा सकने वाली किसी एक रिपोर्ट में एम्बेड किए जा सकने वाले योगदान की संख्या पर पाबंदी लगाती है. साथ ही, अतिरिक्त योगदान को हटा दिया जाता है. जहां भी संभव हो, योगदान को मर्ज करके, हम तय सीमा से ज़्यादा फ़ायदा पा सकते हैं. ध्यान दें कि अतिरिक्त योगदान को हटाने के बाद, इस तरह के योगदान को मर्ज करने से, आखिरी आउटपुट पर कोई असर नहीं पड़ेगा. उदाहरण के लिए, खास जानकारी वाली रिपोर्ट.

scheduler.yield()

ब्राउज़र को कंट्रोल करने का तरीका उपलब्ध कराता है. इसका इस्तेमाल, लंबे टास्क को अलग-अलग हिस्सों में बांटने के लिए किया जा सकता है. scheduler.yield() से मिले प्रॉमिस का इंतज़ार करने पर, मौजूदा टास्क पूरा हो जाता है और ब्राउज़र में नया टास्क शुरू हो जाता है. इसका इस्तेमाल, लंबे टास्क की वजह से जवाब मिलने में लगने वाले समय से जुड़ी समस्याओं को ठीक करने के लिए किया जा सकता है. मौजूदा विकल्पों की परफ़ॉर्मेंस से जुड़ी समस्याओं को कम करने के लिए, जारी रखने की सुविधा को प्राथमिकता दी जाती है.

Web Authentication API: JSON को सीरियलाइज़ करने के तरीके

WebAuthn PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON(), और parseRequestOptionsFromJSON() तरीकों की मदद से, डेवलपर किसी WebAuthn रिस्पॉन्स को JSON ऑब्जेक्ट में सीरियलाइज़ कर सकते हैं. इसके अलावा, वे किसी WebAuthn अनुरोध ऑब्जेक्ट को उसके JSON रीप्रज़ेंटेशन से डीसीरियलाइज़ भी कर सकते हैं.

WebGPU की बेहतर रेंज (एचडीआर) की सुविधा

WebGPU कैनवस कॉन्फ़िगरेशन में टोन मैपिंग पैरामीटर जोड़ता है. साथ ही, डिफ़ॉल्ट तौर पर standard (कॉन्टेंट को डिसप्ले की SDR रेंज तक सीमित करने का मौजूदा तरीका) और नए तरीके के तौर पर extended (इस पाबंदी को लागू न करना) के विकल्प जोड़ता है. इससे, WebGPU कॉन्टेंट को डिसप्ले की पूरी रेंज का इस्तेमाल करने में मदद मिलती है.

ऑरिजिन ट्रायल चल रहे हैं

Chrome 129 में, इन नए ऑरिजिन ट्रायल में ऑप्ट इन किया जा सकता है.

FileSystemObserver इंटरफ़ेस

FileSystemObserver इंटरफ़ेस, फ़ाइल सिस्टम में हुए बदलावों के बारे में वेबसाइटों को सूचना देता है. साइटें, उपयोगकर्ता के लोकल डिवाइस (WICG/file-system-access में बताए गए तरीके के मुताबिक) या बकेट फ़ाइल सिस्टम (fs.spec.whatwg.org में बताए गए तरीके के मुताबिक) में मौजूद फ़ाइलों और डायरेक्ट्री में होने वाले बदलावों को मॉनिटर करती हैं. साथ ही, उन्हें बदलाव के टाइप जैसी बुनियादी जानकारी की सूचना दी जाती है.

FileSystemObserver ऑरिजिन के ट्रायल के लिए रजिस्टर करें.

बंद किए गए और हटाए गए वर्शन

Chrome के इस वर्शन में, नीचे दी गई सुविधाओं को बंद किया जा रहा है और हटाया जा रहा है. जिन सुविधाओं को बंद किया जा रहा है, उन सुविधाओं की सूची देखने के लिए ChromeStatus.com पर जाएं. साथ ही, उन सुविधाओं की सूची भी देखी जा सकती हैं जिन्हें पहले बंद किया जा चुका है.

Chrome के इस वर्शन में एक सुविधा बंद कर दी गई है.

निजी नेटवर्क के ऐक्सेस के लिए 0.0.0.0 का इस्तेमाल बंद करना

निजी नेटवर्क ऐक्सेस (पीएनए) के पूरी तरह से रोल आउट होने से पहले, Chrome आईपी पते 0.0.0.0 के ऐक्सेस को ब्लॉक कर देगा.

Chrome, पीएनए स्पेसिफ़िकेशन के तहत, सार्वजनिक वेबसाइटों से निजी नेटवर्क एंडपॉइंट का सीधा ऐक्सेस बंद कर रहा है. स्पेसिफ़िकेशन के मुताबिक, localhost (127.0.0.0/8) पर सुनने वाली सेवाओं को निजी माना जाता है. macOS और Linux पर localhost पर सुनने वाली सेवाओं को ऐक्सेस करने के लिए, Chrome की पीएनए सुरक्षा को 0.0.0.0 आईपी पते का इस्तेमाल करके बायपास किया जा सकता है.

इसका गलत इस्तेमाल, डीएनएस रीबाइंडिंग हमलों में भी किया जा सकता है. इन हमलों का मकसद, लोकलहोस्ट पर सुनने वाले वेब ऐप्लिकेशन को टारगेट करना होता है.

Chrome के इस वर्शन में तीन सुविधाएं हटा दी गई हैं.

DOMParser पर includeShadowRoots आर्ग्युमेंट हटाएं

includeShadowRoots आर्ग्युमेंट, DOMParser.parseFromString() फ़ंक्शन के लिए कभी भी स्टैंडर्ड आर्ग्युमेंट नहीं था. यह एचटीएमएल कॉन्टेंट को पार्स करने के लिए था, जिसमें एलान वाला शैडो DOM शामिल होता है. इसे Chrome 90 में डिक्लेरेटिव शैडो DOM के शुरुआती वर्शन के तौर पर शिप किया गया था.

अब इस सुविधा का स्टैंडर्ड वर्शन, setHTMLUnsafe() और parseHTMLUnsafe() तरीकों के साथ उपलब्ध है. इसलिए, नॉन-स्टैंडर्ड includeShadowRoots आर्ग्युमेंट हटा दिया जाएगा. कोड को इस तरह अपडेट किया जाना चाहिए:

इसके बजाय:

((new DOMParser()).parseFromString(html,'text/html',{includeShadowRoots: true});

इस्तेमाल करें:

Document.parseHTMLUnsafe(html);

नॉन-स्टैंडर्ड डिक्लेरेटिव शैडो डीओएम सीरियलाइज़ेशन को हटाना

डिक्लेरेटिव शैडो DOM के प्रोटोटाइप को लागू करने में, getInnerHTML() नाम का एक तरीका इस्तेमाल किया गया था. इसका इस्तेमाल, शैडो रूट वाले DOM ट्री को सीरियलाइज़ करने के लिए किया जाता है. प्रोटोटाइप के उस हिस्से को, डिक्लेरेटिव शैडो डॉम के बाकी हिस्सों के साथ स्टैंडर्ड नहीं किया गया था. इसके बजाय, एक नया वर्शन डिज़ाइन किया गया था—getHTML().

इसलिए, getInnerHTML() का पुराना तरीका अब Chrome से हटा दिया जा रहा है. इसके बदले, आपको getHTML() का इस्तेमाल करना चाहिए. यह तरीका जल्द ही सभी ब्राउज़र पर काम करेगा.

असुरक्षित कॉन्टेक्स्ट से PointerEvent.getCoalescedEvents() को हटाना

पॉइंटर इवेंट वर्किंग ग्रुप ने चार साल पहले PointerEvent.getCoalescedEvents() को सुरक्षित कॉन्टेक्स्ट तक सीमित कर दिया था. इससे एपीआई को असुरक्षित कॉन्टेक्स्ट से हटा दिया गया था. Chrome ने शुरुआत में पुराने वर्शन के हिसाब से काम किया. साथ ही, काम करने से जुड़ी समस्याओं की वजह से, स्पेसिफ़िकेशन में हुए बदलाव को तुरंत लागू नहीं किया.

हम अब इसे असुरक्षित कॉन्टेक्स्ट से हटा रहे हैं, क्योंकि असुरक्षित कॉन्टेक्स्ट में Chrome का इस्तेमाल बहुत कम हुआ.