added tab support if window is undefine#19
Conversation
ivanvit100
left a comment
There was a problem hiding this comment.
Благодарю за Ваш вклад!
Использование расширения в мобильных браузерах на данный момент вообще не предполагалось: в Chrome на Android, насколько мне известно, расширений не предусмотрено, а для мобильного Firefox поддержка была мной отключена при сборке в addons.mozilla.org.
Поэтому, если не секрет, поделитесь, как и на какой браузер получилось установить дополнение?
Обязательно протестирую работу расширения на мобильных устройствах, если проблема портирования заключалась только во вкладках.
P.S. Небольшой совет по оформлению PR: для корректного рендера чекбокса в [] должен стоять либо пробел, либо x. Если дописать x, но не стереть пробел - он не будет рендерится. Чтобы не редактировать эти списки вручную можно открыть PR без отметок в чекбоксах, после чего прожать их на уже отрендеренной странице.
| }); | ||
| if (tab && tab.id) browserAPI.tabs.update(tab.id, { active: true }); | ||
| } | ||
| sendResponse({ ok: true }); |
There was a problem hiding this comment.
Не связано с изменённым кодом напрямую, и всё же раз идёт изменение этого блока, то стоит sendResponse обрабатывать отдельно в каждой ветке и дополнительно ввести что-то в роде
else sendResponse({ ok: false, error: 'No window/tab API available' });There was a problem hiding this comment.
Firefox Developer Edition + Firefox Nightly. В Firefox Nightly входим в режим Debug и выбираем install extension from file. Можно включить USB Debugging и через Firefox Developer Edition отлаживать расширения.
Упаковка: zip -r -FS ../DLoadLib.zip * --exclude '.git'
| else if(browserAPI.tabs) { | ||
| const tab = await browserAPI.tabs.create({ | ||
| url: fileUploadUrl, | ||
| active: true | ||
| }); | ||
| if (tab && tab.id) { | ||
| await new Promise(resolve => setTimeout(resolve, 500)); | ||
| browserAPI.tabs.update(tab.id, { active: true }); | ||
| } else console.warn('Tab created but no ID found:', tab); | ||
| } |
There was a problem hiding this comment.
2 одинаковых фрагмента кода: здесь и на строчках 694-718. Имеет смысл вынести в отдельную функцию для удобства редактирования в будущем.
Похожий фрагмент также есть в Background.js - если получится, было бы прекрасно заменить его тем же единым обработчиком, но это уже опционально.
There was a problem hiding this comment.
Не успею сделать, меня некоторое время не будет
| }); | ||
| if (tab && tab.id) { | ||
| await new Promise(resolve => setTimeout(resolve, 500)); | ||
| browserAPI.tabs.update(tab.id, { active: true }); |
There was a problem hiding this comment.
tabs.update избыточен в данном случае, поскольку вкладка устанавливается активной уже на этапе create. Для windows сценария подобный механизм был введён вследствие специфики некоторых оконных менеджеров, которые могут отложить установку фокуса при создании окна, однако в случае вкладок подобная перестраховка навряд-ли имеет смысл.
Описание (Description)
На android не работает кнопка скачивание по причине "browserApi.windows is undefine".
Добавление поддержка открытия в новой вкладке
Тип изменений (Type of Changes)
Чеклист (Checklist)
npm test(Tests pass locally)npm run test:coverage(Code coverage has not decreased)