Англійська для розробників розширень браузера

Освоєння словникового запасу для обговорення манифестів, скриптів вмісту, прав доступу і процесу перегляду магазину додатків англійською мовою.

Розробка розширення браузера має свій власний словник, сформований моделлю безпеки браузера і процесами перегляду магазинів розширення, обидва з яких постійно з’являються в інженерних дискусіях і в письмовому спілкуванні з рецензентами магазинів. Точність особливо важлива у запитах на надання дозволів і описах списків магазинів, де нечітка мова може призвести до відхилення або тривалої затримки перегляду.

Ключовий словник

Маніфест Файл налаштувань ( manifest.json ), який декларує метадані розширення, права доступу і скрипти, які воно виконує — переглядач читає цей файл, щоб зрозуміти, що дозволяється робити розширенню.

  • Приклад: « Нам потрібно додати дозвіл activeTab до манифесту, щоб ця функція працювала, оскільки на даний момент у нас немає доступу до поточної сторінки. » *

** Скрипт вмісту ** JavaScript, який розширення вставляє безпосередньо у веб- сторінки, надаючи змогу читати або змінювати DOM сторінки, але виконуючи його у контексті, ізольованому від власних скриптів сторінки. Приклад: “Скрипт контенту може читати DOM сторінки, але він не може безпосередньо викликати функції, визначені в JavaScript сторінки — для цього нам потрібно використовувати передачу повідомлень.”

** Фоновий скрипт / службовий працівник ** Скрипт, який виконується незалежно від будь- якої окремої веб- сторінки, обробляє події, підтримує стан і координує дії скриптів вмісту з іншими частинами розширення.

  • Приклад: « Ми пересунули цю логіку до фонової служби, оскільки вона повинна зберігатися навіть після того, як користувач закрив вкладку, у якій виконувався скрипт з вмістом. » *

Изолированный мир Відокремлений контекст виконання JavaScript, у якому виконуються скрипти вмісту, що запобігає безпосередньому доступу до змінних і функцій, визначених сценаріями веб- сторінки, і навпаки. Приклад: “Ви не можете просто викликати функцію сторінки безпосередньо зі скрипту контенту — вони працюють в ізольованих світах, тому вам потрібно буде ввести скрипт у власний контекст сторінки або використовувати postMessage.”

** Дозвіл (дозвіл на розширення) ** Особлива можливість, яку додаток вимагає від користувача, наприклад, читання історії перегляду або доступ до всіх веб- сайтів, яку буде показано під час встановлення або за допомогою підказок під час виконання. Приклад: «Ми запитуємо широкий дозвіл <all_urls>, але функція насправді потребує доступу тільки до двох конкретних доменів — суження, яке зробить перегляд магазину швидшим і заспокоїть користувачів.»

** Передача повідомлення ** Механізм, за допомогою якого різні частини розширення (скрипти вмісту, скрипти тла, контекстні вікна) спілкуються між собою, оскільки вони виконуються у окремих, ізольованих контекстах.

  • Приклад: « Вигулькне вікно надсилає повідомлення скрипту у фоні з запитом на збережений стан поточної вкладки, замість спроби отримати до нього безпосередній доступ. » *

Огляд магазину Процес, за допомогою якого магазин додатків виробника переглядача (веб- магазин Chrome, додатки Firefox тощо) оцінює надіслані додатки на предмет відповідності правилам перед їх публікацією.

  • Приклад: « Наш останній запит був помічений у перегляді магазину, оскільки в поясненні дозволів не було чітко пояснено, чому нам потрібен доступ до всіх веб- сайтів. » *

Маніфест V3 Поточне покоління специфікації манифеста розширення, яке вводить значні обмеження (наприклад, заміну постійних фонових сторінок на service workers), головним чином з міркувань безпеки і швидкодії.

  • Приклад: « Перехід на Manifest V3 порушив наш довго запущений таймер фону, оскільки переглядач може припинити роботу службових процесів, коли вони не виконуються. » *

Звичайні фрази

** В обзорах коду: **

  • «Цей скрипт контенту вимагає набагато більше доступу до DOM, ніж функція насправді потребує — давайте розширимо шаблон збігів тільки на сторінки, на яких він повинен працювати»
  • «Ми не займаємося випадком, коли фоновий службовий працівник припиняється в середині завдання — нам потрібно зберегти стан до того, як це станеться, а не припускати, що він залишається живим»
  • «Це повідомлення не перевіряє відправника, тому будь-яке інше розширення або зловмисний скрипт сторінки може потенційно викликати його.»

В стоячих позах:

  • «Вчора я мігрував фонову сторінку до Manifest V3 service worker; сьогодні я виправляю помилку, де стан не зберігається при перезапуску worker»
  • «Я заблокований на перегляді магазину — вони відхиили нашу останню заявку через неясне обґрунтування дозволу, тому я переписую цю частину нашого списку»
  • «Я закінчив сужувати наші хост-дозволи з усіх веб-сайтів до трьох доменів, які ця функція насправді потребує»

** У письмовій формі зберігати описи передачі або пояснення дозволів: **

  • «Це розширення вимагає доступу до вашої історії перегляду лише для виявлення і попередження вас про раніше відвіданих фішингових доменах; ніякі дані перегляду не передаються з вашого пристрою.»
  • «Ми запитуємо storage дозвіл для збереження ваших настроїв локально, і activeTab дозвіл для читання вмісту поточної сторінки тільки тоді, коли ви явно натискаєте на іконку розширення»
  • «Жодна інформація, зібрана цим розширенням, не продається третім особам або не використовується в інших цілях, крім описаної вище основної функціональності»

Фрази, яких слід уникати

** Сказати « надати всі права » під час розробки, щоб заощадити час. ** Це створює реальний ризик того, що занадто широкий запит перетвориться на виробниче подачу. Замість цього скажіть: « давайте запитаємо тільки мінімальні права доступу, які потрібні цій можливості, і розширимо їх пізніше, якщо певна можливість потребує цього » — переглядачі магазину і користувачі уважно перевіряють обсяг прав доступу.

**Скажи “розширення пошкоджено” для проблеми з циклом життя сервісного працівника. ** Замість цього скажіть: « Фонова служба була припинена і втратила свій стан у пам’ яті » — це специфічна, добре відома поведінка Manifest V3, а не таємничий зрив, і назва точно вказує безпосередньо на виправлення (стійкий стан замість того, щоб покладатися на те, що він залишається в пам’ яті).

**Сказати “це доступ до сторінки” нечітко в обґрунтуванні дозволу. ** Рецензенти магазинів очікують специфічності. Замість цього скажіть: « it reads the page’ s visible text to detect [specific pattern] » — нечітке пояснення дозволів є однією з найпоширеніших причин відхилення перегляду.

Краткий справочник

TermHow to use it
manifest”Add the new permission to the manifest before this feature works.”
content script”The content script reads the page DOM in an isolated world.”
service worker”State needs to persist since the service worker can be terminated.”
message passing”The popup uses message passing to request data from the background.”
permission”We narrowed the permission scope to just the domains we need.”
store review”Store review rejected us over a vague permission justification.”

Ключеві моменти

  • Обсяг запитів на дозволи точно відповідає тому, що потрібно функції — як переглядачі магазину, так і користувачі, які піклуються про конфіденційність, уважно перевіряють широкі запити.
  • Розуміння ізольованих світів і передачі повідомлень точно; більшість помилок у передачі зображення зі скрипту на сторінку пов’ язано з нерозумінням цього пункту.
  • Описати завершення роботи служби Manifest V3 конкретно, замість того, щоб називати втрату стану таємничим « аварійним завершенням » — це очікувана, документована поведінка, навколо якої можна розробляти.
  • Написати виправдання дозволів з конкретною специфікою (« читає видимий текст для виявлення X »), оскільки нечітка мова є головною причиною відхилення перегляду магазину.
  • Зберігати скорочення дозволів під час розробки (наприклад, запитувати все) явно тимчасовими, і сужати їх до мінімуму перед будь- яким справжнім надсиланням.

Націоналізація та приватизація: практичні питання

Погляньмо правді в очі: ефективне спілкування як розробник розширення браузера - це більше, ніж просто написання коду. Це розуміння нюансів запитів на зміни, надання зворотнього зв’язку і, загалом, участі в колективному середовищі. Нерідні носії часто вважають це особливо складним, не тільки через граматичні складності, але і через специфічну термінологію, яку використовують в дискусіях з розвитку. Простий запит на зразок « виправити це » може бути неправильно інтерпретовано; докладніше пояснення завжди буде цінним.

Розглянемо цей сценарій: Сара надіслала PR для свого нового розширення блокування реклами. Марк, старший розробник команди, залишає коментар до її запитів на збір: «Чи можете ви пояснити, чому ви запитали дозвіл на доступ до всіх даних користувача? Це здається надмірним і викликає певні побоювання щодо приватності. “Тепер Сара, яка все ще розвиває свої вміння англійської мови, може відчувати себе в обороні або не впевнена, як адекватно відповісти. Поспішний, погано сформулований відповідь може погіршити ситуацію. Замість цього їй потрібно сформулювати * чому * вона вважає, що цей дозвіл необхідний - можливо, це для певної функції, яка дійсно вимагає доступу до даних, і вона може це чітко пояснити. Аналогічно, отримання зворотнього зв’язку на ваш власний код під час перегляду не завжди є простим. Фрази на кшталт «Це можна поліпшити» або «Розглянути рефакторинг» є неймовірно нечіткими без контексту. Розробник може сказати: «Я ціную пропозицію щодо функції injectScript. Чи можете ви розібратися, які конкретні проблеми з продуктивністю ви спостерігали?» Це демонструє активне залучення до зворотнього зв’ язку і бажання зрозуміти обґрунтування, що стоїть за ним.

Крім того, навіть прості повідомлення Slack вимагають ретельної формулювання. Уявіть собі, що вам потрібно звернутися за допомогою до іншого члена команди: « Чи може хтось переглянути це?» — це набагато менш ефективно, ніж « Я зіткнувся з проблемою з введенням скрипту з вмістом; я долучив відповідні журнали і був би вдячний за вашу допомогу у зневадженні ». Чим точніше ви будете описувати ситуацію, тим більше шансів отримати конкретну допомогу, яка вам потрібна. Сфокусування на ясній, короткій мові - уникаючи жаргону, коли це можливо - значно покращить комунікацію в команді розробників.

Ось приклад, який показує, як використовувати webpack (зазвичай використовується інструмент збирання), щоб проілюструвати цю позицію:

webpack --mode=development content/script.js -o bundle.js

Ця команда збирає ваші файли JavaScript для розширення, і розуміння використовуваних прапорців — наприклад, --mode=development або -o bundle.js — є ключовим під час обговорення проблем під час перегляду коду. Якщо ви поясните це комусь, хто не знайомий з інструментами розробки, ви можете сказати: «Я використовую webpack для компіляції моїх файлів JavaScript; конкретно, я встановлюю режим збирання на ‘розробку’, який дозволяє корисні функції зневадження, і виводить скомпільований код у файл під назвою bundle.js. »

Поширені запитання

Про що ця стаття "Англійська для розробників розширень браузера"?

Освоєння словникового запасу для обговорення манифестів, скриптів вмісту, прав доступу і процесу перегляду магазину додатків англійською мовою.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Англійська для розробників розширень браузера"?

Приблизно 7 min.