আমি যখন ক্রোমে কোনও লিঙ্ক ঘুরে দেখি তখন কী হয়?


40

যখন এই লিঙ্কটি ( http://a//%%30%30) গুগল ক্রোমে ক্লিক করা হয় তখন ক্রোম সমস্ত ট্যাব এবং দৃষ্টান্তগুলি বন্ধ করে এবং বন্ধ করে দেয়।

তবে, কিছু ক্ষেত্রে আমার কেবল লিঙ্কটি ঘুরে বেড়াতে হবে এবং ট্যাব ক্র্যাশ হয়ে গেছে।

আমি যখন এই লিঙ্কটি ঘুরে দেখি তখন কী হয়? আমি বোঝাতে চাইছি, যখন কোনও লিঙ্কটি আটকানো থাকে তখন Chrome কী করবে?


12
এখানে একটি বড় টম স্কট যে ভিডিওটি সে যা মনে সম্পর্কে আলোচনা ক্রোম ঘটছে হয় youtube.com/watch?v=0fw5Cyh21TE
DLeh

5
এই বাগটি Chrome 45.0.2454.101 এ স্থির করা হয়েছিল । এটি ক্রোমে 45.0.2454.99 এ উপস্থিত ছিল ।
বেল্টিক

বাগ সংশোধন করা হয় না ক্রোম 45.0.2454.101 সংশোধন (ম্যাক OS 10.10.5 Chrome- এ অন্তত এখনও বিপর্যয় হয় না)।
গণিত

উত্তর:


42

দুর্ঘটনায় একটি সম্প্রতি আবিষ্কৃত বাগ কারণে ক্রোম এবং অন্যান্য - ওয়েবকিট ব্রাউজার (!) * - বিশেষভাবে পারেন এর সাথে সম্পর্কিত %%30%30, %0%30বা %%300URL এর অংশ হিসেবে যা অভ্যন্তরীণভাবে সব শেষ একই প্রতীক প্রতিনিধিত্বমূলক আপ: নাল । আপনি এখানে বাগ সম্পর্কে আরও পড়তে পারেন ।

এটি কোনও ত্রুটি নয় যা বেশিরভাগ লিঙ্কগুলিকে প্রভাবিত করে, তাই আপনাকে সাধারণত লিঙ্কগুলির উপর ঘোরানোর বিষয়ে চিন্তা করতে হবে না।

দ্রষ্টব্য:
* অন্যান্য ওয়েবকিট ব্রাউজারগুলিতে সাফারি, অপেরা, স্টিম ব্রাউজার, মিডোরি, এস 60 (সিম্বিয়ান), ব্ল্যাকবেরি ব্রাউজার এবং প্লেস্টেশন 3 এর ব্রাউজার রয়েছে - তবে ফায়ারফক্স, ইন্টারনেট এক্সপ্লোরার বা এজ নয়।

সম্পাদনা করুন: ডেলটিক পয়েন্ট আউট হিসাবে এই বাগটি এখন Chrome 45.0.2454.101 এ স্থির করা হয়েছে ।

কী হয় সে সম্পর্কে আরও

সমস্যাটি ইউআরএল ক্যানোনিকালাইজারের সাথে সম্পর্কিত , যা আপনি কোনও লিঙ্কের উপরে উঠার সাথে সাথেই চলে poss সম্ভবত ব্রাউজারের স্ট্যাটাস বারে লিঙ্কটি প্রদর্শন করার জন্য এবং ওয়েবপৃষ্ঠাটি প্রিফেচিংয়ের জন্য যাতে একবার ক্লিক করলে এটি দ্রুত লোড হয়।

করুন: URL canonicalizer ভূমিকা হিসাবে
যখন একটি URL লেখা আছে HTML, এটা যেমন যেমন একটি ফর্ম লেখা যেতে পারে /homeবা ../../homeকিন্তু ব্রাউজার এই URL মতো সহজেই একটি প্রোটোকল এবং একটি ডোমেনের সাথে কিছু অনুবাদ করতে প্রয়োজন http://superuser.com/home। উপরন্তু URL টি থাকতে পারে URL টি থেকে পালানো যে প্রয়োজন হবে অনূদিত , এবং এই বেরিয়ে হয় শতাংশ এনকোড মত %%30%30। (ইউআরএল এর আরও পরিস্কার তালিকা এখানে পালাতে পারে )।
এই ইউআরএল অনুবাদটি হ্যান্ডল করার কার্যকারিতা হ'ল ক্রাশের অবসান হচ্ছে কেননা এটি ইনপুট গ্রহণ করে যা বিকাশকারীরা আশা / হ্যান্ডেল করেনি।

এখানে কোড পরিবর্তন করে সমস্যা সংশোধন একটি সারসংক্ষেপ:

ইউআরএল পাথগুলিতে সমস্যাযুক্ত নেস্টেড পলায়নের সঠিকভাবে পরিচালনা করুন।

বিশেষত, যদি ইনপুটটিতে আনস্কেপিংয়ের ফলে আউটপুট ইউআরএলটি একটি নতুন পালানো ক্রম থাকে, উদাহরণস্বরূপ, ইনপুটটিকে "%% 30% 30" ""% 00 "তে রূপান্তরিত করে, আউটপুট নিশ্চিত করতে নেতৃস্থানীয় '%' কে"% 25 "হিসাবে পালাতে হবে সিকোয়েন্সটি একটি নতুন বৈধ পালানোর ক্রম হিসাবে বিবেচনা করা হয় না।

এটি নিশ্চিত করে যে দ্বিতীয় বার একই ইউআরএলটিকে আধ্যাত্মিককরণ করা এতে কোনও পরিবর্তন আনবে না, যা ডিবাগ এবং রিলিজ উভয় ক্ষেত্রেই বিভিন্ন জায়গায় ক্র্যাশ এবং অন্যান্য বাগগুলি এড়ানোর জন্য গুরুত্বপূর্ণ।


3
স্পষ্টতার জন্য, ফায়ারফক্স বা আইই 11
ডেভ

6
অপেরা বিবেচনা করা ক্রোম ইঞ্জিনের উপর ভিত্তি করে যা এটি ক্র্যাশ করে যা হতবাক নয়। একাধিক রেন্ডারিং ইঞ্জিন থাকার কারণটি ভাল জিনিস।
রামহাউন্ড

8
তবে কেন এটি হোভারে ঘটে ? মানে, আমি যখন কোনও লিঙ্ক ঘুরে দেখি, তখন কোনও অনুসন্ধান নেই, কেন এটি ক্র্যাশ হয়?
লিনকিউ

4
এটি বাগের কারণ কী তা এখনও পরিষ্কার নয় তবে কিছু লোক মনে করে এটি এর সাথে সম্পর্কিত URL canonicalizerযা সম্ভবত আপনি কোনও লিঙ্কের উপর দিয়ে ঘুরে দেখার সাথে সাথে চলতে শুরু করে, সম্ভবত ব্রাউজারের স্ট্যাটাস বারে লিঙ্কটি প্রদর্শনের জন্য? আমি আপনাকে একটি নির্দিষ্ট উত্তর দিতে পারি না, তবে এইচটিএমএলতে যখন কোনও ইউআরএল লেখা হয়, তখন এটি কোনও ফর্মের মধ্যে /homeবা যেমন লেখা যেতে পারে ../../homeতবে ব্রাউজারগুলিকে এই ইউআরএলটিকে প্রোটোকল এবং একটি ডোমেনের সাথেও অনুবাদ করতে হবে, যেমন http://superuser.com/home, সম্ভবত ক্রিয়াকলাপটি হ্যান্ডলিং যা ক্রাশ শেষ করছে, কারণ এটি অপ্রত্যাশিত ইনপুট গ্রহণ করে?
মিয়ালিস

15
@ জ্যাফারসউইউনো আপনি যখন কোনও লিঙ্কের উপরে ঘুরে দেখেন, ক্রোম এটিকে নীচের বাম কোণে প্রদর্শন করে। এটির জন্য বিশেষভাবে এনকোড করা অক্ষরের "অনুবাদ" সহ কিছু প্রক্রিয়াজাতকরণ প্রয়োজন। এই প্রক্রিয়াটি বাগিচা, এবং পুরো প্রোগ্রামটি ক্রাশের কারণ ঘটায়।
ফ্যাবিও মনিকাকে

11

যেমন ফ্যাবিও তুরতী বলেছেন,

আপনি যখন কোনও লিঙ্কের উপরে ঘুরে দেখেন, ক্রোম এটিকে নীচের বাম কোণে প্রদর্শন করে। এটির জন্য বিশেষভাবে এনকোড করা অক্ষরের "অনুবাদ" সহ কিছু প্রক্রিয়াজাতকরণ প্রয়োজন।

তবে আপনার পোস্ট এবং মন্তব্য থেকে আমি মনে করি যে আপনি পটভূমিতে লিঙ্কটির সাথে ক্রোম সংযোগ স্থাপন করেছে কিনা সে সম্পর্কে আপনি বেশি উদ্বিগ্ন। এটি করে , অন্য আধুনিক ব্রাউজারগুলি ( ফায়ারফক্স , অপেরা ) করে। আপনি ক্রোমের পছন্দগুলিতে প্রিফেচিং অক্ষম করতে চাইতে পারেন, বা আরও গোপনীয়তার সেটিংস পাওয়ার জন্য ইউব্লক অরিজিন ইনস্টল করতে পারেন।


6

এখানে ঠিক কী ঘটেছিল সে সম্পর্কে আমি আরও কিছু স্পষ্টতা দিতে চেয়েছিলাম।

মূলত,% 30 হ'ল ইউআরএল-এনকোড 0, এবং% 00 হ'ল ইউআরএল-এনকোডেড নুল (যা বাইনারিতে 0000 0000 হিসাবে প্রদর্শিত হয়)। সুতরাং আপনার যদি এমন একটি URL থাকে যা নীস্টে এনকোডেড অক্ষরযুক্ত নেস্টেড এনকোডযুক্ত অক্ষর রাখে, ত্রুটি ঘটে।

কোনও ইউআরএলকে আধ্যাত্মিককরণ করার সময় ক্রোম নিম্নলিখিতগুলি করে (উত্স: https://code.google.com/p/chromium/issues/detail?id=533361#c13 ):

  • একটি "ইনপুট স্ট্রিং" HTTP: //a.com/%%30%3030 "" http://a.com/%00 "এ অনস্কেপড এবং একটি বৈধ GURL হিসাবে বিবেচিত।
  • এই জিআরএলকে শেষ পর্যন্ত জিআরএল টোডাটাবেস ইউআরএল প্রেরণ করা হয়েছে, যেটি এতে ব্যবহারকারীর নাম এবং পাসওয়ার্ড ছিনিয়ে নেওয়ার জন্য এর প্রতিস্থাপনকারী সংস্থাগুলিকে কল করে।
  • প্রতিস্থাপনের উপাদানগুলি () ইউআরএলটিকে পুনরায় ক্যানোনিকালাইজ করে।
  • পাথের ক্যানোনিকালাইজেশন "% 00" অনুক্রমটিকে হিট করে, আনস্কেপগুলি দেখায় এটি 0 টি চর যা ইউআরএলগুলিতে অবৈধ, পালিয়ে যায়, তবে ফলাফলটি URL টি অবৈধ হিসাবে চিহ্নিত করে।
  • আমরা একবার জিআরএল টোডাটাবেস ইউআরএল () এ ফিরে এলে এটি নতুন বৈধ হওয়ার জন্য প্রত্যাশা করে .spec () কল করে, যেহেতু ইনপুট URL টি বৈধ হওয়ার গ্যারান্টিযুক্ত ছিল এবং আমরা কেবল ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরিয়েছি। এই DCHECKs।

সুতরাং ইউআরএলটি প্রথমে বৈধ হিসাবে বিবেচিত হবে তবে কিছু ব্যক্তিগত ডেটা অপসারণের পরে এটি অবৈধ। যাইহোক, সেই ডেটা অপসারণের পরে, সেই নির্দিষ্ট কোড হিসাবে পরিচিত ফাংশনটি একটি বৈধ URL টি প্রত্যাশা করে।

এই ইউআরএলটিকে অবৈধ বলে বিবেচিত হওয়ার কারণের একটি কারণ হ'ল এনআরএল বেশ কয়েকটি পুরানো সফ্টওয়্যার এবং ভাষায় স্ট্রিংয়ের সমাপ্তি নির্দেশ করার জন্য ব্যবহৃত হয় (কারণ এটি মূলত একটি লাইনে 8 টি শূন্য, যা কম্পিউটারের জন্য সনাক্ত করা সহজ)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.