proxy already set to same transport channel impl.
Since session can call SetImplementation multiple times with or without BUNDLE, there are cases when SetImplementation is called with same impl (OnRemoteCandidates/PushdownTransportDescription/SetupMux). Also variables in
cricket::TransportProxy like |connecting_| and |negotiated_| are accessed
both between worker thread and signaling threads (which calls for bigger change
on how session interacts with Transport and TransportChannelProxy). I have a created a separate bug to address later issue.
Also if single thread used as worker and signaling thread, we can end up
calling SetLocalDescription and OnRemoteCandidates in same call sequence, which
will end up calling SetImplementation twice.
R=wu@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/12019007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5944 4adac7df-926f-26a2-2b94-8c16560cd09d
Since PeerConnection holds a ref to its creating PeerConnectionFactory, it's
possible for ~PeerConnectionFactory() to be run on its signaling thread.
Deleting a thread from within that thread is sad times, so don't do it.
It would be nicer to avoid having PeerConnection hold a ref to the factory,
and instead require the user to keep the factory alive. Unfortunately that
changes the contract on PeerConnection{,Factory} and it's unclear how to vet
existing callers for safety.
BUG=3100
R=juberti@webrtc.org, noahric@google.com
Review URL: https://webrtc-codereview.appspot.com/11289004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5933 4adac7df-926f-26a2-2b94-8c16560cd09d
This CL brought to you by:
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f;
done|sort|uniq|grep -v '^\.$'); do echo -e "\n# These are for the common case of
adding or renaming files. If you're doing\n# structural changes, please get a
review from a reviewer in this file.\nper-file *.gyp=*\nper-file *.gypi=*" >>
$d/OWNERS; done
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f;
done|sort|uniq|grep -v '^\.$'); do git add $d/OWNERS; done
(and then removed the non-talk/ impact)
R=niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/11979004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5904 4adac7df-926f-26a2-2b94-8c16560cd09d
- r5834 made it so that empty fields are a fatal SDP parsing error, exposing
opportunities for improvement in the preferISAC; changed split/join to use
\r\n instead of \n and now omitting the trailing space on the m=audio line
that triggered the new failure.
- DTLS requires a different role for each endpoint so conflicts with loopback
calling. apprtc.py suppresses DTLS for that reason in loopback calls, so the
android demo app now only enables DTLS by default if it is not suppressed by a
constraint (matching Chrome).
BUG=3164,3165,2507
R=mallinath@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/11229004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5847 4adac7df-926f-26a2-2b94-8c16560cd09d
Previously GAE Channel callbacks would be handled by JS string-encoding the
payload into a URL. Unfortunately this is limited to the (undocumented,
silently problematic) maximum URL length UIWebView supports. Replaced this
scheme by a notification from JS to ObjC and a getter from ObjC to JS (which
happens out-of-line to avoid worrying about UIWebView's re-entrancy, or lack
thereof). Part of this change also moved from a combination of: JSON,
URL-escaping, and ad-hoc :-separated values to simply JSON.
Also incidentally:
- Removed outdated TODO about onRenegotiationNeeded, which is unneeded
- Move handling of PeerConnection callbacks to the main queue to avoid having
to think about concurrency too hard.
- Replaced a bunch of NSOrderedSame with isEqualToString for clearer code and
not having to worry about the fact that [nil compare:@"foo"]==NSOrderedSame
is always true (yay ObjC!).
- Auto-scroll messages view.
BUG=3117
R=noahric@google.com
Review URL: https://webrtc-codereview.appspot.com/10899006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5814 4adac7df-926f-26a2-2b94-8c16560cd09d
Chromium defines ENABLE_PROFILING under the gyp flag profiling=1. This
corrects the resulting mulitple defintion error:
../../talk/base/profiler.h:61:9: error: 'ENABLE_PROFILING' macro redefined [-Werror]
#define ENABLE_PROFILING
and allows us to use profiling=1 in standalone builds.
TESTED=build passes with profiling=1
R=wu@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/10829004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5804 4adac7df-926f-26a2-2b94-8c16560cd09d