― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 10 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2020年8月05日(水) 09:42 
オフライン

登録日時: 2020年8月05日(水) 09:06
記事: 5
挙動が変化しましたのでご意見伺いたく存じます。

元々、スクリプト側からウィンドウ・タブを閉じる事を抑制されていました。
その挙動を変更する部分が設定にもあります。

about:config
dom.allow_scripts_to_close_windows / 規定値 false

故に、実行されても閉じられない、という挙動を、とあるサイトの閲覧において体よく使っていたのですが。

79.0 に更新したところ、ウィンドウ・タブが閉じられるようになっていました。
なお、規定値は false のままです。

こんな機能を体よく使っていたのもなんだという側面もあるのですが、
・その挙動をオンにするなら規定値が true にすればよかったのでは。
・この設定があって規定値 false であるならば、バグと言えるのでは。

なお 78.0.2 に戻したところ、挙動は収まったため、 79.0 における挙動と判断しました。

どう報告したものか苦慮したもので、一先ずこちらでご意見伺えればと思った次第です。

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月06日(木) 03:51 
オフライン

登録日時: 2014年2月22日(土) 00:59
記事: 3671
sgr-o さんが書きました:
どう報告したものか苦慮したもので、一先ずこちらでご意見伺えればと思った次第です。

bugzilla.mozilla.org へバグ報告を検討されているのですね。
でしたら、下記のガイドラインを読んで、こちらに予行演習として投稿してみてください。
https://developer.mozilla.org/ja/docs/B ... guidelines

実際には英語での報告になりますが、日本語で
・Summary: (バグのタイトル)
・Steps to Reproduce: (バグを再現するための手順、条件)
・Actual Results: (再現手順で得られる結果)
・Expected Results: (正常な場合の期待結果)
を書いてみてください。

特に重要なのは(というか、これを質問したかったついでなのですが)再現手順です。

バグを引き起こすのに必要な、最小限の、簡単に実行できる手順をお願いします。
特定のサイトで確認するならそのURLを、スクリプトが必要ならその内容を、どのような操作を行えばよいかの手順を書いてみてください。

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月06日(木) 08:53 
オフライン

登録日時: 2020年8月05日(水) 09:06
記事: 5
有難う御座います。
一先ず情報をまとめてみました。疑問点などお気付きの箇所あらばご指摘いただければ幸いです。

Summary: Firefox Browser 79.0 で dom.allow_scripts_to_close_windows ( 規定値 false ) を無視する

Steps to Reproduce:
1. window.close を呼び出す html ファイルを用意。

例) closetest.html
コード:
<html><body><button onClick="window.close()">close test</button></body></html>


2. Firefox Browser にて上記ファイルを開き、ボタンを押下。

Actual Results: 79.0 の環境だとウィンドウ(タブ)が閉じられます。

Expected Results: 以前まで(78.0.2など)であれば window.close は抑制され、何も起きません。

以前の環境であっても about:config より dom.allow_scripts_to_close_windows の値を規定値の false より変更し true とした場合にはウィンドウ(タブ)は閉じられます。
この値は 79.0 において確認しても規定値は false です。

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月06日(木) 12:25 
オフライン

登録日時: 2020年8月05日(水) 09:06
記事: 5
試しに英語にしてみました。
ただ sciprt の内容が引っかかるのか、編集にて前投稿に追記しようとするとスパム判定をされてしまうため、分けています。

Summary: Firefox Browser 79.0 ignore dom.allow_scripts_to_close_windows ( default value : false )

Steps to Reproduce:
1. make html file that call window.close

e.g. : closetest.html
コード:
<html><body><button onClick="window.close()">close test</button></body></html>


2. open the file by Firefox Browser, and click the button [close test]

Actual Results: on 79.0, window ( tab ) was closed.

Expected Results: on before 79.0 (e.g. 78.0.2), window.close was denied, and window remained open.

on before 79.0 (e.g. 78.0.2), when change the setting value ( on about:config, set true at dom.allow_scripts_to_close_window ), window ( tab ) was closed.
on 79.0, dom.allow_scripts_to_close_windows default value is false same as before.

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月06日(木) 14:20 
オフライン

登録日時: 2014年2月22日(土) 00:59
記事: 3671
sgr-o さん
closetest.html をローカルに作成したとして、起動している Firefox にドロップして開いた場合と、ファイルをダブルクリックして開いた状態で Firefox を起動した場合の挙動をみてほしいです。

スクリプトですが、親ウインドウから子ウインドウを開いてそれをクローズする方がいいと思います。
オープンしたwindowを持っていてそのメソッドのcloseのパターンと、Windowオブジェクトのcloseわを叩くパターンをみるとよいでしょう。

_________________
Mozilla/5.0 (Android 8.0.0; Mobile; rv:79.0) Gecko/79.0 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月06日(木) 15:30 
オフライン

登録日時: 2020年8月05日(水) 09:06
記事: 5
EarlgreyTea さんが書きました:
closetest.html をローカルに作成したとして、起動している Firefox にドロップして開いた場合と、ファイルをダブルクリックして開いた状態で Firefox を起動した場合の挙動をみてほしいです。


有難う御座います。盲点でしたが挙動が一部変化しまして、そこからある種特定ができました。

現象 : 完全に新規なタブ(※)に window.close を含むページを開くと、その実行が許可されて閉じてしまう

・ブックマーク、リンクなどで新規のタブに開いた場合
・オプションでホームを空白ページにしている時の新規タブ

環境 : Firefox Browser 79.0 ( + Windows 10 )

ローカルフォルダに作成した closetest.html を

Firefox が起動していない状態でダブルクリックして開いた場合 : 閉じる

Firefox を新規に起動した状態で
・空白タブにドロップして開いた場合 : 閉じる
・タブバー余白にドロップして新規にタブを開かせた場合 : 閉じる
・別のサイトを表示している状況にドロップしてページを切り替えた場合 : 閉じない(!)

つまり自分はホームを「空白ページ」に設定しておりまして、これが標準の Firefox Home だった場合

・新規タブにドロップして開いた場合 : 閉じない ( Firefox Home も別のページという扱いの模様 )
・タブバー余白にドロップして新規にタブを開かせた場合 : 閉じる

という挙動になりました。ブックマークツールバーから開いた場合も同様に、

・開くタブが空白ページならば閉じる
・他のページ(Firefox Homeを含む)であれば閉じない
・当然、ブックマークを新規タブで開くと閉じる

となりました。

環境 2 : Firefox Browser 78.0.2 ( + Windows 7 )

上記の挙動に対して、全て閉じないとなります。

EarlgreyTea さんが書きました:
スクリプトですが、親ウインドウから子ウインドウを開いてそれをクローズする方がいいと思います。


closetest.html を開く元 html を作成。 ( 例:closetestparent.html )
コード:
<html><body><button onClick="window.open('closetest.html','_blank')">open closetest page</button></body></html>


この場合 79.0 / 78.0.2 いずれにおいても closetest.html のタブは閉じます。
※ この挙動は承知しています。 ( script によって開けられたタブは script にて閉じる事が許可されている )

実際の判明した切っ掛けは

・ブックマーク登録しているサイトのスクリプトに window.close があり、ブックマークより参照した場合にウィンドウが閉じられてしまう

事でした。( この挙動は一旦別のページを表示したタブにおいて開くことで対処はできそうです。 )

ただ dom.allow_scripts_to_close_windows があっての挙動としては疑問符が付くところです。

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月06日(木) 18:48 
オフライン

登録日時: 2014年2月22日(土) 00:59
記事: 3671
空白ページですか、たしかに盲点でした。
時間がなくてそこまでは確認できませんでした。
あとで私も確認してみたいと思います。

_________________
Mozilla/5.0 (Android 8.0.0; Mobile; rv:79.0) Gecko/79.0 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月07日(金) 02:07 
オフライン

登録日時: 2014年2月22日(土) 00:59
記事: 3671
closetest.html を空白タブにドロップする手順にて再現確認を行い、
mozregression GUI ツールにて二分探索で挙動が変化したコミットを突き止めました。

pushlog_url: https://hg.mozilla.org/integration/auto ... be2aa12839

元になったバグは下記です。

Bug 1353466 Window opened with window.open, `noopener` feature cannot close itself

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月07日(金) 08:59 
オフライン

登録日時: 2020年8月05日(水) 09:06
記事: 5
EarlgreyTea さんが書きました:
closetest.html を空白タブにドロップする手順にて再現確認を行い、
mozregression GUI ツールにて二分探索で挙動が変化したコミットを突き止めました。

有難う御座いました!

ご提示いただきましたリンク先を確認してゆっくり読んでみたのですが、要は HTML 言語仕様標準としてはこういった挙動(scriptによって開けられたウィンドウでなくとも、それがそれ以前の履歴がない最上位のウィンドウであるならscriptで閉じられる)であるべきと策定されていて、(ほぼ全てにおいて閉じられないという)元々の動きがバグであったと判断されたという事ですね。仕様という事で承知致しました。

実際に履歴を見て判断する事で、リンクをいきなり新規タブで開くのと、Firefox Homeが表示されているウィンドウに開くのとで挙動が異なるのも(さらに空白ページとも異なるのも)腑に落ちました。

再現方法のご提示も、思い込み部分に気付けてスッキリしました。
本当に有難う御座いました!

_________________
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2020年8月07日(金) 09:03 
オフライン
Moderator

登録日時: 2011年4月06日(水) 10:16
記事: 1905
お住まい: Tokyo
EarlgreyTea さんが書きました:
Bug 1353466 Window opened with window.open, `noopener` feature cannot close itself


「noopener」に関しては以下にある説明がわかりやすいかな。
https://forest.watch.impress.co.jp/docs ... 67910.html

_________________
[Desktop] Windows 10 pro (64bit) / 16GB RAM
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0

通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 10 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[35人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean