خلاصه ماجرا
Scissor Image هرگز عکسهای شما را دریافت نمیکند. وقتی ابزاری را باز میکنید، مرورگرتان وبسایت و یک موتور تصویر را دانلود میکند. وقتی فایلی انتخاب میکنید، مرورگر آن را در حافظه زبانه به پیکسل تبدیل میکند، موتور روی پردازنده خودتان پردازشش میکند و نتیجه به صورت دانلود به شما تحویل داده میشود. با بستن زبانه همه چیز پاک میشود.
چه چیزی کجا اجرا میشود
خواندن تصویر (JPG، PNG، WebP، AVIF و در Safari، HEIC) را خود مرورگر انجام میدهد، همانطور که تصویرها را در هر صفحهای نشان میدهد.
موتور تصویر که تبدیل، تغییر اندازه، برش، چرخش، فشردهسازی تا حجم مشخص و حذف فراداده را انجام میدهد، با Rust و با استفاده از کتابخانه متنباز image نوشته و به WebAssembly کامپایل شده است. این موتور در یک worker پسزمینه اجرا میشود تا صفحه روان بماند.
سرور فقط فایلهای سایت را میزبانی میکند. نقطهای برای آپلود تصویر ندارد، پس چیزی وجود ندارد که بتواند تصویری را دریافت کند. یک سرویس کوچک پشتیبانی مشتریان روی همین دامنه فقط چیزی را دریافت میکند که خودتان فرستادنش را انتخاب کنید، مانند بازخورد یا ثبتنام در فهرست انتظار، بهعلاوه شمارش ناشناس بازدید صفحات.
خودتان بررسی کنید
ابزارهای توسعهدهنده مرورگرتان را باز کنید، به زبانه Network بروید و از هر ابزاری استفاده کنید. میبینید که فایلهای خود صفحه بارگذاری میشوند، چند درخواست کوچک و ناشناس شمارش بازدید به /_care/ فرستاده میشود و هیچ درخواستی تصویر شما را حمل نمیکند. همچنین میتوانید پس از بارگذاری صفحه اینترنت را قطع کنید: همه ابزارها همچنان کار میکنند.
سایت همچنین یک سیاست امنیت محتوای (Content Security Policy) سختگیرانه میفرستد که به مرورگرتان میگوید جلوی ارتباط صفحه با هر سرور دیگری را بگیرد؛ پس حتی یک اشتباه در کد ما هم نمیتواند عکسهایتان را به جای دیگری بفرستد.
کار آفلاین، نصب مثل یک برنامه
پس از اولین بازدید، یک service worker سایت و موتور را در حافظه پنهان مرورگرتان ذخیره میکند تا ابزارها بدون اینترنت باز شوند و کار کنند. در Chrome یا Edge، گزینه Install را از نوار آدرس انتخاب کنید. در Safari، گزینه Add to Dock (مک) یا Add to Home Screen (آیفون و آیپد) را انتخاب کنید.