Closed
Bug 441496
Opened 17 years ago
Closed 16 years ago
Use server push (multipart/x-mixed-replace) with Safari
Categories
(Bugzilla :: Query/Bug List, defect)
Bugzilla
Query/Bug List
Tracking
()
VERIFIED
WONTFIX
People
(Reporter: gerv, Assigned: gerv)
References
Details
Attachments
(1 file, 4 obsolete files)
1.57 KB,
patch
|
LpSolit
:
review+
|
Details | Diff | Splinter Review |
As noted in bug 188712, It seems Safari has supported multipart/x-mixed-replace since 2.0.2 in 2005:
http://webkit.org/blog/32/webkit-fixes-in-safari-202-mac-os-x-1043/
We should remove the check which prevents Safari getting the intermediate page.
Gerv
Assignee | ||
Comment 1•17 years ago
|
||
Assignee | ||
Updated•17 years ago
|
Attachment #326442 -
Flags: review? → review?(timeless)
Comment on attachment 326442 [details] [diff] [review]
Patch v.1
sorry. sniff for webkit 2+. i use 10.3.9 which means i can't run safari 2, which means you're going to break me.
but i do appreciate the review request and will grant a positive review for one which properly handles the distinction :).
Attachment #326442 -
Flags: review?(timeless) → review-
Assignee | ||
Comment 3•17 years ago
|
||
OK, for those still using Safari 1...
Gerv
Attachment #326442 -
Attachment is obsolete: true
Attachment #326443 -
Flags: review?(timeless)
Comment 4•17 years ago
|
||
Comment on attachment 326443 [details] [diff] [review]
Patch v.2
>+$ENV{'HTTP_USER_AGENT'} =~ /WebKit\/(\d+)/;
>+my $webkitversion = $1;
If the UA doesn't match this regexp, I suspect $1 would still contain any previous result from an older regexp (I cannot test right now because I'm not on my PC). You should rather write
my $foo;
if ($ENV{...} =~ /.../) {
$foo = $1;
}
to be safe.
Attachment #326443 -
Flags: review?(timeless) → review-
Assignee | ||
Comment 5•17 years ago
|
||
Attachment #326443 -
Attachment is obsolete: true
Attachment #326658 -
Flags: review?(LpSolit)
Assignee | ||
Comment 6•17 years ago
|
||
Slightly embarrassing that this has taken four goes...
Gerv
Attachment #326658 -
Attachment is obsolete: true
Attachment #326699 -
Flags: review?(LpSolit)
Attachment #326658 -
Flags: review?(LpSolit)
Assignee | ||
Comment 7•17 years ago
|
||
Words fail me.
Gerv
Attachment #326699 -
Attachment is obsolete: true
Attachment #326702 -
Flags: review?(LpSolit)
Attachment #326699 -
Flags: review?(LpSolit)
Comment 8•17 years ago
|
||
Comment on attachment 326702 [details] [diff] [review]
Patch v.5
Looks good. r=LpSolit assuming you tested it with Safari.
Attachment #326702 -
Flags: review?(LpSolit) → review+
Updated•17 years ago
|
Flags: approval3.2+
Flags: approval3.0+
Flags: approval+
Target Milestone: --- → Bugzilla 3.0
Assignee | ||
Comment 9•17 years ago
|
||
I can't test it with Safari; I don't have a Mac. Do you?
Gerv
Comment 10•17 years ago
|
||
Pyrzak has a Mac! :-)
Comment 11•17 years ago
|
||
I can confirm that it works with Safari 3.1.1 (5525.20) on my own Mac. I patched buglist.cgi, and search results still came up just fine. Note, however, that I have few enough bugs that I don't actually see the intermediate page, but I assume we're pushing through it.
I tried to use our BrowserCam account to verify that it will still work with Safari 1.x. Alas, their Macs don't allow use of ssh, without which I cannot reach my test install. If this patch is deployed in a publicly accessible version somewhere, I would be happy to try it out.
Assignee | ||
Comment 12•17 years ago
|
||
Patch now deployed on
https://landfill.bugzilla.org/bug441496/index.cgi
Feel free to test :-)
Gerv
Comment 13•17 years ago
|
||
I used the url above. I searched for the word test and nothing came back. At all. And the page appeared to be done loading. I also was unable to view the source. I am using Safari version 3.1.1 (5525.18)
Comment 14•17 years ago
|
||
Hmm, same thing here, also with 3.1.1.
Poking my head into the traffic flow, it looks like there's an internal server error being returned without a body. I switched Safari's UA string to a couple of 1.x versions and got the same result. Here's the full request:
Start Watching Built-in Ethernet Traffic, with Filter HTTP
TCP packet from 192.168.0.26:56862 to 63.245.210.140:http(80) (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 64
Identifier: 55351; Do Not Fragment; Fragment Offset: 0
Time To Live: 64; Protocol: 6; Header Checksum: 0
TCP Header:
Sequence Number: 2857218913; Acknowledgment Number: 0
Header Length: 44; Code Bits: SYN; Window: 65535
Checksum: 54134; Urgent Pointer: 0
24 bytes of TCP options:
Maximum Segment Size: 1460
Window Scale: 2**1
Timestamps: 511238997, 0
SACK Permitted
TCP packet from 63.245.210.140:http(80) to 192.168.0.26:56862 (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 60
Identifier: 0; Do Not Fragment; Fragment Offset: 0
Time To Live: 53; Protocol: 6; Header Checksum: 29304
TCP Header:
Sequence Number: 615939478; Acknowledgment Number: 2857218914
Header Length: 40; Code Bits: SYN ACK; Window: 5792
Checksum: 20127; Urgent Pointer: 0
20 bytes of TCP options:
Maximum Segment Size: 1460
SACK Permitted
Timestamps: 276045503, 511238997
Window Scale: 2**7
TCP packet from 192.168.0.26:56862 to 63.245.210.140:http(80) (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 61211; Do Not Fragment; Fragment Offset: 0
Time To Live: 64; Protocol: 6; Header Checksum: 0
TCP Header:
Sequence Number: 2857218914; Acknowledgment Number: 615939479
Header Length: 32; Code Bits: ACK; Window: 33304
Checksum: 54122; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 511238997, 276045503
TCP packet from 192.168.0.26:56862 to 63.245.210.140:http(80) (568 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 620
Identifier: 58196; Do Not Fragment; Fragment Offset: 0
Time To Live: 64; Protocol: 6; Header Checksum: 0
TCP Header:
Sequence Number: 2857218914; Acknowledgment Number: 615939479
Header Length: 32; Code Bits: ACK PUSH; Window: 33304
Checksum: 54690; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 511238997, 276045503
Data:
GET«spc»/bug441496/buglist.cgi?query_format=specific&order=relevance+desc&bu
g_status=__open__&product=&content=e«spc»HTTP/1.1«cr»«lf»
User-Agent:«spc»Mozilla/5.0«spc»(Macintosh;«spc»U;«spc»PPC«spc»
Mac«spc»OS«spc»X;«spc»en)«spc»AppleWebKit/125.5.7«spc»(KHTML,«spc»
like«spc»Gecko)«spc»Safari/125.12«cr»«lf»
Cache-Control:«spc»max-age=0«cr»«lf»
Referer:«spc»http://landfill.bugzilla.org/bug441496/query.cgi«cr»«lf»
Accept:«spc»text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,t
ext/plain;q=0.8,image/png,*/*;q=0.5«cr»«lf»
Accept-Language:«spc»en-us«cr»«lf»
Accept-Encoding:«spc»gzip,«spc»deflate«cr»«lf»
Cookie:«spc»DEFAULTFORMAT=specific«cr»«lf»
Connection:«spc»keep-alive«cr»«lf»
Host:«spc»landfill.bugzilla.org«cr»«lf»
«cr»«lf»
TCP packet from 63.245.210.140:http(80) to 192.168.0.26:56862 (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 25460; Do Not Fragment; Fragment Offset: 0
Time To Live: 53; Protocol: 6; Header Checksum: 3852
TCP Header:
Sequence Number: 615939479; Acknowledgment Number: 2857219482
Header Length: 32; Code Bits: ACK; Window: 55
Checksum: 37240; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 276045539, 511238997
TCP packet from 63.245.210.140:http(80) to 192.168.0.26:56862 (185 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 237
Identifier: 25461; Do Not Fragment; Fragment Offset: 0
Time To Live: 53; Protocol: 6; Header Checksum: 3666
TCP Header:
Sequence Number: 615939479; Acknowledgment Number: 2857219482
Header Length: 32; Code Bits: ACK PUSH; Window: 55
Checksum: 18186; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 276045644, 511238997
Data:
HTTP/1.1«spc»500«spc»Internal«spc»Server«spc»Error«cr»«lf»
Date:«spc»Fri,«spc»27«spc»Jun«spc»2008«spc»22:36:49«spc»
GMT«cr»«lf»
Server:«spc»Apache/2.2.3«spc»(CentOS)«cr»«lf»
Content-Length:«spc»0«cr»«lf»
Connection:«spc»close«cr»«lf»
Content-Type:«spc»text/plain;«spc»charset=UTF-8«cr»«lf»
«cr»«lf»
TCP packet from 192.168.0.26:56862 to 63.245.210.140:http(80) (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 9028; Do Not Fragment; Fragment Offset: 0
Time To Live: 64; Protocol: 6; Header Checksum: 0
TCP Header:
Sequence Number: 2857219482; Acknowledgment Number: 615939664
Header Length: 32; Code Bits: ACK; Window: 33211
Checksum: 54122; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 511238998, 276045644
TCP packet from 63.245.210.140:http(80) to 192.168.0.26:56862 (628 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 680
Identifier: 25462; Do Not Fragment; Fragment Offset: 0
Time To Live: 53; Protocol: 6; Header Checksum: 3222
TCP Header:
Sequence Number: 615939664; Acknowledgment Number: 2857219482
Header Length: 32; Code Bits: ACK PUSH; Window: 55
Checksum: 4106; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 276045644, 511238997
Data:
<!DOCTYPE«spc»HTML«spc»PUBLIC«spc»"-//IETF//DTD«spc»HTML«spc»
2.0//EN">«lf»
<html><head>«lf»
<title>500«spc»Internal«spc»Server«spc»Error</title>«lf»
</head><body>«lf»
<h1>Internal«spc»Server«spc»Error</h1>«lf»
<p>The«spc»server«spc»encountered«spc»an«spc»internal«spc»
error«spc»or«lf»
misconfiguration«spc»and«spc»was«spc»unable«spc»to«spc»complete«lf»
your«spc»request.</p>«lf»
<p>Please«spc»contact«spc»the«spc»server«spc»administrator,«lf»
«spc»webmaster@bugzilla.org«spc»and«spc»inform«spc»them«spc»
of«spc»the«spc»time«spc»the«spc»error«spc»occurred,«lf»
and«spc»anything«spc»you«spc»might«spc»have«spc»done«spc»
that«spc»may«spc»have«lf»
caused«spc»the«spc»error.</p>«lf»
<p>More«spc»information«spc»about«spc»this«spc»error«spc»may«spc»
be«spc»available«lf»
in«spc»the«spc»server«spc»error«spc»log.</p>«lf»
<hr>«lf»
<address>Apache/2.2.3«spc»(CentOS)«spc»Server«spc»at«spc»landfill.bugz
illa.org«spc»Port«spc»80</address>«lf»
</body></html>«lf»
TCP packet from 63.245.210.140:http(80) to 192.168.0.26:56862 (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 25463; Do Not Fragment; Fragment Offset: 0
Time To Live: 53; Protocol: 6; Header Checksum: 3849
TCP Header:
Sequence Number: 615940292; Acknowledgment Number: 2857219482
Header Length: 32; Code Bits: FIN ACK; Window: 55
Checksum: 36321; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 276045644, 511238997
TCP packet from 192.168.0.26:56862 to 63.245.210.140:http(80) (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 9523; Do Not Fragment; Fragment Offset: 0
Time To Live: 64; Protocol: 6; Header Checksum: 0
TCP Header:
Sequence Number: 2857219482; Acknowledgment Number: 615940292
Header Length: 32; Code Bits: ACK; Window: 32990
Checksum: 54122; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 511238998, 276045644
TCP packet from 192.168.0.26:56862 to 63.245.210.140:http(80) (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 30212; Do Not Fragment; Fragment Offset: 0
Time To Live: 64; Protocol: 6; Header Checksum: 0
TCP Header:
Sequence Number: 2857219482; Acknowledgment Number: 615940293
Header Length: 32; Code Bits: ACK; Window: 32990
Checksum: 54122; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 511238998, 276045644
TCP packet from 192.168.0.26:56862 to 63.245.210.140:http(80) (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 10297; Do Not Fragment; Fragment Offset: 0
Time To Live: 64; Protocol: 6; Header Checksum: 0
TCP Header:
Sequence Number: 2857219482; Acknowledgment Number: 615940293
Header Length: 32; Code Bits: FIN ACK; Window: 33304
Checksum: 54122; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 511238998, 276045644
TCP packet from 63.245.210.140:http(80) to 192.168.0.26:56862 (0 bytes)
IP Header:
Version: 4; Header Length: 20; TOS: 0; Packet Length: 52
Identifier: 25464; Do Not Fragment; Fragment Offset: 0
Time To Live: 53; Protocol: 6; Header Checksum: 3848
TCP Header:
Sequence Number: 615940293; Acknowledgment Number: 2857219483
Header Length: 32; Code Bits: ACK; Window: 55
Checksum: 36288; Urgent Pointer: 0
12 bytes of TCP options:
Timestamps: 276045675, 511238998
Stop Watching Network Traffic
Assignee | ||
Comment 15•17 years ago
|
||
Guy, Bob: that wasn't my patch. I backed it out and still saw a problem. I cvs updated and it went away, so please try again :-)
Gerv
Comment 16•17 years ago
|
||
Unfortunately, it seems to have returned, as I tried to test and it was happening again. Here are the response headers as reported by Firefox:
Date: Tue, 01 Jul 2008 17:07:47 GMT
Server: Apache/2.2.3 (CentOS)
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=UTF-8
500 Internal Server Error
Assignee | ||
Comment 17•17 years ago
|
||
Ah, I see. "Editing" or patching buglist.cgi changes its group and then Apache can't read it. Try again now.
Gerv
Comment 18•17 years ago
|
||
I tested in Safari 1.3.x, Safari 3.1.1, and OmniWeb 5.7 (which uses a modified version of WebKit), and everything seemed to work as expected. I got the intermediate page followed by the results page in Safari 3 and OW, and went straight to the results page in Safari 1.3.
Assignee | ||
Comment 19•17 years ago
|
||
Checking in buglist.cgi;
/cvsroot/mozilla/webtools/bugzilla/buglist.cgi,v <-- buglist.cgi
new revision: 1.377; previous revision: 1.376
done
Gerv
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Comment 20•16 years ago
|
||
Backing out the patch. It breaks Safari 3.2.3 on Mac and Google Chrome 2.0 on Mac and Windows, see bug 492946.
For the record, the patch never landed on the 3.2 and 3.0 branches despite the target milestone and approval flags, so only 3.3 and 3.5 are affected by this problem.
tip:
Checking in buglist.cgi;
/cvsroot/mozilla/webtools/bugzilla/buglist.cgi,v <-- buglist.cgi
new revision: 1.397; previous revision: 1.396
done
3.3.4:
Checking in buglist.cgi;
/cvsroot/mozilla/webtools/bugzilla/buglist.cgi,v <-- buglist.cgi
new revision: 1.394.2.2; previous revision: 1.394.2.1
done
Blocks: 492946
Status: RESOLVED → REOPENED
Flags: approval3.2+
Flags: approval3.0+
Flags: approval+
Resolution: FIXED → ---
Target Milestone: Bugzilla 3.0 → ---
Comment 21•16 years ago
|
||
Sounds to me like Safari implemented this in 3.1 and had it working correctly there, then broke it in 3.2 (and other browsers that use the corresponding version of WebKit)
Assignee | ||
Comment 22•16 years ago
|
||
/me breathes a sigh of relief that it wasn't his fault.
I say we give up on Safari server-push until they get their act together. So I suggest WONTFIX.
Gerv
Comment 23•16 years ago
|
||
It seemed to be working well on the first beta of Safari 4.0 on Mac OS X
Assignee | ||
Comment 24•16 years ago
|
||
WONTFIX - server push on Safari seems to be intermittent. They can cope without :-)
Gerv
Status: REOPENED → RESOLVED
Closed: 17 years ago → 16 years ago
Resolution: --- → WONTFIX
Comment 25•16 years ago
|
||
Agreed. Until such time as all supported versions of Safari reliably support push, we shouldn't push to Safari.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•