NPAPI
نیٹ اسکیپ پلگ ان ایپلیکیشن پروگرامنگ انٹرفیس (این پی اے پی آئی) ویب براؤزرز کا ایک فرسودہ ایپلیکیشن پروگرامنگ انٹرفیس (اے پی آئی) ہے جو پلگ ان کو مربوط کرنے کی اجازت دیتا ہے۔ ابتدائی طور پر نیٹ اسکیپ براؤزرز کے لیے تیار کیا گیا، جس کا آغاز 1995 میں نیٹ اسکیپ نیویگیٹر 2 کے ساتھ ہوا، بعد میں اسے دوسرے براؤزرز نے اپنا لیا۔ این پی اے پی آئی فن تعمیر میں، ایک پلگ ان مواد کی اقسام کا اعلان کرتا ہے (جیسے۔ "آڈیو/ایم پی 3") جسے یہ سنبھال سکتا ہے۔ جب براؤزر کسی مواد کی قسم کا سامنا کرتا ہے تو وہ مقامی طور پر ہینڈل نہیں کر سکتا، یہ مناسب پلگ ان کو لوڈ کرتا ہے، براؤزر کے سیاق و سباق میں پلگ ان کو پیش کرنے کے لیے جگہ الگ کرتا ہے اور پھر اس میں ڈیٹا کو اسٹریم کرتا ہے۔ پلگ ان ڈیٹا فراہم کرنے کا ذمہ دار ہے۔ پلگ ان صفحہ کے اندر جگہ جگہ چلتا ہے، جیسا کہ پرانے براؤزرز کے برعکس جن کو نامعلوم مواد کی اقسام کو سنبھالنے کے لیے بیرونی ایپلی کیشن لانچ کرنی پڑتی تھی۔ این پی اے پی آئی کے لیے ہر پلگ ان کی ضرورت ہوتی ہے کہ وہ پلگ ان کے مواد کو شروع کرنے، بنانے، حذف کرنے اور پوزیشننگ کے لیے تقریبا 15 افعال کو نافذ کرے اور بے نقاب کرے۔ این پی اے پی آئی اسکرپٹنگ، پرنٹنگ، فل اسکرین پلگ ان، ونڈو لیس پلگ ان اور مواد اسٹریمنگ کی بھی حمایت کرتا ہے۔ این پی اے پی آئی اکثر ان پلگ انز کے لیے استعمال کیا جاتا تھا جن کے لیے گہری، نچلی سطح کی کارکردگی کی ضرورت ہوتی تھی جیسے ویڈیو پلیئرز، بشمول ایڈوب فلیش پلیئر اور مائیکروسافٹ سلور لائٹ، نیز ویب ایپلی کیشنز کے لیے پلیٹ فارم جیسے جاوا رن ٹائم انوائرمنٹ۔ بڑے براؤزرز میں این پی اے پی آئی سپورٹ 2015 سے کم ہونا شروع ہوئی اور اگلے 7 سالوں میں اسے بتدریج ختم کر دیا گیا۔ ایچ ٹی ایم ایل 5 کی آمد کے ساتھ، تمام بڑے ویب براؤزرز نے حفاظتی وجوہات کی بنا پر تھرڈ پارٹی این پی اے پی آئی پلگ انز کے لیے سپورٹ کو ہٹا دیا ہے۔ اسکرپٹنگ سپورٹ اسکرپٹنگ ایک خصوصیت ہے جو ویب پیج میں جاوا اسکرپٹ کوڈ کو پلگ ان کے ساتھ تعامل کرنے کی اجازت دیتی ہے۔ نیٹ اسکیپ اور پھر موزیلا کے مختلف ورژنوں نے لائیو کنیکٹ، ایکس پی کنیکٹ، اور این پی آر ان ٹائم سمیت مختلف ٹیکنالوجیز کا استعمال کرتے ہوئے اس فیچر کی حمایت کی۔ لائیو کنیکٹ ویب براؤزرز کی ایک خصوصیت ہے جو جاوا اور جاوا اسکرپٹ سافٹ ویئر کو ویب پیج کے اندر باہم بات چیت کرنے کی اجازت دیتی ہے۔ جاوا کی طرف سے یہ ایک ایپلٹ کو کسی صفحہ کے سرایت شدہ اسکرپٹ کو مدعو کرنے، یا بلٹ ان جاوا اسکرپٹ ماحول تک رسائی حاصل کرنے کی اجازت دیتا ہے، جتنا اسکرپٹ کر سکتے ہیں۔ اس کے برعکس، جاوا اسکرپٹ کی طرف سے، یہ ایک اسکرپٹ کو ایپلٹ کے طریقوں کو استعمال کرنے، یا جاوا رن ٹائم لائبریریوں تک رسائی حاصل کرنے کی اجازت دیتا ہے، جتنا کہ ایپلٹ کر سکتے ہیں۔ لائیو کنیکٹ کا استعمال نیٹ اسکیپ 4 میں این پی اے پی آئی پلگ ان کی اسکرپٹیبلٹی کو نافذ کرنے کے لیے کیا گیا تھا۔ لائیو کنیکٹ کے اوپن جاوا انٹرفیس پر منحصر نفاذ کو موزیلا 2 کی صفائی کی کوشش کے حصے کے طور پر جون 2009 کے آخر میں موزیلا سورس کوڈ ٹری سے ہٹا دیا گیا تھا۔ سن مائیکرو سسٹمز سے دوبارہ ڈیزائن کردہ جاوا رن ٹائم انوائرمنٹ کی ریلیز کے ساتھ اب اس کی ضرورت نہیں ہے۔ تاہم گیکو 1.9.2 کے لیے پرانے نفاذ کو بحال کر دیا گیا تھا، کیونکہ ایپل نے ابھی تک نئے جے آر ای کو میک او ایس ایکس پر پورٹ نہیں کیا تھا۔ اوپن جاوا انٹرفیس کے مخصوص نقطہ نظر کو ترک کیے جانے کے باوجود، دوبارہ ڈیزائن کیے گئے جاوا رن ٹائم انوائرمنٹ کے تعاون سے جاوا-جاوا اسکرپٹ کی فعالیت کو اب بھی "لائیو کنیکٹ" کہا جاتا ہے۔ نیٹ اسکیپ 4 کے ساتھ، این پی اے پی آئی کو بڑھایا گیا تاکہ پلگ ان کو اسکرپٹ کیا جا سکے۔ اس توسیع کو لائیو کنیکٹ کہا جاتا ہے۔ ایک پلگ ان جاوا کلاس کو لاگو کر سکتا ہے اور اس کی ایک مثال کو بے نقاب کر سکتا ہے۔ کلاس کو جاوا اسکرپٹ اور پیج کے اندر چلنے والے جاوا ایپلٹس سے بلایا جا سکتا ہے۔ لائیو کنیکٹ کا نقصان یہ ہے کہ یہ نیٹ اسکیپ براؤزر میں سرایت شدہ جاوا کے ورژن سے بہت زیادہ جڑا ہوا ہے۔ اس نے براؤزر کو جاوا کے دوسرے رن ٹائم استعمال کرنے سے روک دیا، اور براؤزر کے ڈاؤن لوڈ سائز میں اضافہ کر دیا، کیونکہ اس کے لیے جاوا کو اسکرپٹ پلگ ان کی ضرورت تھی۔ مزید برآں، لائیو کنیکٹ پروگرام کرنا مشکل ہے: ڈویلپر کو پلگ ان کے لیے جاوا کلاس کی وضاحت کرنی ہوتی ہے، اسے ایک خصوصی جاوا ہیڈر مرتب کے ذریعے چلانا ہوتا ہے، اور مقامی طریقوں کو نافذ کرنا ہوتا ہے۔ سی + + سے سٹرنگز، مستثنیات، اور دیگر جاوا آبجیکٹ کو ہینڈل کرنا غیر واضح ہے۔ اس کے علاوہ، لائیو کنیکٹ جاوا سے مقامی سی + + کالز کو مدعو کرنے کے لیے ایک سابقہ اور اب متروک ایپلیکیشن پروگرامنگ انٹرفیس (اے پی آئی) کا استعمال کرتا ہے، جسے جے آر آئی کہا جاتا ہے۔ جے آر آئی ٹیکنالوجی کو طویل عرصے سے جے این آئی نے تبدیل کر دیا ہے۔ ایکس پی کنیکٹ ایکس پی کنیکٹ (کراس پلیٹ فارم کنیکٹ) ایک ایسی ٹیکنالوجی ہے جو ایکس پی سی او ایم اور جاوا اسکرپٹ کے درمیان آسان تعامل کو قابل بناتی ہے۔ آبجیکٹ کنکشن ایکس پی کنیکٹ جاوا اسکرپٹ آبجیکٹ کو ایکس پی سی او ایم آبجیکٹ تک شفاف طریقے سے رسائی اور ہیرا پھیری کرنے کی اجازت دیتا ہے۔ یہ جاوا اسکرپٹ آبجیکٹ کو ایکس پی سی او ایم کے مطابق انٹرفیس پیش کرنے کے قابل بناتا ہے جسے ایکس پی سی او ایم آبجیکٹ کہتے ہیں۔ ایک اہم مقصد یہ ہے کہ ایکس پی سی او ایم طرز کے انٹرفیس کے دونوں طرف سے بات چیت کرنے والی اشیاء کو عام طور پر انٹرفیس کے دوسری طرف موجود آبجیکٹ کی نفاذ کی زبان کے بارے میں جاننے یا اس کی پرواہ کرنے کی ضرورت نہیں ہونی چاہیے۔ ایکس پی کنیکٹ کے وجود کی بنیادی وجہ ان جگہوں پر استعمال ہونے والے ہاتھ سے لکھے ہوئے کوڈ کو تبدیل کرنا ہے جہاں مقامی کوڈ کو جاوا اسکرپٹ کوڈ کے ساتھ تعامل کرنے کی ضرورت ہے۔ ایک مثال ڈی او ایم ماڈیول ہے۔ سیکیورٹی مکمل مراعات صرف کروم اسکرپٹ کو ڈیفالٹ طور پر دی جاتی ہیں، یعنی۔ اسکرپٹ جو ایپلی کیشن یا ایکسٹینشن کا حصہ ہیں۔ دور دراز ایچ ٹی ایم ایل/ایکس ایچ ٹی ایم ایل/ایکس یو ایل دستاویزات کے لیے، زیادہ تر ایکس پی سی او ایم آبجیکٹ اسکرپٹ کے ذریعے قابل رسائی نہیں ہیں کیونکہ انہیں حفاظتی وجوہات کی بنا پر محدود مراعات حاصل ہیں۔ یہاں تک کہ اگر وہ قابل رسائی ہیں (جیسے۔ ایکس ایم ایل ایچ ٹی ٹی پی ریکوسٹ آبجیکٹ)، معمول کی حفاظتی پابندیاں بھی مل سکتی ہیں (جیسے۔ دوسرے ڈومین کے یو آر ایل نہیں کھول سکتے)۔ موزیلا پہلے سے ہی C + + میں نافذ کردہ بہت سے اشیاء کے انٹرفیس کی وضاحت کے لیے XPCOM کا استعمال کر رہا تھا۔ ہر انٹرفیس کو ایک آئی ڈی ایل فائل کے ذریعے بیان کیا گیا تھا، اور ایک آئی ڈی ایل مرتب کے ذریعے چلایا جاتا تھا جس نے ہیڈر فائلیں تیار کیں اور ایک زبان غیر جانبدار قسم کی لائبریری جو انٹرفیس کی بائنری نمائندگی تھی۔ اس بائنری نے انٹرفیس، طریقوں، پیرامیٹرز، ڈیٹا ڈھانچے اور گنتی کو بیان کیا۔ ایکس پی کنیکٹ مختلف تھریڈ سیاق و سباق کے درمیان اور جاوا اسکرپٹ اور مقامی طور پر مرتب کردہ سی + + کے درمیان مارشل کالز کے لیے ٹائپ لائبریری کی معلومات کا استعمال کرتا ہے۔ ایکس پی کنیکٹ پورے موزیلا میں بڑے پیمانے پر استعمال ہوتا ہے۔ نیٹ اسکیپ 6.1 اور موزیلا 0.1.2 سے شروع کرتے ہوئے، این پی اے پی آئی کو بڑھایا گیا، تاکہ ایک پلگ ان ایک اسکرپٹ ایبل انٹرفیس کو اپنے پاس واپس کر سکے اور ایکس پی کنیکٹ جاوا اسکرپٹ اور سی + + کے نفاذ سے اس پر مارشل کال کرے۔ ایکس پی کنیکٹ میں کوئی جاوا انحصار نہیں ہے۔ تاہم، ٹیکنالوجی ایکس پی سی او ایم پر مبنی ہے۔ اس طرح اسکرپٹنگ کو لاگو کرنے کے لیے پلگ ان ڈویلپر کو حوالہ شمار، انٹرفیس اور آئی ڈی ایل سے واقف ہونا چاہیے۔ ایکس پی سی او ایم پر انحصار کچھ متحرک لنکنگ کے مسائل کا باعث بنا (جیسے۔ نازک بیس کلاس کا مسئلہ) جسے پلگ ان کے مختلف براؤزرز کے ساتھ صحیح طریقے سے کام کرنے سے پہلے حل کرنا تھا۔ اس کے بعد سے ایکس پی سی او ایم کو اس طرح کے مسائل کو حل کرنے کے لیے ایک مستحکم طور پر منسلک ورژن فراہم کرنے کے لیے تبدیل کر دیا گیا ہے۔ اس نقطہ نظر کے لیے ڈائنامک لنک لائبریری (ڈی ایل ایل) کے ساتھ ایک ایکس پی ٹی فائل نصب کرنے کی بھی ضرورت ہوتی ہے ؛ بصورت دیگر پلگ ان کام کرتا دکھائی دیتا ہے، لیکن اسکرپٹنگ نہیں ہوتی، جس سے الجھن پیدا ہوتی ہے۔ این پی آر ان ٹائم 2004 کے آخر میں، این پی اے پی آئی استعمال کرنے والی تمام بڑی براؤزر کمپنیوں نے این پی آر ان ٹائم پر اصل این پی اے پی آئی کی توسیع کے طور پر اسکرپٹنگ کی فراہمی پر اتفاق کیا، ایک اے پی آئی کے ذریعے جو اسٹائل میں پرانے سی اسٹائل این پی اے پی آئی سے ملتا جلتا ہے اور جاوا یا ایکس پی سی او ایم جیسی دیگر براؤزر ٹیکنالوجیز سے آزاد ہے۔ اسے صرف فائر فاکس ای ایس آر (ایکسٹینڈڈ سپورٹ ریلیز) اور سفاری کی حمایت حاصل ہے۔ اے پی آئی کی عمر، سیکیورٹی کے مسائل، اور ایچ ٹی ایم ایل 5 جیسی متبادل ٹیکنالوجیز کو اپنانے کی وجہ سے، بہت سے سافٹ ویئر فروشوں نے 2013 میں این پی اے پی آئی سپورٹ کو مرحلہ وار ختم کرنا شروع کیا۔ انٹرنیٹ ایکسپلورر انٹرنیٹ ایکسپلورر ورژن 3 سے 5.5 ایس پی 2 نے این پی اے پی آئی کی حمایت کی، جس سے نیٹ اسکیپ نیویگیٹر میں کام کرنے والے پلگ ان انٹرنیٹ ایکسپلورر میں کام کر سکتے ہیں۔ سپورٹ ایک چھوٹے سے ایکٹو ایکس کنٹرول (جس کا نام "plugin.ocx" ہے) کے ذریعے آیا جس نے ایکٹو ایکس اور این پی اے پی آئی پلگ ان کے درمیان شیم کے طور پر کام کیا۔ مائیکروسافٹ نے حفاظتی وجوہات کی بنا پر ورژن 5.5 ایس پی 2 میں سپورٹ چھوڑ دی۔ گوگل کروم گوگل کروم نے ستمبر 2015 میں تمام پلیٹ فارمز سے تمام این پی اے پی آئی سپورٹ کو مستقل طور پر ختم کر دیا۔ ستمبر 2013 میں، گوگل نے اعلان کیا کہ وہ 2014 کے دوران اپنے گوگل کروم براؤزر میں این پی اے پی آئی سپورٹ کو مرحلہ وار ختم کر دے گا، یہ کہتے ہوئے کہ "[اس کا] 90 کی دہائی کا فن تعمیر ہینگ، کریش، سیکیورٹی واقعات اور کوڈ کی پیچیدگی کی ایک اہم وجہ بن گیا ہے"۔ مئی 2014 میں، این پی اے پی آئی سپورٹ کو کروم 35 اور اس کے بعد کے لینکس ورژن سے ہٹا دیا گیا تھا۔ اپریل 2015 میں، کروم برائے ونڈوز اور او ایس ایکس (ورژن 42 اور اس کے بعد کے) نے ڈیفالٹ کے طور پر این پی اے پی آئی سپورٹ کو غیر فعال کر دیا۔ تاہم، ستمبر 2015 (ورژن 45) تک، صارفین این پی اے پی آئی کو دوبارہ فعال کر سکتے تھے۔ اوپیرا اوپیرا نے مئی 2016 میں ورژن 37 کے ساتھ سپورٹ چھوڑ دی۔ مارچ 2017 میں فائر فاکس موزیلا فائر فاکس ریلیز 52.0 نے فلیش کے علاوہ این پی اے پی آئی کے لیے تمام سپورٹ کو ہٹا دیا۔ دریں اثنا، ای ایس آر چینل نے اس خصوصیت کے لیے عمومی حمایت برقرار رکھی جس میں ورژن 52 ای ایس آر آخری این پی اے پی آئی ریزورٹ تھا۔ فائر فاکس 69.0 نے ڈیفالٹ طور پر فلیش این پی اے پی آئی کو غیر فعال کر دیا۔ جنوری 2021 میں جاری ہونے والے فائر فاکس 85.0 میں، این پی اے پی آئی سپورٹ کو مکمل طور پر ہٹا دیا گیا تھا۔ ای ایس آر چینل میں، فلیش این پی اے پی آئی کے لیے سپورٹ اکتوبر 2021 میں جاری کردہ ورژن 78.15.0 کے ساتھ ختم ہو گئی۔ سفاری سفاری نے تمام این پی اے پی آئی پلگ ان کے لیے سپورٹ چھوڑ دی ہے سوائے فلیش کے ورژن 12 کے جو ستمبر 2018 میں جاری کیا گیا تھا۔ ستمبر 2020 میں ریلیز ہونے والی سفاری 14 سے فلیش سپورٹ کو ہٹا دیا گیا ہے۔ سی منکی سی منکی نے فلیش کے استثناء کے ساتھ ورژن 2.53.1 سے NPAPI پلگ ان کی حمایت کرنا بند کر دی۔ مارچ 2021 میں جاری کیے گئے سی منکی 2.53.7 میں NPAPI سپورٹ کو مکمل طور پر ہٹا دیا گیا تھا۔ سپورٹ ویب براؤزرز کی درج ذیل فہرست تمام این پی اے پی آئی پلگ انز کو سپورٹ کرتی ہے: 360 سیکیور براؤزر () یا 360 ایکسٹریم ایکسپلورر () بیسیلسک کے-میلیون (گوانا انجن) پیل مون (پیل مون فیوچر روڈ میپ) یوزبل اسی طرح کی ٹیکنالوجیز ایکٹو ایکس انٹرنیٹ ایکسپلورر اور انٹرنیٹ ایکسپلورر پر مبنی براؤزر ایکٹو ایکس کنٹرولز، ایکٹو ایکس دستاویزات اور ایکٹو ایکس اسکرپٹنگ کا استعمال کرتے ہیں تاکہ این پی اے پی آئی کے برابر پیج ایکسٹینسیبلٹی پیش کی جا سکے۔ اگرچہ عام طور پر انٹرنیٹ ایکسپلورر سے وابستہ ہے، ایکٹو ایکس انضمام کی ٹیکنالوجی ہے جو کسی بھی کمپیوٹر پروگرام کو دوسرے کمپیوٹر پروگراموں کے حصوں کو ضم کرنے کی اجازت دیتی ہے جو اس طرح کے انضمام کی حمایت کرتے ہیں۔ انٹرنیٹ ایکسپلورر، تاہم، بند کر دیا گیا ہے اور اس کے متبادل، مائیکروسافٹ ایج، ایکٹو ایکس کی حمایت نہیں کرتا ہے۔ پی پی اے پی آئی 12 اگست 2009 کو گوگل کوڈ پر ایک پیج نے مرچ نامی ایک نیا پروجیکٹ متعارف کرایا، جس سے وابستہ مرچ پلگ ان اے پی آئی (پی پی اے پی آئی) ؛ پی پی اے پی آئی این پی اے پی آئی سے ماخوذ ہے جس کا مقصد پلگ ان کو زیادہ پورٹیبل اور زیادہ محفوظ بنانا ہے۔ یہ توسیع خاص طور پر عمل سے باہر پلگ ان کے نفاذ کو آسان بنانے کے لیے ڈیزائن کی گئی ہے۔ پی پی اے پی آئی کو ابتدائی طور پر صرف گوگل کروم اور کرومیم کی حمایت حاصل تھی۔ بعد میں، دوسرے کرومیم پر مبنی براؤزرز جیسے اوپیرا اور ویولڈی نے پی پی اے پی آئی پلگ ان سپورٹ شامل کیا۔ فروری 2012 میں ایڈوب سسٹمز نے اعلان کیا کہ ایڈوب فلیش پلیئر کے مستقبل کے لینکس ورژن صرف پی پی اے پی آئی کے ذریعے فراہم کیے جائیں گے۔ پچھلی ریلیز، فلیش پلیئر 11.2، این پی اے پی آئی سپورٹ کے ساتھ، پانچ سال تک سیکیورٹی اپ ڈیٹس وصول کرے گی۔ اگست 2016 میں ایڈوب نے اعلان کیا کہ، ان کے پچھلے بیان کے برعکس، وہ دوبارہ لینکس پر این پی اے پی آئی فلیش پلیئر کو سپورٹ کرے گا اور اس کے نئے ورژن جاری کرتا رہے گا۔ اگست 2020 میں، گوگل نے اعلان کیا کہ پی پی اے پی آئی کے لیے سپورٹ کو جون 2022 میں گوگل کروم اور کرومیم سے ہٹا دیا جائے گا۔ نیٹ اسکیپ سرور ایپلیکیشن پروگرامنگ انٹرفیس (این ایس اے پی آئی) حوالہ جات موزیلا ڈویلپر سینٹر پر بیرونی لنکس پلگ ان ڈویلپمنٹ دستاویزات بھی دیکھیں، بشمول این پی اے پی آئی اے پی آئی ایک ایکٹو ایکس کنٹرول جو پلگ ان کی میزبانی کرتا ہے-انٹرنیٹ ایکسپلورر سے ہٹائے گئے plugin.ocx کا متبادل۔ پروگرامنگ نیٹ اسکیپ پلگ ان پر کتاب بذریعہ زان اولی فینٹ نکسیسا: این پی اے پی آئی پلگ ان کے لیے ایک گلو کوڈ جنریشن فریم ورک۔ اپاچی 2 لائسنس۔ این پی اے پی آئی ٹیوٹوریل بلڈنگ اے فائر فاکس پلگ ان (حصہ دو، حصہ تین، حصہ چار) اوپیرا 15 + ایکسٹینشنز دستاویزات ایپلیکیشن پروگرامنگ انٹرفیس سافٹ ویئر ایڈ آن ویب براؤزر