Bug 104543

Summary: MediaStream API: Change the data channel descriptor pattern to a handler pattern
Product: WebKit Reporter: Tommy Widenflycht <tommyw>
Component: WebCore Misc.Assignee: Tommy Widenflycht <tommyw>
Status: RESOLVED FIXED    
Severity: Normal CC: abarth, dglazkov, eric.carlson, feature-media-reviews, fishd, gtk-ews, gyuyoung.kim, hta, jamesr, rakuco, tkent+wkapi, webkit.review.bot, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 56459    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
tkent: review+, tkent: commit-queue-
Patch for landing none

Tommy Widenflycht
Reported 2012-12-10 05:58:14 PST
This will fix lifetime/memory/code structure issues in the chromium port.
Attachments
Patch (91.40 KB, patch)
2012-12-10 06:03 PST, Tommy Widenflycht
no flags
Patch (91.38 KB, patch)
2012-12-10 06:29 PST, Tommy Widenflycht
no flags
Patch (92.89 KB, patch)
2012-12-11 02:09 PST, Tommy Widenflycht
tkent: review+
tkent: commit-queue-
Patch for landing (92.68 KB, patch)
2012-12-12 02:15 PST, Tommy Widenflycht
no flags
Tommy Widenflycht
Comment 1 2012-12-10 06:03:48 PST
Tommy Widenflycht
Comment 2 2012-12-10 06:06:13 PST
Reviewers: This patch is big but it contains quite a bit of deleted files. It is also straight-forward and not particularly complicated.
WebKit Review Bot
Comment 3 2012-12-10 06:08:38 PST
Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.
kov's GTK+ EWS bot
Comment 4 2012-12-10 06:14:44 PST
Tommy Widenflycht
Comment 5 2012-12-10 06:29:48 PST
Darin Fisher (:fishd, Google)
Comment 6 2012-12-10 11:28:57 PST
Comment on attachment 178534 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=178534&action=review > Source/Platform/chromium/public/WebRTCDataChannelHandler.h:39 > + virtual void setClient(WebRTCDataChannelHandlerClient*) = 0; Q: do you need to be able to modify the client at runtime? how about just passing it to the createDataChannel method? > Source/Platform/chromium/public/WebRTCDataChannelHandler.h:42 > + virtual bool reliable() = 0; nit: this method looks like it is asking a question, so perhaps it should be named as such? isReliable? > Source/Platform/chromium/public/WebRTCDataChannelHandlerClient.h:46 > + virtual void dataArrived(const WebString&) const = 0; nit: call this didReceiveData just like WebURLLoaderClient? > Source/Platform/chromium/public/WebRTCDataChannelHandlerClient.h:47 > + virtual void dataArrived(const char*, size_t) const = 0; Q: why are there two versions of this function? should the first be called didReceiveStringData and the second didReceiveRawData? I'm re-using the terms from WebRTCDataChannelHandler. > Source/Platform/chromium/public/WebRTCDataChannelHandlerClient.h:48 > + virtual void error() const = 0; nit: didReceiveError?
Tommy Widenflycht
Comment 7 2012-12-11 02:09:51 PST
Tommy Widenflycht
Comment 8 2012-12-11 02:19:05 PST
Comment on attachment 178534 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=178534&action=review >> Source/Platform/chromium/public/WebRTCDataChannelHandler.h:39 >> + virtual void setClient(WebRTCDataChannelHandlerClient*) = 0; > > Q: do you need to be able to modify the client at runtime? how about just passing it to the createDataChannel method? No, the client will nor change once set. This is needed when the remote side initiates the DataChannel setup; the local UA detects that and creates an WebRTCDataChannelHandler and sends to through the WebRTCPeerConnectionHandlerClient. The WebCore code then needs to set the client. This way it is symmetrical. >> Source/Platform/chromium/public/WebRTCDataChannelHandler.h:42 >> + virtual bool reliable() = 0; > > nit: this method looks like it is asking a question, so perhaps it should be named as such? isReliable? Done. >> Source/Platform/chromium/public/WebRTCDataChannelHandlerClient.h:46 >> + virtual void dataArrived(const WebString&) const = 0; > > nit: call this didReceiveData just like WebURLLoaderClient? see next comment >> Source/Platform/chromium/public/WebRTCDataChannelHandlerClient.h:47 >> + virtual void dataArrived(const char*, size_t) const = 0; > > Q: why are there two versions of this function? should the first be called didReceiveStringData and the second didReceiveRawData? I'm re-using the terms from WebRTCDataChannelHandler. Changed them to didReceiveStringData and didReceiveRawData as suggested. >> Source/Platform/chromium/public/WebRTCDataChannelHandlerClient.h:48 >> + virtual void error() const = 0; > > nit: didReceiveError? Receive is not the correct word so I renamed it to didDetectError.
Kent Tamura
Comment 9 2012-12-12 01:00:43 PST
Comment on attachment 178753 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=178753&action=review This seems to address Darin's comment. Rubber-stamped. > Source/WebCore/GNUmakefile.list.am:5665 > + Source/WebCore/platform/mediastream/RTCDataChannelHandler.h \ > + Source/WebCore/platform/mediastream/RTCDataChannelHandlerClient.h \ > + Source/WebCore/platform/mediastream/RTCIceCandidateDescriptor.cpp \ These lines should start with TAB to be consistent with other lines.
Tommy Widenflycht
Comment 10 2012-12-12 02:15:13 PST
Created attachment 179006 [details] Patch for landing
Tommy Widenflycht
Comment 11 2012-12-12 02:16:31 PST
Comment on attachment 178753 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=178753&action=review >> Source/WebCore/GNUmakefile.list.am:5665 >> + Source/WebCore/platform/mediastream/RTCIceCandidateDescriptor.cpp \ > > These lines should start with TAB to be consistent with other lines. Fixed.
WebKit Review Bot
Comment 12 2012-12-12 02:43:41 PST
Comment on attachment 179006 [details] Patch for landing Clearing flags on attachment: 179006 Committed r137441: <http://trac.webkit.org/changeset/137441>
Note You need to log in before you can comment on or make changes to this bug.