Chrome 123 बीटा

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

सीएसएस

इस रिलीज़ में सीएसएस की पांच नई सुविधाएं जोड़ी गई हैं.

CSS light-dark() कलर फ़ंक्शन

सीएसएस में light-dark() फ़ंक्शन की मदद से डेवलपर, रंग-स्कीम को उपयोगकर्ता की पसंद के हिसाब से हल्के रंग या गहरे रंग वाले मोड में आसानी से बदल सकते हैं.

एक ही सीएसएस प्रॉपर्टी में दो अलग-अलग रंग की वैल्यू तय करने के लिए, light-dark() का इस्तेमाल करें. एलिमेंट की कंप्यूट की गई color-scheme वैल्यू के आधार पर, ब्राउज़र (या डिवाइस) अपने-आप सही रंग चुन लेगा. उदाहरण के लिए, इस सीएसएस के साथ:

  • अगर उपयोगकर्ता ने हल्के रंग वाली थीम चुनी है, तो .target एलिमेंट का बैकग्राउंड नींबू रंग का होगा.
  • अगर उपयोगकर्ता ने गहरे रंग वाली थीम चुनी है, तो .target एलिमेंट का बैकग्राउंड हरा होगा.
html {
  color-scheme: light dark;
}
.target {
    background-color: light-dark(lime, green);
}

सीएसएस पिक्चर में पिक्चर मोड

सीएसएस display-mode मीडिया सुविधा को picture-in-picture वैल्यू के लिए इस्तेमाल किया जा सकता है. इसकी मदद से वेब डेवलपर, सीएसएस के ऐसे खास नियम लिख सकते हैं जो सिर्फ़ तब लागू होते हैं, जब (इसके एक हिस्से के तौर पर) वेब ऐप्लिकेशन पिक्चर में पिक्चर मोड में दिखाया जाता है.

पिक्चर में पिक्चर दस्तावेज़ की मदद से, मीडिया की इस सुविधा के बारे में ज़्यादा जानें.

ब्लॉक के लिए अलाइन-कॉन्टेंट सीएसएस प्रॉपर्टी

align-content सीएसएस प्रॉपर्टी अब ब्लॉक कंटेनर और टेबल सेल में काम करती है. पहले, इस प्रॉपर्टी का इस्तेमाल सिर्फ़ ग्रिड और फ़्लेक्सिबल आइटम के लिए किया जा सकता था. उदाहरण के लिए, display: block, display: list-item, और display: table-cell को अब align-content का इस्तेमाल करके अलाइन किया जा सकता है.

ज़्यादा जानने के लिए, ब्लॉक और टेबल लेआउट में align-content के साथ काम करने की सुविधा पर जाएं.

field-sizing सीएसएस प्रॉपर्टी

field-sizing प्रॉपर्टी का इस्तेमाल करके, डेवलपर फ़ॉर्म कंट्रोल के तय डिफ़ॉल्ट साइज़ को बंद कर सकते हैं. साथ ही, उनके साइज़ को उनके कॉन्टेंट के हिसाब से सेट किया जा सकता है. यह अपने-आप बढ़ने वाले टेक्स्ट फ़ील्ड बनाने का तरीका है.

सीएसएस text-spacing-trim प्रॉपर्टी

यह प्रॉपर्टी चाइनीज़, जैपनीज़, और कोरियन (सीजेके) पर लागू होती है, ताकि जेएलआरईक्यू (जैपनीज़ टेक्स्ट लेआउट के लिए ज़रूरी शर्तें) और CLREQ (चाइनीज़ टेक्स्ट लेआउट के लिए ज़रूरी शर्तें) के हिसाब से, अच्छी टाइपोग्राफ़ी बनाई जा सके.

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

text-spacing-trim प्रॉपर्टी के लिए, इन चार में से कोई एक वैल्यू इस्तेमाल की जा सकती है: normal, trim-start, space-all, और space-first. सीएसएस में चार नई अंतरराष्ट्रीय सुविधाएं पेश करने के बारे में ज़्यादा जानें.

वेब एपीआई

क्रॉस-ऑरिजिन iframe में WebAuthn क्रेडेंशियल बनाने की अनुमति दें

इस सुविधा की मदद से वेब डेवलपर, क्रॉस-ऑरिजिन iframe में WebAuthn क्रेडेंशियल (यानी "publickey" क्रेडेंशियल, जिन्हें पासकी कहा जाता है) बना सकते हैं. इस नई सुविधा के लिए इन दो शर्तों को पूरा करना ज़रूरी है:

  • iframe की publickey-credentials-create-feature अनुमति से जुड़ी नीति मौजूद है.
  • iframe, उपयोगकर्ता के खाते को कुछ समय के लिए चालू करता है.

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

एट्रिब्यूशन रिपोर्टिंग की सुविधा का बंडल

Chrome 123 एट्रिब्यूशन रिपोर्टिंग एपीआई में, ट्रिगर डेटा कस्टमाइज़ेशन और एग्रीगेट किए जा सकने वाले वैल्यू फ़िल्टर जोड़ता है. इनमें ये फ़िल्टर शामिल हैं:

  • ट्रिगर डेटा के एलिमेंट और वैल्यू को पसंद के मुताबिक बनाने की सुविधा की मदद से, इवेंट-लेवल रिपोर्टिंग के लिए एपीआई को कॉन्फ़िगर करने की अतिरिक्त क्षमता.
  • एग्रीगेट की जा सकने वाली वैल्यू में फ़िल्टर का इस्तेमाल करके, खास जानकारी वाली रिपोर्ट के लिए एपीआई को कॉन्फ़िगर करने की अतिरिक्त क्षमता.

क्रॉस ऐप्लिकेशन और वेब एट्रिब्यूशन मेज़रमेंट

Attribution Reporting API का दायरा बढ़ जाता है, ताकि दूसरे ऐप्लिकेशन में वेब पर होने वाले कन्वर्ज़न को ब्राउज़र के बाहर होने वाले इवेंट को एट्रिब्यूट किया जा सके.

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

इनलाइन मॉड्यूल स्क्रिप्ट पर blocking=render

यह एक छोटा सा बदलाव है, जो <script blocking="render"> पर लगी बनावटी सीमा को हटा देता है. इस बदलाव से पहले, <script blocking="render"type="module"> को src एट्रिब्यूट की ज़रूरत होती है, भले ही यह src एक डेटा यूआरआई हो. ऐसा करने की ज़रूरत नहीं है, क्योंकि दूसरी स्क्रिप्ट इंपोर्ट करने वाली इनलाइन मॉड्यूल स्क्रिप्ट के लिए भी रेंडर-ब्लॉक करना ज़रूरी है.

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

डॉक्यूमेंट में पिक्चर: पिक्चर में पिक्चर की सुविधा: focus() एपीआई को, ओपनर पर फ़ोकस करने की अनुमति दें

अब दस्तावेज़ पिक्चर में पिक्चर विंडो से opener.focus() का इस्तेमाल किया जा सकता है. इससे सिस्टम लेवल के फ़ोकस को उस टैब पर लाया जा सकता है जो दस्तावेज़ की 'पिक्चर में पिक्चर' विंडो का मालिक है.

इससे डेवलपर ज़रूरी होने पर मूल टैब को वापस फ़ोरग्राउंड में ला सकते हैं. उदाहरण के लिए, जब उपयोगकर्ता को यूज़र इंटरफ़ेस (यूआई) इस्तेमाल करने की ज़रूरत होती है, जो छोटी पिक्चर में पिक्चर विंडो में फ़िट नहीं होता.

with सिंटैक्स एट्रिब्यूट इंपोर्ट करें

इंपोर्ट एट्रिब्यूट एक JavaScript सुविधा है. इसकी मदद से, इंपोर्ट से जुड़ी जानकारी की जानकारी दी जा सकती है, जैसे कि import xxx from "mod" with { type: "json" }. Chrome ने मूल रूप से assert का इस्तेमाल करके, प्रस्ताव के पिछले वर्शन (Chrome 91 में) को भेजा था. इसके बाद, इस वर्शन को with का इस्तेमाल करने के लिए अपडेट कर दिया गया है. ऐसा इसलिए हुआ है, क्योंकि इसे JSON और सीएसएस मॉड्यूल के एचटीएमएल के साथ इंटिग्रेट करते समय कुछ बदलाव करने ज़रूरी थे.

jitterBufferTarget

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

लॉन्ग ऐनिमेशन फ़्रेम टाइमिंग

लॉन्ग ऐनिमेशन फ़्रेम एपीआई, Long Tasks API का एक्सटेंशन है. यह, टास्क के रेंडर होने के अपडेट के साथ-साथ, टास्क का आकलन करता है. इसमें, लंबे समय तक चलने वाली स्क्रिप्ट, रेंडरिंग समय, और फ़ोर्स किए गए लेआउट और स्टाइल में बिताए गए समय जैसी जानकारी जोड़ी जाती है. इसे लेआउट थ्रैशिंग कहते हैं.

डेवलपर इसका इस्तेमाल "सुस्ती" के लिए, गड़बड़ी की जानकारी के तौर पर कर सकते हैं. इसे आईएनपी से मापा जाता है. ऐसा, मुख्य थ्रेड में होने वाली कंजेशन की वजहों का पता लगाकर किया जाता है. आम तौर पर, आईएनपी खराब होने की वजह होती है.

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

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

Pagereveal इवेंट

किसी दस्तावेज़ के लोड होने, उसे बैक-फ़ॉरवर्ड कैश मेमोरी से वापस लाने या प्रीरेंडरिंग से चालू करने के बाद, pagereveal इवेंट, दस्तावेज़ के विंडो ऑब्जेक्ट पर पहले रेंडर होने के अवसर पर ट्रिगर होता है.

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

मल्टी-पेन इंकिंग के लिए PointerEvent.deviceId

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

नेविगेशन अनुरोधों के लिए निजी नेटवर्क के ऐक्सेस की जांच: सिर्फ़ चेतावनी वाला मोड

इससे पहले कि वेबसाइट A, उपयोगकर्ता के निजी नेटवर्क में किसी दूसरी साइट B पर ले जाए, यह सुविधा ये काम करती है:

  1. इस बात की जांच करता है कि अनुरोध, सुरक्षित कॉन्टेक्स्ट से किया गया है या नहीं.
  2. प्रीफ़्लाइट अनुरोध भेजता है और देखता है कि B निजी नेटवर्क का ऐक्सेस देने वाले हेडर के साथ जवाब देता है या नहीं.

सबरिसॉर्स और वर्कर के लिए पहले से ही सुविधाएं हैं. हालांकि, यह सुविधा खास तौर पर नेविगेशन के अनुरोधों के लिए है.

ये जांच, उपयोगकर्ता के निजी नेटवर्क को सुरक्षित रखने के लिए की जाती हैं. यह सुविधा "सिर्फ़ चेतावनी" वाला मोड है. इसलिए, किसी भी जांच के फ़ेल होने पर भी, यह अनुरोधों को पूरा नहीं करेगा. इसके बजाय, DevTools में एक चेतावनी दिखेगी. इससे डेवलपर को, आने वाले समय में होने वाले नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) की तैयारी करने में मदद मिलेगी.

Sec-CH-UA-फ़ॉर्म-फ़ैक्टर क्लाइंट हिंट

यह संकेत उपयोगकर्ता-एजेंट या डिवाइस के "फ़ॉर्म-फ़ैक्टर" के बारे में बताता है, ताकि साइट अपने हिसाब से जवाब दे सके.

सर्विस वर्कर स्टैटिक रूटिंग एपीआई

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

शेयर किए गए स्टोरेज की जानकारी से जुड़ा अपडेट

यह अपडेट, iframe बनाए बिना क्रॉस ऑरिजिन वर्कलेट चलाने की सुविधा देता है.

zstd कॉन्टेंट को कोड में बदलने का तरीका

Zstandard या zstd एक डेटा कंप्रेशन तकनीक है, जिसके बारे में RFC8878 में बताया गया है. यह एक तेज़ लॉसलेस कंप्रेशन एल्गोरिदम है और यह zlib-लेवल और बेहतर कंप्रेशन अनुपात पर रीयल-टाइम कंप्रेशन की स्थितियों को टारगेट करता है. zstd टोकन को आईएएनए-रजिस्टर किए गए कॉन्टेंट-कोड में बदलने के टोकन के तौर पर जोड़ा गया.

कॉन्टेंट को कोड में बदलने के तरीके के तौर पर, zstd को इस्तेमाल करने से पेजों को तेज़ी से लोड करने और कम बैंडविड्थ का इस्तेमाल करने में मदद मिलती है. साथ ही, हमारे सर्वर पर कम समय लगता है और सीपीयू का इस्तेमाल कम होता है. साथ ही, उनके सर्वर पर कंप्रेस होने की क्षमता भी कम होती है.

नए ऑरिजिन ट्रायल

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

WebAssembly JavaScript प्रॉमिस इंटिग्रेशन

WebAssembly का इस्तेमाल करके लिखे गए रिस्पॉन्सिव ऐप्लिकेशन के काम करने के लिए ज़रूरी है कि ऐसी सुविधाएं दी जाएं जिनसे WebAssembly कार्यक्रम को निलंबित और फिर से शुरू किया जा सके.

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

प्रॉमिस इंटिग्रेशन ऑरिजिन ट्रायल के लिए रजिस्टर करें.

हटाने की प्रक्रिया

Chrome 123 में यह सुविधा हटा दी गई है.

अनुमति और अनुमति के लिए window-placement उपनाम की नीति window-management

Chrome 111 में, window-placement की अनुमति और अनुमति से जुड़ी नीति वाली स्ट्रिंग के लिए, उपनाम के तौर पर window-management को जोड़ा गया था. यह स्ट्रिंग का नाम बदलने की एक बड़ी कोशिश का हिस्सा था. इसके लिए, window-placement को बंद करके, इसे हटाया गया. समय के साथ, जैसे-जैसे विंडो मैनेजमेंट एपीआई में बदलाव होता है, शब्दावली में बदलाव से डिस्क्रिप्टर का इस्तेमाल लंबे समय तक होता है.

window-placement उपनाम के लिए बंद करने की चेतावनियां, Chrome 113 में शुरू हो गई थीं और अब इसे हटा दिया जाएगा.