Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

環境

  • 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
  }

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

参考資料

blachocolat
Nuxt.js/Vue.js/TypeScript が好きなアラサー前半戦。機械学習をしたりしなかったり。 そういうことを仕事にできたら嬉しいなあ、と考える今日このごろ。 https://twitter.com/blachocolat
https://github.com/blachocolat
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away