0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Chrome 拡張機能の popup ウインドウが RDB接続経由時に意図せず閉じられてしまう問題

Posted at

環境

  • Windows 7 Pro 64bit
  • Google Chrome 67

やりたかったこと

  1. ある Google Chrome のウインドウAで、ツールバーの拡張機能アイコンがクリックされたら popup ウインドウBを開く
  2. popup ウインドウBが開いたとき、新しいウインドウCを(なるべくユーザーに不可視で)開く
  3. ウインドウCでスクレイピングした処理結果を pupup ウインドウBに返却し、popup ウインドウBを再描画する

遭遇した問題

  • Windows リモートデスクトップ接続経由で Google Chrome を使用した際、ツールバーの拡張機能アイコンをクリックしても popup ウインドウBが表示されない
    • このとき、新しいウインドウCは開かれた状態になっている

原因?

  • Windows リモートデスクトップ接続経由で Google Chrome を使用した場合、ウインドウA以外のウインドウ(ここではウインドウC)にフォーカスを奪われると popup ウインドウBが閉じられてしまう
    • 通常は、ウインドウA以外のウインドウにフォーカスを当てても(ウインドウA内で popup ウインドウB以外の領域をクリックしない限り)、popup ウインドウBは閉じられないハズ

解決策(workaround)

  • ウインドウCを開く際にフォーカスを当てないようにする(focused: false
    • また、focused オプションを指定すると(ウインドウCを最小化するための)state オプションが無視されるようなので、ウインドウサイズを極小にしておく
  chrome.windows.create({
    url: url,
    type: 'popup',
-   state: 'minimized'
+   focused: false,
+   top: 0,
+   left: 0,
+   width: 1,
+   height: 1
  }

もっと良いアイディアをお持ちの方は、ぜひコメントをください!

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?