معماری برنامه های کروم

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

مدل ظرف برنامه

ظرف برنامه ظاهر بصری و رفتار بارگیری Chrome Apps را توصیف می‌کند. برنامه‌های Chrome متفاوت از برنامه‌های وب سنتی به نظر می‌رسند، زیرا محفظه برنامه هیچ کنترل رابط کاربری سنتی صفحه وب را نشان نمی‌دهد. به سادگی شامل یک ناحیه مستطیلی خالی است. این به برنامه اجازه می‌دهد تا با برنامه‌های «بومی» در سیستم ترکیب شود و با تغییر دستی URL از «مشکلات» کاربر با منطق برنامه جلوگیری می‌کند.

برنامه‌های Chrome متفاوت از برنامه‌های وب بارگیری می‌شوند. هر دو یک نوع محتوا را بارگیری می کنند: اسناد HTML با CSS و جاوا اسکریپت. با این حال، یک برنامه Chrome در ظرف برنامه بارگیری می شود، نه در برگه مرورگر. همچنین، محفظه برنامه باید سند اصلی برنامه Chrome را از یک منبع محلی بارگیری کند. این امر باعث می‌شود همه برنامه‌های Chrome در حالت آفلاین حداقل عملکردی داشته باشند و مکانی برای اعمال تدابیر امنیتی سخت‌گیرانه‌تر فراهم می‌کند.

مدل ظرف برنامه چگونه کار می کند

مدل برنامه نویسی

مدل برنامه نویسی چرخه حیات و رفتار پنجره Chrome Apps را توصیف می کند. مشابه برنامه های بومی، هدف این مدل برنامه نویسی این است که به کاربران و سیستم های آن ها کنترل کامل بر چرخه عمر اپلیکیشن بدهد. چرخه عمر برنامه Chrome باید مستقل از رفتار پنجره مرورگر یا اتصال شبکه باشد.

«صفحه رویداد» با پاسخ دادن به حرکات کاربر و رویدادهای سیستم، چرخه عمر برنامه Chrome را مدیریت می‌کند. این صفحه نامرئی است، فقط در پس زمینه وجود دارد و می تواند به طور خودکار توسط زمان اجرا سیستم بسته شود. نحوه باز و بسته شدن پنجره ها و زمان شروع یا پایان برنامه را کنترل می کند. فقط یک «صفحه رویداد» برای برنامه Chrome وجود دارد.

چرخه عمر اپلیکیشن در یک نگاه

برای دستورالعمل های دقیق در مورد نحوه استفاده از مدل برنامه نویسی، به مدیریت چرخه عمر برنامه مراجعه کنید. در اینجا خلاصه‌ای از چرخه عمر برنامه Chrome برای شروع آمده است:

صحنه خلاصه
نصب و راه اندازی کاربر نصب برنامه را انتخاب می کند و صراحتاً مجوزها را می پذیرد.
استارت آپ صفحه رویداد بارگیری می شود، رویداد "راه اندازی" فعال می شود و صفحات برنامه در ویندوز باز می شوند. شما پنجره هایی را ایجاد می کنید که برنامه شما به آن نیاز دارد، چگونه ظاهر می شوند و چگونه با صفحه رویداد و با سایر پنجره ها ارتباط برقرار می کنند.
خاتمه دادن کاربر می تواند برنامه ها را در هر زمان خاتمه دهد و برنامه را می توان به سرعت به حالت قبلی بازگرداند. ذخیره سازی داده ها از از دست رفتن داده ها محافظت می کند.
به روز رسانی برنامه ها را می توان در هر زمان به روز کرد. با این حال، کدی که یک برنامه Chrome در حال اجرا است نمی‌تواند در طول چرخه راه‌اندازی/خاتمه تغییر کند.
حذف نصب کاربر می تواند به طور فعال برنامه ها را حذف نصب کند. هنگام حذف نصب، هیچ کد اجرایی یا داده خصوصی باقی نمی ماند.

مدل امنیتی

مدل امنیتی Chrome Apps با اطمینان از اینکه اطلاعات آنها به شیوه ای ایمن و ایمن مدیریت می شود، از کاربران محافظت می کند. مطابقت با CSP شامل اطلاعات دقیق در مورد نحوه انطباق با خط مشی امنیت محتوا است. این خط‌مشی اسکریپت‌نویسی خطرناک را که باگ‌های اسکریپت‌نویسی بین‌سایتی را کاهش می‌دهد و از کاربران در برابر حملات Man-in-the-Middle محافظت می‌کند، مسدود می‌کند.

بارگیری صفحه اصلی برنامه Chrome به صورت محلی مکانی برای اعمال امنیت شدیدتر از وب فراهم می کند. مانند برنامه‌های افزودنی Chrome، کاربران باید صریحاً با اعتماد به برنامه Chrome در هنگام نصب موافقت کنند. آنها به برنامه اجازه دسترسی و استفاده از داده های خود را می دهند. هر API که برنامه شما استفاده می کند مجوز خاص خود را دارد. مدل امنیتی Chrome Apps همچنین امکان تنظیم جداسازی امتیازات را بر اساس هر پنجره فراهم می‌کند. این به شما امکان می دهد تا کد موجود در برنامه خود را که به API های خطرناک دسترسی دارد، به حداقل برسانید، در حالی که همچنان می توانید از آنها استفاده کنید.

Chrome Apps از جداسازی فرآیند افزونه Chrome مجدداً استفاده می‌کند و با جداسازی فضای ذخیره‌سازی و محتوای خارجی این کار را یک گام فراتر می‌برد. هر برنامه فضای ذخیره سازی خصوصی خود را دارد و نمی تواند به ذخیره سازی برنامه دیگر یا داده های شخصی (مانند کوکی ها) برای وب سایت هایی که در مرورگر خود استفاده می کنید دسترسی داشته باشد. تمام فرآیندهای خارجی از برنامه جدا شده اند. از آنجایی که iframe ها در همان فرآیند صفحه اطراف اجرا می شوند، فقط می توان از آنها برای بارگیری سایر صفحات برنامه استفاده کرد. می توانید از تگ object برای جاسازی محتوای خارجی استفاده کنید. این محتوا در یک فرآیند جداگانه از برنامه اجرا می شود.