Index: openacs-4/packages/xowiki/tcl/chat-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/tcl/chat-procs.tcl,v diff -u -N -r1.54.2.32 -r1.54.2.33 --- openacs-4/packages/xowiki/tcl/chat-procs.tcl 26 Jan 2024 10:30:35 -0000 1.54.2.32 +++ openacs-4/packages/xowiki/tcl/chat-procs.tcl 26 Jan 2024 13:14:50 -0000 1.54.2.33 @@ -520,17 +520,16 @@ # if {[info commands ::thread::mutex] ne "" && ![catch {ns_conn contentsentlength}]} { - # - # scripted streaming should work everywhere - # - set mode scripted-streaming - if {![regexp msie|opera [string tolower [ns_set iget [ns_conn headers] User-Agent]]]} { + if {[regexp {msie|opera mini} [string tolower [ns_set iget [ns_conn headers] User-Agent]]]} { # - # Explorer doesn't expose partial response until request state - # != 4, while Opera fires onreadystateevent only once. For - # this reason, for every browser except them, we could use the - # nice mode without the spinning load indicator. + # Opera Mini and Internet Explorer do not support Server Sent + # Events. Fallback to scripted-streaming, which should work + # everywhere. # + # See https://caniuse.com/eventsource + # + set mode scripted-streaming + } else { set mode streaming } }