Popup.html расширения Chrome не отображается после обновления Chrome 66.0 - PullRequest
0 голосов
/ 02 мая 2018

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

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

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

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

Manifest:

{

  "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, где он работал правильно.

1 Ответ

0 голосов
/ 02 мая 2018

Проблема с 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...