Files
platform-external-webrtc/talk/app/webrtc/objc
hbos d7973ccdb5 Revert of Replacing DtlsIdentityStoreInterface with RTCCertificateGeneratorInterface. (patchset #2 id:20001 of https://codereview.webrtc.org/2013523002/ )
Reason for revert:
There are more CreatePeerConnection calls than I anticipated/had found in Chromium, like remoting/protocol/webrtc_transport.cc. Reverting due to broken Chromium FYI bots.

Original issue's description:
> Replacing DtlsIdentityStoreInterface with RTCCertificateGeneratorInterface.
>
> The store was used in WebRtcSessionDescriptionFactory to generate certificates,
> now a generator is used instead (new API). PeerConnection[Factory][Interface],
> and WebRtcSession are updated to pass generators all the way down to the
> WebRtcSessionDescriptionFactory instead of stores.
>
> The webrtc implementation of a generator, RTCCertificateGenerator, is used as
> the default generator (peerconnectionfactory.cc:189) instead of the webrtc
> implementation of a store, DtlsIdentityStoreImpl.
>   The generator is fully parameterized and does not generate RSA-1024 unless you
> ask for it (which makes sense not to do beforehand since ECDSA is now default).
> The store was not fully parameterized (known filed bug).
>
> The "top" layer, PeerConnectionFactoryInterface::CreatePeerConnection, is
> updated to take a generator instead of a store. But as to not break Chromium,
> the old function signature taking a store is kept. It is implemented to invoke
> the generator version by wrapping the store in an
> RTCCertificateGeneratorStoreWrapper. As soon as Chromium is updated to use the
> new function signature we can remove the old CreatePeerConnection.
>   Due to having multiple CreatePeerConnection signatures, some calling places
> are updated to resolve the ambiguity introduced.
>
> BUG=webrtc:5707, webrtc:5708
> R=phoglund@webrtc.org, tommi@webrtc.org
> TBR=tkchin@webrc.org
>
> Committed: 400781a209

TBR=tkchin@webrtc.org,tommi@webrtc.org,phoglund@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5707, webrtc:5708

Review-Url: https://codereview.webrtc.org/2020633002
Cr-Commit-Position: refs/heads/master@{#12948}
2016-05-27 13:08:58 +00:00
..
2015-10-01 00:33:36 +00:00

This directory contains the ObjectiveC implementation of the
webrtc::PeerConnection API.  This can be built for Mac or iOS.  This
file describes building the API, unit test, and AppRTCDemo sample app.

Prerequisites:
- Make sure gclient is checking out tools necessary to target iOS: your
  .gclient file should contain a line like:
  target_os = ['ios', 'mac']
  Make sure to re-run gclient sync after adding this to download the tools.

- Set up webrtc-related $GYP_DEFINES; example shell functions that set
  up for building for iOS-device, iOS-simulator, and Mac (resp) are:
function wrbase() {
  cd /path/to/webrtc/src
}

function wrios() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=ios"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios"
  export GYP_CROSSCOMPILE=1
}

function wrios32() {
  wrios
  export GYP_DEFINES="$GYP_DEFINES target_arch=arm"
}

function wrios64() {
  wrios
  export GYP_DEFINES="$GYP_DEFINES target_arch=arm64"
}

function wrsim() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=ios target_subarch=arm32 target_arch=ia32"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim"
  export GYP_CROSSCOMPILE=1
}

function wrmac() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=mac target_subarch=arm64 target_arch=x64"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac"
}

- Finally, run "webrtc/build/gyp_webrtc.py" to generate ninja files.

Example of building & using the unittest & app:

- To build & run the unittest (must target mac):
  wrmac && ./webrtc/build/gyp_webrtc.py && \
      ninja -C out_mac/Debug libjingle_peerconnection_objc_test && \
      ./out_mac/Debug/libjingle_peerconnection_objc_test.app/Contents/MacOS/libjingle_peerconnection_objc_test

- To build & launch the sample app on OSX:
  wrmac && ./webrtc/build/gyp_webrtc.py && ninja -C out_mac/Debug AppRTCDemo && \
      ./out_mac/Debug/AppRTCDemo.app/Contents/MacOS/AppRTCDemo

- To build & launch the sample app on the iOS simulator:
  wrsim && ./webrtc/build/gyp_webrtc.py && ninja -C out_sim/Debug iossim AppRTCDemo && \
      ./out_sim/Debug/iossim out_sim/Debug/AppRTCDemo.app

- To build & sign the sample app for an iOS device (32 bit):
  wrios32 && ./webrtc/build/gyp_webrtc.py && ninja -C out_ios/Debug-iphoneos AppRTCDemo

- To build & sign the sample app for an iOS device (64 bit):
  wrios64 && ./webrtc/build/gyp_webrtc.py && ninja -C out_ios/Debug-iphoneos AppRTCDemo