توضیحات
API chrome.types شامل اعلانهای نوع برای کروم است.
تنظیمات کروم
نمونه اولیه ChromeSetting مجموعهای مشترک از توابع ( get() ، set() و clear() ) و همچنین یک ناشر رویداد ( onChange ) را برای تنظیمات مرورگر کروم ارائه میدهد. مثالهای تنظیمات پروکسی نحوه استفاده از این توابع را نشان میدهند.
محدوده و چرخه حیات
کروم بین سه حوزه مختلف تنظیمات مرورگر تمایز قائل میشود:
-
regular - تنظیمات تنظیمشده در محدودهی
regular، روی پنجرههای مرورگر معمولی اعمال میشوند و در صورت عدم رونویسی، توسط پنجرههای ناشناس به ارث برده میشوند. این تنظیمات در دیسک ذخیره میشوند و تا زمانی که توسط افزونهی حاکم پاک نشوند، یا افزونهی حاکم غیرفعال یا حذف نصب نشود، در جای خود باقی میمانند. -
incognito_persistent - تنظیمات تنظیمشده در محدوده
incognito_persistentفقط برای پنجرههای ناشناس اعمال میشوند. برای این پنجرهها، تنظیماتregularرا نادیده میگیرند. این تنظیمات در دیسک ذخیره میشوند و تا زمانی که توسط افزونهی حاکم پاک نشوند، یا افزونهی حاکم غیرفعال یا حذف نصب نشود، در جای خود باقی میمانند. -
incognito_session_only - تنظیمات تنظیمشده در محدودهی
incognito_session_onlyفقط برای پنجرههای ناشناس اعمال میشوند. برای این پنجرهها، تنظیماتregularوincognito_persistentنادیده گرفته میشوند. این تنظیمات در دیسک ذخیره نمیشوند و با بسته شدن آخرین پنجرهی ناشناس پاک میشوند. آنها فقط زمانی قابل تنظیم هستند که حداقل یک پنجرهی ناشناس باز باشد.
حق تقدم
کروم تنظیمات را در لایههای مختلف مدیریت میکند. لیست زیر لایههایی را که ممکن است بر تنظیمات مؤثر تأثیر بگذارند، به ترتیب اولویت شرح میدهد.
- تنظیمات سیستم ارائه شده توسط سیستم عامل
- پارامترهای خط فرمان
- تنظیمات ارائه شده توسط افزونهها
- سیاستها
همانطور که از لیست پیداست، سیاستها ممکن است هرگونه تغییری را که شما با افزونه خود مشخص میکنید، لغو کنند. میتوانید از تابع get() برای تعیین اینکه آیا افزونه شما قادر به ارائه تنظیمات است یا اینکه این تنظیمات لغو میشوند، استفاده کنید.
همانطور که در بالا بحث شد، کروم امکان استفاده از تنظیمات مختلف برای پنجرههای معمولی و پنجرههای ناشناس را فراهم میکند. مثال زیر این رفتار را نشان میدهد. فرض کنید هیچ سیاستی تنظیمات را لغو نمیکند و یک افزونه میتواند تنظیمات را برای پنجرههای معمولی (R) و تنظیمات را برای پنجرههای ناشناس (I) تنظیم کند.
- اگر فقط (R) تنظیم شده باشد، این تنظیمات برای هر دو پنجره معمولی و ناشناس مؤثر هستند.
- اگر فقط (I) تنظیم شده باشد، این تنظیمات فقط برای پنجرههای ناشناس (incognito window) اعمال میشوند. پنجرههای معمولی از تنظیمات تعیینشده توسط لایههای پایینتر (گزینههای خط فرمان و تنظیمات سیستم) استفاده میکنند.
- اگر هر دو (R) و (I) تنظیم شده باشند، تنظیمات مربوطه برای پنجرههای معمولی و ناشناس استفاده میشوند.
اگر دو یا چند افزونه بخواهند تنظیمات یکسانی را روی مقادیر مختلف تنظیم کنند، افزونهای که اخیراً نصب شده است بر سایر افزونهها اولویت دارد. اگر افزونهای که اخیراً نصب شده است فقط (I) را تنظیم کند، تنظیمات پنجرههای معمولی را میتوان با افزونههای نصب شده قبلی تعریف کرد.
مقدار مؤثر یک تنظیم، مقداری است که از در نظر گرفتن قوانین تقدم حاصل میشود و توسط کروم استفاده میشود.
انواع
ChromeSetting
رابطی که امکان دسترسی به تنظیمات مرورگر کروم را فراهم میکند. برای مثال به accessibilityFeatures مراجعه کنید.
خواص
- روی تغییر
رویداد<functionvoidvoid>
پس از تغییر تنظیمات، اجرا میشود.
تابع
onChange.addListenerبه شکل زیر است:(callback: function) => {...}
- تماس برگشتی
تابع
پارامتر
callbackبه شکل زیر است:(details: object) => void
- جزئیات
شیء
- ناشناس خاص
بولی اختیاری
اینکه آیا مقداری که تغییر کرده مختص جلسه ناشناس است یا خیر. این ویژگی فقط در صورتی وجود خواهد داشت که کاربر افزونه را در حالت ناشناس فعال کرده باشد.
- سطح کنترل
سطح کنترل تنظیمات.
- ارزش
تی
مقدار تنظیم پس از تغییر.
- واضح
باطل
وعدهتنظیمات را پاک میکند و هر مقدار پیشفرض را بازیابی میکند.
تابع
clearبه شکل زیر است:(details: object, callback?: function) => {...}
- جزئیات
شیء
کدام تنظیمات را پاک کنیم.
- محدوده
ChromeSettingScope اختیاری است
کجا میتوان تنظیمات را پاک کرد (پیشفرض: معمولی).
- تماس برگشتی
تابع اختیاری
پارامتر
callbackبه شکل زیر است:() => void
- بازده
قول<void>
کروم ۹۶+پس از اتمام عملیات پاکسازی فراخوانده شد.
Promiseها فقط برای Manifest V3 و نسخههای بعدی پشتیبانی میشوند، سایر پلتفرمها باید از callbackها استفاده کنند.
- دریافت
باطل
وعدهمقدار یک تنظیم را دریافت میکند.
تابع
getبه شکل زیر است:(details: object, callback?: function) => {...}
- جزئیات
شیء
کدام تنظیم را در نظر بگیریم.
- ناشناس
بولی اختیاری
اینکه آیا مقداری که برای جلسه ناشناس اعمال میشود، برگردانده شود یا خیر (پیشفرض false).
- تماس برگشتی
تابع اختیاری
پارامتر
callbackبه شکل زیر است:(details: object) => void
- جزئیات
شیء
جزئیات ارزش مؤثر فعلی.
- ناشناس خاص
بولی اختیاری
اینکه آیا مقدار مؤثر مختص جلسه ناشناس است یا خیر. این ویژگی فقط در صورتی وجود خواهد داشت که ویژگی
incognitoدر پارامترdetailsازget()درست باشد. - سطح کنترل
سطح کنترل تنظیمات.
- ارزش
تی
مقدار تنظیمات.
- بازده
قول دادن<object>
کروم ۹۶+Promiseها فقط برای Manifest V3 و نسخههای بعدی پشتیبانی میشوند، سایر پلتفرمها باید از callbackها استفاده کنند.
- مجموعه
باطل
وعدهمقدار یک تنظیم را تنظیم میکند.
تابع
setبه شکل زیر است:(details: object, callback?: function) => {...}
- جزئیات
شیء
کدام تنظیم را تغییر دهیم.
- محدوده
ChromeSettingScope اختیاری است
محل تنظیم تنظیمات (پیشفرض: معمولی).
- ارزش
تی
مقدار تنظیم. توجه داشته باشید که هر تنظیم یک نوع مقدار خاص دارد که همراه با تنظیم شرح داده شده است. یک افزونه نباید مقداری از نوع متفاوت را تنظیم کند.
- تماس برگشتی
تابع اختیاری
پارامتر
callbackبه شکل زیر است:() => void
- بازده
قول<void>
کروم ۹۶+پس از اتمام عملیات تنظیم، فراخوانی میشود.
Promiseها فقط برای Manifest V3 و نسخههای بعدی پشتیبانی میشوند، سایر پلتفرمها باید از callbackها استفاده کنند.
ChromeSettingScope
دامنه تنظیمات کروم. یکی از
-
regular: تنظیمات مربوط به پروفایل معمولی (که اگر در جای دیگری لغو نشود، توسط پروفایل ناشناس به ارث میرسد)، -
regular\_only: تنظیم فقط برای پروفایل معمولی (توسط پروفایل ناشناس به ارث برده نمیشود)، -
incognito\_persistent: تنظیم برای پروفایل ناشناس که پس از راهاندازی مجدد مرورگر باقی میماند (تنظیمات معمول را نادیده میگیرد)، -
incognito\_session\_only: تنظیمات مربوط به پروفایل ناشناس که فقط در طول یک جلسه ناشناس قابل تنظیم است و با پایان جلسه ناشناس حذف میشود (تنظیمات معمولی و incognito_persistent را لغو میکند).
شمارشی
"منظم" "فقط_معمولی" "ناشناس_پایدار" "فقط جلسه ناشناس"
LevelOfControl
یکی از
-
not\_controllable: توسط هیچ افزونهای قابل کنترل نیست -
controlled\_by\_other\_extensions: توسط افزونههایی با اولویت بالاتر کنترل میشود -
controllable\_by\_this\_extension: میتواند توسط این افزونه کنترل شود -
controlled\_by\_this\_extension: توسط این افزونه کنترل میشود
شمارشی
"غیر_قابل_کنترل" "کنترلشده توسط افزونههای دیگر" "قابل کنترل توسط این افزونه" "کنترلشده توسط این افزونه"