عیب‌یابی آزمایش‌های اولیه Chrome

مشکلات رایج با توکن های آزمایشی در متا تگ ها، هدرها و اسکریپت ها را برطرف کنید.

چک لیست

برای عیب‌یابی یک آزمایش اولیه، با استفاده از پیوندهای ارائه شده، هر یک از مشکلات زیر را حل کنید.




















آن را امتحان کنید!

دموهای زیر هر یک از راه‌های ارائه نشانه آزمایشی مبدا و دسترسی به ویژگی آزمایشی را نشان می‌دهند:

از Chrome DevTools برای بررسی نشانه ها استفاده کنید

از Chrome 93 DevTools اطلاعات آزمایشی مبدا را در پانل برنامه برای قاب انتخابی ارائه می دهد.

اطلاعات آزمایشی اصلی Chrome DevTools در پانل برنامه.

قاب بالایی را باز کنید تا نشانه‌های آزمایشی اولیه موجود برای یک زیرفریم را بررسی کنید. به عنوان مثال، برای صفحه نمایشی در ot-iframe.glitch.me ، می توانید ببینید که صفحه در iframe یک نشانه ارائه می کند.

پانل برنامه Chrome DevTools، نشانه‌های آزمایشی مبدا را برای صفحه در iframe نشان می‌دهد.

  • وضعیت توکن : آیا صفحه دارای رمز معتبر است یا خیر. توجه داشته باشید که برای برخی از آزمایش‌های مبدأ ممکن است عوامل دیگری مانند محدودیت‌های جغرافیایی وجود داشته باشد که به این معنی است که ویژگی آزمایشی مبدا علیرغم وجود یک رمز معتبر در دسترس نیست. کدهای وضعیت Chrome DevTools معنای هر یک از کدهای آزمایشی مبدا را توضیح می دهد.
  • مبدا : مبدا وب برای توکن ثبت شده است.
  • زمان انقضا : حداکثر (آخرین) تاریخ/زمان انقضای ممکن برای توکن، که معمولاً با پایان دوره آزمایشی مطابقت دارد. این با تاریخ معتبر برای نشانه نمایش داده شده در ثبت نام من یکسان نیست، که نشان می دهد این رمز در حال حاضر برای چه مدت اعتبار دارد و می تواند تمدید شود .
  • محدودیت استفاده : محدودیت‌های استفاده، که می‌تواند برای برخی آزمایش‌ها تنظیم شود .
  • شخص ثالث : آیا مطابقت شخص ثالث برای توکن فعال است یا خیر. این برای برخی از آزمایش‌های اصلی در دسترس است، جایی که یک ویژگی آزمایشی باید در چندین سایت از اسکریپت‌های شخص ثالث قابل دسترسی باشد.
  • Match Sub-Domains : آیا تطابق زیر دامنه برای نشانه فعال است یا خیر. این امکان را فراهم می کند که یک ویژگی آزمایشی مبدا بر روی چندین زیر دامنه از یک مبدا آزمایش شود، بدون نیاز به یک نشانه متفاوت برای هر زیر دامنه.

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

اطلاعات آزمایشی مبدأ 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 برای مجموعه‌های شخص اول و SameParty با در دسترس بودن Chrome برجسته شده است

می‌توانید نسخه 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 به عنوان منبع وب انتخاب کرده باشید:

صفحه آزمایشی مبدأ Chrome که نشان می دهد https://example.com به عنوان مبدا وب انتخاب شده است.

ممکن است یک مقدار رمزی مانند این دریافت کنید:

صفحه آزمایشی مبدا Chrome که ارزش رمز را نشان می دهد.

بررسی کنید که این مقدار با رمز استفاده شده در صفحه ای که در حال عیب یابی آن هستید مطابقت داشته باشد.

برای توکن ارائه شده در یک متا تگ، HTML را بررسی کنید:

  <meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">

برای یک نشانه ارائه شده در سرصفحه، می‌توانید مقدار توکن را از پانل Chrome DevTools Network تحت عنوان Response Headers بررسی کنید:

پانل شبکه Chrome DevTools که سرصفحه پاسخ آزمایش‌های اولیه را نشان می‌دهد.

توکن شخص اول از مبدایی که از آن استفاده می کند ارائه می شود

برای فعال کردن دسترسی به ویژگی آزمایشی مبدا برای کد موجود در صفحه ای که از مبدأ شما ارائه می شود، یک نشانه آزمایشی را در یک متا تگ، هدر یا از طریق جاوا اسکریپت از همان مبدا ارائه دهید.

مبدا ثبت شده برای یک توکن باید با مبدایی که به آن خدمات ارائه می کند مطابقت داشته باشد.

مبدا نشانه شخص ثالث با منشا اسکریپت مطابقت دارد

می‌توانید برای شرکت در یک آزمایش اولیه برای اسکریپت‌هایی که از منابع دیگر تزریق می‌شوند، ثبت‌نام کنید.

به عنوان مثال، اگر می‌خواهید اسکریپت‌هایی که از javascript-library.example ارائه می‌شوند برای شرکت در یک آزمایش اولیه، استفاده کنید، باید یک نشانه با تطبیق شخص ثالث برای javascript-library.example ثبت کنید.

صفحه ثبت نام آزمایش‌های اولیه Chrome که مطابقت شخص ثالث انتخاب شده را نشان می‌دهد.

مقدار مبدا برای یک توکن شخص ثالث باید با مبدا اسکریپتی که آن را تزریق می کند مطابقت داشته باشد.

اسکریپت شخص ثالث از توکن شخص ثالث استفاده می کند

شما نمی توانید یک اسکریپت شخص ثالث را فعال کنید تا در یک آزمایش اولیه در سایت خود شرکت کند، صرفاً با ثبت توکن برای مبدا خود، و نه برای اسکریپت.

اسکریپت‌های شخص ثالث باید از توکن‌هایی استفاده کنند که تطبیق شخص ثالث فعال باشد، که از طریق خود اسکریپت (که در متا تگ یا هدر سایت شما موجود نیست) با استفاده از کدهایی مانند زیر تزریق می‌شوند:

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 است.

تطبیق زیر دامنه برای یک نشانه استفاده شده در یک زیر دامنه فعال است

اگر به نظر می رسد یک ویژگی آزمایشی اصلی برای برخی از صفحات سایت شما کار نمی کند، بررسی کنید که نشانه ها به درستی برای زیر دامنه هایی که به آنها سرویس می دهند تنظیم شده باشند.

هنگامی که برای یک آزمایش اولیه ثبت نام می کنید، می توانید به صورت اختیاری انتخاب کنید که با همه زیر دامنه های مبدا مطابقت داشته باشید:

صفحه ثبت نام آزمایشی های اصلی Chrome که تطابق دامنه فرعی را انتخاب شده نشان می دهد

همچنین می توانید زیر دامنه ها را برای توکن های شخص ثالث مطابقت دهید:

صفحه ثبت نام آزمایش‌های اولیه Chrome که تطبیق شخص ثالث و تطابق دامنه فرعی را نشان می‌دهد

نشانه‌های زیر دامنه برای مبدا در فهرست پسوند عمومی صادر نمی‌شوند . به عنوان مثال، شما نمی توانید یک مبدا مانند https://appspot.com یا https://github.io را ثبت کنید، اگرچه می توانید برای دامنه هایی در آن مبدا ثبت نام کنید، مانند https://example.appspot.com یا https: //example.github.io.

رمز هنوز معتبر است

توکن ها تا شش هفته پس از ایجاد اعتبار دارند. فراتر از آن، باید بازخورد خود را ارسال کنید تا تاریخ اعتبار تا تمدید شود. Origin Trials Guide for Web Developers توضیح می دهد که چگونه می توان مطمئن شد که رمز شما برای کل آزمایش اولیه معتبر است.

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

آزمایش‌های اولیه Chrome صفحه ثبت‌های من معتبر تا تاریخ را نشان می‌دهد

اگر نشانه هنوز معتبر باشد، Chrome DevTools وضعیت Success را نمایش می دهد:

اطلاعات آزمایشی اصلی Chrome DevTools در پانل برنامه، با برجسته کردن وضعیت: موفقیت آمیز.

اگر توکن شما منقضی شده باشد، DevTools وضعیت Expired را نمایش می دهد و صفحه ثبت نام های من یک بخش Expired Tokens را نمایش می دهد.

آزمایش‌های اولیه Chrome صفحه ثبت‌های من نشان‌دهنده نشانه‌های منقضی شده است.

کارآزمایی اصلی به پایان نرسیده است

می توانید تاریخ پایان آزمایش مبدأ را از صفحه ثبت آن بررسی کنید:

صفحه آزمایشی اصلی Chrome برای مجموعه‌های شخص اول و SameParty با جزئیات موجود آزمایشی برجسته شده است.

برای آزمایش‌هایی که به پایان رسیده‌اند، DevTools چیزی شبیه به این را نمایش می‌دهد:

اطلاعات آزمایشی مبدا Chrome DevTools در پانل برنامه که ValidTokenNotProvided و وضعیت منقضی شده را نشان می دهد

هنگامی که بازخورد مورد نیاز است یا یک توکن در شرف منقضی شدن است، ایمیل های خودکار برای شما ارسال می شود، البته نه زمانی که دوره آزمایشی به پایان می رسد.

نسخه آزمایشی اصلی برای کاربر فعلی در دسترس است

برخی از آزمایش‌های اولیه برای کاربران خاصی در دسترس نیستند، حتی اگر یک رمز معتبر ارائه شده باشد.

اگر نسخه آزمایشی برای کاربر فعلی در دسترس نباشد، Chrome DevTools یک هشدار TrialNotAllowed نمایش می‌دهد:

اطلاعات آزمایشی مبدا Chrome DevTools در پانل برنامه که هشدار TrialNotAllowed را نشان می دهد.

اطلاعات مربوط به محدودیت‌های استفاده و در دسترس بودن برای هر آزمایش اولیه ارائه خواهد شد.

مانند هر ویژگی پلتفرم وب، باید از تشخیص ویژگی برای تأیید اینکه یک ویژگی آزمایشی اصلی قبل از استفاده از آن پشتیبانی می‌شود، استفاده کنید.

از محدودیت‌های استفاده آزمایشی اصلی فراتر نرفته است

به‌طور پیش‌فرض، یک ویژگی آزمایشی مبدا در هر صفحه‌ای فعال می‌شود که نشانه معتبری برای آزمایشی داشته باشد.

با این حال، به جز در موارد نادر، استفاده آزمایشی مبدأ به حداکثر 0.5٪ از بارگیری‌های صفحه Chrome محدود می‌شود. اگر کل استفاده همه کاربران Chrome از این مقدار بیشتر شود، ویژگی آزمایشی اصلی غیرفعال می‌شود. DevTools وضعیت توکن را غیرفعال نشان می دهد.

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

برخی آزمایش‌ها نیز گزینه‌ای برای محدود کردن استفاده ارائه می‌دهند، به این معنی که ویژگی‌های آزمایشی اصلی برای برخی از کاربران غیرفعال می‌شود. این گزینه از صفحه ثبت نام برای آزمایش اولیه در دسترس است که آن را ارائه می دهد:

صفحه ثبت نام آزمایش‌های اولیه Chrome که محدودیت‌های استفاده را نشان می‌دهد.

اگر متوجه شده اید که دسترسی کاربران شما به یک ویژگی آزمایشی مبدا کمتر از حد انتظار است، مطمئن شوید که «محدودیت استاندارد» انتخاب شده است.

آی فریم ها توکن های خود را ارائه می دهند

برای اجازه دسترسی به یک ویژگی آزمایشی مبدا، یک 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 بررسی کنید و فهرست کامل ویژگی‌های مجاز را در پانل برنامه مشاهده کنید.

پانل برنامه Chrome DevTools که ویژگی مجاز خط مشی مجوزها را نشان می دهد.

کارگران چطور؟

ویژگی‌های آزمایشی مبدأ را می‌توان برای کارگران خدماتی، کارگران مشترک و کارگران اختصاصی در دسترس قرار داد. با این حال، تنها راه برای فعال کردن دسترسی برای کارگران سرویس و کارگران اشتراکی، ارائه یک توکن در سرآیند Origin-Trial است.

کارگران اختصاص داده شده دسترسی به ویژگی های فعال شده توسط سند مادر را به ارث می برند.

رمز قبل از دسترسی به ویژگی ارائه می شود

قبل از دسترسی به ویژگی آزمایشی مطمئن شوید که یک نشانه آزمایشی مبدا ارائه شده است. به عنوان مثال، اگر صفحه ای یک رمز از طریق جاوا اسکریپت ارائه می کند، مطمئن شوید که کد ارائه شده قبل از کدی که سعی می کند به ویژگی آزمایشی دسترسی پیدا کند اجرا شود.

دموهای آزمایشی مبدا

بیشتر بدانید