Chrome 80 में बंद करना और हटाना

जो मेडले
जो मेडली

पेज खारिज करने में सिंक्रोनस XMLHTTPRequest() को अनुमति न दें

अब Chrome, पेज को खारिज करने के दौरान, XMLHTTPRequest() पर सिंक्रोनस कॉल करने की अनुमति नहीं देता. ऐसा तब होता है, जब पेज को किसी अन्य पेज पर ले जाया जा रहा हो या उपयोगकर्ता पेज बंद कर दे. यह beforeunload, unload, pagehide, और visibilitychange पर लागू होता है.

यह पक्का करने के लिए कि पेज के अनलोड होने पर सर्वर को डेटा भेजा जाए, हमारा सुझाव है कि आप sendBeacon() या Fetch keep-alive इस्तेमाल करें. फ़िलहाल, एंटरप्राइज़ उपयोगकर्ता AllowSyncXHRInPageDismissal नीति फ़्लैग का इस्तेमाल कर सकते हैं. साथ ही, पेज अनलोड के दौरान सिंक्रोनस XHR अनुरोधों को अनुमति देने के लिए, डेवलपर ऑरिजिन ट्रायल फ़्लैग allow-sync-xhr-in-page-dismissal का इस्तेमाल कर सकते हैं. यह अस्थायी "ऑप्ट-आउट" उपाय है और हम Chrome 88 से इस फ़्लैग को हटाने की उम्मीद करते हैं.

इस बारे में और विकल्पों के बारे में जानने के लिए, पेज खारिज करने के दौरान सिंक्रोनस XMLHTTPRequest() को अनुमति न देना देखें.

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

फ़ाइल ट्रांसफ़र प्रोटोकॉल (एफ़टीपी) की सुविधा अब काम नहीं करती

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

Chrome 72 ने फ़ाइल ट्रांसफ़र प्रोटोकॉल (एफ़टीपी) पर दस्तावेज़ के सबरिसॉर्स को फ़ेच करने और टॉप लेवल एफ़टीपी संसाधनों को रेंडर करने की सुविधा हटा दी है. फ़िलहाल, एफ़टीपी यूआरएल पर नेविगेट करने पर संसाधन के टाइप के आधार पर, आपको डायरेक्ट्री लिस्टिंग या डाउनलोड दिखेगा. Google Chrome 74 और उसके बाद के वर्शन में एक गड़बड़ी की वजह से, एचटीटीपी प्रॉक्सी पर एफ़टीपी यूआरएल को ऐक्सेस करने का विकल्प बंद हो गया. Google Chrome 76 में एफ़टीपी के लिए प्रॉक्सी सहायता पूरी तरह से हटा दी गई है.

Google Chrome के एफ़टीपी लागू करने की बची हुई सुविधाएं, एन्क्रिप्ट (सुरक्षित) नहीं किए गए कनेक्शन पर डायरेक्ट्री लिस्टिंग दिखाने या संसाधन डाउनलोड करने तक सीमित हैं.

सुविधा बंद होने की टाइमलाइन, अस्थायी रूप से इस तरह सेट की गई है:

Chrome 80 (फ़रवरी 2020 में स्थिर)

गैर-एंटरप्राइज़ क्लाइंट के लिए, एफ़टीपी की सुविधा डिफ़ॉल्ट रूप से बंद रहती है. हालांकि, --enable-ftp या --enable-features=FtpProtocol कमांड-लाइन फ़्लैग का इस्तेमाल करके, एफ़टीपी को चालू किया जा सकता है. इसके अलावा, chrome://flags पर #enable-ftp विकल्प का इस्तेमाल करके, इसे चालू किया जा सकता है.

Chrome 81 (मार्च 2020 में स्थिर)

सभी Chrome इंस्टॉलेशन के लिए फ़ाइल ट्रांसफ़र प्रोटोकॉल (एफ़टीपी) डिफ़ॉल्ट रूप से बंद रहता है, लेकिन --enable-ftp या --enable-features=FtpProtocol कमांड-लाइन फ़्लैग का इस्तेमाल करके इसे चालू किया जा सकता है.

Chrome 82 (अप्रैल 2020 में स्थिर)

फ़ाइल ट्रांसफ़र प्रोटोकॉल (एफ़टीपी) की सुविधा पूरी तरह से हटा दी जाएगी.

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

पेज अनलोड के दौरान पॉप-अप को अनुमति न दें

अनलोड के दौरान, हो सकता है कि पेज, नया पेज खोलने के लिए window.open() का इस्तेमाल न कर पाएं. Chrome पॉप-अप ब्लॉकर ने पहले ही इस पर पाबंदी लगा दी है. हालांकि, अब इस पर पाबंदी है, भले ही पॉप-अप ब्लॉकर चालू हो या नहीं.

अनलोड के दौरान पॉप-अप की अनुमति देने के लिए, एंटरप्राइज़ AllowPopupsDuringPageUnload नीति के फ़्लैग का इस्तेमाल कर सकते हैं. Chrome को उम्मीद है कि वह Chrome 82 से यह फ़्लैग हटा देगा.

हटाएं | Chromestatus Tracker | Chromium की गड़बड़ी

नॉन-ऑरिजिन-क्लीन ImageBitmap से सीरियलाइज़ेशन और ट्रांसफ़र करने की प्रोसेस को हटाया गया

अब जब कोई स्क्रिप्ट किसी नॉन-ऑरिजिन-क्लीन ImageBitmap को सीरियलाइज़ करने या ट्रांसफ़र करने की कोशिश करती है, तो गड़बड़ियां आ जाती हैं. नॉन-ऑरिजिन-क्लीन ImageBitmap वह इमेज है जिसमें क्रॉस-ऑरिजिन वाली ऐसी इमेज का डेटा होता है जिसकी पुष्टि सीओआरएस लॉजिक से नहीं की गई हो.

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

प्रोटोकॉल हैंडलिंग के लिए, अब सुरक्षित कॉन्टेक्स्ट ज़रूरी है

registerProtocolHandler() और unregisterProtocolHandler() तरीकों के लिए, अब सुरक्षित कॉन्टेक्स्ट ज़रूरी है. ये तरीके, क्लाइंट की स्थितियों को फिर से कॉन्फ़िगर कर सकते हैं. इन तरीकों से, किसी नेटवर्क पर संभावित संवेदनशील जानकारी के ट्रांसमिशन की अनुमति मिलती है.

registerProtocolHandler() तरीके से वेबपेज को, उपयोगकर्ता की सहमति के बाद प्रोटोकॉल मैनेज करने के लिए, खुद को रजिस्टर करने का तरीका मिलता है. उदाहरण के लिए, mailto: स्कीम को मैनेज करने के लिए, वेब पर आधारित ईमेल ऐप्लिकेशन रजिस्टर कर सकता है. इस unregisterProtocolHandler() तरीके का इस्तेमाल करके, किसी साइट को प्रोटोकॉल मैनेज करने वाले अपने रजिस्ट्रेशन की प्रक्रिया रद्द करने की अनुमति मिल जाती है.

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

वेब कॉम्पोनेंट v0 को हटाया गया

वेब कॉम्पोनेंट v0 को अब Chrome से हटा दिया गया है. वेब कॉम्पोनेंट v1 एपीआई एक ऐसा वेब प्लैटफ़ॉर्म स्टैंडर्ड है जिसे Chrome, Safari, Firefox, और (जल्द ही) Edge में शिप किया गया है. अपग्रेड करने के बारे में दिशा-निर्देश पाने के लिए, वेब कॉम्पोनेंट अपडेट: v1 एपीआई में अपग्रेड करने के ज़्यादा समय के बारे में पढ़ें. नीचे दी गई सुविधाएं अब हटा दी गई हैं. इस रोक में नीचे दिए गए आइटम शामिल हैं.

कस्टम एलिमेंट

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

एचटीएमएल इंपोर्ट

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

शैडो DOM

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

आर्बिट्रेरी एलिमेंट के लिए -webkit-appearance:बटन हटाएं

-webkit-appearance:button को इस तरह बदलता है कि वह सिर्फ़ <button> और <input> बटन के साथ काम करे. अगर button ऐसे एलिमेंट के लिए तय किया गया है जो काम नहीं करता, तो एलिमेंट डिफ़ॉल्ट रूप से दिखता है. अन्य सभी -webkit-appearance कीवर्ड पर पहले से ही यह प्रतिबंध लागू है.

हटाएं | Chrome प्लैटफ़ॉर्म की स्थिति | Chromium की गड़बड़ी

वर्शन रोकने की नीति

प्लैटफ़ॉर्म को बेहतर बनाए रखने के लिए, हम कभी-कभी वेब प्लैटफ़ॉर्म से ऐसे एपीआई हटा देते हैं जो अपना काम पूरा कर चुके हैं. हम किसी एपीआई को कई वजहों से हटा सकते हैं, जैसे:

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

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

फ़िलहाल, Chrome में एपीआई को रोकने और हटाने की प्रोसेस है, खास तौर पर:

  • blink-dev ईमेल पाने वाले लोगों की सूची में सूचना दें.
  • पेज पर इस्तेमाल का पता चलने पर, Chrome DevTools कंसोल में चेतावनियां सेट करें और टाइम स्केल दें.
  • इंतज़ार करें, निगरानी करें, और फिर इस्तेमाल में कमी आने पर सुविधा हटा दें.

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