Closed
Bug 859179
Opened 12 years ago
Closed 12 years ago
onMessage event on a data channel will fail to fire in which the message being sent is a very long string
Categories
(Core :: WebRTC: Networking, defect, P2)
Core
WebRTC: Networking
Tracking
()
VERIFIED
FIXED
mozilla23
People
(Reporter: jsmith, Assigned: jesup)
Details
(Whiteboard: [webrtc][blocking-webrtc-][spec-issue])
Attachments
(2 files)
6.82 KB,
text/html
|
Details | |
12.82 KB,
patch
|
jesup
:
review+
lsblakk
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
STR:
1. Load the attached test case
2. Select "Setup Handshake"
3. Select "Local DC Send String Message"
Expected:
Even with long valid, string messages, the messages should go through when the channels are deemed reliable. So I would expect to get an onMessage event eventually.
Actual:
After waiting a few minutes, I have yet to see the onMessage event fire. Seems like maybe the message failed to send maybe? Although the question I think here is if it did fail to send, why didn't we throw an exception?
Reporter | ||
Comment 1•12 years ago
|
||
I recently tested a similar case that involved a 1 GB blob object and this worked fine. So why isn't this working with a very long string that takes up a lot of bytes?
Assignee | ||
Comment 2•12 years ago
|
||
Large binary messages are explicitly fragmented currently; strings aren't. Also, strings may be more expensive to convert. I'll look into it.
Whiteboard: [webrtc][blocking-webrtc+]
Updated•12 years ago
|
Assignee: nobody → rjesup
Priority: -- → P2
Reporter | ||
Updated•12 years ago
|
Flags: in-testsuite?
Updated•12 years ago
|
Whiteboard: [webrtc][blocking-webrtc+] → [webrtc][blocking-webrtc+][webrtc-uplift]
Assignee | ||
Comment 3•12 years ago
|
||
Right now, there's an application-defined limit of 256K (bytes) for strings (but no limit for binary messages). I'll look to relax that in FF23 via a protocol change.
Assignee | ||
Comment 4•12 years ago
|
||
Removing uplift tag for now; will reconsider once we've landed in m-c
Whiteboard: [webrtc][blocking-webrtc+][webrtc-uplift] → [webrtc][blocking-webrtc+]
Target Milestone: --- → mozilla23
Assignee | ||
Comment 5•12 years ago
|
||
Also, not blocking for release since a 256K limit on strings for initial release is probably ok (much as WebSockets initially had a 16MB limit onbinary transfers).
Whiteboard: [webrtc][blocking-webrtc+] → [webrtc][blocking-webrtc-][spec-issue]
Reporter | ||
Comment 6•12 years ago
|
||
(In reply to Randell Jesup [:jesup] from comment #5)
> Also, not blocking for release since a 256K limit on strings for initial
> release is probably ok (much as WebSockets initially had a 16MB limit
> onbinary transfers).
Yeah, that's fine. Probably a good case to dev doc here for Fx22.
Keywords: dev-doc-needed
Assignee | ||
Comment 7•12 years ago
|
||
Assignee | ||
Comment 8•12 years ago
|
||
Comment on attachment 735186 [details] [diff] [review]
Support large strings by fragmentation
Note: PPID 51 used to be DATA_CHANNEL_PPID_DOMSTRING, now it's DATA_CHANNEL_PPID_DOMSTRING_LAST (which does what DOMSTRING used to). This keeps the naming consistent, and the binary protocol forward-compatible (send from 22 to 23 would be max 256K bytes as is 22 generally), and backward-compatible for strings less than 16K bytes (when sending from 23 to 22).
Note this issue only affects sending large DOMStrings; binary messages already work this way.
It may be worthwhile due to the back-compat issue to uplift this to Aurora, though not strictly required; if we don't we should relnote that strings >16K will not work when sending from FF23 to FF22 (and consider uplifting a patch to 22 to throw some type of warning, though that might be as much code as this patch).
Also note this assumes the fragmentation size remains at 16K; changing that would change the size at which back-compatibility comes into play.
r? to tuexen
f? to mcmanus on the uplift issue
(Michael: I'll incorporate this into the protocol document)
Attachment #735186 -
Flags: review?(tuexen)
Attachment #735186 -
Flags: feedback?(mcmanus)
Comment 9•12 years ago
|
||
Comment on attachment 735186 [details] [diff] [review]
Support large strings by fragmentation
Review of attachment 735186 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good to me.
Assignee | ||
Comment 10•12 years ago
|
||
Comment on attachment 735186 [details] [diff] [review]
Support large strings by fragmentation
r+ = tuexen by email
Attachment #735186 -
Flags: review?(tuexen) → review+
Assignee | ||
Comment 11•12 years ago
|
||
status-firefox21:
--- → disabled
status-firefox22:
--- → affected
status-firefox23:
--- → affected
Whiteboard: [webrtc][blocking-webrtc-][spec-issue] → [webrtc][blocking-webrtc-][spec-issue][webrtc-uplift]
Assignee | ||
Comment 12•12 years ago
|
||
Comment on attachment 735186 [details] [diff] [review]
Support large strings by fragmentation
Chatted with mcmanus on IRC; asking for uplift now to minimize incompatibility period (though the incompatibility isn't major and will only affect a few (if any) current apps.)
[Approval Request Comment]
Bug caused by (feature/regressing bug #): N/A
User impact if declined: DataChannels between FF22 and FF23 will be limited (in the 23->22 direction) to 16K maximum for DOMString Send()'s
Testing completed (on m-c, etc.): on inbound; locally tested using testcase. We'll land a test to back this up.
Risk to taking this patch (and alternatives if risky): very low; this patch leverages the existing fragmentation code for binary messages.
String or IDL/UUID changes made by this patch: none
Attachment #735186 -
Flags: feedback?(mcmanus) → approval-mozilla-aurora?
Assignee | ||
Comment 13•12 years ago
|
||
Note: I wouldn't land this on Aurora until it's in m-c and I've tested it there.
Comment 14•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Reporter | ||
Updated•12 years ago
|
Keywords: dev-doc-needed → verifyme
Comment 15•12 years ago
|
||
[Relman comment]
Holding off on aurora approval till, status-firefox23 is marked verified.
Updated•12 years ago
|
Reporter | ||
Comment 16•12 years ago
|
||
lgtm on trunk. I'm seeing my original test case working - onMessage fires and buffering is happening to handle long strings.
Status: RESOLVED → VERIFIED
Keywords: verifyme
Comment 17•12 years ago
|
||
Comment on attachment 735186 [details] [diff] [review]
Support large strings by fragmentation
approving now that this is verified on trunk.
Attachment #735186 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Assignee | ||
Comment 18•12 years ago
|
||
Whiteboard: [webrtc][blocking-webrtc-][spec-issue][webrtc-uplift] → [webrtc][blocking-webrtc-][spec-issue]
You need to log in
before you can comment on or make changes to this bug.
Description
•