DNS Configuration Manager · Project guide

🤝 Contributing

Bug reports, practical feature proposals, and focused code contributions are welcome.

Contribution guide

Use the project repository to report a reproducible issue, discuss a proposed change, or submit a pull request.

Report a bug

  • Search existing issues first and provide a concise, descriptive title.
  • Include steps to reproduce, expected and actual behavior, Chrome version, OS, and extension version.
  • Attach relevant screenshots or console errors; remove personal or sensitive information.

Propose a feature

  • Describe the user problem, intended benefit, and a clear acceptance outcome.
  • Discuss larger changes in an issue before investing in implementation.
  • Do not promise resolver performance: provider details are reference data, not measured results.

Submit code

  1. Fork the repository and create a focused branch.
  2. Keep changes scoped, use semantic HTML, responsive CSS, and modern JavaScript.
  3. Preserve Manifest V3 security boundaries and request no permissions without a justified need.
  4. Run npm run lint, load the unpacked extension in Chrome, and check affected UI and locales.
  5. Open a pull request describing the motivation, behavior change, verification, and screenshots for UI work.

Project-specific requirements

  • DNS profiles and DoH templates are reference information for user-led, manual configuration.
  • Do not add active resolver probes, speed tests, or game-server pings without an explicit privacy and store-policy review.
  • Keep translations consistent across English, Persian, Arabic, and Chinese.
  • Validate imported profile data, explain errors to users, and avoid overwriting existing profiles.

Security and privacy

Minimize permissions and data access. Do not introduce telemetry, uploads, or remote code. Review SECURITY.md before changing security-sensitive behavior.

راهنمای مشارکت

برای گزارش مشکل قابل‌بازتولید، پیشنهاد تغییر یا ارسال Pull Request از مخزن پروژه استفاده کنید.

گزارش باگ

  • ابتدا Issues موجود را بررسی کنید و عنوانی روشن بنویسید.
  • مراحل بازتولید، رفتار مورد انتظار و واقعی، نسخهٔ Chrome، سیستم‌عامل و نسخهٔ افزونه را ذکر کنید.
  • در صورت نیاز تصویر یا خطای کنسول را پیوست کنید و اطلاعات شخصی یا حساس را حذف کنید.

پیشنهاد قابلیت

  • مسئلهٔ کاربر، فایدهٔ قابلیت و نتیجهٔ مورد انتظار را توضیح دهید.
  • پیش از پیاده‌سازی تغییرات بزرگ، آن‌ها را در یک Issue مطرح کنید.
  • عملکرد DNS ارائه‌دهندگان را تضمین نکنید؛ اطلاعات آن‌ها مرجع است و اندازه‌گیری نمی‌شود.

ارسال کد

  1. مخزن را Fork کنید و شاخه‌ای با هدف مشخص بسازید.
  2. تغییرات را محدود نگه دارید و از HTML معنایی، CSS واکنش‌گرا و JavaScript امروزی استفاده کنید.
  3. مرزهای امنیتی Manifest V3 را حفظ کنید و بدون ضرورت مستند، مجوز جدید نخواهید.
  4. npm run lint را اجرا کنید، افزونهٔ unpacked را در Chrome بارگذاری کنید و رابط و زبان‌های مرتبط را بررسی کنید.
  5. در Pull Request انگیزه، تغییر رفتار، روش بررسی و برای تغییرات رابط تصویر ارائه دهید.

الزامات ویژهٔ پروژه

  • پروفایل‌های DNS و الگوهای DoH اطلاعات مرجع برای پیکربندی دستی توسط کاربر هستند.
  • بدون بررسی صریح حریم خصوصی و سیاست فروشگاه، آزمون فعال DNS، سرعت یا پینگ سرور بازی اضافه نکنید.
  • ترجمه‌ها را در انگلیسی، فارسی، عربی و چینی هماهنگ نگه دارید.
  • داده‌های واردشده را اعتبارسنجی کنید، خطاها را توضیح دهید و پروفایل‌های موجود را بازنویسی نکنید.

امنیت و حریم خصوصی

مجوزها و دسترسی به داده را به حداقل برسانید. تله‌متری، بارگذاری داده یا کد از راه دور اضافه نکنید. پیش از تغییر رفتار حساس امنیتی، SECURITY.md را بخوانید.

دليل المساهمة

استخدم مستودع المشروع للإبلاغ عن مشكلة قابلة لإعادة الإنتاج أو مناقشة اقتراح أو إرسال طلب سحب.

الإبلاغ عن خطأ

  • ابحث في المشكلات الحالية أولًا واكتب عنوانًا واضحًا.
  • أرفق خطوات إعادة الإنتاج والسلوك المتوقع والفعلي وإصدارات Chrome والنظام والإضافة.
  • أرفق لقطات أو أخطاء وحدة التحكم عند الحاجة، واحذف المعلومات الشخصية أو الحساسة.

اقتراح ميزة

  • اشرح مشكلة المستخدم والفائدة والنتيجة المتوقعة بوضوح.
  • ناقش التغييرات الكبيرة في Issue قبل بدء تنفيذها.
  • لا تَعِد بأداء لمزود DNS؛ بيانات المزودين مرجعية وليست نتائج قياس.

إرسال تغييرات برمجية

  1. أنشئ Fork للمستودع وفرعًا محدد النطاق.
  2. حافظ على نطاق التغيير واستخدم HTML دلاليًا وCSS متجاوبًا وJavaScript حديثًا.
  3. حافظ على حدود أمان Manifest V3 ولا تطلب أذونات دون حاجة مبررة.
  4. شغّل npm run lint وحمّل الإضافة غير المعبأة في Chrome وافحص الواجهة واللغات المتأثرة.
  5. اشرح الدافع وتغيير السلوك والتحقق، وأرفق صورًا لتغييرات الواجهة في طلب السحب.

متطلبات خاصة بالمشروع

  • ملفات DNS وقوالب DoH معلومات مرجعية للإعداد اليدوي من قبل المستخدم.
  • لا تضف فحوص DNS النشطة أو اختبارات السرعة أو Ping لخوادم الألعاب دون مراجعة صريحة للخصوصية وسياسات المتجر.
  • حافظ على اتساق الترجمات بالإنجليزية والفارسية والعربية والصينية.
  • تحقق من بيانات الملفات المستوردة واشرح الأخطاء ولا تستبدل الملفات الموجودة.

الأمان والخصوصية

قلّل الأذونات والوصول إلى البيانات. لا تضف القياس عن بُعد أو رفع البيانات أو الشيفرة البعيدة. راجع SECURITY.md قبل تغيير السلوك الحساس أمنيًا.

贡献指南

请通过项目仓库报告可复现的问题、讨论功能建议或提交 Pull Request。

报告问题

  • 先搜索现有 Issues,并使用清晰简洁的标题。
  • 提供复现步骤、预期与实际行为,以及 Chrome、操作系统和扩展版本。
  • 必要时附上截图或控制台错误,并删除个人或敏感信息。

提出功能建议

  • 说明用户问题、预期收益和可验收的结果。
  • 较大的改动请先通过 Issue 讨论。
  • 不要承诺 DNS 服务商性能;服务商信息是参考资料,并非实测结果。

提交代码

  1. Fork 仓库并创建目标明确的分支。
  2. 保持改动范围集中,使用语义化 HTML、响应式 CSS 和现代 JavaScript。
  3. 遵循 Manifest V3 安全边界;新增权限必须有充分理由。
  4. 运行 npm run lint,在 Chrome 中加载未打包扩展,并检查相关界面和语言。
  5. Pull Request 需说明动机、行为变化和验证方式;界面改动请附截图。

项目特定要求

  • DNS 配置和 DoH 模板是供用户手动配置的参考信息。
  • 未经明确的隐私与商店政策审查,不要添加主动 DNS 探测、速度测试或游戏服务器 Ping。
  • 保持英语、波斯语、阿拉伯语和中文翻译一致。
  • 验证导入数据、向用户说明错误,并避免覆盖现有配置。

安全与隐私

尽量减少权限和数据访问。不要引入遥测、数据上传或远程代码。更改安全敏感行为前请阅读 SECURITY.md。