wheatup / TwitchChatDanmaku

A danmaku chrome extension for twitch.tv
MIT License
57 stars 15 forks source link

背景開啟的頁面,有時候沒有載入到設定導致彈幕沒有顯示 #2

Closed pc035860 closed 5 years ago

pc035860 commented 5 years ago

這個 issue 跟我個人的 Twitch 使用習慣息息相關,因為我都是上站之後,一次把有興趣的頻道全部在背景開完,結果就是有部分的頻道彈幕不會出現。

重現方法:

  1. 用滑鼠中鍵開啟 Twitch 站上的頻道連結,讓實況頁籤開在背景
  2. 頁籤在背景的載入狀態結束之後,切換到該頁籤
  3. 彈幕不會出現

我稍微調查了一下的結果,發現似乎在背景狀態下載入的頁籤,從 background 回傳的訊息會沒有收到(沒有收到 GOT_SETTINGS)。

希望能夠把在 contentscript 取得設定這部分加一個 flag,在開始處理彈幕的時候如果還沒有順利拿到就重新拿一次。這樣應該就可以解決這個問題。

wheatup commented 5 years ago

感謝反饋!新版本(1.4.4)中已修復這個問題,請確認!

pc035860 commented 5 years ago

你好,謝謝你的快速修正!

我在 Mac 上測試 1.4.4 版碰到新的問題,不過這問題不確定是 1.4.4 版開始才發生還是因為我改用 Mac 造成的。

基本上有時候彈幕還是會看不到。

我 trace 的結果,settings 已經有正常取得,但 overlay 偶爾會被 <div class="player-video"></div> 蓋住而看不到(彈幕生成是正常的,只是被蓋住)。

正常的順序

image

有問題的順序

image

overlay 加上 z-index: 1 就可以解決。

不過根本的問題應該是在 DOM 操作的時間軸上面,要治本的話應該要花一翻工夫研究一下。

wheatup commented 5 years ago

感謝十分詳盡的issue說明! 雖然沒有辦法復現這個bug,但上述問題應該已進行修正,通過調整z-index的方法。 目前本repo正逐漸進行擯棄jQuery庫,不知道該bug是否與其有關。 總之再次感謝!

pc035860 commented 5 years ago

關於復現,我今天的測試環境是 macOS 10.14.6 上的 Opera 63.0.3368.107,而家裡我是用 Windows 10 上的 Opera/Opera GX。之前我從來沒有在這台 mac 上用過這個 extension。

因此我自己感覺可能原因是

  1. mac 上的 Chromium 或是 Opera 跟 Windows 版本有些不同
  2. 我這台電腦對比我家裡使用的 Windows,效能比較差

無法復現也是無可奈何的,可能我回家試也無法復現。

感謝你的快速修正,以後還有碰到 bug 或有 feature 需求還請多多指教。