على الرغم من أنني لست مبرمجًا منتظمًا لإضافات Chrome ، فقد قمت بالتأكيد بترميز عدد كافٍ من الإضافات ولديها محفظة تطوير ويب واسعة بما يكفي لمعرفة طريقي حول المهمة. ومع ذلك ، مؤخرًا ، رفض أحد العملاء أحد الامتدادات الخاصة بي لأنني تلقيت ملاحظات تفيد بأن التمديد الخاص بي "قديم".
بينما كنت أجد صعوبة في اكتشاف ما هو الخطأ ، قمت بإزالة الإحراج الذي أشعر به تحت السجادة وبدأت على الفور الغوص العميق في عالم ملحقات Chrome. لسوء الحظ ، كانت المعلومات حول Manifest V3 شحيحة وكان من الصعب بالنسبة لي أن أفهم بسرعة ما كان كل هذا التحول.
وغني عن القول ، مع وظيفة معلقة ، اضطررت إلى التنقل بشق الأنفس في طريقي وثائق مطور جوجل كروم واكتشف الأشياء بنفسي. بينما أنجزت المهمة ، لم أرغب في أن تذهب معرفتي وأبحاثي في هذا المجال هباءً وقررت مشاركة ما أتمنى أن يكون من السهل الوصول إليه في رحلة التعلم الخاصة بي.
لماذا يعد الانتقال إلى Manifest 3 مهمًا
Manifest V3 هي واجهة برمجة تطبيقات ستستخدمها Google في متصفح Chrome الخاص بها. إنه خليفة API الحالي ، Manifest V2 ، ويحكم كيفية تفاعل ملحقات Chrome مع المتصفح. يُدخل Manifest V3 تغييرات مهمة على قواعد الامتدادات ، بعضها سيكون الدعامة الأساسية الجديدة من V2 التي اعتدنا عليها.
الانتقال إلى Manifest V3 يمكن تلخيصها على هذا النحو:
- كان الانتقال مستمرًا منذ عام 2018.
- سيبدأ طرح Manifest V3 رسميًا في يناير 2023.
- بحلول حزيران (يونيو) 2023 ، لن تكون الإضافات التي تشغل Manifest V2 متاحة على سوق Chrome الإلكتروني.
- ستتم إزالة الإضافات التي لا تتوافق مع القواعد الجديدة المقدمة في Manifest V3 في النهاية من سوق Chrome الإلكتروني.
أحد الأهداف الرئيسية لـ Manifest V3 هو جعل المستخدمين أكثر أمانًا وتحسين تجربة المتصفح بشكل عام. في السابق ، كانت العديد من ملحقات المستعرض تعتمد على التعليمات البرمجية الموجودة في السحابة ، مما يعني أنه قد يكون من الصعب القيام بذلك تقييم ما إذا كان التمديد محفوفًا بالمخاطر. يهدف Manifest V3 إلى معالجة ذلك من خلال طلب الإضافات لاحتواء جميع التعليمات البرمجية التي سيتم تشغيلها ، مما يسمح لـ Google بمسحها ضوئيًا واكتشاف المخاطر المحتملة. كما يفرض على الإضافات طلب إذن من Google للتغييرات التي يمكنهم تنفيذها على المتصفح.
يعد البقاء على اطلاع دائم بانتقال Google إلى Manifest V3 لأنه يقدم قواعد جديدة للإضافات التي تهدف إلى تحسين أمان المستخدم وتجربة المتصفح العامة ، وستتم إزالة الإضافات التي لا تتوافق مع هذه القواعد في النهاية من Chrome Web متجر.
باختصار ، قد يكون كل عملك الشاق في إنشاء امتدادات تستخدم Manifest V2 هباءً إذا لم تقم بهذا الانتقال في الأشهر المقبلة.
٢٨ | يونيو ٢٠٢٠ | ٢٨ |
---|---|---|
سيتم إيقاف دعم ملحقات Manifest V2 في قنوات Chrome's Canary و Dev و Beta. | لن يسمح سوق Chrome الإلكتروني بعد الآن بنشر امتدادات Manifest V2 برؤية معينة على "عام". | سيزيل سوق Chrome الإلكتروني جميع ملحقات Manifest V2 المتبقية. |
سيكون البيان V3 مطلوبًا للشارة المميزة في سوق Chrome الإلكتروني. | ستصبح امتدادات Manifest V2 الحالية المنشورة والمرئية بشكل عام غير مدرجة. | سينتهي دعم Manifest 2 لجميع قنوات Chrome ، بما في ذلك القناة الثابتة ، ما لم يتم تمديد قناة Enterprise. |
الاختلافات الرئيسية بين Manifest V2 و V3
هناك العديد من الاختلافات بين الاثنين ، وأنا أوصي بشدة بالقراءة دليل Chrome's "Migrating to Manifest V3"، إليك ملخص قصير ولطيف للنقاط الرئيسية:
- عمال الخدمة استبدال صفحات الخلفية في Manifest V3.
- يتم التعامل مع تعديل طلب الشبكة مع الإصدار الجديد
declarativeNetRequest
API في Manifest V3. - في Manifest V3 ، يمكن للملحقات تنفيذ JavaScript المضمنة في الحزمة الخاصة بهم فقط ولا يمكنها استخدام التعليمات البرمجية المستضافة عن بُعد.
- يقدم Manifest V3
promise
دعم العديد من الطرق ، على الرغم من أن عمليات الاسترجاعات لا تزال مدعومة كبديل. - تعتبر أذونات المضيف في Manifest V3 عنصرًا منفصلاً ويجب تحديدها في ملف
"host_permissions"
الميدان. - سياسة أمان المحتوى في Manifest V3 عبارة عن كائن به أعضاء يمثلون سياقات سياسة أمان المحتوى البديلة (CSP) ، بدلاً من سلسلة كما كانت في Manifest V2.
في بيان ملحق Chrome البسيط الذي يغير خلفية صفحة الويب ، قد يبدو هذا على النحو التالي:
// Manifest V2
{ "manifest_version": 2, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "scripts": ["background.js"], "persistent": true }, "browser_action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "optional_permissions": ["<all_urls>"]
}
// Manifest V3
{ "manifest_version": 3, "name": "Shane's Extension", "version": "1.0", "description": "A simple extension that changes the background of a webpage to Shane's face.", "background": { "service_worker": "background.js" }, "action": { "default_popup": "popup.html" }, "permissions": [ "activeTab", ], "host_permissions": [ "<all_urls>" ]
}
إذا وجدت أن بعض العلامات أعلاه تبدو غريبة بالنسبة لك ، فاستمر في القراءة لمعرفة ما تحتاج إلى معرفته بالضبط.
كيفية الانتقال بسلاسة إلى Manifest V3
لقد لخصت الانتقال إلى Manifest V3 في أربعة مجالات رئيسية. بالطبع ، في حين أن هناك العديد من الأجراس والصفارات في Manifest V3 الجديد الذي يجب تنفيذه من الإصدار القديم Manifest V2 ، فإن تنفيذ التغييرات في هذه المجالات الأربعة سيجعل امتداد Chrome على المسار الصحيح للانتقال النهائي.
المجالات الأربعة الرئيسية هي:
- تحديث البنية الأساسية للبيان الخاص بك.
- تعديل أذونات المضيف الخاص بك.
- قم بتحديث سياسة أمان المحتوى.
- تعديل معالجة طلب الشبكة الخاص بك.
مع هذه المجالات الأربعة ، ستكون أساسيات Manifest جاهزة للانتقال إلى Manifest V3. دعنا نلقي نظرة على كل من هذه الجوانب الرئيسية بالتفصيل ونرى كيف يمكننا العمل من أجل التحقق من امتداد Chrome في المستقبل من هذا الانتقال.
تحديث البنية الأساسية للبيان الخاص بك
يعد تحديث البنية الأساسية للبيان هو الخطوة الأولى في الانتقال إلى Manifest V3. أهم تغيير ستحتاج إلى إجرائه هو تغيير قيمة "manifest_version"
عنصر ل 3
، والذي يحدد أنك تستخدم مجموعة ميزات Manifest V3.
أحد الاختلافات الرئيسية بين Manifest V2 و V3 هو استبدال صفحات الخلفية بعامل خدمة تمديد واحد في Manifest V3. سوف تحتاج إلى تسجيل عامل الخدمة تحت "background"
المجال ، باستخدام "service_worker"
مفتاح وحدد ملف JavaScript واحد. على الرغم من أن Manifest V3 لا يدعم العديد من البرامج النصية للخلفية ، يمكنك اختياريًا إعلان عامل الخدمة كوحدة ES من خلال تحديد "type": "module"
، والذي يسمح لك باستيراد المزيد من التعليمات البرمجية.
في مانيفست V3 ، ملف "browser_action"
و "page_action"
يتم توحيد الخصائص في ملف واحد "action"
خاصية. سوف تحتاج إلى استبدال هذه الخصائص بـ "action"
في البيان الخاص بك. وبالمثل ، فإن "chrome.browserAction"
و "chrome.pageAction"
يتم توحيد واجهات برمجة التطبيقات في واجهة برمجة تطبيقات "إجراء" واحدة في Manifest V3 ، وستحتاج إلى الترحيل إلى واجهة برمجة التطبيقات هذه.
// Manifest V2 "background": { "scripts": ["background.js"], "persistent": false
}, "browser_action": { "default_popup": "popup.html"
},
// Manifest V3 "background": { "service_worker": "background.js"
}, "action": { "default_popup": "popup.html"
}
بشكل عام ، يعد تحديث البنية الأساسية للبيان الخاص بك خطوة حاسمة في عملية الانتقال إلى Manifest V3 ، حيث يتيح لك الاستفادة من الميزات والتغييرات الجديدة التي تم إدخالها في هذا الإصدار من API.
تعديل أذونات المضيف الخاص بك
الخطوة الثانية في الانتقال إلى Manifest V3 هي تعديل أذونات المضيف. في Manifest V2 ، تحدد أذونات المضيف في ملف "permissions"
في ملف البيان. في Manifest V3 ، تعتبر أذونات المضيف عنصرًا منفصلاً ، ويجب عليك تحديدها في ملف "host_permissions"
الحقل في ملف البيان.
فيما يلي مثال على كيفية تعديل أذونات المضيف:
// Manifest V2 "permissions": [ "activeTab", "storage", "http://www.css-tricks.com/", ":///*" ]
// Manifest V3 "permissions": [ "activeTab", "scripting", "storage"
], "host_permissions": [ "http://www.css-tricks.com/" ], "optional_host_permissions": [ ":///*" ]
قم بتحديث سياسة أمان المحتوى
لتحديث CSP الخاص بامتداد Manifest V2 الخاص بك ليكون متوافقًا مع Manifest V3 ، ستحتاج إلى إجراء بعض التغييرات على ملف البيان الخاص بك. في Manifest V2 ، تم تحديد CSP كسلسلة في ملف "content_security_policy"
مجال البيان.
في Manifest V3 ، أصبح CSP الآن كائنًا به أعضاء مختلفون يمثلون سياقات بديلة لـ CSP. بدلا من واحد "content_security_policy"
، سيتعين عليك الآن تحديد حقول منفصلة لـ "content_security_policy.extension_pages"
و "content_security_policy.sandbox"
، حسب نوع صفحات الامتداد التي تستخدمها.
يجب عليك أيضًا إزالة أي إشارات إلى المجالات الخارجية في ملف "script-src"
, "worker-src"
, "object-src"
و "style-src"
التوجيهات إذا كانت موجودة. من المهم إجراء هذه التحديثات على CSP لضمان أمان واستقرار امتدادك في Manifest V3.
// Manifest V2 "content_security_policy": "script-src 'self' https://css-tricks.com; object-src 'self'"
// Manfiest V3 "content_security_policy.extension_pages": "script-src 'self' https://example.com; object-src 'self'", "content_security_policy.sandbox": "script-src 'self' https://css-tricks.com; object-src 'self'"
تعديل معالجة طلب الشبكة الخاص بك
الخطوة الأخيرة في الانتقال إلى Manifest V3 هي تعديل معالجة طلب الشبكة. في Manifest V2 ، كنت ستستخدم ملف chrome.webRequest
API لتعديل طلبات الشبكة. ومع ذلك ، يتم استبدال واجهة برمجة التطبيقات هذه في Manifest V3 بامتداد declarativeNetRequest
API.
لاستخدام واجهة برمجة التطبيقات الجديدة هذه ، ستحتاج إلى تحديد ملف declarativeNetRequest
الإذن في البيان الخاص بك وتحديث التعليمات البرمجية الخاصة بك لاستخدام واجهة برمجة التطبيقات الجديدة. أحد الاختلافات الرئيسية بين واجهتي API هو أن ملف declarativeNetRequest
تتطلب واجهة برمجة التطبيقات منك تحديد قائمة بالعناوين المحددة مسبقًا لحظرها ، بدلاً من القدرة على حظر فئات كاملة من طلبات HTTP كما يمكنك باستخدام chrome.webRequest
API.
من المهم إجراء هذه التغييرات في التعليمات البرمجية الخاصة بك للتأكد من أن امتدادك يستمر في العمل بشكل صحيح ضمن Manifest V3. فيما يلي مثال على كيفية تعديل البيان الخاص بك لاستخدام ملف declarativeNetRequest
API في Manifest V3:
// Manifest V2 "permissions": [ "webRequest", "webRequestBlocking"
]
// Manifest V3 "permissions": [ "declarativeNetRequest"
]
ستحتاج أيضًا إلى تحديث كود الامتداد الخاص بك لاستخدام ملف declarativeNetRequest
API بدلا من chrome.webRequest
API.
جوانب أخرى تحتاج إلى التحقق منها
ما غطيته هو مجرد غيض من فيض. بالطبع ، إذا كنت أرغب في تغطية كل شيء ، فقد أكون هنا لعدة أيام ولن يكون هناك فائدة من الحصول على أدلة مطوري Chrome من Google. على الرغم من أن ما غطيته سيجعلك محميًا في المستقبل بما يكفي لتسليح ملحقات Chrome في هذا الانتقال ، فإليك بعض الأشياء الأخرى التي قد ترغب في النظر إليها للتأكد من أن الإضافات تعمل في الجزء العلوي من اللعبة.
- ترحيل البرامج النصية الخلفية إلى سياق تنفيذ عامل الخدمة: كما ذكرنا سابقًا ، يستبدل Manifest V3 صفحات الخلفية بعامل خدمة ملحق واحد ، لذلك قد يكون من الضروري تحديث البرامج النصية الخلفية للتكيف مع سياق تنفيذ عامل الخدمة.
- توحيد
**chrome.browserAction**
و**chrome.pageAction**
واجهات التطبيق البرمجية: يتم توحيد هاتين واجهتي برمجة التطبيقات المكافئتين في واجهة برمجة تطبيقات واحدة في Manifest V3 ، لذلك قد يكون من الضروري الترحيل إلى Action API. - ترحيل الدالات التي تتوقع سياق خلفية Manifest V2: لا يتوافق اعتماد عمال الخدمة في Manifest V3 مع أساليب مثل
chrome.runtime.getBackgroundPage()
,chrome.extension.getBackgroundPage()
,chrome.extension.getExtensionTabs()
وchrome.extension.getViews()
. قد يكون من الضروري الترحيل إلى تصميم يمرر الرسائل بين السياقات الأخرى وعامل خدمة الخلفية. - نقل طلبات CORS في نصوص المحتوى إلى عامل خدمة الخلفية: قد يكون من الضروري نقل طلبات CORS في نصوص المحتوى إلى عامل خدمة الخلفية من أجل الامتثال لـ Manifest V3.
- الترحيل بعيدًا عن تنفيذ تعليمات برمجية خارجية أو سلاسل عشوائية: لم يعد Manifest V3 يسمح بتنفيذ المنطق الخارجي باستخدام
chrome.scripting.executeScript({code: '...'})
,eval()
وnew Function()
. قد يكون من الضروري نقل جميع التعليمات البرمجية الخارجية (JavaScript و WebAssembly و CSS) إلى حزمة الملحقات وتحديث مراجع البرنامج النصي والنمط لتحميل الموارد من حزمة الملحقات واستخدامهاchrome.runtime.getURL()
لبناء عناوين URL للمورد في وقت التشغيل. - تحديث بعض أساليب البرمجة النصية و CSS في Tabs API: كما ذكرنا سابقًا ، تنتقل عدة طرق من Tabs API إلى Scripting API في Manifest V3. قد يكون من الضروري تحديث أي استدعاءات لهذه الطرق لاستخدام واجهة Manifest V3 API الصحيحة.
و أكثر من ذلك بكثير!
لا تتردد في تخصيص بعض الوقت لتعريف نفسك بكل التغييرات. بعد كل شيء ، هذا التغيير لا مفر منه وإذا كنت لا تريد أن تضيع امتدادات Manifest V2 بسبب تجنب هذا الانتقال ، فاقضي بعض الوقت في تسليح نفسك بالمعرفة اللازمة.
من ناحية أخرى ، إذا كنت جديدًا في برمجة ملحقات Chrome وتتطلع إلى البدء ، فإن الطريقة الرائعة للقيام بذلك هي الغوص في عالم أدوات مطور الويب في Chrome. لقد فعلت ذلك من خلال دورة تدريبية Linkedin التعلم، الأمر الذي جعلني أعمل على زيادة السرعة بسرعة كبيرة. بمجرد حصولك على هذه المعرفة الأساسية ، عد إلى هذه المقالة وترجم ما تعرفه إلى Manifest V3!
إذن ، كيف سأستخدم الميزات في Manifest V3 الجديد من الآن فصاعدًا؟
حسنًا ، بالنسبة لي ، الانتقال إلى Manifest V3 وإزالة chrome.webRequest
يبدو أن واجهة برمجة التطبيقات تعمل على تحويل الامتدادات بعيدًا عن حالات الاستخدام المتمحورة حول البيانات (مثل أدوات منع الإعلانات) إلى استخدامات أكثر وظيفية وقائمة على التطبيقات. لقد ظللت بعيدًا عن تطوير التطبيقات مؤخرًا لأنه يمكن أن يصبح هادئًا موارد كثيفة في بعض الأحيان. ومع ذلك ، قد يكون هذا التحول هو ما يعيدني!
أدى ظهور أدوات الذكاء الاصطناعي في الآونة الأخيرة ، مع العديد من واجهات برمجة التطبيقات المتاحة للاستخدام ، إلى إطلاق الكثير من تطبيقات SaaS الجديدة والجديدة. أنا شخصياً أعتقد أنه يأتي في وقت مثالي مع التحول إلى المزيد من ملحقات Chrome القائمة على التطبيقات! في حين أن العديد من الامتدادات القديمة قد يتم محوها من هذا الانتقال ، فإن الكثير من الإضافات الجديدة المبنية حول أفكار SaaS الجديدة ستحل محلها.
وبالتالي ، يعد هذا تحديثًا مثيرًا للتنقل وتجديد الإضافات القديمة أو إنشاء ملحقات جديدة! أنا شخصياً أرى العديد من الاحتمالات في استخدام واجهات برمجة التطبيقات التي تتضمن استخدام الذكاء الاصطناعي في الإضافات لتحسين تجربة تصفح المستخدم. لكن هذا في الحقيقة مجرد غيض من فيض. إذا كنت تتطلع حقًا إلى الدخول في أشياء باستخدام الإضافات المهنية الخاصة بك أو الوصول إلى الشركات لإنشاء / تحديث ملحقات لها ، فإنني أوصي ترقية حساب Gmail الخاص بك للفوائد التي يوفرها في التعاون والتطوير ونشر الإضافات إلى سوق Chrome الإلكتروني.
ومع ذلك ، تذكر أن متطلبات كل مطور مختلفة ، لذا تعرف على ما تحتاجه للحفاظ على الإضافات الحالية قائمة أو استمرار الإضافات الجديدة!
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- بلاتوبلوكشين. Web3 Metaverse Intelligence. تضخيم المعرفة. الوصول هنا.
- المصدر https://css-tricks.com/how-to-transition-to-manifest-v3-for-chrome-extensions/
- 1
- 11
- 2018
- 2023
- 7
- 9
- 98
- a
- ماهرون
- من نحن
- حوله
- فوق
- الوصول
- اكشن
- Ad
- تكيف
- العنوان
- عناوين
- تبني
- مميزات
- بعد
- AI
- وتهدف
- الكل
- السماح
- يسمح
- البديل
- و
- API
- واجهات برمجة التطبيقات
- تطبيق
- تطوير التطبيقات
- التطبيقات
- المنطقة
- المناطق
- ARM
- حول
- البند
- الجوانب
- متاح
- تجنب
- الى الخلف
- خلفية
- قاعدة
- الأساسية
- لان
- أصبح
- بدأ
- يجري
- أجراس
- الفوائد
- بيتا
- ما بين
- حظر
- يجلب
- المتصفح
- تصفح
- نساعدك في بناء
- بنيت
- حزمة
- دعوات
- يستطيع الحصول على
- لا تستطيع
- الفئات
- معين
- بالتأكيد
- تغيير
- التغييرات
- متغير
- قناة
- قنوات
- الكروم
- متصفح الكروم
- زبون
- سحابة
- الكود
- التعاون
- COM
- تأتي
- آت
- الشركات
- متوافق
- متوافقة
- محتوى
- سياق الكلام
- السياقات
- تواصل
- استطاع
- الدورة
- بهيكل
- مغطى
- خلق
- حاسم
- CSP
- CSS
- حالياًّ
- التاريخ
- أيام
- قررت
- عميق
- غوص عميق
- اعتمادا
- وصف
- تصميم
- التفاصيل
- يحدد
- ديف
- المطور
- المطورين
- تطوير
- التطوير التجاري
- فعل
- فرق
- الخلافات
- مختلف
- صعبة
- توجيهات
- المجالات
- كل
- في وقت سابق
- كاف
- ضمان
- مشروع
- كامل
- معادل
- حتى
- نهائي
- في النهاية
- كل شىء
- بالضبط
- مثال
- المثيره
- تنفيذ
- تنفيذ
- توقع
- الخبره في مجال الغطس
- تمديد
- اضافات المتصفح
- خارجي
- الوجه
- الميزات
- عقار مميز
- المميزات
- ردود الفعل
- حقل
- مجال
- الشكل
- قم بتقديم
- نهائي
- الاسم الأول
- القوات
- أجنبي
- إلى الأمام
- مجانًا
- جديد
- تبدأ من
- وظيفة
- وظيفي
- عمل
- وظائف
- أساسيات
- إضافي
- لعبة
- دولار فقط واحصل على خصم XNUMX% على جميع
- يعطي
- Go
- الأهداف
- الذهاب
- شراء مراجعات جوجل
- جوجل
- يحكم
- عظيم
- دليل
- معالجة
- الثابت
- العمل الشاق
- وجود
- هنا
- جدا
- مضيف
- كيفية
- كيفية
- لكن
- HTML
- HTTPS
- فورا
- تنفيذ
- نفذت
- تحقيق
- استيراد
- أهمية
- تحسن
- in
- شامل
- بما فيه
- لا مفر منه
- معلومات
- بدلًا من ذلك
- تفاعل
- أدخلت
- يدخل
- تنطوي
- IT
- يناير
- جافا سكريبت
- وظيفة
- رحلة
- جسون
- احتفظ
- القفل
- علم
- المعرفة
- تعلم
- تعلم
- قائمة
- تحميل
- يعد
- بحث
- يبدو مثل
- أبحث
- الرئيسية
- رائد
- جعل
- كثير
- معنى
- الأعضاء
- المذكورة
- رسائل
- طرق
- ربما
- الهجرة
- تعديل
- وحدة
- المقبلة.
- الأكثر من ذلك
- أكثر
- خطوة
- متعدد
- الاسم
- التنقل
- ضروري
- حاجة
- شبكة
- جديد
- مزايا جديدة
- موضوع
- رسميا
- قديم
- ONE
- جارية
- طلب
- أخرى
- الكلي
- الخاصة
- صفقة
- يمر
- إذن
- أذونات
- شخصيا
- المكان
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- وفرة
- البوينت
- نقاط
- سياسة
- محفظة
- إمكانيات
- محتمل
- يقدم
- جميل
- سابقا
- عملية المعالجة
- محترف
- مبرمج
- برمجة وتطوير
- بصورة صحيحة
- HAS
- الملكية
- جمهور
- نشرت
- نشر
- بسرعة
- عرض
- نادي القراءة
- استعداد
- تلقى
- الأخيرة
- مؤخرا
- نوصي
- المراجع
- تسجيل جديد
- منتظم
- المتبقية
- تذكر
- إزالة
- إزالة
- إزالة
- يحل محل
- استبدال
- تمثل
- طلب
- طلبات
- مطلوب
- المتطلبات الأساسية
- يتطلب
- بحث
- مورد
- الموارد
- ارتفاع
- المخاطر
- المتداول
- القواعد
- يجري
- ادارة العلاقات مع
- أكثر أمانا
- السلامة
- رمل
- تفحص
- نادر
- مخطوطات
- الثاني
- أمن
- يبدو
- SELF
- الخدمة
- عمال الخدمة
- طقم
- عدة
- مشاركة
- نقل
- التحول
- قصير
- ينبغي
- هام
- وبالمثل
- الاشارات
- منذ
- عزباء
- بسلاسة
- So
- بعض
- محدد
- سرعة
- أنفق
- استقرار
- مستقر
- بدأت
- خطوة
- لا يزال
- تخزين
- متجر
- بناء
- نمط
- هذه
- ملخص
- الدعم
- مدعومة
- حلو
- أخذ
- مهمة
- •
- العالم
- من مشاركة
- الأشياء
- عبر
- الوقت
- مرات
- معلومات سرية
- إلى
- نغمة
- أدوات
- تيشرت
- نحو
- مسار
- انتقال
- الانتقال
- ترجمه
- صحيح
- تحول
- مع
- فهم
- موحد
- حديث جديد
- تحديث
- آخر التحديثات
- تحديث
- تستخدم
- مستخدم
- المستخدمين
- قيمنا
- الإصدار
- رؤية
- مرئي
- مطلوب
- نفاية
- الويب
- تطوير شبكة الويب
- ابحث عن
- سواء
- التي
- في حين
- واسع
- سوف
- في غضون
- للعمل
- عامل
- العمال
- العالم
- سوف
- خاطئ
- أنت
- حل متجر العقارات الشامل الخاص بك في جورجيا
- نفسك
- زفيرنت