Chrome 137 बीटा

पब्लिश होने की तारीख: 1 मई, 2025

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

सीएसएस और यूज़र इंटरफ़ेस (यूआई)

इस रिलीज़ में, सीएसएस और यूज़र इंटरफ़ेस (यूआई) से जुड़ी सात नई सुविधाएं जोड़ी गई हैं.

if() फ़ंक्शन

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

div {
      color: var(--color);
      background-color: if(style(--color: white): black; else: white);
  }
  .dark {
      --color: black;
  }
  .light {
      --color: white;
  }
<div class="dark">dark</div>
<div class="light">light</div>

reading-flow और reading-order प्रॉपर्टी

reading-flow CSS प्रॉपर्टी से यह तय होता है कि फ़्लेक्स, ग्रिड या ब्लॉक लेआउट में मौजूद एलिमेंट, ऐक्सेसibililty टूल के लिए किस क्रम में दिखें. साथ ही, यह भी तय करती है कि Tab बटन और कीबोर्ड फ़ोकस नेविगेशन का इस्तेमाल करके, किस एलिमेंट पर फ़ोकस किया जाए. यह इनमें से किसी एक कीवर्ड वैल्यू का इस्तेमाल करती है:

  • normal
  • flex-visual
  • flex-flow
  • grid-rows
  • grid-columns
  • grid-order
  • source-order

reading-order सीएसएस प्रॉपर्टी की मदद से, रीडिंग फ़्लो कंटेनर में मौजूद ऑर्डर को मैन्युअल तरीके से बदला जा सकता है. यह एक पूर्णांक है, जिसकी डिफ़ॉल्ट वैल्यू 0 होती है.

ज़्यादा जानने के लिए, लॉजिकल क्रम में फ़ोकस नेविगेशन के लिए सीएसएस रीडिंग-फ़्लो का इस्तेमाल करना लेख पढ़ें. साथ ही, रीडिंग फ़्लो के कुछ उदाहरण आज़माएं.

offset-path: shape()

shape() फ़ंक्शन, clip-path में पहले से ही काम करता है. साथ ही, इससे रिस्पॉन्सिव क्लिपिंग की सुविधा मिलती है. offset-path के लिए भी इसे चालू करने पर, उस प्रॉपर्टी के लिए एक ही तरह के आकार का इस्तेमाल किया जा सकता है.

SVGSVGElement पर ट्रांसफ़ॉर्म एट्रिब्यूट की सुविधा जोड़ी गई

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

<use> को फ़्रैगमेंट को हटाकर, किसी बाहरी दस्तावेज़ के रूट एलिमेंट का रेफ़रंस देने की अनुमति दें.

इस सुविधा में, हम रेफ़रंस से जुड़ी ज़रूरी शर्तों को कम करके, SVG <use> एलिमेंट को आसान बना रहे हैं. फ़िलहाल, आपको एसवीजी दस्तावेज़ में फ़्रैगमेंट का साफ़ तौर पर रेफ़रंस देना होगा. अगर कोई फ़्रैगमेंट आईडी नहीं दिया गया है, तो <use> टारगेट को हल नहीं कर पाएगा और कुछ भी रेंडर या रेफ़र नहीं किया जाएगा.

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

accent-color प्रॉपर्टी के लिए सिस्टम का एक्सेंट कलर, Windows और ChromeOS पर उपलब्ध कराया गया

इससे, फ़ॉर्म एलिमेंट के लिए ऑपरेटिंग सिस्टम के एक्सेंट कलर का इस्तेमाल किया जा सकता है. accent-color सीएसएस प्रॉपर्टी का इस्तेमाल करके, यह पक्का किया जा सकता है कि चेकबॉक्स, रेडियो बटन, और प्रोग्रेस बार जैसे फ़ॉर्म एलिमेंट, उपयोगकर्ता के ऑपरेटिंग सिस्टम के हिसाब से अपने-आप ऐक्सेंट कलर अपना लें. यह सुविधा, 2021 से macOS पर काम कर रही है. अब यह Windows और ChromeOS पर भी काम करती है.

view-transition-name: match-element

view-transition प्रॉपर्टी के लिए match-element वैल्यू, एलिमेंट की पहचान के आधार पर एक यूनीक आईडी जनरेट करती है. यह आईडी, एलिमेंट के लिए एक जैसा ही रहता है. इसका इस्तेमाल, एक पेज वाले ऐप्लिकेशन के उन मामलों में किया जाता है जहां एलिमेंट को इधर-उधर ले जाया जा रहा है और आपको उसे व्यू ट्रांज़िशन के साथ ऐनिमेट करना है.

वेब एपीआई

'पेमेंट' के लिए WebAuthn क्रेडेंशियल बनाने के दौरान मिलने वाली गड़बड़ी के टाइप को अलाइन करना

payment क्रेडेंशियल के लिए, WebAuthn क्रेडेंशियल बनाने के दौरान दिखने वाली गड़बड़ी को ठीक करता है. पुराने स्पेसिफ़िकेशन के मेल न खाने की वजह से, क्रॉस-ऑरिजिन iframe में उपयोगकर्ता के ऐक्टिवेशन के बिना payment क्रेडेंशियल बनाने पर, NotAllowedError के बजाय SecurityError दिखेगा. NotAllowedError, पेमेंट क्रेडेंशियल के लिए दिखता है. यह बदलाव, डेटा को ऐक्सेस करने के तरीके में हुआ है. जिस कोड में पहले e instanceof SecurityError जैसी गड़बड़ी का पता चलता था उस पर असर पड़ेगा. क्रेडेंशियल बनाने के दौरान होने वाली सामान्य गड़बड़ियों को ठीक करने वाला कोड (उदाहरण के लिए, catch (e)) पहले की तरह ही काम करता रहेगा.

BLOB यूआरएल का पार्टिशन करना: फ़ेचिंग/नेविगेशन

स्टोरेज पार्टिशन करने की सुविधा के तहत, यह स्टोरेज पासकोड (टॉप-लेवल साइट, फ़्रेम ऑरिजिन, और has-cross-site-ancestor बूलियन) के हिसाब से, ब्लॉब यूआरएल के ऐक्सेस को पार्टिशन करता है. हालांकि, टॉप-लेवल नेविगेशन को सिर्फ़ फ़्रेम ऑरिजिन के हिसाब से पार्टिशन किया जाएगा.

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

काम न करने वाले वेब पेजों से क्रैश होने की रिपोर्ट में कॉल स्टैक

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

कैनवस के फ़्लोटिंग पॉइंट वाले कलर टाइप

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

भरोसेमंद न होने वाले सादे टेक्स्ट वाले एचटीटीपी प्रीरेंडरिंग की अनुमति न देना

फ़िलहाल, प्रीरेंडर करने की सुविधा को एचटीटीपी और एचटीटीपीएस पर अनुमति है. वहीं, प्रीफ़ेच करने की सुविधा सिर्फ़ एचटीटीपीएस पर काम करती है. प्री-रेंडर को प्रीफ़ेच के साथ सिंक करने के लिए पाबंदी लगाएं.

Document-Isolation-Policy

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

ज़्यादा जानने के लिए, दस्तावेज़ को अलग रखने की नीति: आसानी से बेहतर वेब सुविधाएं चालू करना लेख पढ़ें.

वेब क्रिप्टोग्राफ़ी में Ed25519

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

आईपी पते को लॉग करना और उसकी रिपोर्टिंग

Chrome Enterprise, स्थानीय और रिमोट आईपी पतों को इकट्ठा और रिपोर्ट करके, सुरक्षा निगरानी और घटना पर कार्रवाई करने की सुविधाओं को बेहतर बना रहा है. साथ ही, उन आईपी पतों को सुरक्षा जांच लॉग (एसआईटी) में भेज रहा है. इसके अलावा, Chrome Enterprise में एडमिन के पास यह विकल्प होगा कि वे Chrome Enterprise रिपोर्टिंग कनेक्टर का इस्तेमाल करके, पहले और तीसरे पक्ष के एसआईईएम सेवा देने वाली कंपनियों को आईपी पते भेजें. यह सुविधा, Chrome Enterprise Core के ग्राहकों के लिए उपलब्ध होगी.

JavaScript Promise इंटिग्रेशन

JavaScript Promise इंटिग्रेशन (JSPI) एक ऐसा एपीआई है जिसकी मदद से, WebAssembly ऐप्लिकेशन को JavaScript Promises के साथ इंटिग्रेट किया जा सकता है. इससे WebAssembly प्रोग्राम, एक प्रॉमिस जनरेटर के तौर पर काम कर सकता है. साथ ही, WebAssembly प्रोग्राम, प्रॉमिस वाले एपीआई के साथ इंटरैक्ट कर सकता है. खास तौर पर, जब कोई ऐप्लिकेशन, Promise (JavaScript) एपीआई को कॉल करने के लिए JSPI का इस्तेमाल करता है, तो WebAssembly कोड को निलंबित कर दिया जाता है. साथ ही, WebAssembly प्रोग्राम को कॉल करने वाले मूल व्यक्ति को एक Promise दिया जाता है. यह Promise तब पूरा होगा, जब WebAssembly प्रोग्राम पूरी तरह से पूरा हो जाएगा.

Language Detector API

Language Detector API एक JavaScript API है. यह दी गई स्ट्रिंग की भाषा की पहचान करता है. इस एपीआई के पीछे एक मॉडल है, जिसे भाषा का पता लगाने के टास्क को बेहतर तरीके से पूरा करने के लिए फ़ाइन-ट्यून किया गया है.

किसी स्ट्रिंग के लिए, Language Detector API, पहचानी गई भाषाओं की सूची दिखाता है. साथ ही, हर नतीजे के लिए भरोसे का स्कोर भी दिखाता है.

इसके अलावा, डेवलपर भाषा का पता लगाने वाले टूल का इंस्टेंस बनाते समय, संभावित इनपुट भाषाओं की सूची भी पास कर सकते हैं. इससे, उन इस्तेमाल के उदाहरणों को ऑप्टिमाइज़ करने में मदद मिलती है जिनमें कुछ भाषाओं का पता लगाना होता है.

SVGMatrix, SVGRect, और SVGPoint पर फ़्लोट एट्रिब्यूट और आर्ग्युमेंट की पाबंदी लगाना

SVGMatrix, SVGRect, और SVGPoint पर फ़्लोट एट्रिब्यूट या आर्ग्युमेंट सेट करते समय, अब उन्हें Infinity या Nan के तौर पर सेट नहीं किया जा सकता. SVG स्पेसिफ़िकेशन में बताए गए तरीके से इसे सेट करने पर, JavaScript अपवाद दिखता है.

Selection API getComposedRanges और direction

इस सुविधा में, Selection API के लिए दो नए एपीआई तरीके शामिल किए गए हैं:

  • Selection.direction, जो चुने गए डेटा की दिशा को "none", "forward" या "backward" के तौर पर दिखाता है
  • Selection.getComposedRanges(), जो 0 या 1 "कॉम्पोज़ किए गए" की सूची दिखाता है StaticRange

"कंपोज़ की गई" StaticRange को शैडो की सीमाओं को पार करने की अनुमति है, जबकि सामान्य रेंज को ऐसा करने की अनुमति नहीं है.

उदाहरण के लिए:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

अगर चुना गया डेटा, shadowRoots सूची में मौजूद शैडो रूट की सीमा से बाहर है, तो StaticRange के एंडपॉइंट को "रीस्कोप" किया जाएगा, ताकि वे उस ट्री से बाहर हो जाएं. इससे यह पक्का होता है कि हम अनजान शैडो ट्री को एक्सपोज़ न करें.

वेब ऐप्लिकेशन के स्कोप एक्सटेंशन

scope_extensions वेब ऐप्लिकेशन मेनिफ़ेस्ट फ़ील्ड जोड़ता है. इससे वेब ऐप्लिकेशन, अपने दायरे को दूसरे ऑरिजिन तक बढ़ा सकते हैं.

उदाहरण:

{
  "name": "Example",
  "display": "standalone",
  "start_url": "/index.html",
  "scope_extensions": [
    {"type" : "type", "origin" : "https://example.com"}
  ]
}

इससे कई सबडोमेन और टॉप लेवल डोमेन को कंट्रोल करने वाली साइटों को एक वेब ऐप्लिकेशन के तौर पर दिखाया जा सकता है.

सूची में शामिल ऑरिजिन के लिए, .well-known/web-app-origin-association कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, वेब ऐप्लिकेशन के साथ असोसिएशन की पुष्टि करना ज़रूरी है.

{
  "https://sample-app.com/": {
    "scope": "/"
  }
}

WebAssembly शाखा के लिए हिंट

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

WebGPU: externalTexture बाइंडिंग के लिए GPUTextureView

GPUBindGroup बनाते समय, अब GPUTextureView का इस्तेमाल externalTexture बाइंडिंग के लिए किया जा सकता है.

WebGPU: copyBufferToBuffer ओवरलोड

GPUCommandEncoder copyBufferToBuffer() तरीके में अब पूरे बफ़र को कॉपी करने का आसान तरीका शामिल है. इसके लिए, वैकल्पिक ऑफ़सेट और साइज़ पैरामीटर के साथ नए ओवरलोड का इस्तेमाल किया जाता है.

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

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

फ़ुल फ़्रेम रेट रेंडर ब्लॉकिंग एट्रिब्यूट

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

रेंडर नहीं किए गए iframe पर मीडिया चलाना रोकना

"media-playback-while-not-rendered" अनुमति की नीति जोड़ता है, ताकि एम्बेड करने वाली वेबसाइटें, एम्बेड किए गए ऐसे iframe के मीडिया प्लेबैक को रोक सकें जो रेंडर नहीं हुए हैं. इसका मतलब है कि उनकी "display" प्रॉपर्टी "none" पर सेट है. इससे डेवलपर, उपयोगकर्ताओं के लिए ज़्यादा उपयोगी अनुभव बना पाएंगे. साथ ही, ब्राउज़र को ऐसे कॉन्टेंट के चलाने की अनुमति देकर परफ़ॉर्मेंस को भी बेहतर बना पाएंगे जो उपयोगकर्ताओं को नहीं दिखता.

Rewriter API

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

Writer API

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