Popup.html расширения Chrome не отображается после обновления Chrome 66.0

Я в тупике. Мое расширение Chrome в основном основано на popup.html.

Он отлично работал на Chrome 65.x. Я получил отчет об ошибке от пользователей Chrome 66.0, в котором говорилось, что расширение не отображается правильно.

Я обновил Chrome до 66.0 и смог воспроизвести ошибку. Popup.html быстро мигает и обрезается до крошечного белого квадрата, как если бы он был пуст.

В чем может быть проблема?

Манифест:

{

  "description": "...",
  "manifest_version": 2,
  "name": "...",
  "version": "1.5.0",
  "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
  "permissions": [
       "tabs",
       "cookies",
       "<all_urls>"
   ],
  "browser_action": {
    "browser_style": true,
    "default_popup": "popup/popup.html"
  }

}

popup.html содержит локальную копию KnockoutJS. При удалении всего Javascript он загружается правильно. Однако в JS-коде не было никаких изменений с Chrome 65, где он работал правильно.

Показать свой manifest.json и минимальный относительный код?

elegant-user 02.05.2018 10:52

Щелкните правой кнопкой мыши значок расширения, выберите «Проверить всплывающее окно» и найдите ошибки в консоли. Сообщите здесь о любых соответствующих сообщениях, чтобы мы могли оказать дополнительную помощь

Iván Nokonoko 02.05.2018 11:35

Нет ошибок в консоли, всплывающее окно иногда отображается правильно при проверке, хотя

Andrea M 02.05.2018 11:42

Возможно, это ошибка в Chrome 66. Посмотрите, исправлена ​​ли она в Chrome Canary, в противном случае сообщите о crbug.com, если об этом еще не сообщалось.

wOxxOm 02.05.2018 12:09

Я зарегистрировал здесь ошибку: bugs.chromium.org/p/chromium/issues/detail?id=838838

Andrea M 02.05.2018 12:19

Если я нажимаю на нее достаточно часто, она иногда открывается правильно, что еще больше увеличивает вероятность того, что это ошибка Chrome.

Andrea M 02.05.2018 14:42

Похоже, это связано с: bugs.chromium.org/p/chromium/issues/detail?id=428044

Andrea M 02.05.2018 16:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
171
1

Ответы 1

Проблема связана с Chrome 66: https://bugs.chromium.org/p/chromium/issues/detail?id=428044

Временный обходной путь заключался в изменении стиля тела после загрузки для принудительной перерисовки с помощью setTimeout.

    // This height calculation is excessive due to padding, but it's not worth
    // the extra coding effort to get it pixel-perfect (e.g. getComputedStyle).
    const height = document.body.clientHeight;
    // Set it slightly bigger immediately so hopefully this will lead to less
    // flashing/refreshing.  It's not clear whether this always worksaround the
    // bug though :(.
    document.body.style.height = `${height + 1}px`;
    // Schedule an update in case the window is still too small.  Hopefully
    // this will catch the rest.  If we already workedaround it, we'll only
    // make the window slightly bigger so the user won't notice.
    setTimeout(() => document.body.style.height = `${height + 2}px`, 100);
    setTimeout(() => document.body.style.height = ``, 110)

Другие вопросы по теме