مشکلات رایج با توکن های آزمایشی در متا تگ ها، هدرها و اسکریپت ها را برطرف کنید.
چک لیست
برای عیبیابی یک آزمایش اولیه، با استفاده از پیوندهای ارائه شده، هر یک از مشکلات زیر را حل کنید.
آن را امتحان کنید!
دموهای زیر هر یک از راههای ارائه نشانه آزمایشی مبدا و دسترسی به ویژگی آزمایشی را نشان میدهند:
- ot-meta.glitch.me : نشانه در یک متا تگ
origin-trial
- ot-header.glitch.me : نشانه در سرصفحه پاسخ
Origin-Trial
- ot-3p.glitch.me : نشانه تزریق شده توسط یک اسکریپت شخص ثالث
- ot-iframe.glitch.me : ویژگی آزمایشی مبدا که در iframe قابل دسترسی است
- ot-iframe-3p.glitch.me : نمونه های iframe متقاطع
از Chrome DevTools برای بررسی نشانه ها استفاده کنید
از Chrome 93 DevTools اطلاعات آزمایشی مبدا را در پانل برنامه برای قاب انتخابی ارائه می دهد.
قاب بالایی را باز کنید تا نشانههای آزمایشی اولیه موجود برای یک زیرفریم را بررسی کنید. به عنوان مثال، برای صفحه نمایشی در ot-iframe.glitch.me ، می توانید ببینید که صفحه در iframe یک نشانه ارائه می کند.
- وضعیت توکن : آیا صفحه دارای رمز معتبر است یا خیر. توجه داشته باشید که برای برخی از آزمایشهای مبدأ ممکن است عوامل دیگری مانند محدودیتهای جغرافیایی وجود داشته باشد که به این معنی است که ویژگی آزمایشی مبدا علیرغم وجود یک رمز معتبر در دسترس نیست. کدهای وضعیت Chrome DevTools معنای هر یک از کدهای آزمایشی مبدا را توضیح می دهد.
- مبدا : مبدا وب برای توکن ثبت شده است.
- زمان انقضا : حداکثر (آخرین) تاریخ/زمان انقضای ممکن برای توکن، که معمولاً با پایان دوره آزمایشی مطابقت دارد. این با تاریخ معتبر برای نشانه نمایش داده شده در ثبت نام من یکسان نیست، که نشان می دهد این رمز در حال حاضر برای چه مدت اعتبار دارد و می تواند تمدید شود .
- محدودیت استفاده : محدودیتهای استفاده، که میتواند برای برخی آزمایشها تنظیم شود .
- شخص ثالث : آیا مطابقت شخص ثالث برای توکن فعال است یا خیر. این برای برخی از آزمایشهای اصلی در دسترس است، جایی که یک ویژگی آزمایشی باید در چندین سایت از اسکریپتهای شخص ثالث قابل دسترسی باشد.
- Match Sub-Domains : آیا تطابق زیر دامنه برای نشانه فعال است یا خیر. این امکان را فراهم می کند که یک ویژگی آزمایشی مبدا بر روی چندین زیر دامنه از یک مبدا آزمایش شود، بدون نیاز به یک نشانه متفاوت برای هر زیر دامنه.
اگر نسخه آزمایشی برای کاربر فعلی در دسترس نباشد، رمز منقضی شده باشد یا محدودیتهای دیگری وجود داشته باشد، Chrome DevTools هشداری را در کنار نام آزمایشی نمایش میدهد.
کدهای وضعیت Chrome DevTools
منقضی شده : تاریخ انقضای توکن گذشته است. برای تولید توکن جدید با تاریخ انقضای جدید، توکن باید تمدید شود.
کد منبعویژگی غیرفعال شده : آزمایشی در حال حاضر برای استفاده غیرفعال است.
کد منبعFeatureDisabledForUser : این نشانه برای کاربر فعلی از طریق یک محدودیت استفاده جایگزین غیرفعال شده است. بخش «مستثنیات زیرمجموعه کاربر» سند طراحی را ببینید.
کد منبع 1
کد منبع 2ناامن : مبدا درخواست ناامن است و آزمایشی برای مبداهای ناامن فعال نیست. همانطور که در کد اعتبارسنجی رمز اولیه آزمایشی توضیح داده شده است: «برای توکنهای شخص ثالث، هم مبدا فعلی و هم مبدا اسکریپت باید امن باشند. به دلیل تطابق زیر دامنه، ممکن است مبدأ نشانه دقیقاً با یکی از مبداهای اسکریپت ارائه شده مطابقت نداشته باشد، و نتیجه نشان نمی دهد که کدام مبدأ خاص مطابقت داشته است. این بدان معنی است که جستجوی مستقیم برای یافتن منشاء اسکریپت مناسب نیست. برای جلوگیری از انجام مجدد همه مقایسههای مبدا، میانبرهایی وجود دارد که به تعداد مبداهای اسکریپت ارائه شده بستگی دارد. باید حداقل یک مورد وجود داشته باشد، در غیر این صورت رمز شخص ثالث با موفقیت تأیید نمی شود.
کد منبعInvalidSignature : نشانه دارای امضای نامعتبر یا نادرست است.
کد منبعبدشکل : توکن بد شکل است و قابل تجزیه نیست.
کد منبع
NotSupported : نسخه آزمایشی مبدأ تعریف شده توسط نشانه در Chromium 'embedder' پشتیبانی نمیشود: مرورگری مانند Chrome یا Edge، WebView یا برخی از عوامل کاربر دیگر.
کد منبعموفقیت : توکن به خوبی شکل گرفته است، منقضی نشده است، با ویژگی آزمایشی مبدا مطابقت دارد و از یک منبع مورد انتظار درخواست شده است.
کد منبعTokenDisabled : توکن به عنوان غیرفعال علامت گذاری شده است و قابل استفاده نیست.
کد منبعTrialNotAllowed : نسخه آزمایشی اصلی برای کاربر فعلی در دسترس نیست .
کد منبعUnknownTrial : رمز نام ویژگی را مشخص می کند که با هیچ آزمایشی شناخته شده مطابقت ندارد.
کد منبعWrongOrigin : مبدا درخواست با مبدا مشخص شده در توکن مطابقت ندارد. این می تواند شامل طرح، نام میزبان یا پورت باشد. این وضعیت همچنین در صورتی نمایش داده میشود که یک توکن شخص ثالث در یک هدر HTTP، متا تگ یا اسکریپت درون خطی به جای یک فایل جاوا اسکریپت خارجی ارائه شود.
کد منبعWrongVersion : نسخه رمز اشتباه: در حال حاضر فقط نسخه 2 و 3 رمز پشتیبانی می شود.
کد منبع
این کار نمی کند! 🤔
اگر آزمایش اولیه شما مطابق انتظار کار نمی کند، مطمئن شوید که شرایط زیر را برآورده کرده اید.
شما در حال آزمایش در Chrome هستید، نه Chromium یا مرورگر دیگری
آزمایشهای اولیه Chrome به گونهای طراحی شدهاند که برای کاربران Chrome کار کنند. برای فعال کردن ویژگیهای آزمایشی در سایر مرورگرها، از جمله Chromium و سایر مرورگرهای مبتنی بر Chromium، به نشانههای آزمایشی اصلی Chrome متکی نباشید. دلیلش این است که آزمایشهای اولیه Chrome مختص ویژگیهایی است که در Chrome برای آزمایش در دسترس هستند.
نسخه آزمایشی اصلی برای فایرفاکس و مایکروسافت اج نیز در دسترس است. ثبت نام در نسخه آزمایشی اصلی فایرفاکس یا Edge یک ویژگی را در Chrome فعال نمی کند.
نسخه آزمایشی اصلی برای نسخههای Chrome که به سایت شما دسترسی دارند فعال است
دسترسی به نسخههای آزمایشی محدود به نسخههای خاصی از Chrome است. در برخی موارد، این ممکن است به این معنی باشد که یک ویژگی آزمایشی فقط برای کانالهای Chrome از قبل پایدار در دسترس است: Canary، Dev و Beta.
می توانید در دسترس بودن نسخه را از صفحه ثبت نام برای آزمایشی بررسی کنید:
میتوانید نسخه Chrome مورد استفاده خود را از chrome://version بررسی کنید.
نسخه آزمایشی اصلی توسط تنظیمات Chrome غیرفعال نشده است
اگر یک کاربر گزارش داد که یک ویژگی برای او کار نمی کند، بررسی کنید که این ویژگی در تنظیمات Chrome او غیرفعال نباشد. برای مثال، ویژگیهای Privacy Sandbox را میتوان از صفحه chrome://settings/privacySandbox
غیرفعال کرد.
کلمات کلیدی و نحو صحیح هستند
مطمئن شوید که از کلمات کلیدی و نحو مناسب برای نشانه های آزمایشی مبدا استفاده می کنید.
برای استفاده شخص اول، یک توکن را می توان در یک متا تگ origin-trial
ارائه کرد:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
از طرف دیگر، یک توکن میتواند در سرآیند پاسخ Origin-Trial
ارائه شود. در اینجا یک مثال با استفاده از Express در Node.js آورده شده است:
app.use(function(req, res, next) {
res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
next();
});
توکن ها همچنین می توانند با استفاده از جاوا اسکریپت ارائه شوند:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
مبدا نشانه شخص اول با مبدا صفحه مطابقت دارد
مطمئن شوید که مقدار Web Origin انتخاب شده هنگام ثبت نام برای آزمایشی با مبدا صفحه ای که دارای متا تگ یا هدر است که توکن را ارائه می دهد مطابقت دارد.
به عنوان مثال، اگر https://example.com
به عنوان منبع وب انتخاب کرده باشید:
ممکن است یک مقدار رمزی مانند این دریافت کنید:
بررسی کنید که این مقدار با رمز استفاده شده در صفحه ای که در حال عیب یابی آن هستید مطابقت داشته باشد.
برای توکن ارائه شده در یک متا تگ، HTML را بررسی کنید:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
برای یک نشانه ارائه شده در سرصفحه، میتوانید مقدار توکن را از پانل Chrome DevTools Network تحت عنوان Response Headers بررسی کنید:
توکن شخص اول از مبدایی که از آن استفاده می کند ارائه می شود
برای فعال کردن دسترسی به ویژگی آزمایشی مبدا برای کد موجود در صفحه ای که از مبدأ شما ارائه می شود، یک نشانه آزمایشی را در یک متا تگ، هدر یا از طریق جاوا اسکریپت از همان مبدا ارائه دهید.
مبدا ثبت شده برای یک توکن باید با مبدایی که به آن خدمات ارائه می کند مطابقت داشته باشد.
مبدا نشانه شخص ثالث با منشا اسکریپت مطابقت دارد
میتوانید برای شرکت در یک آزمایش اولیه برای اسکریپتهایی که از منابع دیگر تزریق میشوند، ثبتنام کنید.
به عنوان مثال، اگر میخواهید اسکریپتهایی که از javascript-library.example
ارائه میشوند برای شرکت در یک آزمایش اولیه، استفاده کنید، باید یک نشانه با تطبیق شخص ثالث برای javascript-library.example
ثبت کنید.
مقدار مبدا برای یک توکن شخص ثالث باید با مبدا اسکریپتی که آن را تزریق می کند مطابقت داشته باشد.
اسکریپت شخص ثالث از توکن شخص ثالث استفاده می کند
شما نمی توانید یک اسکریپت شخص ثالث را فعال کنید تا در یک آزمایش اولیه در سایت خود شرکت کند، صرفاً با ثبت توکن برای مبدا خود، و نه برای اسکریپت.
اسکریپتهای شخص ثالث باید از توکنهایی استفاده کنند که تطبیق شخص ثالث فعال باشد، که از طریق خود اسکریپت (که در متا تگ یا هدر سایت شما موجود نیست) با استفاده از کدهایی مانند زیر تزریق میشوند:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
توکن شخص ثالث از طریق یک اسکریپت خارجی ارائه می شود، نه یک متا تگ، هدر HTTP یا اسکریپت درون خطی
نشانههای شخص ثالث بر اساس مبدأ اسکریپتی که آنها را تزریق کرده است تأیید میشوند، اما اسکریپتهای درون خطی و تگهای <meta>
در نشانهگذاری استاتیک منشأ (یعنی URL منبع) ندارند.
این بدان معنی است که یک توکن شخص ثالث باید از طریق یک اسکریپت خارجی ارائه شود، نه در تگ <meta>
یا اسکریپت درون خطی. فرقی نمیکند که اسکریپت خارجی که توکن را تزریق میکند از همان مبدأ صفحه حاوی آن باشد یا منشأ متفاوتی داشته باشد، تا زمانی که مبدا اسکریپت با مبدا ثبتشده برای آزمایش مطابقت داشته باشد.
میتوانید نسخه نمایشی این را در ot-iframe-3p.glitch.me ببینید.
دسترسی به ویژگی آزمایشی مبدأ برای روش مورد استفاده برای ارائه یک نشانه آزمایشی پشتیبانی میشود
برخی از انواع دسترسی به ویژگیهای آزمایشی مبدأ از شما میخواهند که یک نشانه آزمایشی را به روشی خاص ارائه دهید. به عنوان مثال، تنها راه برای فعال کردن دسترسی آزمایشی مبدا برای کارکنان خدمات و کارگران مشترک، ارائه یک توکن در سرآیند Origin-Trial
است.
تطبیق زیر دامنه برای یک نشانه استفاده شده در یک زیر دامنه فعال است
اگر به نظر می رسد یک ویژگی آزمایشی اصلی برای برخی از صفحات سایت شما کار نمی کند، بررسی کنید که نشانه ها به درستی برای زیر دامنه هایی که به آنها سرویس می دهند تنظیم شده باشند.
هنگامی که برای یک آزمایش اولیه ثبت نام می کنید، می توانید به صورت اختیاری انتخاب کنید که با همه زیر دامنه های مبدا مطابقت داشته باشید:
همچنین می توانید زیر دامنه ها را برای توکن های شخص ثالث مطابقت دهید:
نشانههای زیر دامنه برای مبدا در فهرست پسوند عمومی صادر نمیشوند . به عنوان مثال، شما نمی توانید یک مبدا مانند https://appspot.com یا https://github.io را ثبت کنید، اگرچه می توانید برای دامنه هایی در آن مبدا ثبت نام کنید، مانند https://example.appspot.com یا https: //example.github.io.
رمز هنوز معتبر است
توکن ها تا شش هفته پس از ایجاد اعتبار دارند. فراتر از آن، باید بازخورد خود را ارسال کنید تا تاریخ اعتبار تا تمدید شود. Origin Trials Guide for Web Developers توضیح می دهد که چگونه می توان مطمئن شد که رمز شما برای کل آزمایش اولیه معتبر است.
میتوانید در صفحه ثبتهای من آزمایشهای اولیه Chrome خود، نشانههای فعال را بررسی کنید:
اگر نشانه هنوز معتبر باشد، Chrome DevTools وضعیت Success
را نمایش می دهد:
اگر توکن شما منقضی شده باشد، DevTools وضعیت Expired
را نمایش می دهد و صفحه ثبت نام های من یک بخش Expired Tokens را نمایش می دهد.
کارآزمایی اصلی به پایان نرسیده است
می توانید تاریخ پایان آزمایش مبدأ را از صفحه ثبت آن بررسی کنید:
برای آزمایشهایی که به پایان رسیدهاند، DevTools چیزی شبیه به این را نمایش میدهد:
هنگامی که بازخورد مورد نیاز است یا یک توکن در شرف منقضی شدن است، ایمیل های خودکار برای شما ارسال می شود، البته نه زمانی که دوره آزمایشی به پایان می رسد.
نسخه آزمایشی اصلی برای کاربر فعلی در دسترس است
برخی از آزمایشهای اولیه برای کاربران خاصی در دسترس نیستند، حتی اگر یک رمز معتبر ارائه شده باشد.
اگر نسخه آزمایشی برای کاربر فعلی در دسترس نباشد، Chrome DevTools یک هشدار TrialNotAllowed
نمایش میدهد:
اطلاعات مربوط به محدودیتهای استفاده و در دسترس بودن برای هر آزمایش اولیه ارائه خواهد شد.
مانند هر ویژگی پلتفرم وب، باید از تشخیص ویژگی برای تأیید اینکه یک ویژگی آزمایشی اصلی قبل از استفاده از آن پشتیبانی میشود، استفاده کنید.
از محدودیتهای استفاده آزمایشی اصلی فراتر نرفته است
بهطور پیشفرض، یک ویژگی آزمایشی مبدا در هر صفحهای فعال میشود که نشانه معتبری برای آزمایشی داشته باشد.
با این حال، به جز در موارد نادر، استفاده آزمایشی مبدأ به حداکثر 0.5٪ از بارگیریهای صفحه Chrome محدود میشود. اگر کل استفاده همه کاربران Chrome از این مقدار بیشتر شود، ویژگی آزمایشی اصلی غیرفعال میشود. DevTools وضعیت توکن را غیرفعال نشان می دهد.
هیچ محدودیتی برای استفاده از آزمایشهای منسوخ وجود ندارد، زیرا این ویژگیها ویژگیهای جدیدی را معرفی نمیکنند و بنابراین خطری برای وابسته کردن بخش قابل توجهی از وب به یک ویژگی آزمایشی ایجاد نمیکنند.
برخی آزمایشها نیز گزینهای برای محدود کردن استفاده ارائه میدهند، به این معنی که ویژگیهای آزمایشی اصلی برای برخی از کاربران غیرفعال میشود. این گزینه از صفحه ثبت نام برای آزمایش اولیه در دسترس است که آن را ارائه می دهد:
اگر متوجه شده اید که دسترسی کاربران شما به یک ویژگی آزمایشی مبدا کمتر از حد انتظار است، مطمئن شوید که «محدودیت استاندارد» انتخاب شده است.
آی فریم ها توکن های خود را ارائه می دهند
برای اجازه دسترسی به یک ویژگی آزمایشی مبدا، یک iframe باید یک توکن در یک متا تگ، یک عنوان HTTP یا به صورت برنامهریزی ارائه کند. آی فریمها دسترسی به ویژگیهایی را که برای صفحاتی که حاوی آنها هستند، به ارث نمیبرند.
ot-iframe.glitch.me دسترسی به یک ویژگی آزمایشی مبدا از یک iframe را نشان می دهد. ot-iframe-3p.glitch.me چندین نمونه iframe با منبع متقاطع ارائه می دهد.
خطمشیهای مجوزها به درستی پیکربندی شدهاند
برخی از ویژگیهای آزمایشی اصلی ممکن است تحت تأثیر سرصفحه Permissions-Policy
(که قبلاً به عنوان Feature-Policy
سرصفحه شناخته میشد) قرار بگیرند. میتوانید این مورد را در Intent to Experiment برای ویژگی آزمایشی، یا در اسناد برنامهنویس برای این ویژگی در web.dev یا developer.chrome.com/blog بررسی کنید.
اطمینان حاصل کنید که ویژگیای که میخواهید به آن دسترسی داشته باشید توسط دستورالعملهای Permissions-Policy
مسدود نشده باشد. میتوانید سرصفحههای پاسخ را در پانل Chrome DevTools Network بررسی کنید و فهرست کامل ویژگیهای مجاز را در پانل برنامه مشاهده کنید.
کارگران چطور؟
ویژگیهای آزمایشی مبدأ را میتوان برای کارگران خدماتی، کارگران مشترک و کارگران اختصاصی در دسترس قرار داد. با این حال، تنها راه برای فعال کردن دسترسی برای کارگران سرویس و کارگران اشتراکی، ارائه یک توکن در سرآیند Origin-Trial
است.
کارگران اختصاص داده شده دسترسی به ویژگی های فعال شده توسط سند مادر را به ارث می برند.
رمز قبل از دسترسی به ویژگی ارائه می شود
قبل از دسترسی به ویژگی آزمایشی مطمئن شوید که یک نشانه آزمایشی مبدا ارائه شده است. به عنوان مثال، اگر صفحه ای یک رمز از طریق جاوا اسکریپت ارائه می کند، مطمئن شوید که کد ارائه شده قبل از کدی که سعی می کند به ویژگی آزمایشی دسترسی پیدا کند اجرا شود.
دموهای آزمایشی مبدا
- توکن در یک متا تگ
- نشانه در هدر
- ویژگی قابل دسترسی در iframe
- توکن تزریق شده توسط اسکریپت شخص ثالث
- ot-iframe-3p.glitch.me : نمونه های iframe متقاطع
بیشتر بدانید
- با آزمایشهای اولیه Chrome شروع کنید
- آزمایشات منشا شخص ثالث
- راهنمای آزمایشی مبدا برای توسعه دهندگان وب
- توضیح دهنده آزمایشی مبدا
- اجرای آزمایشی مبدا
- فرآیند راهاندازی ویژگیهای جدید در Chromium
- قصد توضیح: رمزگشایی از فرآیند ارسال Blink
- از Origin Trials در Microsoft Edge استفاده کنید
- نسخه آزمایشی اصلی برای فایرفاکس