تتيح إضافة Lolly URL Screenshot لتطبيق الويب التقاط لقطة شاشة لأي صفحة ويب من داخل متصفحك. من دونها، يتطلب التقاط رابط تطبيق سطح المكتب - إذ لا يمكن لصفحة متصفح قراءة البكسلات من موقع آخر بمفردها. تستطيع الإضافة ذلك، باستخدام نفس آلية الالتقاط التي يستخدمها تطبيق سطح المكتب.
تقوم بمهمتين أخريين بالطريقة نفسها. يمكن أن يتحول عنوان ويب تلصقه في خانة صورة إلى لقطة شاشة لتلك الصفحة (التقاط لقطة لهذه الصفحة)، ويمكن للإضافة قراءة صفحة واحدة تسمّيها حتى يتمكن Brand Studio من استخلاص علامة تجارية من موقع ويب مباشر. كل طلب ينتظر موافقتك في الإضافة.
تعمل على المتصفحات القائمة على Chromium: Chrome، Edge، Brave، Arc، Opera - إصدار Chrome 111 أو أحدث.
إلى أن يتم تثبيتها، تظل أداة URL Screenshot تُفتح حتى تتمكن من تجهيز اللقطة، وتوضح ملاحظة أعلى عناصر تحكم الأداة ما هو الناقص.
signed by Lollyvector SVG4 paths~2.4k nodes4 groups30 KBتحقق بنفسكاحصل على الملف الموقَّع
signed by Lollyvector SVG4 paths~2.4k nodes4 groups30 KBتحقق بنفسكاحصل على الملف الموقَّع
كل عنصر تحكم فعّال أثناء الانتظار: رابط الهدف، عمق التمرير، مهلة الاستقرار، هوامش القص وإعادة التلوين. الالتقاط نفسه فقط هو ما يحتاج إلى مضيف.
signed by Lollyvector SVG31 paths~1.7k nodes38 groups30 KBتحقق بنفسكاحصل على الملف الموقَّع
signed by Lollyvector SVG31 paths~1.7k nodes38 groups30 KBتحقق بنفسكاحصل على الملف الموقَّع
التثبيت
من متجر Chrome الإلكتروني
قريبا. بمجرد نشرها ستثبتها بنقرة واحدة، ثم تعيد تحميل Lolly.
حمّلها بنفسك (للمطورين)
توجد الإضافة في المستودع عند shells/chrome-extension/. هذا المجلد هو نسخة الإنتاج، وتعمل مع Lolly على https://lolly.tools فقط.
- افتح
chrome://extensions. - فعّل Developer mode (أعلى اليمين).
- انقر Load unpacked واختر مجلد
shells/chrome-extension/. - أعد تحميل Lolly - أصبحت URL Screenshot تعمل الآن في المتصفح.
لخادم تطوير محلي، شغّل pnpm run pack:chrome-extension:dev وحمّل dist/chrome-extension-dev بدلا منه. تقبل تلك الحزمة أيضا http://localhost:5173 وفي اسمها كلمة Development.
كيف تعمل
- يخبر نص برمجي صغير Lolly بوجود الإضافة، فتستطيع URL Screenshot حفظ اللقطات دون أي إعداد إضافي.
- أنت توافق على كل طلب. عندما تطلب Lolly ذلك، تفتح الإضافة نافذتها الخاصة Approve page request، وتعرض الموقع الطالب، وهل يريد لقطة شاشة أم محتوى الصفحة، وعنوان الصفحة. لا يُقرأ شيء حتى تضغط Approve once. الضغط على Cancel أو إغلاق النافذة ينهي الطلب.
- في أول مرة توافق فيها على طلب لموقع ما، يسأل Chrome أيضا هل يحق للإضافة الوصول إلى ذلك الموقع. يحتفظ Chrome بذلك الوصول بعد أن تسمح به، لكن كل طلب لاحق يحتاج إلى Approve once خاص به.
- الموافقة تغطي طلبا واحدا وتنتهي بعد 30 ثانية. لا يمكن أن ينتظر أو يعمل سوى طلب واحد في كل مرة، ويتوقف الطلب الموافق عليه بعد 55 ثانية. إذا أُغلقت صفحة Lolly أو تغيرت، أو انتقلت الصفحة الهدف إلى موقع آخر، يُلغى الطلب.
- بعد موافقتك، تفتح الإضافة الصفحة الهدف في تبويب خلفي، وتلتقطها عبر بروتوكول أدوات المطورين (DevTools Protocol) (نفس
Page.captureScreenshotالذي يستخدمه تطبيق سطح المكتب)، ثم تغلق التبويب وتعيد الصورة إلى تبويب Lolly الذي طلبها. - تعمل بالكامل داخل متصفحك، على شبكتك - لذا يعمل التقاط
localhostأو موقع داخلي. تُحمَّل الصفحة بجلسة متصفحك، لذا قد تُظهر صفحة سجّلت الدخول إليها معلومات خاصة في النتيجة. لا يُرفع الالتقاط نفسه إلى أي مكان إطلاقا؛ حركة الشبكة الوحيدة هي تحميل متصفحك نفسه للصفحة التي تطلب التقاطها.
أثناء تشغيل الالتقاط قد ترى للحظة شريط "…started debugging this browser" على التبويب المؤقت. هذا هو بروتوكول أدوات المطورين قيد العمل؛ يختفي من تلقاء نفسه عند اكتمال اللقطة.
قراءة موقع لاستوديو العلامة التجارية
مصدر Website في استوديو العلامة التجارية يبدأ علامة تجارية من موقع لديك بالفعل. على Chromium، الإضافة هي ما يقرأه؛ وعلى تطبيق سطح المكتب يؤدي جلب أصلي (native fetch) المهمة نفسها، وعلى متصفح عادي بلا إضافة لا تُعرض البلاطة إطلاقا.
ما الذي يحدث عند الضغط عليها:
- عنوان واحد، صفحة واحدة. بعد موافقتك، تفتحها الإضافة في نفس نوع التبويب الخلفي، وتقرأ الترميز المُصيّر، ونص أوراق الأنماط، وحفنة من صور الأيقونات والشعارات، ثم تغلق التبويب. لا تتبع الروابط ولا تزحف.
- تُجلب أيضا أوراق الأنماط المستضافة في مكان آخر (شبكة توصيل محتوى، خدمة خطوط)، لأن ألوان الصفحة وطباعتها تكمن فيها. تذهب الطلبات عبر أصل مختلف (cross-origin) دون ملفات تعريف الارتباط الخاصة بك؛ أما الطلبات من نفس الأصل فتستخدمها، تماما كما تفعل الصفحة نفسها.
- كل شيء محدود بسقف - عدد محدود من الأوراق والصور والبايتات - بحيث تعيد صفحة معادية أو معطوبة جزئيا مادة جزئية بدلا من التعليق.
- تعود البايتات مباشرة إلى تبويب Lolly الذي طلبها. يجري تحليلها إلى ألوان وطباعة وشعارات على جهازك؛ لا يُرفع شيء.
لصق عنوان لا يفعل سوى ملء الحقل. لا يُقرأ شيء حتى تبدأ القراءة وتضغط Approve once.
بعد التثبيت
أعد تحميل تبويب Lolly. تختفي رسالة "Get the extension"، وتستطيع URL Screenshot (ضمن الأدوات المساعدة) حفظ اللقطات في ملف، وتصبح الأداة متاحة في وضع الدفعات (Batch).
الأذونات
يعلن manifest.json الخاص بها عن أربعة أذونات، بالإضافة إلى صلاحية وصول للمواقع تطلبها موقعا واحدا في كل مرة:
debugger- لتشغيل التبويب الخلفي عبر بروتوكول أدوات المطورين. هذا ما يلتقط لقطة الشاشة.tabs- لفتح التبويب الخلفي المؤقت وإغلاقه لاحقا، وللتحقق من أن صفحة Lolly والصفحة الهدف لم تنتقلا منذ أن وافقت على الطلب.scripting- لتشغيل قارئ الصفحة الواحدة داخل الموقع الذي حددته، لأجل مصدر Website في استوديو العلامة التجارية.storage- لتسجيل معرّف تبويب فتحته، في تخزين الجلسة (session storage) فقط، بحيث يُغلق التبويب حتى لو أوقف المتصفح الإضافة مؤقتا أثناء القراءة. يُمسح عند بدء التشغيل التالي؛ لا يُخزَّن عنك أي شيء.optional_host_permissions: ["http:///", "https:///"]- صلاحية الوصول للمواقع، ولا تُمنح عند التثبيت. عندما تضغط Approve once، تطلب الإضافة من Chrome الوصول إلى الموقع الواحد في ذلك الطلب، ويسألك Chrome في أول مرة عن كل موقع.
لا تقرأ سوى الصفحة الواحدة التي توافق عليها، ولا تقرأ بيانات تصفحك أو ترسلها - لا يُرفع شيء إلى أي مكان.
يحدد البيان أيضا minimum_chrome_version: 111. الإصدار الحالي هو 0.4.0.
استكشاف الأخطاء وإصلاحها
- ما زلت ترى "Get the extension"؟ أعد تحميل تبويب Lolly - يحدث الاكتشاف عند تحميل الصفحة.
- لا شيء يحدث على هذا الموقع؟ تعمل الإضافة فقط على
https://lolly.tools، بالإضافة إلىhttp://localhost:5173في حزمة التطوير. أي أصل آخر، مثل نسخة من Lolly تستضيفها بنفسك، يحتاج إلى بناء منفصل للإضافة يدرج ذلك الأصل فيmanifest.jsonوpolicy.jsمعا. تعديل البيان وحده لم يعد يعمل. - فشل الالتقاط؟ تحقق من أن الرابط قابل للوصول ويبدأ بـ
http://أوhttps://. بعض الصفحات تحظر الالتقاط الآلي فعليا. إذا ضغطت Cancel، أو أغلقت نافذة الموافقة، أو انتظرت أكثر من 30 ثانية، فابدأ الالتقاط من جديد.