Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2335)

Unified Diff: chrome/browser/media/webrtc_browsertest.cc

Issue 1959333002: RTCCertificate serialization - persistent storage in IndexedDB. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: return nullptr; Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/bindings/core/v8/SerializationTag.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/webrtc_browsertest.cc
diff --git a/chrome/browser/media/webrtc_browsertest.cc b/chrome/browser/media/webrtc_browsertest.cc
index a93476aba8c7b0bdeacb4cc50d7f927e25e25485..1ebe11df76be33091eea1d55d8f01586569774f7 100644
--- a/chrome/browser/media/webrtc_browsertest.cc
+++ b/chrome/browser/media/webrtc_browsertest.cc
@@ -34,6 +34,8 @@ static const char kKeygenAlgorithmEcdsa[] =
// system.
class WebRtcBrowserTest : public WebRtcTestBase {
public:
+ WebRtcBrowserTest() : left_tab_(nullptr), right_tab_(nullptr) {}
+
void SetUpInProcessBrowserTestFixture() override {
DetectErrorsInJavaScript(); // Look for errors in our rather complex js.
}
@@ -56,31 +58,60 @@ class WebRtcBrowserTest : public WebRtcTestBase {
const std::string& answer_cert_keygen_alg =
WebRtcTestBase::kUseDefaultCertKeygen) {
if (OnWinXp()) return;
+ StartServerAndOpenTabs();
- ASSERT_TRUE(embedded_test_server()->Start());
+ SetupPeerconnectionWithLocalStream(left_tab_, offer_cert_keygen_alg);
+ SetupPeerconnectionWithLocalStream(right_tab_, answer_cert_keygen_alg);
+
+ NegotiateCall(left_tab_, right_tab_, video_codec);
+
+ DetectVideoAndHangUp();
+ }
+
+ void RunsAudioVideoWebRTCCallInTwoTabsWithClonedCertificate(
+ const std::string& cert_keygen_alg =
+ WebRtcTestBase::kUseDefaultCertKeygen) {
+ if (OnWinXp()) return;
+ StartServerAndOpenTabs();
+
+ // Generate and clone a certificate, resulting in JavaScript variable
+ // |gCertificateClone| being set to the resulting clone.
+ DeleteDatabase(left_tab_);
+ OpenDatabase(left_tab_);
+ GenerateAndCloneCertificate(left_tab_, cert_keygen_alg);
+ CloseDatabase(left_tab_);
+ DeleteDatabase(left_tab_);
- content::WebContents* left_tab =
- OpenTestPageAndGetUserMediaInNewTab(kMainWebrtcTestHtmlPage);
- content::WebContents* right_tab =
- OpenTestPageAndGetUserMediaInNewTab(kMainWebrtcTestHtmlPage);
+ SetupPeerconnectionWithCertificateAndLocalStream(
+ left_tab_, "gCertificateClone");
+ SetupPeerconnectionWithLocalStream(right_tab_, cert_keygen_alg);
- SetupPeerconnectionWithLocalStream(left_tab, offer_cert_keygen_alg);
- SetupPeerconnectionWithLocalStream(right_tab, answer_cert_keygen_alg);
+ NegotiateCall(left_tab_, right_tab_, WebRtcTestBase::kUseDefaultVideoCodec);
- NegotiateCall(left_tab, right_tab, video_codec);
+ DetectVideoAndHangUp();
+ }
- StartDetectingVideo(left_tab, "remote-view");
- StartDetectingVideo(right_tab, "remote-view");
+private:
+ void StartServerAndOpenTabs() {
+ ASSERT_TRUE(embedded_test_server()->Start());
+ left_tab_ = OpenTestPageAndGetUserMediaInNewTab(kMainWebrtcTestHtmlPage);
+ right_tab_ = OpenTestPageAndGetUserMediaInNewTab(kMainWebrtcTestHtmlPage);
+ }
+ void DetectVideoAndHangUp() {
+ StartDetectingVideo(left_tab_, "remote-view");
+ StartDetectingVideo(right_tab_, "remote-view");
#if !defined(OS_MACOSX)
// Video is choppy on Mac OS X. http://crbug.com/443542.
- WaitForVideoToPlay(left_tab);
- WaitForVideoToPlay(right_tab);
+ WaitForVideoToPlay(left_tab_);
+ WaitForVideoToPlay(right_tab_);
#endif
-
- HangUp(left_tab);
- HangUp(right_tab);
+ HangUp(left_tab_);
+ HangUp(right_tab_);
}
+
+ content::WebContents* left_tab_;
+ content::WebContents* right_tab_;
};
IN_PROC_BROWSER_TEST_F(WebRtcBrowserTest,
@@ -140,6 +171,18 @@ IN_PROC_BROWSER_TEST_F(WebRtcBrowserTest,
kKeygenAlgorithmEcdsa);
}
+IN_PROC_BROWSER_TEST_F(
+ WebRtcBrowserTest,
+ RunsAudioVideoWebRTCCallInTwoTabsWithClonedCertificateRsa) {
+ RunsAudioVideoWebRTCCallInTwoTabsWithClonedCertificate(kKeygenAlgorithmRsa);
+}
+
+IN_PROC_BROWSER_TEST_F(
+ WebRtcBrowserTest,
+ RunsAudioVideoWebRTCCallInTwoTabsWithClonedCertificateEcdsa) {
+ RunsAudioVideoWebRTCCallInTwoTabsWithClonedCertificate(kKeygenAlgorithmEcdsa);
+}
+
IN_PROC_BROWSER_TEST_F(WebRtcBrowserTest,
RunsAudioVideoWebRTCCallInTwoTabsOfferRsaAnswerEcdsa) {
RunsAudioVideoWebRTCCallInTwoTabs(WebRtcTestBase::kUseDefaultVideoCodec,
« no previous file with comments | « no previous file | third_party/WebKit/Source/bindings/core/v8/SerializationTag.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698