Chrome 117 बीटा

सीएसएस ग्रिड सबग्रिड, सीएसएस, ऐरे ग्रुपिंग, इटरेटर हेल्पर वगैरह के लिए एंट्री और एग्ज़िट ऐनिमेशन की सुविधा.

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

सीएसएस

इस रिलीज़ में सीएसएस की छह नई सुविधाएं जोड़ी गई हैं. पहली तीन प्रॉपर्टी, अलग-अलग प्रॉपर्टी पर ट्रांज़िशन चालू करने के काम का हिस्सा हैं. इससे एंट्री और एग्ज़िट के ऐनिमेशन चालू होते हैं.

@starting-style नियम

इस नियम से, लेखकों को पहले स्टाइल अपडेट पर सीएसएस ट्रांज़िशन शुरू करने की अनुमति मिल जाती है.

सीएसएस ट्रांज़िशन, किसी एलिमेंट के पहले स्टाइल अपडेट पर शुरुआती स्टाइल से ट्रांज़िशन ट्रिगर नहीं करता. इसके अलावा, ऐसा तब भी नहीं होता है, जब डिसप्ले टाइप, none से किसी अन्य टाइप में बदलता है. यह शुरुआती स्टाइल से अचानक होने वाले ट्रांज़िशन से बचने के लिए है. पहले स्टाइल अपडेट से ट्रांज़िशन शुरू करने के लिए, अब @starting-style नियम से स्टाइल लागू किए जा सकते हैं. उदाहरण के लिए, नीचे दिया गया सीएसएस किसी div के लिए पहले स्टाइल अपडेट पर बैकग्राउंड-रंग को हरे से लाइम में बदलना शुरू करता है:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

ओवरले प्रॉपर्टी

overlay प्रॉपर्टी, डेवलपर को एग्ज़िट ट्रांज़िशन के लिए एलिमेंट को टॉप लेयर में रखने की सुविधा देती है. ओवरले प्रॉपर्टी को यह बताने के लिए जोड़ा जाता है कि एलिमेंट, टॉप लेयर में है या नहीं. इसमें दो वैल्यू हो सकती हैं: none या auto.

सीएसएस ट्रांज़िशन-व्यवहार प्रॉपर्टी

transition-behavior सीएसएस प्रॉपर्टी, transition प्रॉपर्टी का लंबा हिस्सा है. इसकी मदद से, ट्रांज़िशन में अलग-अलग प्रॉपर्टी का इस्तेमाल किया जा सकता है. ट्रांज़िशन-व्यवहार के लिए allow-discrete वैल्यू तय करने पर, अलग-अलग प्रॉपर्टी अब ऐनिमेशन शुरू करेंगी और अपनी शुरुआती वैल्यू से 50% पर फ़ाइनल वैल्यू पर फ़्लिप हो जाएंगी. ऐसे ट्रांज़िशन के लिए जहां display: none और content-visibility: hidden शुरुआती या फ़ाइनल वैल्यू में से एक हैं, वहां दिखने वाली वैल्यू का इस्तेमाल, ट्रांज़िशन की पूरी अवधि के लिए किया जाएगा.

सीएसएस ग्रिड सबग्रिड की वैल्यू

grid-template-columns और grid-template-rows के लिए subgrid वैल्यू, अब Chrome में लागू कर दी गई है. यह वैल्यू पंक्तियों, कॉलम या दोनों के लिए नई ट्रैक परिभाषा बनाने के बजाय, नेस्ट किए गए ग्रिड को अपने पैरंट पर तय किए गए ट्रैक का इस्तेमाल करने की अनुमति देती है.

सीएसएस टेक्स्ट-रैप: सुंदर

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

Chrome 117 में, text-wrap: length का डेमो आज़माएं और देखें कि वैल्यू, टेक्स्ट प्रज़ेंटेशन में कैसे बदलाव करती है.

कंटेन-इंट्रिंसिक-साइज़: ऑटो-कोई सपोर्ट नहीं

यह सुविधा, auto && none को शामिल करने के लिए मौजूदा contain-intrinsic-size सिंटैक्स को बढ़ाती है.

वेब एपीआई

कलेक्शन ग्रुप

अरे ग्रुपिंग एक बहुत ही सामान्य ऑपरेशन है, जिसे SQL के ग्रुप BY क्लॉज़ और MapReach प्रोग्रामिंग (मैप-ग्रुप-रिड्यूस) के बारे में बेहतर तरीके से बताया जाता है. डेटा को ग्रुप में शामिल करने की सुविधा से, डेवलपर ज़्यादा ऑर्डर वाले डेटासेट का पता लगा सकते हैं. जैसे, किसी वेबपेज के लिए कोहॉर्ट की औसत उम्र या रोज़ की एलसीपी वैल्यू. यह सुविधा, Object.groupBy और Map.groupBy स्टैटिक तरीके जोड़कर इसे चालू करती है. ऑब्जेक्ट वाला तरीका एक सादा ऑब्जेक्ट दिखाता है, जिसमें ग्रुप, प्रॉपर्टी कुंजियां होते हैं. मैप का तरीका, Maps की जानकारी दिखाता है. इसमें बटन, आर्बिट्रेरी वैल्यू हो सकते हैं.

Content ID मैचिंग में शामिल कॉन्टेंट के हेडर को मिटाने की सुविधा से क्लाइंट हिंट हटाएं

वेबसाइटें अब Clear-Site-Data: "clientHints" का इस्तेमाल करके, क्लाइंट से मिलने वाले संकेतों की कैश मेमोरी को मिटा पाएंगी. "कुकी", "कैश" या "*" को एक ही हेडर से टारगेट करने पर भी, क्लाइंट के संकेतों को हटा दिया जाएगा. ऐसा इसलिए होता है, क्योंकि अगर उपयोगकर्ता, यूज़र इंटरफ़ेस (यूआई) क्लाइंट हिंट में कुकी को मिटाता है, तो यह भी पहले ही हट जाती है. ऐसा इसलिए होता है, क्योंकि क्लाइंट हिंट कैश मेमोरी एक कैश मेमोरी होती है. साथ ही, यह वाइल्डकार्ड टारगेट से मेल खाती है.

'साइट-डेटा' हेडर वाइल्डकार्ड सिंटैक्स मिटाएं

वेबसाइटें अब Clear-Site-Data: "*" भेजकर, स्टोरेज के सभी टारगेट ("कुकी", "कैश मेमोरी", और "स्टोरेज") को मिटा पाएंगी. ध्यान दें कि फ़िलहाल Chrome में "executionContexts" को हटाने की सुविधा नहीं है. हालांकि, अगर हम आने वाले समय में इसे जोड़ते हैं, तो हेडर टारगेटिंग "*" को भी हटा दिया जाएगा.

customElements.getName

customElements.getName() तरीका, दी गई कस्टम एलिमेंट परिभाषा के टैग का नाम दिखाता है.

इटरेटर हेल्पर

इटरेटर हेल्पर, इटरेटर प्रोटोटाइप के नए तरीके हैं. इनसे इटरेटर को सामान्य तौर पर इस्तेमाल और इस्तेमाल किया जा सकता है.

कैप्चरकंट्रोलर को EventTarget इंटरफ़ेस से हासिल करें

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

PerformanceResourceTiming की डिलीवरी किस तरह की है

PerformanceResourceTiming की deliveryType प्रॉपर्टी, संसाधन डिलीवर करने के तरीके की जानकारी दिखाती है. उदाहरण के लिए, कैश मेमोरी से डिलीवर किए गए रिसॉर्स (फ़िलहाल, transferSize के ज़रिए दिखाए गए हैं) और ऐसे नेविगेशन जिन्हें पिछले पेज पर प्रीफ़ेच किया गया था.

यूआरएल सेटर में पोर्ट ओवरफ़्लो की जांच

url.port सेट करते समय पोर्ट वैल्यू की जांच की जाएगी. 16-बिट की संख्या की सीमा से बाहर जाने वाली सभी वैल्यू अब मान्य नहीं होंगी. उदाहरण के लिए, बदलाव के बाद नीचे दी गई स्क्रिप्ट अलग तरह से काम करती है:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

बदलाव से पहले, आउटपुट 65536 है. बदलाव के बाद आउटपुट 80 होगा.

प्राइवेट स्टेट टोकन एपीआई

यह एक नया एपीआई है. यह तीसरे पक्ष की कुकी जैसे क्रॉस-साइट स्थायी आइडेंटिफ़ायर का इस्तेमाल किए बिना, सभी साइटों पर सीमित प्राइवेट सिग्नल को लागू करता है. तीसरे पक्ष की कुकी का इस्तेमाल करने वाली धोखाधड़ी रोकने के तरीके, तीसरे पक्ष की कुकी के मूल्य कम होने के बाद काम नहीं करेंगे. Private State Token API, धोखाधड़ी रोकने वाले सिग्नल जनरेट या तय नहीं करता है: यह पहले पक्ष और टोकन जारी करने वाली कंपनी पर निर्भर करता है. इसके बजाय, एपीआई इन सिग्नल में ट्रांसफ़र की गई जानकारी पर सीमा लागू करके, निजता बनाए रखता है. यह एपीआई, प्राइवसी पास प्रोटोकॉल के एक वैरिएंट पर आधारित है. इसे आईईटीएफ़ के स्टैंडर्ड के हिसाब से बनाए जाने की प्रोसेस जारी है. इसे Privacy Pass प्रोटोकॉल का एक ऐसा फ़ॉर्म माना जा सकता है जो वेब पर दिखने वाला है. एपीआई की खास बातों को नए वर्शन और अलग-अलग तरह के टोकन के लिए अपडेट किया जाएगा. साथ ही, इसे Privacy Pass के कामकाजी ग्रुप की जानकारी के हिसाब से अप-टू-डेट रखा जाएगा. अनुमानित बदलाव, पहले के क्रिप्टोग्राफ़िक प्रोटोकॉल और टोकन जारी करने वाले कोड में होंगे: हम फ़ेच एपीआई जारी करने और रिडीम करने वाले डेवलपर में किसी तरह के बदलाव की उम्मीद नहीं करते हैं. Private State Token API को पहले Trust Token API के नाम से जाना जाता था. इसका नाम बदल कर इसका नाम बदल दिया गया है, ताकि इसमें बुनियादी जानकारी को ज़्यादा सटीक तरीके से कैप्चर किया जा सके. साथ ही, उपयोगकर्ताओं को निजता से जुड़े फ़ायदों को हाइलाइट किया जा सके.

यूआरएल मानक के साथ काम करने वाला IPv4 एम्बेड किया गया IPv6 होस्ट पार्सर

वेब के यूआरएल मानक का सख्ती से पालन करने के लिए, IPv4 एम्बेड किए गए IPv6 होस्ट पार्सर को पार्स करने का तरीका अपडेट किया जाएगा. आईपीवी6 पते पर लागू की गई पाबंदियां ये हैं:

  • एम्बेड किए गए IPv4 पते में हमेशा चार हिस्से होने चाहिए.
  • चार से कम हिस्सों वाले पते, जैसे कि http://[::1.2] अब मान्य नहीं होंगे. यह सुविधा, यूआरएल इंटरऑप 2023 का हिस्सा है.

यूआरएल: "%00" को मान्य यूआरएल पाथ के तौर पर अनुमति दें

अगर यूआरएल के पाथ वाले हिस्से में "%00" (या शून्य) मौजूद है, तो Chrome उस यूआरएल को अमान्य मानता है और यूआरएल स्टैंडर्ड का पालन नहीं करता है. उदाहरण के लिए, Chrome में नीचे दिया गया टेस्ट फ़ेल हो जाता है, क्योंकि new URL(...) अमान्य यूआरएल अपवाद दिखाता है.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

यूआरएल स्टैंडर्ड के मुताबिक, यूआरएल पाथ में मौजूद किसी भी वर्ण या बाइट क्रम से यूआरएल अमान्य नहीं होना चाहिए. यह बदलाव Chrome को उस स्टैंडर्ड का पालन करने के लिए अपडेट कर देता है.

WebRTC आरटीपी हेडर एक्सटेंशन कंट्रोल

यह कंट्रोल करने के लिए कि कौनसे आरटीपी हेडर एक्सटेंशन नेगोशिएट किया है, WebRTC RTCRtpTransceiver एपीआई को बढ़ाएं.

VideoEncoder में, हर फ़्रेम क्वांटाइज़र के हिसाब से

VideoEncoder के लिए "क्वांटाइज़र" VideoEncoderBitrateMode जोड़ता है. इससे AV1, VP9, और AVC वीडियो कोडेक के लिए, हर फ़्रेम के लिए क्वांटाइज़र पैरामीटर तय किया जा सकता है.

requestDevice() में WebUSB exclusionFilters विकल्प

navigator.usb.requestDevice() में मौजूद exclusionFilters विकल्प की मदद से, वेब डेवलपर कुछ डिवाइसों को ब्राउज़र पिकर से बाहर रख सकते हैं. इसका इस्तेमाल उन डिवाइसों को हटाने के लिए किया जा सकता है जो बड़े फ़िल्टर से मिलते-जुलते हैं, लेकिन काम नहीं करते.

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

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

Shared Brotli के साथ कंप्रेशन डिक्शनरी भेजने की सुविधा

यह सुविधा Brotli-कंप्रेस करने वाले एचटीटीपी रिस्पॉन्स के लिए बाहरी डिक्शनरी के तौर पर, तय किए गए पिछले रिस्पॉन्स का इस्तेमाल करने के लिए सहायता जोड़ती है.

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

WebSQL के इस्तेमाल पर रोक लगाने का ट्रायल

WebSQL को Chrome से हटाया जा रहा है. इस सुविधा का इस्तेमाल करने वाली साइटों को Wsm के ज़रिए SQLite पर जाने का सुझाव दिया जाता है.

जिन डेवलपर को माइग्रेशन के लिए ज़्यादा समय चाहिए उन्हें Chrome 123 (मार्च 2024) तक WebSQL का इस्तेमाल करने की सुविधा मिलेगी. इसके लिए, डेवलपर को रोक लगाने वाला यह ट्रायल करना होगा. WebSQL का इस्तेमाल बंद करने के ट्रायल के लिए रजिस्टर करें.

टैब वाले वेब ऐप्लिकेशन

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

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

सेवा को बंद करना और हटाना

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

Chrome की इस रिलीज़ में दो सुविधाएं बंद कर दी गई हैं.

अनलोड इवेंट को बंद करें

Chrome 117, unload इवेंट हैंडलर को बंद करने की प्रोसेस शुरू करेगा. अगर आपकी साइट इनका इस्तेमाल करती है, तो हमारी सलाह है कि ज़्यादा जानकारी के लिए, unload को रोकने के बारे में खास पोस्ट पढ़ें.

TLS SHA-1 सर्वर हस्ताक्षर का इस्तेमाल न करें

Chrome, TLS हैंडशेक के दौरान सर्वर सिग्नेचर के लिए SHA-1 का इस्तेमाल करने वाले सिग्नेचर एल्गोरिदम के सपोर्ट को हटा रहा है. इससे, पहले से हटाए जा चुके सर्वर सर्टिफ़िकेट या ऐसे क्लाइंट सर्टिफ़िकेट में SHA-1 के इस्तेमाल पर कोई असर नहीं पड़ता जो अब भी काम कर रहा है.

Chrome की इस रिलीज़ से चार सुविधाएं हटा दी गई हैं.

[WebRTC] कॉलबैक-आधारित लेगसी getStats() को अनशिप करें

RTCPeerConnection में getStats() के दो वर्शन हैं. एक वर्शन, जो स्पेसिफ़िकेशन के मुताबिक, प्रॉमिस का समाधान करके रिपोर्ट को भेजता है. वहीं, दूसरा वर्शन, जो पहले आर्ग्युमेंट के तौर पर कॉलबैक के ज़रिए, बहुत अलग रिपोर्ट दिखाता है. यह स्टैंडर्ड नियम का पालन नहीं करता. कॉलबैक-आधारित कॉल को अब हटा दिया गया है.

माइग्रेशन के बारे में ज़्यादा जानकारी पाने और ज़्यादा समय लगने पर क्या करना चाहिए, यह जानने के लिए लेगसी getStats() माइग्रेशन गाइड देखें.

WebRTC getStats datachannelIdentifier के लिए -1 वैल्यू को हटाना

WebRTC getStats एपीआई, dataChannelIdentifier प्रॉपर्टी को दिखाता है. अगर डेटाचैनल कनेक्शन स्थापित होने से पहले आंकड़ों की क्वेरी की जाती है, तो यह वैल्यू "-1" नहीं देगी. इसके बजाय, शब्दकोश के सदस्य को छोड़ दिया जाएगा.

WebRTC getStats एन्कोडर को हटाने का तरीका और डिकोडर लागू करने का तरीका "जानकारी नहीं है"

WebRTC getStats एपीआई, आउटबाउंड और इनबाउंड वीडियो के लिए एन्कोडर और डिकोडर लागू करने वाले नाम दिखाता है. अगर वीडियो फ़्रेम को कोड में बदलने या डिकोड करने से पहले, आंकड़ों के बारे में क्वेरी की जाती है, तो ऐसे मामलों में “unknown”” वैल्यू नहीं दी जाएगी. इसके बजाय, शब्दकोश के सदस्य को छोड़ दिया जाएगा.

सीएसएस प्रॉपर्टी -webkit-highlight

सीएसएस प्रॉपर्टी -webkit-highlight को हटाएं, जिसे टेक्स्ट को हाइलाइट करने के मकसद से बनाया गया है. हालांकि, इसे कभी स्टैंडर्ड के हिसाब से नहीं बनाया गया. Chromium में इसका कोई असर नहीं दिखता (इसे पार्स किया गया है, लेकिन कॉन्टेंट को रेंडर करने में इसका इस्तेमाल कभी नहीं किया गया). इस प्रॉपर्टी को 2014 में WebKit से हटा दिया गया था. इसे एमडीएन पर अब 'अब काम नहीं करता' के तौर पर मार्क कर दिया गया है. साथ ही, इसे हाल ही में सीएसएस हाइलाइट स्यूडो स्पेसिफ़िकेशन से बदल दिया गया है.