پریا — آپ نے پچھلے ہفتے مجھ سے پوچھا تھا کہ کیا آپ کا بنایا جانے والا قیمت گراوٹ واچر ہر منٹ پروڈکٹ پیج کو پول کرے "احتیاطاً"۔ اسے شامل کرنے سے پہلے، میں آپ کو پورا معاملہ سمجھاتا ہوں، کیونکہ پولنگ انٹرول دراصل یہاں سب سے چھوٹا فیصلہ ہے، اور شروع میں شکل درست کر لینا آپ کے لانچ سے پہلے ایک دو ریویو سائیکل بچائے گا۔
پرامپٹ سے ہی شروع کریں۔ آپ نے مجھے بتایا "ایک ایکسٹینشن جو اس پیج کو دیکھے اور بتائے جب قیمت گرے"، اور یہ خیال ٹھیک ہے مگر ابھی مکمل اسپیک نہیں ہے — بلڈر کو یہ جاننے کی ضرورت ہے کہ یہ کب عمل کرتا ہے، نہ کہ صرف یہ کہ کیا کرتا ہے۔ آپ کا واچر تین ٹریگر شکلوں میں سے تیسری ہے، اور باقی دو کو جاننا مفید ہے چاہے آپ کو ان کی ضرورت نہ ہو، کیونکہ شکل ہی پرمیشنز کا تعین کرتی ہے اور پرمیشنز آپ کے ریویو ٹائم لائن کا تعین کرتی ہیں۔
- Click-to-act سب سے سستا ہے: ایک پاپ اپ جو موجودہ پیج پر ایک بار چلتا ہے جب کوئی ٹول بار آئیکن پر کلک کرے — جیسے "اس پیج کی تمام قیمتیں لسٹ میں جمع کر لو"۔
- Always-on content script آپ کے مقرر کردہ URL پیٹرن پر خودکار طور پر چلتا ہے — یہ اس طرح کی چیز کے لیے اچھا ہے جیسے کسی ڈومین کے ہر پیج پر کسی حریف کے نام کو ہائی لائٹ کرنا، لیکن آپ کو پیٹرن واضح طور پر بتانا ہو گا، کیونکہ "ہماری اندرونی سائٹس پر" کا اندازہ آپ کی مراد سے کہیں تنگ لگایا جا سکتا ہے۔
- آپ کا معاملہ تیسری قسم کا ہے: ایک background watcher، جو ٹیب کھلا ہو یا نہ ہو، MV3 کے تحت سروس ورکر پر چلتا رہتا ہے، اور کچھ بدلنے پر آئیکن پر بیج لگاتا ہے۔
یہی وہ واحد شکل ہے جہاں بلڈر کو آپ سے ایک فالو اپ سوال پوچھنا چاہیے، اور یہ پوچھے گا — کیونکہ پولنگ نمبر ایک اصل ٹریڈ آف ہے، محض ایک رسمی بات نہیں۔
جو مجھے آپ کے "ہر منٹ" والے فطری خیال کی طرف واپس لاتا ہے۔ میں نے کچھ عرصہ پہلے تقریباً آپ ہی جیسا بلڈ کروایا تھا — کسی پیج کو دیکھنا، قیمت بدلنے پر آئیکن پر بیج لگانا — اور پہلے پاس میں یہ ہر 60 سیکنڈ میں پول کرتا تھا۔ ایک شخص کے مقامی طور پر ٹیسٹ کرنے کے لیے تو ٹھیک کام کیا۔ لیکن جتنے بھی لوگ اسے واقعی انسٹال کریں گے اس سے ضرب دیں تو آپ بلاوجہ کسی کے پروڈکٹ پیج پر بمباری کر رہے ہوں گے، کیونکہ عام ریٹیل لسٹنگ پر قیمتیں دن میں چند بار سے زیادہ نہیں بدلتیں۔ پرامپٹ میں بلڈر کو بتائیں "ہر 30 منٹ میں چیک کرو"۔ یہ کوئی سمجھوتہ نہیں، بلکہ زیادہ ایمانداری والی درخواست ہے — کسی کو براؤزر ایکسٹینشن سے منٹ سے کم وقت والے الرٹس کی ضرورت نہیں، اور بعد میں آپ خود کو شکریہ کہیں گے جب آپ کسی ریویئر کو یہ نہیں بتا رہے ہوں گے کہ آپ کا ایکسٹینشن دن میں 1,440 بار گھر فون کیوں کرتا ہے۔
وہ حصے جن کے بارے میں آپ کو سوچنے کی ضرورت نہیں
آپ نے مینی فیسٹ کے بارے میں فکرمند ہونے کا ذکر کیا تھا — فکر نہ کریں، یہ واقعی وہ واحد چیز ہے جسے آپ کو چھونے کی ضرورت نہیں۔ دونوں اسٹورز اب Manifest V3 لازمی قرار دیتے ہیں؛ MV2 نئی لسٹنگز کے لیے قبول کیا جانا بند ہو چکا ہے اور Chrome ابھی بھی لائیو MV2 ایکسٹینشنز کو فعال طور پر ختم کر رہا ہے۔ MV3 کے تحت اہم تبدیلی یہ ہے کہ آپ کا بیک گراؤنڈ لاجک ایک پرسسٹنٹ بیک گراؤنڈ پیج کی بجائے سروس ورکر کے طور پر چلتا ہے — یہ کسی ایونٹ پر فعال ہوتا ہے، براؤزر اسے ایونٹس کے درمیان بند کر سکتا ہے، اور اسٹیٹ کو chrome.storage کے ذریعے گزرنا پڑتا ہے بجائے اس کے کہ محض کسی ویری ایبل میں رہے۔ یہ بالکل وہی لائف سائیکل تفصیل ہے جسے بلڈر ڈیفالٹ کے طور پر درست لکھتا ہے۔ آپ کبھی کوئی مینی فیسٹ فائل نہیں دیکھیں گے جب تک کہ آپ خود اسے ڈھونڈنے نہ نکلیں۔
جس چیز پر آپ کو واقعی توجہ دینی چاہیے وہ پرمیشنز ہیں، کیونکہ یہی وہ چیز ہے جو یہ طے کرتی ہے کہ آپ کا ریویو کتنی تیزی سے ہوتا ہے، کوڈ نہیں۔ آپ کے واچر کو پولنگ کے لیے alarms چاہیے اور غالباً storage آخری قیمت یاد رکھنے کے لیے — اسے tabs یا <all_urls>کی ضرورت نہیں ہے، اور اگر آپ "مستقبل میں کسی بھی سائٹ پر کام کرنے کی صلاحیت" مانگتے ہیں کیونکہ آپ اسے بعد میں توسیع دے سکتے ہیں، تو بلڈر اسی کے مطابق بنائے گا اور آپ ایسے فیچر کے لیے وسیع ہوسٹ رسائی مانگ رہے ہوں گے جو ابھی موجود ہی نہیں ہے۔ یہی انسٹال ڈائیلاگ کی سب سے ڈرانے والی لائن ہے — "read and change data on every site you visit" — اور یہی چیز خودکار ریویو کو دستی ریویو میں بدل دیتی ہے۔ آج جو یہ کرتا ہے وہی بیان کریں۔ اگر واقعی ضرورت ہو تو بعد میں اسے وسیع کریں۔
اسے مکمل قرار دینے سے پہلے مزید دو چیزیں تیس سیکنڈ کی توجہ کی حق دار ہیں: پاپ اپ UI اور آئیکنز۔
- Popup UI — ایک ڈیفالٹ آپشنز پیج، خالی چیک باکسز، کوئی درجہ بندی نہیں، ون-اسٹار ریویوز کی ایک حقیقی وجہ ہے جس کا ایکسٹینشن کے کام کرنے یا نہ کرنے سے کوئی تعلق نہیں۔ آپ کی ایکسٹینشن میں صرف چند سیٹنگز ہیں (URL، شاید انٹرول)، مگر پھر بھی یہ کسی پروڈکٹ کا حصہ لگنا چاہیے، فارم ڈمپ نہیں۔
- Icons — آئیکن کو Chrome کے تمام چار سائزز (16، 32، 48، 128px، فائرفاکس کے لیے تھوڑا مختلف میٹرکس کے ساتھ) پر چیک کروائیں، کیونکہ ایک لوگو جو 128 پر واضح ہے وہ 16 پر دھندلا بن سکتا ہے، اور یہی وہ سائز ہے جس پر یہ دن کا زیادہ تر وقت ایک بھری ہوئی ٹول بار میں گزارتا ہے۔
دونوں اسٹورز کو چھونے سے پہلے
اسے حقیقت میں ٹیسٹ کریں، صرف چیٹ پریویو میں نہیں۔ بلڈ سے آپ کو ایک اصل لوڈ ایبل ایکسٹینشن ملتا ہے، تو جائیں chrome://extensions، ڈویلپر موڈ آن کریں، "load unpacked" کریں، اور اسے اپنے اصل پروڈکٹ پیج پر چلا کر دیکھیں — کسی سمولیٹڈ ورژن پر نہیں۔ میں خاص طور پر دو چیزیں ہاتھ سے چیک کروں گا: کیا انسٹال پرمیشن پرامپٹ وہی کہتا ہے جو آپ نے مانگا تھا کے مطابق متوقع ہے، اور اگر کانٹینٹ اسکرپٹ کبھی ایسے پیج سے ٹکرا جائے جس کے لیے وہ بنایا ہی نہیں گیا تھا تو کیا ہوتا ہے — کیا یہ خاموشی سے ناکام ہوتا ہے یا کوئی نظر آنے والی خرابی دیتا ہے؟ دونوں میں ایک منٹ سے کم وقت لگتا ہے اور دونوں ہی ایسے بگ ہیں جو دیکھنے پر واضح اور نہ دیکھنے پر پوشیدہ رہتے ہیں۔
جب آپ اصل میں شپ کرنے کے لیے تیار ہوں گے، تو آپ دونوں اسٹورز پر اپنے ذاتی ڈویلپر اکاؤنٹس سے گزریں گے — لسٹنگ کا مالک آپ ہیں، یہ پلیٹ فارم آپ کے لیے اسے منیج نہیں کرتا۔ اور میں یہ بتانا چاہتا ہوں کہ دونوں اسٹورز بالکل ایک جیسے نہیں ہیں، کیونکہ میں نہیں چاہتا کہ آپ اپنی لانچ کی تاریخ یہ فرض کر کے طے کریں کہ وہ ایک جیسے ہیں۔
| اسٹور | جمع کرانے کا عمل |
|---|---|
| Chrome | لسٹنگ کو خودکار طور پر بھر دیتا ہے — عنوان، تفصیل، کیٹیگری، اور وہ پرمیشن جسٹیفیکیشن ٹیکسٹ جسے ریویو واقعی پڑھتا ہے، جو کوڈ کے کام کرنے کے طریقے سے تیار ہوتا ہے نہ کہ الگ سے ٹائپ کیا جاتا ہے، جو اہم ہے کیونکہ غلط جسٹیفیکیشنز خود بھی ایک عام مسترد ہونے کی وجہ ہیں۔ |
| Firefox | بنیادی طور پر خودکار؛ Mozilla کا پائپ لائن ہلکا ہے اور جمع کرانا بس گزر جاتا ہے۔ |
آپ کا بلڈ مکمل ہونے کے بعد جو لسٹنگ کٹ تیار ہوتی ہے وہ آپ کی ایکسٹینشن کے حقیقی طور پر چلنے سے لیے گئے اسکرین شاٹس بھی بنائے گی (نہ کہ کوئی موک اپ)، لسٹنگ کاپی، اور پرائیویسی پریکٹس کے جوابات جو حقیقی کوڈ کے خلاف چیک کیے گئے ہوں گے نہ کہ یادداشت سے بھرے گئے ہوں۔ یہ آخری بات کسی ایسی چیز کے لیے جو کسی بیرونی پیج سے بات کرتی ہو زیادہ اہم ہے جتنی لگتی ہے: Chrome کا پرائیویسی سوالنامہ ڈیٹا ہینڈلنگ کے بارے میں سادہ ہاں/نہیں سوالات پوچھتا ہے، اور "does this collect data" کا جواب "نہیں" دینا جب آپ کا واچر قیمتیں پول اور اسٹور کر رہا ہو، اس چھوٹی سی بددیانتی کی قسم ہے جو لانچ کے بعد ہٹا دی جاتی ہے، صرف پہلے مسترد ہونے کی بجائے۔ جوابات کو کوڈ کے خلاف چیک کروانا خودکار طور پر یہ خلا بند کر دیتا ہے۔
| اسٹور | عام ریویو وقت |
|---|---|
| Firefox | کچھ گھنٹے، کبھی ایک گھنٹے سے کم |
| Chrome | چند دن، کبھی کبھار خراب ہفتے میں دو دن کے قریب |
آپ جیسی بیک گراؤنڈ-پرسسٹنس ایکسٹینشنز کے کسی سادہ click-to-act ایکسٹینشن کے مقابلے میں سست، دستی ریویو والی لین میں جانے کا زیادہ امکان ہے۔ ہم دونوں میں سے کوئی بھی اس قطار پر کوئی لیور نہیں دبا سکتا۔ اپنی اعلان کی تاریخ Chrome کے ٹائم لائن کے مطابق طے کریں، Firefox کے مطابق نہیں، اور جمع کرانے والے دن ہی کچھ شیڈول نہ کریں۔
آخری بات، کیونکہ میں آپ کو جانتا ہوں — آپ پہلے ہی شپ ہونے کے بعد "مختلف ڈیوائسز پر میری واچ لسٹ سنک کرو" اور "وقت کے ساتھ قیمت کی تاریخ ٹریک کرو" شامل کرنے کے بارے میں سوچ رہے ہوں گے۔ یہ ٹھیک ہے، مگر جان لیں کہ ان میں سے ہر ایک ایک نئی پرمیشن ہے، اور نئی پرمیشن کا مطلب اس ریویو سے سست ریویو ہو سکتا ہے جو آپ ابھی سے گزر چکے ہیں۔ اگر آپ یقینی ہیں کہ آپ بڑا ورژن چاہتے ہیں، تو واقعی بہتر ہے کہ ابھی اس کے لیے پرامپٹ کریں اور ایک سست ریویو جھیل لیں بجائے اس کے کہ پرمیشنز ایک ایک کر کے شامل کرتے رہیں۔ اگر ابھی یقین نہیں ہے، تو جو ہے وہی شپ کریں — ایک سختی سے محدود واچر تیزی سے کلیئر ہوتا ہے، آپ کو حقیقی استعمال ملتا ہے، اور حقیقی استعمال ابھی Chrome کی قطار میں پڑی طویل فیچر لسٹ سے کہیں زیادہ قیمتی ہے۔ آپ بعد میں ہمیشہ مزید مانگ سکتے ہیں؛ ایک بار جب یہ کسی ایسی چیز پر دستی ریویو میں پھنس جائے جس کی آپ کو ابھی ضرورت نہیں تھی، تو یہ لانچ واپس نہیں مل سکتی۔



